[Object Detection] 2 stage detectors

HipJaengYiCat·2023년 5월 3일
0

DeepLearning

목록 보기
14/16

Object Detection 모델들은 크게 2 Stage Detector와 1 Stage Detector로 구분이 가능합니다. 저희는 그 중 먼저 2 Stage Detector에 대해 학습해봅시다. 이번 강의에서는 R-CNN부터 SPPNet, Fast R-CNN, 그리고 최신 2 Stage Detector들의 기초가 되는 Faster R-CNN까지 차례로 훑으며 모델 발전의 역사를 알아봅니다. 각각의 연구가 어떤 메소드를 활용했는지, 또 각각 연구에 어떤 단점들이 존재하는지, 해당 단점들을 해결하기 위해 다음 연구에서 어떤 방법을 활용했는지 주의 깊게 살펴봅시다.

2 stage detectors

R-CNN

  1. selective search을 통해 약 2000개의 RoI를 추출

  2. RoI 크기를 조절해 모두 동일한 사이즈로 warping(변형)

  • CNN의 마지막인 FC layer의 입력 사이즈가 고정이므로 warping 과정 필요함
  1. RoI를 CNN에 넣어, feature를 추출함
  • 각 region 마다 4096-dim feature vector가 추출됨(2000X4096)
  • pretrained AlexNet 구조 활용해 AlexNet 마지막에 FC layer 추가하고 필요에 따라 Findtuning 진행함
    AlexNet
    • Domain specific finetuning
    • Dataset 구성
    • IoU > 0.5: positive samples
    • IoU < 0.5: negative samples
    • Positive samples 32, negative samples 96
  1. CNN을 통해 나온 feature를 SVM에 넣어 분류를 진행함
  • input : 2000X4096 features
  • output : Class개수 + 배경여부 = Class(C+1) + Confidence scores

• Linear SVM
Dataset 구성
• Ground truth: positive samples
• IoU < 0.3: negative samples
• Positive samples 32, negative samples 96

  • Hard negative mining
    • Hard negative: False positive
    • 배경으로 식별하기 어려운 샘플들을 강제로 다음 배치의 negative sample로 mining하는 방법
  1. CNN을 통해 나온 feature를 regression을 통해 bounding box 예측

    • IoU > 0.5: positive samples
    • IoU < 0.5: negative samples
    • Positive samples 32, negative samples 96

• Bbox regressor
• Dataset 구성
IoU > 0.6 : positive samples
• Loss function : MSE Loss

요약

2000개의 Region을 각각 CNN통과
강제 warping, 성능하락 가능성
CNN, SVM, bounding box regressor 따로 학습
End to End X

한계점

• Convolution Network의 입력 이미지가 고정되어 있음
이미지를 고정된 크기로 자르거나(crop) 비율을 조정(warp)해야함
• RoI(Region of Interest)마다 CNN통과
하나의 이미지에 대해서 2000번 CNN을 통과 해야함 → 시간이 오래 걸림

SPPNet

RCNN과 비교

Pipeline

  1. 입력이미지를 ConvNet을 거쳐 feature map 추출(conv5)
  2. Spatial Pyrmaid Pooling Layer를 통해 feature map에서 RoI추출, RoI Pooling을 통해 일정한 크기의 feature가 추출

• 고정된 vector얻기 위한 과정
• SPP사용
• pyramid level: 1
• Target grid size: 7x7

Spatial Pyramid Pooling

RCNN에서는 원본 이미지에서 selected search를 통해 RoI를 추출하지만
SPP에서는 feature map에서 RoI를 추출함
RCNN과 같은 방식으로 RoI를 추출할 수는 없음
원본 이미지에서 추출된 2000개의 RoI를 feature map에 projection(투영,투사)을 함

만약 cnn을 통해 feature map이 원본 이미지 크기 보다 작아진 경우
(1/10로 작아졌을 경우)

  1. Fully connected layer 이후, Softmax Classifier과 Bounding Box Regressor
    • 클래스 개수: C+1개
    • 클래스 (C개) + 배경 (1개)

Training

• multi task loss 사용
• (classification loss + bounding box regression)
• Loss function
• Classification : Cross entropy
• BB regressor : Smooth L1
• Dataset 구성
• IoU > 0.5: positive samples
• 0.1 < IoU < 0.5: negative samples
• Positive samples 25%, negative samples 75%

• Hierarchical sampling
• R-CNN의 경우 이미지에 존재하는 RoI를 전부 저장해 사용
• 한 배치에 서로 다른 이미지의 RoI가 포함됨
• Fast R-CNN의 경우 한 배치에 한 이미지의 RoI만을 포함
• 한 배치 안에서 연산과 메모리를 공유할 수 있음

한계점

기존의 RCNN의 한계점인
1) 2000개의 RoI 각각 CNN 통과
2) 강제 Warping, 성능 손실 가능성
을 해소함

Fast R-CNN

한계점

기존의 RCNN의 단점인
1. 2000개의 Region을 각각 CNN통과
2. 강제 warping, 성능하락 가능성
3. CNN, SVM, bounding box regressor 따로 학습을 해결함

Faster R-CNN

업로드중..

  1. 이미지를 CNN에 넣어 feature maps 추출 (CNN을 한 번만 사용)
  2. RPN을 통해 RoI 계산
    • 기존의 selective search 대체
    • Anchor box 개념 사용

Region Proposal Network (RPN)


2-1) CNN에서 나온 feature map을 input으로 받음. (𝐻: 세로, 𝑊: 가로, 𝐶: 채널)

2-2) 3x3 conv 수행하여 intermediate layer 생성
(채널을 512로 맞춰주기 위한 과정)

2-3) 1x1 conv 수행하여 binary classification 수행

  • 왜 18개 채널인가? 9개의 anchors box가 객체인지 아닌지 판별
    -> 2 (object or not) x 9 (num of anchors) 채널 생성

2-4) 1x1 conv 수행하여 bounding box regression 수행

  • 왜 36개 채널인가? 9개의 anchors box의 중심점 좌표 x, y, 가로길이, 세로길이
    -> 4 (bounding box) x9 (num of anchors) 채널 생성

NMS

• N개의 RoI 중 유사한 RPN Proposals 제거하기 위해 사용
• Class score를 기준으로 proposals 분류
• IoU가 0.7 이상인 proposals 영역들은 중복된 영역으로 판단한 뒤 제거

  • 약 2000개 RoI 중에서 1000~1200개로 줄임

예시)

-> bb1과 bb2는 0.8 만큼 유사하므로 bb2 클래스 스코어 0으로 변경해 제거

traning

  1. Region Proposal Network (RPN)
    • RPN 단계에서 classification과 regressor학습을 위해 앵커박스를 positive/negative samples 구분
    • 데이터셋 구성
    • IoU > 0.7 or highest IoU with GT: positive samples
    • IoU < 0.3: negative samples
    • Otherwise : 학습데이터로 사용 X
  1. Region proposal 이후 Fast RCNN 학습을 위해 positive/negative samples로 구분
    • 데이터셋 구성
    • IoU > 0.5: positive samples → 32개
    • IoU < 0.5: negative samples → 96개
    • 128개의 samples로 mini-batch 구성
    • Loss 함수
    • Fast RCNN과 동일
  2. RPN과 Fast RCNN 학습을 위해 4 steps alternative training 활용
    • Step 1) Imagenet pretrained backbone load + RPN 학습
    • Step 2) Imagenet pretrained backbone load + RPN from step 1 + Fast RCNN 학습
    • Step 3) Step 2 finetuned backbone load & freeze + RPN 학습
    • Step 4) Step 2 finetuned backbone load & freeze + RPN from step 3 + Fast RCNN 학습• 학습 과정이 매우 복잡해서, 최근에는 Approximate Joint Training 활용

summary

한계점

하지만 RCNN에서 여러 한계점을 극복하는 모델이 나왔지만 2 stage 모델은 여전히 속도면에서 한계점이 존재함

profile
AI Learning, Parcelled Innovations, Carrying All

0개의 댓글