*RPN(Region Proposal Network)
*Selective Search
- Uijlings의 논문에서 제안 (http://www.huppelen.nl/publications/selectiveSearchDraft.pdf)
- image에서 object의 candidate를 찾기 위한 알고리즘
- Color space 정보와 다양한 similarity measure를 활용해서 복잡한 segmentation 결과를 grouping
- R-CNN의 처음 단계에서 실행되는 알고리즘
*Hard Negative Mining
- positive example과 negative example을 균형적으로 학습하기 위한 방법
- 단순히 random하게 뽑은 것이 아니라 confidence score가 가장 높은 순으로 뽑은 negative example을 (random하게 뽑은 positive example과 함께) training set에 넣어 training
*Non Maximum Suppression
- Non Maximum Suppression은 edge thinning 기법으로, 여러 box가 겹치게 되면 가장 확실한 것만 고르는 방법
*Bound Box Regression
- Bound box의 parameter를 찾는 regression
- 초기의 region proposal이 CNN이 예측한 결과와 맞지 않을 수 있기 때문
- Bounding Box Regressor는 CNN의 마지막 pooling layer에서 얻은 feature 정보를 사용해 region proposal의 regression을 계산
*R-CNN의 단점
- Test 속도가 느림 (모든 region proposal에 대해 전체 CNN path를 다시 계산)
*Faster R-CNN (RPN)
- Fast R-CNN을 개선하기 위해 Region Proposal Network (RPN)을 도입
- RPN은 region proposal을 만들기 위한 network
- 즉, Faster R-CNN에서는 외부의 느린 selective search (CPU로 계산) 대신, 내부의 빠른 RPN (GPU로 계산)을 사용
- RPN은 마지막 convolutional layer 다음에 위치하고, 그 뒤에 Fast R-CNN과 마찬가지로 RoI pooling과 classifier, bounding box regressor가 위치
- RPN은 sliding window에 3×33×3 convolution을 적용해 input feature map을 256 (ZF) 또는 512 (VGG) 크기의 feature로 mapping
- 그 출력은 box classification layer (cls)와 box regression layer (reg)으로 들어간다.
- box classification layer와 box regression layer는 각각 1×11×1 convolution으로 구현
- box regression을 위한 초기 값으로 anchor라는 pre-defined reference box를 사용
- 논문에서는 3개의 크기와 3개의 aspect ratio를 가진 총 9개의 anchor를 각 sliding position마다 적용
*Faster R-CNN (정리)
- RPN + Fast CNN
- Region proposal을 network 내부에서 계산
- RPN은 fully convolutional 하다.
- RPN은 end-to-end로 train 된다.
- RPN은 detection network와 convolutional feature map을 공유
*ROI pooing
- RPN이후, 서로 다른 크기의 proposed regions값을 output으로 받는다.
- 서로 다른 크기라는 말은 CNN에서 output으로 나온 feature maps들이 제각각 다른 크기라는 뜻
- 특히 일반적으로 feature maps을 flatten시켜서 딥러닝을 태워서 추후 classification을 할 때, 더더욱 어렵게 된다.
- 이때 사용하는 기법이 Region of Interest Pooling(ROI)
- ROI를 사용하게 되면 서로 다른 크기의 feature maps을 동일한 크기로 변환
'스타트업 > AI' 카테고리의 다른 글
[AI] radam (0) | 2020.02.03 |
---|---|
[AI] 상대 경로, 절대 경로 (0) | 2020.01.31 |
[Pytorch] DataLoader 의 num_workers (0) | 2020.01.30 |
[TensorFlow] GPU 배분(분배, 할당) 방식 (0) | 2020.01.28 |
[AI] Spatio-Temporal (0) | 2020.01.12 |