R CNN,Fast R CNN,Faster R CNN - Songwooseok123/Study_Space GitHub Wiki

- 1.이미지에 대해서 (CPU상에서)selective search를 해서 물체가 존재할 법한 위치(RoI)를 찾는다.(region proposal)
- 2.이 위치들을 개별적으로 CNN 네트워크에 넣어서 feature vector를 추출한다
- 3-(1)그 vector들에 대하여 SVM을 이용해 classification
- SVM(binary SVM classifier) :각각의 class에 대해서 인지/아닌지 판단.
- 3-(2)Regressors를 이용해 물체 위치가 어딘지(bounding box) 찾는다.
- 단점
- Selective search 시간 소모.
- 모든 RoI를 CNN에 넣어야해서 연산 많음.
- CNN은 고정되므로 SVM과 Bounding box regression 결과로 CNN을 업데이트 할 수 없다. -> End-to-End 학습 불가->global solution 찾기힘듦.
- 1.feature map을 뽑기 위해서 cnn을 한번만 거친다.
- 2.이후 RoI Pooling(max pooling)을 통해 각각의 region의 feature extraction.(feature map이 input image에 대해서 각각의 위치정보를 보존하고 있기 때문에 이 작업이 가능함)
- SVM을 쓰지 않고 softmax를 거쳐서 각각의 class에 대한 probability를 구한다.
- 장점
- (feature extraction ,RoI Pooling,Region Classification,Bounding Box regression) 단계를 end-to-end로 묶어서 학습가능
- 단점: Selective search(region proposal)가 CPU에서 수행되어 속도가 느리다.
- 여태까진 모두 CPU에서 region proposal을 진행했는데 속도가 매우 느리기 때문에 region proposal(여기선 sliding window사용)을 위한 모둔 연산을 GPU상에서 수행할 수 있도록 하는 RPN네트워크 제안함(GPU사에서 한번의 forward만 실행하면 어느 곳에 물체가 있을지 예측가능)
- RPN: RoI 구하는 방법임
- k개의 앵커 박스(anchor box)이용
- sliding window를 거쳐 각 위치에 대해 regression과 classification을 수행
- RPN: RoI 구하는 방법임
- 장점
- CNN에서 뽑은 feature map을 공유한다.
- RPN을 제안하면서 전체 프레임워크를 End-to-End로 학습가능.
- Selective search의 시간적 단점을 해결함
- 단점
- 여전히 많은 components
- Region classification을 할 때 각각의 서로다른 region에 따른 특징 벡터가 개별적으로 구분되어 fc layer로 forward됨.