2021. 1. 3. 23:26ㆍComputer vision ღ'ᴗ'ღ
Fast R-CNN
fast RCNN은 SPP-Net에서의 SPP-Layer을 ROI Pooling Layer로 바꾸고 ROI Proposal을 제외한 모든 과정을 End-to-End Network로 구성하였습니다. 또한 SVM classifier을 softmax로 변환하였고, multi task loss함수로 classification과 regression을 동시에 최적화시켰습니다.
Multi-task loss :
classification 과 regression loss를 함께 반영한 loss함수
classification loss = cross-entropy, regression loss = smooth L1 loss
Faster RCNN
faster RCNN은 RCNN의 마지막 모델입니다. RPN + Fast RCNN이라고 할 수 있습니다.
오직 network로만 이뤄져있으며, End to End 구조입니다.
selective search 부분을 Region Proposal Network(RPN) 으로 바꾸어주어 GPU를 사용할 수 있어 속도를 향상시켰습니다.
나머지 구조는 fast RCNN과 동일합니다.
RPN에서는 object이다/아니다의 이진분류와 대략적인 bounding box regression을 수행합니다.(정확한 위치 아닌 객체가 있을만한 위치)
그런데 selective search는 region proposal에 edge detection, color값 변화 추적 등의 근거가 있지만 network(RPN)은 feature값으로 주어지는 pixel값과 target으로는 ground truth bounding box정보만을 가지고 있어 selective search수준의 region proposal이 쉽지 않습니다.
이를 해결하기 위해 (Reference) Anchor Box를 사용합니다. Anchor box는 object가 있는지 없는지 후보 box라고 생각하면 됩니다.
Anchor box는 서로 다른 크기, 서로 다른 ratio의 총 9개의 anchor box를 사용합니다.
이 9개의 anchor box를 이동시키면서 객체가 있을만한 위치를 찾습니다.
anchor box는 다음과 같은 사진에서 종횡비가 다른 두개의 객체를 효율적으로 detection할 수 있습니다.
또한 같은 원리로 겹쳐져잇는 object들도 잘 detect할 수 있습니다.
RPN에서는 이 9개의 anchor box 대해 모두 이진분류(FG, BG)를 수행하고(1x1 Fully Convolutional layer) 9개의 anchor box별로 이진분류 one hot encoding결과를 가진 2x9 output
FG로 분류된 box들 대해 bounding box regression(1x1 Fully Convolutional layer)을 수행합니다. 9개의 anchor box별로 x, y, w, h 4개의 정보를 가진 4x9 output
다음과 같이 anchor box를 이동시키며 ground truth와의 IOU가 높은 anchor box를 쫓아가며 객체 위치를 찾습니다.
보통
IOU > 0.7 : positive
IOU < 0.3 : negative
이 사이의 애매한 값의 box들은 학습에서 제외합니다.
positive anchor box와 좌표값 차이를 최소화하는 방향으로 predicted anchor box의 bounding box regression 수행
RPN Loss함수는 다음과 같다
anchor box들은 사실 Positive << Negative라서 객체를 찾기가 어려울 수 있기 때문에 Mini batch로 어느정도 비율을 맞춰 학습합니다.
RPN은 Objectness Score = predicted box가 object일 확률(softmax 값) * Ground Truth 와의 IOU값
Objectness Score 높은 순으로 추출한 Region Proposal box 를 전달합니다.
● Faster RCNN Training
faster rcnn을 학습시킬 때는
1. RPN학습
2. Fast RCNN Classification/Regression 학습
3. RPN 마지막 1x1 convolutional layer fine tuning
4. fast RCNN 마지막 FC layer fine tuning
'Computer vision ღ'ᴗ'ღ' 카테고리의 다른 글
YOLO (0) | 2021.01.09 |
---|---|
SSD Network (0) | 2021.01.08 |
SPPNet (0) | 2021.01.03 |
R-CNN(Regions with CNN) (0) | 2021.01.03 |
COCO dataset 다루기 (0) | 2020.12.26 |