s0

s1

s2

 

지금보다 더 좋은 proposal을 만들어 낼 수 있다면, classifier의 성능은 올라갈 것이고, 추가적으로 classifier를 학습시킬 때도 더 높은 IoU 값들을 기준으로 학습시킨다면, 더욱 더 성능이 올라갈 것임.

 

만약 RPN이 정확한 BB를 추정해 내지 못하더라도 상대적으로 classifier는 robust하게 판단할 수 있을 것임. 일반적으로 IoU 기준 0.5는 R-CNN 기반 모델을 학습시킬 때 자주 사용되는 hyper-parameter임. 일반적으로 이 정도 값을 이용해서 학습시킬 때 MS COCO dataset 상에서 좋은 성능을 보임(MS COCO = object detector의 성능을 판단하는 dataset)

 

하지만 IoU 기준 0.5는 대강 BB가 GT와 절반 정도만 걸쳐 있어도 이를 Positive Sample로 판단하게 만들고, 이에 따라 false positive를 띄울 위험이 있음.

 

IoU 기준이 더 낮은 경우 false positive가 많이 나옴. 그렇다고 IoU 기준을 높이고 학습시키는게 더 좋은 성능을 보장하지도 않는다. Proposed된 BB가 부정확한 경우에는 IoU 0.5가 좋은 성능을 보여주었고, 반대로 Proposed된 BB가 정확할수록 더 높은 IoU를 기준으로 학습시킨 모델이 더 좋은 성능을 보여줌

 

더 좋은 Proposal을 만들어 낼 수 있다면, classifier의 성능은 올라갈 것이고, 추가적으로 classifier를 학습시킬 때도 더 높은 IoU 값들을 기준으로 학습시킨다면 더 성능이 올라갈 것임. 

 

당장 더 좋은 proposal을 얻을 수 있는 곳이 = classifier가 만들어내는 BB. IoU가 낮은 BB가 주어졌을 때, classifier가 만들어내는 BB는 IoU가 훨씬 더 높다는 것을 확인할 수 있음. 

 

기존의 Faster R-CNN이 1개의 classifier만을 사용했다면, cascade R-CNN은 추가적인 n개의 classifier를 사용. 해당 classifier는 순차적으로 이전의 classifier가 만들어 낸 BB를 받아서 새로운 classification task를 수행하고, 거기서 또 만들어지는 BB는 점점 더 정확할 것이라고 생각함. 그 다음 단계의 classifier는 이전 단계보다 더 높은 IoU를 기준으로 학습을 시켜둠으로써 성능을 극대화 시키는 방법을 제안한 것. 

 

(1) faster R-CNN 과 마찬가지로 하나의 classifier 만을 학습시켜 두고, 이를 test 시에 iterative 하게 활용하는 방법. input 영상이 들어가고, RPN을 거쳐 classifier가 BB를 만들어내면, 이 BB는 RPN이 만들어낸 BB보다 더 정확하게 예측한 BB라고 기대할 수 있음. 그래서 동일한 classifier에 이전에 본인이 예측한 BB를 이용해 다시 한 번 classification을 수행하면 좀 더 정확하게 classification task를 수행할 수 있을 것. 실제 성능 향상을 보여주나, 극적인 효과는 보여주지 못함

 

(2) RPN이 한 번만 proposal 하는 대신에, 그 때의 proposal 이 어떤 때는 더 정확했을 수도 있고, 어떤 때는 부정확했을 수도 있기 때문에, 서로 다른 classifier를 각각의 IoU 기준마다 학습을 시키고, test 시에는 최종적으로 모든 classifier 가 만들어낸 결과들을 ensemble 하는 방법. 성능 향상이 미약함

 

(3) Cascade R-CNN : 

 

 

반응형

'스타트업 > AI' 카테고리의 다른 글

[AI] pickle  (0) 2020.07.14
[AI] COCO Dataset, mAP(mean Average Precision)  (0) 2020.07.14
[AI] mmcv  (0) 2020.07.09
[AI] Tensorboard 해석하기  (0) 2020.07.09
[AI] jupyter notebook tensorboard, proxy  (0) 2020.07.09

+ Recent posts