Object Detection 모델들은 크게 2 Stage Detector와 1 Stage Detector로 구분이 가능합니다. 저희는 그 중 먼저 2 Stage Detector에 대해 학습해봅시다. 이번 강의에서는 R-CNN부터 SPPNet, Fast R-CNN, 그리고 최신 2 Stage Detector들의 기초가 되는 Faster R-CNN까지 차례로 훑으며 모델 발전의 역사를 알아봅니다. 각각의 연구가 어떤 메소드를 활용했는지, 또 각각 연구에 어떤 단점들이 존재하는지, 해당 단점들을 해결하기 위해 다음 연구에서 어떤 방법을 활용했는지 주의 깊게 살펴봅시다.
selective search을 통해 약 2000개의 RoI를 추출
RoI 크기를 조절해 모두 동일한 사이즈로 warping(변형)
• Linear SVM
Dataset 구성
• Ground truth: positive samples
• IoU < 0.3: 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을 통과 해야함 → 시간이 오래 걸림
• 고정된 vector얻기 위한 과정
• SPP사용
• pyramid level: 1
• Target grid size: 7x7
RCNN에서는 원본 이미지에서 selected search를 통해 RoI를 추출하지만
SPP에서는 feature map에서 RoI를 추출함
RCNN과 같은 방식으로 RoI를 추출할 수는 없음
원본 이미지에서 추출된 2000개의 RoI를 feature map에 projection(투영,투사)을 함
만약 cnn을 통해 feature map이 원본 이미지 크기 보다 작아진 경우
(1/10로 작아졌을 경우)
• 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, 성능 손실 가능성
을 해소함
기존의 RCNN의 단점인
1. 2000개의 Region을 각각 CNN통과
2. 강제 warping, 성능하락 가능성
3. CNN, SVM, bounding box regressor 따로 학습을 해결함
2-1) CNN에서 나온 feature map을 input으로 받음. (𝐻: 세로, 𝑊: 가로, 𝐶: 채널)
2-2) 3x3 conv 수행하여 intermediate layer 생성
(채널을 512로 맞춰주기 위한 과정)
2-3) 1x1 conv 수행하여 binary classification 수행
2-4) 1x1 conv 수행하여 bounding box regression 수행
• N개의 RoI 중 유사한 RPN Proposals 제거하기 위해 사용
• Class score를 기준으로 proposals 분류
• IoU가 0.7 이상인 proposals 영역들은 중복된 영역으로 판단한 뒤 제거
예시)
-> bb1과 bb2는 0.8 만큼 유사하므로 bb2 클래스 스코어 0으로 변경해 제거
하지만 RCNN에서 여러 한계점을 극복하는 모델이 나왔지만 2 stage 모델은 여전히 속도면에서 한계점이 존재함