1. 이론
1-1. RCNN
Object Detection알고리즘은 크게 Region Proposal / Feature Extraction / Object Detect 하는 3부분으로 나누어진다. RCNN의 특징은
- Region Proposal부분을 Selective search 방식을 통하여 검출.
- Back bone에서 돌아가는 알고리즘을 Alexnet이용 (추후에 VGG 계열을 이용한다고 한다)
- Feature map을 가지고 Regression과 Classifer(svm)을 수행.
한다는 점이다. 하지만 이미지를 Network에 넣기 위해서 원본 이미지를 crop 과 wrap하는 과정에서 이미지가 찌그러지고 Selective Search하는 양이너무 방대하여 시간이 너무 오래걸린다는 점이다. 이를 개선한 것이 SPP Net이다.
1-2. Fast RCNN_(#SPP Net)
Fast RCNN은 SPP Net을 차용하여 RCNN을 수행하는데 오래걸리는 부분인 Selective Search부분을 개선한 알고리즘이다. Selective Search한 부분을 모두 Neural Network에 넣지 않고 원본이미지만 Neural Network에 넣은 후 생성된 Feature map에 매핑하여 별도로 추출한다. 하지만 매핑된 결과를 Object Detect에 사용하기 위해서는 fully connected layer에 들어가야하는데 여기서 매핑된 결과들의 사이즈가 다 상이하기 때문에 SPP(Spatial pyramid Pooling)에 기인한 ROI Pooling layer(7*7분면)를 추가함으로써 모두 일정한 사이즈로 벡터화한다. 이로써 Classifer와 Regression이 가능하게 한다.
1-3. Faster RCNN
Faster RCNN은 RPN과 Fast RCNN을 결합한 형태를 띈다. RPN은 기존의 Selective Search 기반의 Region Proposal과정을 Neural Network구조로 바꾼것이다. 이를 통해 GPU사용으로 빠른 학습이 가능해졌고 End to End Network학습이 가능하게 되었다. RPN에서 물체가 있는 위치를 대강 검출하는 방법은 Anchor Box를 기반으로 이루어지며 그 결과는 아래 그림과 같다.
RPN에는 VGG 계열의 Network를 통과하여 생성된 Feature map을 input으로 받아 위와 같은 Anchor Box를 기반으로 Neural Network에 통과시켜 영역을 추천한다. RPN도 Feature map을 가지고 Classifier과 Regrssion을 수행하며 Fully connected layer가 아닌 1*1 fully convolution layer를 적용하여 feature map 크기와 관계없이 예측이 가능하게 한다.
RPN 부분을 제외하고는 Fast RCNN과 매우 유사하다.
2. 구현 실습
..오늘은 여기까지.. 실습은 github에 올려야지#
복습하며 스스로 정리한 내용을 기록한 글입니다... 혹시 틀린 내용이 있을수도 있으며 상업적 의도나 저작권 침해의사가 없음을 밝혀요...
'개발공부' 카테고리의 다른 글
[안드로이드 9.0프로토콜 변경사항] (0) | 2021.08.03 |
---|---|
콘다 env 생성 (0) | 2021.07.25 |
yolo v3 (0) | 2021.07.24 |
SSD(Single Shot Detector) (0) | 2021.07.23 |
Android studio (0) | 2021.07.01 |