1. Overfeat
classification, localization and detection을 위해 convolutional network를 사용하는 integrated framework를 제시
- multi-scale input
하나의 image를 다양한 크기로 입력받으면 image 내 존재하는 다양한 크기의 객체를 쉽게 포착하는 것이 가능하다.
-> image scale이 커지면 더 작은 객체 탐지 가능
cnn model이 고정된 크기의 image를 입력받는 이유는 fc layer가 고정된 크기의 feature vector를 입력받기 때문
-> fc layer를 conv layer로 대체해서 다양한 크기의 image 입력 받음
- Spatial outputs
Non-spatial = 이미지 전체에 대한 정보를 압축하거나 요약하는 경우, 이는 non-spatial output이며, 일반적으로 1X1 크기의 출력이 이에 해당하지만, 그 출력이 이미지 전체를 대표하는 정보를 담고 있는지가 중요함.
Spatial output = 여러 개의 공간적 위치에서 도출된 정보를 포함하고, 원본 이미지의 특정 부분에 대한 정보를 유지하고 있으며, 다양한 Output Map을 산출
receptive field: 1x1 크기의 픽셀이 나타내는 범위를 receptive field라고 한다. 해당 픽셀이 원본 이미지의 어느 부분을 대표하는지를 나타냄
model에 의해 산출된 spatial output의 요소는 원본 이미지 내 특정 receptive field에 대한 정보를 encode하고 있음
spatial output의 각 요소는 색깔에 맞는 이미지의 영역에 대한 정보를 함축함
- convnet sliding window efficiency
fc layer를 conv layer로 대체함으로써 sliding window와 같은 효과를 효율적으로 구현할 수 있음
-> conv layer에서 conv filter를 적용하는 과정에서 겹치는 영역끼리 연산을 공유하기 때문
- architecture
- overfeat model의 detection 순서
1. 6-scale 이미지를 입력받습니다.
2. Classification task 목적으로 학습된 Feature extractor에 이미지를 입력하여 feature map을 얻습니다.
3. Feature map을 Classifier와 Bounding box regressor에 입력하여 spatial map을 출력합니다.
4. 예측 bounding box에 Greedy Merge Strategy 알고리즘을 적용하여 예측 bounding box를 출력합니다.
- Resolution Augmentation
feature map이 원본 이미지에 표현하는 해상도가 너무 포괄적이게 되면 객체와 feature map 사이의 정렬(align)이 맞지 않아, 모델의 성능이 크게 떨어짐.
그래서 spatial output의 한 요소가 원본 image의 넓은 receptive field를 표현하면 object를 제대로 포착하지 못할 수 있어서 9회의 3x3 max pooling(non-overlapping)을 수행하는 방법을 제시
- greedy merge strategy
detection 시, 6 scale에 대하여 굉장히 많은 예측 bounding box를 가지게 되고 pixel offset 조합에 따른 pooling으로 예측 boudning box의 개수가 9배 증가함
병합된 bounding box 중 confidence score가 높은 box를 최종 예측으로 출력
출처: https://herbwood.tistory.com/7
Overfeat 논문(Integrated Recognition, Localization and Detectionusing Convolutional Networks) 리뷰
이번 포스팅에서는 Overfeat(Integrated Recognition, Localization and Detectionusing Convolutional Networks) 논문을 읽고 정리해봤습니다. 이전에 읽었던 R-CNN 논문에서 Overfeat보다 R-CNN이 더 좋은 성능을 보였다는 언
herbwood.tistory.com
https://kejdev.github.io/paper/2024/01/02/OverFeat.html
논문 리뷰 - OverFeat Integrated Recognition, Localization and Detection using Convolutional Networks
Paper URL : https://arxiv.org/abs/1312.6229OverFeat이 나오게 된 배경OverFeat이 개발된 배경을 잠깐 살펴보자.그 당시 컴퓨터 비전 분야의 상황과 기존 접근 방식의 한계를 살펴볼 필요가 있다. OverFeat논문은 2
kejdev.github.io
2. YOLOv1
YOLO는 object detection에 쓰이고 기존 model과 다르게 regression problem으로 한번에 end to end로 detection을 함
R-CNN은 2 stage로 region proposal method로 bounding box를 만들고 box를 분류한다.
그리고 bounding box를 정제하고 중복된 영역을 삭제하고 box 점수를 다시 매긴다.
-> 이러한 과정은 복잡하고 느리다.
YOLO는 하나의 convolutional network가 bounding box 만드는 것과 box를 분류하는 것을 한번에 진행
-> detection이 빠르지만 정확도는 조금 낮다.
- yolo 장점 3가지
1. 처리 속도가 빨라서 real time model로 적합
2. image 전체를 보는 것
3. 일반화된 model
- Unified design
input image를 S x S grid로 나누고 각 grid 안에 object의 중심이 grid 안에 있으면 object를 detection함
각 grid cell은 B개의 bounding box와 confidence score를 도출
confidence: box 안에 object가 있는지와 얼마나 정확하다고 생각하는지 나타내는 지표
confidence score = Pr(Obj) x IOU
Pr(Obj): object 있으면 1, 없으면 0
bounding box = bounding box의 중심 값(x, y), bounding box의 너비, 높이 값(w, h)
object가 없는 grid cell은 confidence score가 0이 되고 object를 포함하는 grid에 영향을 줌
-> bounding box coordinate prediction loss를 늘리고, object가 없는 box의 confidence prediction loss를 줄임
각 grid cell은 C개 class에 대한 class 조건부확률을 계산
여러 bounding box를 NMS로 최종 detection 결정
- 문제점
1. Strong Spatial Constraints
-> 하나의 cell에 2개의 object만 detection하고 class를 하나만 가질 수 있어서 모든 object를 탐지하지 못함
2. data에 없는 새로운 형태의 bounding box의 경우 detection 성능이 저하된다.
3. 큰 box와 작은 box의 error가 동일하게 반영됨
-> 작은 bounding box는 작은 이동에도 IOU에 영향을 많이 줘서 error에 더 민감해야함
출처:
[논문 리뷰] You Only Look Once: Unified, Real-Time Object Detection
첫째날에 읽어보았지만 머리가 너무 아파서 둘째날인 2023.01.13(금)에 논문 리뷰를 적어보려고 한다. 최대한 내가 이해할 수 있는 수준에서 요약을 해보겠다. 오늘 해당 논문을 scholar.google.com에 검
velog.io
YOLO 논문 리뷰: You Only Look Once: Unified, Real-Time Object Detection
안녕하세요 공돌준입니다. 오늘은 컴공이면 모두가 한 번쯤 들어봤을 YOLO 논문을 리뷰 해보도록 하겠습니다.
medium.com
https://velog.io/@hewas1230/YOLOv1
[YOLO]You Only Look Once : Unified, Real-Time Object Detection
발표마다 세상을 놀라게 하는 YOLO 시리즈의 최초 모델인 YOLO v1 논문 완전 리뷰!
velog.io
3. SSD
2 stage detector:
region proposal을 추출하는 시간이 많이 걸려서 detection 속도가 느리다는 단점
YOLOv1:
원본 이미지 전체를 통합된 네트워크로 처리하기 때문에 detection 속도가 매우 빠르지만 grid cell별로 2개의 bounding box만 선택해서 적은 view 제공으로 정확도 떨어짐
SSD:
다양한 view를 활용하면서 통합된 network 구조를 가진 1 stage detector로서 높은 정확도와 빠른 속도
- Multiscale feature maps
전체 network: base network(VGG16) + 보조 network
보조 network는 conv layer로 구성되어 있고 base network의 끝쪽에 있는 fc layer를 conv layer로 바꿔서 보조 network와 연결함
-> fc layer가 대체되면서 detection 속도가 향상됨
YOLOv1: 단일 scale의 feature map 사용
-> 다양한 크기의 객체를 포착하는 것이 어려움
-> SSD network 중간에 있는 conv layer의 feature map을 추출해서 detection 시 사용하는 방법 제시
conv layer에서 추출한 feature map으로 다양한 크기의 object detection 가능
- Default boxes
feature map의 각 cell마다 서로 다른 scale과 aspect ratio를 가지는 Default box를 생성
6개의 scale의 feature map의 각 cell마다 default box 생성
feature map의 scale이 작아질수록 default box의 scale은 커져서 더 큰 object를 탐지할 수 있다.
- Matching strategy
학습할 때, default box의 학습 대상을 지정하기 위해 default box와 ground truth box를 매칭해야함
-> ground truth box와 가장 큰 jaccard overlap(IoU)를 가지는 box와 jaccard overlap이 0.5이상인 box는 positive, 미만은 negative로 label
background에 해당하는 box의 수가 훨씬 많아서 class imbalance 문제 발생
-> 높은 confidence loss를 가지는 sample을 추가하는 hard negative mining을 수행
positive/negative sample의 비율 = 1:3
- loss function
confidence loss와 localization loss의 합으로 구성
출처: https://herbwood.tistory.com/15
SSD 논문(SSD: Single Shot MultiBox Detector) 리뷰
이번 포스팅에서는 SSD 논문(SSD: Single Shot MultiBox Detector)을 읽고 정리해봤습니다. RCNN 계열의 2-stage detector는 region proposals와 같은 다양한 view를 모델에 제공하여 높은 정확도를 보여주고 있습니다.
herbwood.tistory.com
4. YOLOv2
Better : 정확도를 올리기 위한 방법
Faster : detection 속도를 향상시키기 위한 방법
Stronger : 더 많은 범위의 class를 예측하기 위한 방법
- Better
- Batch Normalization
-> 모든 conv layer 뒤에 추가
- high resolution classifier
yolov1: darknet을 224x224로 pretrain 시키고 detection task 시 448x448으로 input
yolov2: darknet을 448x448로 pretrain해서 해상도 적응시간 제공
- Convolutional with Anchor boxes
yolov1: 각 grid cell의 bounding box의 좌표가 0~1 사이 값으로 랜덤 설정 후 학습으로 최적값 도출
yolov2: anchor box를 사용, output의 해상도를 위해 pooling layer 제거
input size를 448x448에서 416x416으로 변환
output feature map을 홀수로 해서 feature map에 하나의 중심 cell을 만듦
-> 중심 cell이 있으면 object의 크기가 크면 잘 포착
- Dimension Clusters
anchor box의 크기와 aspect ratio를 사전에 미리 정의했지만 network가 더 좋은 조건으로 학습을 시작하기 위해 더 나음 사전 조건을 선택한다면 성능이 향상될 것 같다고 생각함
-> k-means clustering을 통해 최적의 사전 조건(prior)를 탐색하는 방법 제시
유클리안 거리로 centroid와 sample 간의 거리를 계산
-> 큰 bounding box는 작은 box에 비해 큰 error를 발생시킴
-> box 크기와 무관하게 좋은 IoU값을 가지는 새로운 distance metric 사용
box와 centroid의 IoU값이 클수록 겹치는 영역이 커서 거리가 가깝다
- Direct location prediction
yolo와 anchor box를 같이 사용했을 때 제한된 범위가 없어서 anchor box가 image 내의 임의의 지점에 위치할 수 있음
-> 최적화된 값을 찾기까지 오래걸려서 model이 불안정함
-> yolo 방식을 사용해서 grid cell에 상대적인 위치 좌표를 예측하는 방법 선택
bounding box regression을 통해 얻은 값에 logistic regression을 적용해서 0~1 사이의 값을 가지도록 조정
- fine-grained features
feature map의 크기가 작으면 큰 object를 예측하기는 쉽지만 작은 object는 예측하기 어려움
마지막 pooling하기 전에 feature map을 추출하고 channel은 유지하고 concat
-> 작은 object에 대한 정보를 함축
- Multi-scale-Training
robust하게 만들기 위해 다양한 input image 사용
-> input image의 크기가 작으면 높은 FPS, 크면 높은 mAP
- Faster
backbone network: Darknet-19
YOLOv1: network 마지막에 fc layer 사용
-> parameter 수 증가, detection 속도 느려짐
YOLOv2: 마지막 layer에 global average pooling을 사용
-> parameter 수 감소, detection 속도 빨라짐
* Training for classification
imagenet 데이터셋으로 학습(1000 class)
* Training for detection
마지막 conv layer를 제거하고 3x3 conv layer로 대체하고 1x1 conv layer 추가
각 grid cell마다 5개의 bounding box가 5개의 값(confidence score, x, y, w, h)을 학습
- Stronger
classification dataset: 세부적인 object 정보
ex) 요크셔 테리어, 불독 등
detection dataset: 일반적이고 범용적인 object 정보
ex) 개
- Hierarchical classification
classification과 detection dataset을 섞어서 학습하면 배타적인 class로 분류할 수 있음
-> imagenet label로부터 Hierarchical tree인 WordTree를 구성하는 방법을 제안
WordTree에서 각 노드는 범주를 의미하고 하위 범주는 자식 노드가 되는 구조
physical object(루트 노드) -> 하위 범주(자식 노드) -> 자식 노드의 하위 범주(자식 노드)
ex) 요크셔 테리어
물리적 object -> 동물 -> 포유류 -> 사냥개 -> 테리어
- Dataset combination with WordTree
ImageNet data + COCO data = WordTree
- Joint classification and detection
Image Net : COCO = 4 : 1
grid cell별로 3개의 anchor box를 사용해서 학습
classification loss = "물리적 객체 - 동물 - 포유류 - 개"에 대한 조건부 확률을 사용한 loss(joint training)
detection loss: 평소와 같은 loss
출처: https://herbwood.tistory.com/17
YOLO v2 논문(YOLO9000:Better, Faster, Stronger) 리뷰
이번 포스팅에서는 YOLO v2 논문(YOLO9000:Better, Faster, Stronger)을 읽고 리뷰해도록 하겠습니다. 입력 이미지의 크기가 300x300인 SSD300 모델은 detection 속도가 빠르지만 정확도가 낮으며, SSD512 모델은 정
herbwood.tistory.com
https://hellopotatoworld.tistory.com/3
[포테이토 논문 리뷰] YOLO9000: Better, Faster, Stronger(&Yolov2)
⋆ 。 ˚ ☁︎ ˚ 。 ⋆ 。 ˚ ☽ ˚ 。 ⋆ [Object Detection paper review] YOLO9000 이 논문에서는 YOLO의 mAP와 FPS를 개선시킨 YOLOv2와, object categories를 약 9000종류 이상으로 넓게 확장시킨 YOLO9000 모델에 대해 설
hellopotatoworld.tistory.com
5. RetinaNet
- 1 stage detector가 정확도가 낮은 이유
class imbalance 문제가 해결되지 않았기 때문
-> Cross Entropy Loss를 reshape해서 Focal loss 제시
- preview
Easy Negative Example(background)보다 Hard Positive Example(foreground)에 더 많은 가중치를 적용해서 학습
가중치(factor 감마)가 커질수록 object와 background 간 loss 차이가 분명해짐
Focal loss의 효과를 입증하기 위해 dense detector 만듦
-> RetinaNet
- 2 stage 특징
region proposal driven 매커니즘을 가짐(roi를 추출하는 first stage 존재)
first stage: 후보 object location의 set(region proposal)을 생성
ex) region proposal에 사용되는 알고리즘: selective search, region proposal network 등
second stage: object location의 class(foreground or background)를 CNN으로 예측
2 stage detector는 first stage에서 object가 존재할 확률이 높은 region proposal을 생성하고 second stage에서 foreground와 background 비율을 1:3 또는 OHEM을 사용해서 object와 background 비율을 맞춤
-> 1 stage보다 class imbalance 문제가 덜 민감함
- 1 stage의 성능을 올리는 방법
1 stage detector: region proposal 과정을 거치지 않고, feature map에서 localization 진행
anchor box: 사전에 미리 정의한 box
anchor box에 scale, aspect ratio를 적용시켜 사용
Feature map의 grid마다 anchor box를 적용해서 one stage보다 후보 object location의 개수가 훨씬 많음
feature map을 receptive field로 부르기도 함
feature map에서 object가 background보다 훨씬 적음
- Retinanet
- Focal loss
Focal loss는 기존의 Cross Entropy Loss에 factor 적용
-> 감마가 0보다 커질수록 잘 detection된 object(IoU가 높음)와 아닌 object(IoU가 낮음) 간의 loss 차이를 분명하게 함
factor는 학습 시 background보다 object detection에 집중할 수 있도록 도와줌
easy example(작은 error 값)의 loss를 down weight함으로써 inlier의 민감도를 줄여서 class imbalance 문제 해결
-> Hard example 학습에 초점
- Retinanet
anchor box를 사용하는 FPN, Focal loss 적용하는 model
출처: https://ropiens.tistory.com/83
6. YOLOv3
- Bounding box prediction
YOLOv2: bounding box 예측할 때, t_x, t_y, t_w. t_h를 구한 후 b_x, b_y, b_w. b_h로 변형한 후 L2 loss를 통해 학습
YOLOv3: ground truth 좌표를 거꾸로 적용해서 t_*로 변형한 후 t_x와 L1 loss를 통해 학습
예측한 bounding box마다 objectness score를 logistic 함수를 적용해서 구합니다.
anchor box와 ground truth box의 IoU 값이 가장 높은 box만 매칭시키고 ground truth box에 할당되지 못한 bounding box는 bounding box regression loss는 안쓰고 objectness score에 대한 loss만 사용한다.
- Class prediction
하나의 box에 복수의 object가 있으면 softmax로 class 예측할 시 적절하게 object를 포착하지 못하는 문제 있음
-> 각각의 bounding box에 multi label classification을 수행하고 softmax 대신 binary cross-entropy 사용
- Prediction across scales
서로 다른 3개의 scale 사용해서 결과 예측
-> 더 높은 level의 feature map에서 fine-grained 정보, 더 낮은 feature map으로부터 semantic 정보를 얻음
bounding box가 YOLOv2보다 100배 이상 더 많다.
- Feature extractor
shortcut connection이 추가된 Darknet-53을 backbone network로 사용한다.
- YOLOv3 architecture
출처: https://herbwood.tistory.com/21
YOLO v3 논문(YOLOv3: An Incremental Improvement) 리뷰
이번 포스팅에서는 YOLO v3논문(YOLOv3: An Incremental Improvement)을 읽고 리뷰해보도록 하겠습니다. YOLO v3는 당시 유행하던 새로운 기법들을 도입하여 성능을 향상시켰습니다. YOLO v2 논문과 비슷하게 새
herbwood.tistory.com
https://velog.io/@imfromk/CV-YOLOv3-An-Incremental-Improvement-review
[CV] YOLOv3: An Incremental Improvement review
🎈 본 리뷰는 YOLOv3 및 리뷰를 참고해 작성했습니다. Key Words 🎈 Multilabel Classification(do not use softmax) 🎈 Darknet-53(skip connections and upsampling) 🎈 Det
velog.io
7. RefineDet
- 2 stage detector의 특징
sampling heuristic을 사용해서 class imbalance 문제가 1 stage detector에 비해 상대적으로 덜 심각
예측된 box의 parameter를 최적화하기 위해 2 stage cascade를 사용
object를 표현하기 위해 2 stage feature 사용
-> 2 stage detector의 장점을 살리는 1 stage detector인 RefineDet을 제시
- RefineDet
서로 연결되어 있는 ARM, ODM 모듈로 구성
- ARM
생성된 anchor box 중에서 적절한 sample을 골라내고 조정하는 역할
anchor의 위치와 크기를 대략적으로 조정해서 연결되어 있는 후속 module에 초기화가 잘 된 anchor를 제공(RPN같은 기능)
backbone network의 지정한 layer에서 feature map을 추출하고 해당 layer에 대한 conv 연산을 추가한 구조
-> refine된 anchor box의 위치 정보를 담고 있는 feature map과 anchor box의 foreground/background label에 대한 정보를 담고 있는 feature map을 얻을 수 있음
- ODM
ARM으로부터 refine된 anchor에 대한 정보를 받아서 object에 대한 정확한 위치와 class label을 예측하는 역할
ARM의 feature map을 ODM에 사용하기 위해 변환해주는 블록인 TCB를 사용
TCB에서 출력된 feature map에 conv 연산을 적용해서 object의 세밀한 위치와 class label에 대한 정보를 담고 있는 feature map을 출력
- Two-step cascaded regression
1 stage detector는 작은 object를 포착하지 못하는 문제 발생
-> two step cascaded regression 방법 사용
ARM이 anchor의 크기와 위치를 조정하는 과정을 거친 후, ODM에서 세밀한 bounding box regression을 수행
- TCB
ARM과 ODM을 연결시키기 위해 ARM의 서로 다른 layer로부터 나온 feature를 ODM이 요구하는 형태로 변환하는 역할
anchor와 관련된 feature map만 TCB 사용(positive/negative label에 대한 정보를 함축한 feature map은 X)
feature map에 deconvolution 연산을 적용해서 이전 feature map과 element wise하게 더해주고 합쳐진 feature map을 conv layer에 입력해서 ODM에 전달(FPN같은 기능)
- Negative Anchor Filtering
학습 시, refine된 anchor box의 negative confidence가 사전에 지정한 threshold보다 낮으면 ODM에 해당 anchor box를 전달하지 않는 방법
-> refine된 hard negative sample과 refine된 positive anchor box만 ODM에 전달
출처: https://herbwood.tistory.com/22
RefineDet 논문(Single-Shot Refinement Neural Network for Object Detection) 리뷰
이번 포스팅에서는 RefineDet(Single-Shot Refinement Neural Network for Object Detection) 논문을 읽고 리뷰해도록 하겠습니다. 논문에서는 two-stage detector의 3가지 특징을 설명합니다. 첫 번째로, two-stage 구조와
herbwood.tistory.com
8.M2Det
- FPN의 두가지 한계
1. FPN은 classification task를 위해 설계된 backbone network로 feature map을 추출하는데 구성된 feature pyramid는 object detection task를 수행하기 위해 representative하지 않다
2. feature pyramid의 각 level의 feature map은 주로 backbone network의 single level layer로 구성되었고, object의 외형에 따른 인식 성능 차이가 있다.
일반적으로 network의 더 깊은 layer의 high level feature는 classifcation task에 적합하고, 더 얕은 layer의 low level feature는 localization task에 적합하다.
전자는 복잡한 외형의 특징을 포착하는데 유리하고 후자는 단순한 외형을 파악하는데 유리하다.
object에 대한 외형의 복잡도는 다르기 때문에 single level feature map을 사용하면 object 모두 포착하지 못할 수 있다.
-> multi-scale, multi-level feature map을 사용하는 one stage detector인 M2Det을 제시
서로 다른 크기와 외형의 복잡도를 가진 object를 포착하기 위해 보다 효율적인 feature pyramid를 설계하는 network인 MLFPN을 제시
- MLFPN의 3가지 모듈
1. FFM(Feature Fusion Module)
backbone network로부터 얕은 feature와 깊은 feature를 융합해서 base feature를 생성
2. TUM(Thinned U-shape Module)
서로 다른 크기를 가진 feature map을 생성하고, FFMv2는 base feature와 이전 TUM의 가장 큰 scale의 feature map을 융합하고 다음 TUM에 입력
3. SFAM(Scale-wise Feature Aggregration Module)
multi-level, multi-scale feature를 scale-wise feature concatenation과 channel-wise attention 매커니즘을 통해 집계
최종적으로 MLFPN과 SSD를 결합해서 end to end one stage detector인 M2Det 만듦
- FFM
network에 있는 서로 다른 feature를 융합하고, 최종 multi-level feature pyramid를 설계하는데 중요한 역할을 합니다.
FFMv1(a): backbone network로부터 두 개의 서로 다른 scale을 가지는 feature map을 추출한 후 융합해서 base feature map을 생성
각각의 feature map에 conv 연산을 적용하고, scale이 작은 feature map을 upsample한 후, concat해서 하나의 feature map을 얻음
-> high level과 low level feature를 concat해서 풍부한 semantic 정보를 제공
FFMv2(b): FFMv1이 생성한 base feature에 대해서 conv 연산을 적용한 후 이전 TUM의 가장 큰 scale의 feature map을 입력 받아 concat한 후 다음 TUM에 전달
- TUM
입력받은 feature map에 대하여 multi-level feature map을 생성하는 역할을 수행하고, Encoder-Decoder 구조로 U자형 구조를 가집니다.
Encoder network: 입력받은 feature map에 대하여 3x3 conv(stride=2) 연산을 적용해서 scale이 다른 다수의 feature map을 출력
Decoder network: Encoder network에서 출력한 다수의 feature map에 대해 더 높은 level에 대해 upsample한 후 바로 아래 level의 feature map과 element-wise로 더해준 후 1x1 conv 연산을 수행합니다.
최종적으로 scale이 다른 feature map을 출력합니다.
MLFPN 내부에서 TUM은 FFM과 서로 교차하는 구조
* TUM의 과정
1. FFMv1에서 얻은 base feature map을 첫 번째 TUM에 입력해서 feature map을 얻음
2. TUM의 출력 결과 중 scale이 가장 큰 feature map과 base feature map을 FFMv2를 통해 융합하고 두 번째 TUM에 입력하는 과정 반복
각각의 TUM의 decode network의 출력 결과는 입력으로 주어진 feature map의 level에 대한 multi-scale feature map에 해당
축적된 모든 TUM의 feature map은 multi-level, multi-scale feature를 형성
초반 TUM: shallow-level feature
중간 TUM: medium-level feature
후반 TUM: deep level feature
- SFAM
TUM에 의해 생성된 multi-level, multi-scale feature를 scale-wise feature concatenation과 channel-wise attention 매커니즘을 통해 집계해서 multi-level feature pyramid로 구성하는 역할
* Scale-wise feature concatenation
각각의 TUM으로 생성된 multi-level feature map을 같은 scale별로 concat하는 작업 수행
* Channel-wise attention
feature가 가장 많은 효율을 얻을 수 있는 channel에 집중하도록 설계하는 작업을 수행
Scale-wise feature concatenation 과정에서 출력한 feature map을 SE block에 입력합니다.
* SE block
CNN에 부착해서 사용할 수 있는 block
연산량을 크게 늘리지 않으면서 정확도를 향상시킨다.
-- SE block의 구성
1. Squeeze step: 입력인 HxWxC 크기의 feature map에 대해서 GAP를 수행
-> 각 channel을 하나의 숫자로 표현할 수 있음
2. Excitation step: 앞에서 얻은 1x1xC 크기의 feature map에 2개의 fc layer를 적용해서 channel별 상대적 중요도를 구함
두 번째 fc layer의 activation function을 sigmoid로 지정
-> 최종 output은 0~1 사이 값을 가져 channel별 중요도를 파악할 수 있음
3. Recalibration step: 앞에서 구한 channel별 중요도와 원본 feature map을 channel별로 곱해서 channel별 중요도를 재보정
channel-wise attention 과정에서는 TUM이 출력한 multi-level, multi-scale feature map을 SE block에 입력해서 feature map의 channel별 중요도를 재보정함
출처: https://herbwood.tistory.com/23
M2Det 논문(M2Det: A Single-Shot Object Detector based on Multi-Level Feature PyramidNetwork) 리뷰
이번 포스팅에서는 M2Det 논문(M2Det: A Single-Shot Object Detector based on Multi-Level Feature PyramidNetwork)을 읽고 리뷰해보도록 하겠습니다. 본 논문에서는 multi-scale feature map 생성을 위해 주로 사용되던 Feature
herbwood.tistory.com
'model 정리' 카테고리의 다른 글
CNN 주요 model 정리 (0) | 2024.05.07 |
---|