model 정리

1 stage detector 주요 model 정리

loosiu 2024. 6. 13. 15:29

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 layerconv 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 layerconv layer로 대체함으로써 sliding window와 같은 효과를 효율적으로 구현할 수 있음

-> conv layer에서 conv filter를 적용하는 과정에서 겹치는 영역끼리 연산을 공유하기 때문

 

- architecture

 

  • overfeat model의 detection 순서

1. 6-scale 이미지를 입력받습니다.

2. Classification task 목적으로 학습된 Feature extractor에 이미지를 입력하여 feature map을 얻습니다.

3. Feature mapClassifierBounding box regressor에 입력하여 spatial map을 출력합니다.

4. 예측 bounding boxGreedy 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

YOLOobject detection에 쓰이고 기존 model과 다르게 regression problem으로 한번에 end to enddetection을 함

 

R-CNN2 stageregion proposal methodbounding box를 만들고 box를 분류한다.

그리고 bounding box를 정제하고 중복된 영역을 삭제하고 box 점수를 다시 매긴다.

-> 이러한 과정은 복잡하고 느리다.

 

YOLO는 하나의 convolutional networkbounding box 만드는 것과 box를 분류하는 것을 한번에 진행

-> detection이 빠르지만 정확도는 조금 낮다.

 

  • yolo 장점 3가지

1. 처리 속도가 빨라서 real time model로 적합

2. image 전체를 보는 것

3. 일반화된 model

 

- Unified design

 

input imageS x S grid로 나누고 각 grid 안에 object의 중심이 grid 안에 있으면 objectdetection

 

 

grid cellB개의 bounding boxconfidence 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 cellconfidence score0이 되고 object를 포함하는 grid에 영향을 줌

-> bounding box coordinate prediction loss를 늘리고, object가 없는 boxconfidence prediction loss를 줄임

 

grid cellCclass에 대한 class 조건부확률을 계산

 

 

여러 bounding boxNMS로 최종 detection 결정

 

 

  • 문제점

 

1. Strong Spatial Constraints

-> 하나의 cell2개의 objectdetection하고 class를 하나만 가질 수 있어서 모든 object를 탐지하지 못함

 

2. data에 없는 새로운 형태의 bounding box의 경우 detection 성능이 저하된다.

 

3. box와 작은 boxerror가 동일하게 반영됨

-> 작은 bounding box는 작은 이동에도 IOU에 영향을 많이 줘서 error에 더 민감해야함

 

출처:

https://velog.io/@gr8alex/%EB%85%BC%EB%AC%B8-%EB%A6%AC%EB%B7%B0-You-Only-Look-OnceUnified-Real-Time-Object-Detection

 

[논문 리뷰] You Only Look Once: Unified, Real-Time Object Detection

첫째날에 읽어보았지만 머리가 너무 아파서 둘째날인 2023.01.13(금)에 논문 리뷰를 적어보려고 한다. 최대한 내가 이해할 수 있는 수준에서 요약을 해보겠다. 오늘 해당 논문을 scholar.google.com에 검

velog.io

 

https://medium.com/@parkie0517/yolo-%EB%85%BC%EB%AC%B8-%EB%A6%AC%EB%B7%B0-you-only-look-once-uni%EF%AC%81ed-real-time-object-detection-f146af809c57

 

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

 

보조 networkconv layer로 구성되어 있고 base network의 끝쪽에 있는 fc layerconv layer로 바꿔서 보조 network와 연결함

-> fc layer가 대체되면서 detection 속도가 향상됨

 

YOLOv1: 단일 scalefeature map 사용

-> 다양한 크기의 객체를 포착하는 것이 어려움

-> SSD network 중간에 있는 conv layerfeature map을 추출해서 detection 시 사용하는 방법 제시

 

 

conv layer에서 추출한 feature map으로 다양한 크기의 object detection 가능

 

- Default boxes

feature map의 각 cell마다 서로 다른 scaleaspect ratio를 가지는 Default box를 생성

6개의 scalefeature map의 각 cell마다 default box 생성

 

 

feature mapscale이 작아질수록 default boxscale은 커져서 더 큰 object를 탐지할 수 있다.

 

- Matching strategy

학습할 때, default box의 학습 대상을 지정하기 위해 default boxground truth box를 매칭해야함

-> ground truth box와 가장 큰 jaccard overlap(IoU)를 가지는 boxjaccard overlap0.5이상인 boxpositive, 미만은 negativelabel

 

background에 해당하는 box의 수가 훨씬 많아서 class imbalance 문제 발생

-> 높은 confidence loss를 가지는 sample을 추가하는 hard negative mining을 수행

positive/negative sample의 비율 = 1:3

 

- loss function

confidence losslocalization 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: darknet224x224pretrain 시키고 detection task 448x448으로 input

yolov2: darknet448x448pretrain해서 해상도 적응시간 제공

 

  • Convolutional with Anchor boxes

yolov1: grid cellbounding box의 좌표가 0~1 사이 값으로 랜덤 설정 후 학습으로 최적값 도출

yolov2: anchor box를 사용, output의 해상도를 위해 pooling layer 제거

input size448x448에서 416x416으로 변환

 

 

output feature map을 홀수로 해서 feature map에 하나의 중심 cell을 만듦

-> 중심 cell이 있으면 object의 크기가 크면 잘 포착

 

  • Dimension Clusters

anchor box의 크기와 aspect ratio를 사전에 미리 정의했지만 network가 더 좋은 조건으로 학습을 시작하기 위해 더 나음 사전 조건을 선택한다면 성능이 향상될 것 같다고 생각함

-> k-means clustering을 통해 최적의 사전 조건(prior)를 탐색하는 방법 제시

 

유클리안 거리로 centroidsample 간의 거리를 계산

-> bounding box는 작은 box에 비해 큰 error를 발생시킴

-> box 크기와 무관하게 좋은 IoU값을 가지는 새로운 distance metric 사용

 

 

boxcentroidIoU값이 클수록 겹치는 영역이 커서 거리가 가깝다

 

  • Direct location prediction

yoloanchor box를 같이 사용했을 때 제한된 범위가 없어서 anchor boximage 내의 임의의 지점에 위치할 수 있음

-> 최적화된 값을 찾기까지 오래걸려서 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: 마지막 layerglobal 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 box5개의 값(confidence score, x, y, w, h)을 학습

 

- Stronger

classification dataset: 세부적인 object 정보

ex) 요크셔 테리어, 불독 등

 

detection dataset: 일반적이고 범용적인 object 정보

ex)

 

  • Hierarchical classification

 

classificationdetection dataset을 섞어서 학습하면 배타적인 class로 분류할 수 있음

-> imagenet label로부터 Hierarchical treeWordTree를 구성하는 방법을 제안

 

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 Lossreshape해서 Focal loss 제시

 

- preview

Easy Negative Example(background)보다 Hard Positive Example(foreground)에 더 많은 가중치를 적용해서 학습

 

가중치(factor 감마)가 커질수록 objectbackground loss 차이가 분명해짐

 

Focal loss의 효과를 입증하기 위해 dense detector 만듦

-> RetinaNet

 

  • 2 stage 특징

region proposal driven 매커니즘을 가짐(roi를 추출하는 first stage 존재)

 

first stage: 후보 object locationset(region proposal)을 생성

ex) region proposal에 사용되는 알고리즘: selective search, region proposal network

 

second stage: object locationclass(foreground or background)CNN으로 예측

 

2 stage detectorfirst stage에서 object가 존재할 확률이 높은 region proposal을 생성하고 second stage에서 foregroundbackground 비율을 1:3 또는 OHEM을 사용해서 objectbackground 비율을 맞춤

-> 1 stage보다 class imbalance 문제가 덜 민감함

 

  • 1 stage의 성능을 올리는 방법

1 stage detector: region proposal 과정을 거치지 않고, feature map에서 localization 진행

 

 

anchor box: 사전에 미리 정의한 box

anchor boxscale, aspect ratio를 적용시켜 사용

 

Feature mapgrid마다 anchor box를 적용해서 one stage보다 후보 object location의 개수가 훨씬 많음

 

 

feature mapreceptive field로 부르기도 함

 

 

feature map에서 objectbackground보다 훨씬 적음

 

- Retinanet

  • Focal loss

 

 

Focal loss는 기존의 Cross Entropy Lossfactor 적용

-> 감마가 0보다 커질수록 잘 detectionobject(IoU가 높음)와 아닌 object(IoU가 낮음) 간의 loss 차이를 분명하게 함

 

factor는 학습 시 background보다 object detection에 집중할 수 있도록 도와줌

 

easy example(작은 error )lossdown 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_xL1 loss를 통해 학습

 

예측한 bounding box마다 objectness scorelogistic 함수를 적용해서 구합니다.

anchor boxground truth boxIoU 값이 가장 높은 box만 매칭시키고 ground truth box에 할당되지 못한 bounding boxbounding box regression loss는 안쓰고 objectness score에 대한 loss만 사용한다.

 

- Class prediction

 

하나의 box에 복수의 object가 있으면 softmaxclass 예측할 시 적절하게 object를 포착하지 못하는 문제 있음

-> 각각의 bounding boxmulti label classification을 수행하고 softmax 대신 binary cross-entropy 사용

 

- Prediction across scales

 

 

서로 다른 3개의 scale 사용해서 결과 예측

-> 더 높은 levelfeature map에서 fine-grained 정보, 더 낮은 feature map으로부터 semantic 정보를 얻음

 

bounding boxYOLOv2보다 100배 이상 더 많다.

 

- Feature extractor

shortcut connection이 추가된 Darknet-53backbone 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에 비해 상대적으로 덜 심각

예측된 boxparameter를 최적화하기 위해 2 stage cascade를 사용

object를 표현하기 위해 2 stage feature 사용

 

-> 2 stage detector의 장점을 살리는 1 stage detectorRefineDet을 제시

 

- RefineDet

서로 연결되어 있는 ARM, ODM 모듈로 구성

 

 

  • ARM

생성된 anchor box 중에서 적절한 sample을 골라내고 조정하는 역할

anchor의 위치와 크기를 대략적으로 조정해서 연결되어 있는 후속 module에 초기화가 잘 된 anchor를 제공(RPN같은 기능)

 

backbone network의 지정한 layer에서 feature map을 추출하고 해당 layer에 대한 conv 연산을 추가한 구조

-> refineanchor box의 위치 정보를 담고 있는 feature mapanchor boxforeground/background label에 대한 정보를 담고 있는 feature map을 얻을 수 있음

 

  • ODM

ARM으로부터 refineanchor에 대한 정보를 받아서 object에 대한 정확한 위치와 class label을 예측하는 역할

 

ARMfeature mapODM에 사용하기 위해 변환해주는 블록인 TCB를 사용

 

TCB에서 출력된 feature mapconv 연산을 적용해서 object의 세밀한 위치와 class label에 대한 정보를 담고 있는 feature map을 출력

 

  • Two-step cascaded regression

1 stage detector는 작은 object를 포착하지 못하는 문제 발생

-> two step cascaded regression 방법 사용

 

ARManchor의 크기와 위치를 조정하는 과정을 거친 후, ODM에서 세밀한 bounding box regression을 수행

 

  • TCB

 

ARMODM을 연결시키기 위해 ARM의 서로 다른 layer로부터 나온 featureODM이 요구하는 형태로 변환하는 역할

 

anchor와 관련된 feature mapTCB 사용(positive/negative label에 대한 정보를 함축한 feature mapX)

 

feature mapdeconvolution 연산을 적용해서 이전 feature mapelement wise하게 더해주고 합쳐진 feature mapconv layer에 입력해서 ODM에 전달(FPN같은 기능)

 

  • Negative Anchor Filtering

 

학습 시, refineanchor boxnegative confidence가 사전에 지정한 threshold보다 낮으면 ODM에 해당 anchor box를 전달하지 않는 방법

-> refinehard negative samplerefinepositive anchor boxODM에 전달

 

출처: 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. FPNclassification task를 위해 설계된 backbone networkfeature map을 추출하는데 구성된 feature pyramidobject detection task를 수행하기 위해 representative하지 않다

2. feature pyramid의 각 levelfeature map은 주로 backbone networksingle level layer로 구성되었고, object의 외형에 따른 인식 성능 차이가 있다.

 

일반적으로 network의 더 깊은 layerhigh level featureclassifcation task에 적합하고, 더 얕은 layerlow level featurelocalization task에 적합하다.

전자는 복잡한 외형의 특징을 포착하는데 유리하고 후자는 단순한 외형을 파악하는데 유리하다.

object에 대한 외형의 복잡도는 다르기 때문에 single level feature map을 사용하면 object 모두 포착하지 못할 수 있다.

-> multi-scale, multi-level feature map을 사용하는 one stage detectorM2Det을 제시

 

 

서로 다른 크기와 외형의 복잡도를 가진 object를 포착하기 위해 보다 효율적인 feature pyramid를 설계하는 networkMLFPN을 제시

 

- MLFPN3가지 모듈

1. FFM(Feature Fusion Module)

backbone network로부터 얕은 feature와 깊은 feature를 융합해서 base feature를 생성

 

2. TUM(Thinned U-shape Module)

서로 다른 크기를 가진 feature map을 생성하고, FFMv2base feature와 이전 TUM의 가장 큰 scalefeature map을 융합하고 다음 TUM에 입력

 

3. SFAM(Scale-wise Feature Aggregration Module)

multi-level, multi-scale featurescale-wise feature concatenationchannel-wise attention 매커니즘을 통해 집계

 

최종적으로 MLFPNSSD를 결합해서 end to end one stage detectorM2Det 만듦

 

  • FFM

 

network에 있는 서로 다른 feature를 융합하고, 최종 multi-level feature pyramid를 설계하는데 중요한 역할을 합니다.

 

FFMv1(a): backbone network로부터 두 개의 서로 다른 scale을 가지는 feature map을 추출한 후 융합해서 base feature map을 생성

 

각각의 feature mapconv 연산을 적용하고, scale이 작은 feature mapupsample한 후, concat해서 하나의 feature map을 얻음

-> high levellow level featureconcat해서 풍부한 semantic 정보를 제공

 

FFMv2(b): FFMv1이 생성한 base feature에 대해서 conv 연산을 적용한 후 이전 TUM의 가장 큰 scalefeature 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한 후 바로 아래 levelfeature mapelement-wise로 더해준 후 1x1 conv 연산을 수행합니다.

최종적으로 scale이 다른 feature map을 출력합니다.

 

 

MLFPN 내부에서 TUMFFM과 서로 교차하는 구조

 

* TUM의 과정

1. FFMv1에서 얻은 base feature map을 첫 번째 TUM에 입력해서 feature map을 얻음

2. TUM의 출력 결과 중 scale이 가장 큰 feature mapbase feature mapFFMv2를 통해 융합하고 두 번째 TUM에 입력하는 과정 반복

 

각각의 TUMdecode network의 출력 결과는 입력으로 주어진 feature maplevel에 대한 multi-scale feature map에 해당

 

축적된 모든 TUMfeature mapmulti-level, multi-scale feature를 형성

 

초반 TUM: shallow-level feature

중간 TUM: medium-level feature

후반 TUM: deep level feature

 

  • SFAM

 

TUM에 의해 생성된 multi-level, multi-scale featurescale-wise feature concatenationchannel-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 mapSE block에 입력합니다.

 

* SE block

 

CNN에 부착해서 사용할 수 있는 block

연산량을 크게 늘리지 않으면서 정확도를 향상시킨다.

 

-- SE block의 구성

1. Squeeze step: 입력인 HxWxC 크기의 feature map에 대해서 GAP를 수행

-> channel을 하나의 숫자로 표현할 수 있음

2. Excitation step: 앞에서 얻은 1x1xC 크기의 feature map2개의 fc layer를 적용해서 channel별 상대적 중요도를 구함

두 번째 fc layeractivation functionsigmoid로 지정

-> 최종 output0~1 사이 값을 가져 channel별 중요도를 파악할 수 있음

3. Recalibration step: 앞에서 구한 channel별 중요도와 원본 feature mapchannel별로 곱해서 channel별 중요도를 재보정

 

channel-wise attention 과정에서는 TUM이 출력한 multi-level, multi-scale feature mapSE block에 입력해서 feature mapchannel별 중요도를 재보정함

 

출처: 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