방법
Selective Search를 통해 약 2000개의 RoI(Region of Interest) 추출
Selective Search - 검출을 원하는 후보가 있을 것 같은 영역에 대한 guide를 설정한 뒤 그 영역을 중심으로
exhaustive search를 하여 최종적으로 후보 영역을 확정한다.
RoI의 크기를 조절해 모두 동일한 사이즈로 변경 : Wraping
마지막 FC layer의 입력사이즈가 고정이므로, 필수적으로 수행했다.
이 과정에서 이미지 손실이 발생
RoI를 CNN에 넣어 feature를 추출
각 region마다 4096-dim feature vector 추출 (2000x4096)
Pretrained AlexNet 구조 활용
AlexNet 마지막에 FC layer 추가
Classification : feature를 SVM을 통해 분류 : (C+1) + confidence score
Bound 예측 : feature를 regression을 통해 분류
Training Dataset - Domain Specific Finetuning
단점
방법
→ 고정된 vector를 얻기 위해
→ level1의 SPP 사용했다고 볼 수 있다.
Fully Connected Layer 이후 Softmax Classifier와 Bb Regressor를 함께 학습
→ multi task loss 사용
classification loss + bounding box regression
(cross entropy) (Smooth L1)
특징
R-CNN의 경우 이미지에 존재하는 RoI를 전부 저장해 사용
→ 한 배치에 서로 다른 이미지의 RoI가 포함 됨
Fast R-CNN의 경우, 한 배치에 한 이미지의 RoI만을 포함
→ 한 배치 안에서 연산과 메모리를 공유할 수 있음
방법
이미지를 CNN에 넣어 feature 추출 → CNN 한 번만 사용
RPN을 통해 RoI 학습 및 계산
→ selective search 대체
→ anchor box (각 셀마다 다른 scale, 비율의 후보 박스들을 미리 정의해 놓은 것)
CNN에서 나온 feature map을 input으로 받음
3x3 conv 수행(x512 channel) 하여 intermediate layer 생성 : w x h x 512
intermedia layer
→ 1 x 1 conv 수행 → binary classification 수행 : 2 x 9 = 18 channel
→ 1 x 1 conv 수행 → bb regression 수행 : 4 x 9 = 36 채널 생성
NMS 통해 유사한 RPN Proposals 제거
class score를 기준으로 proposal 정렬(내림차순)
IoU가 0.7 이상인 영역들은 중복으로 판단해 제거
data : 0.3 이상 0.7 미만 은 데이터로 안 씀
Loss 함수
Region proposal 이후 Fast RCNN 학습