본문 바로가기

Paper

[논문] YOLO

Faster R CNN

cnn으로 피처맵을 뽑아서 RPN에 피처맵에 앵커 9개의 좌표(각 4개씩) 총 36개 값을 넣는다.

따라서 RPN의 목적은 오브젝트 디텍션이 아니라 피처맵에서 적절한 bounding box를 치기 위한 것이다.

 

이때 까지의 RCNN은 정확도는 높지만 faster라는 이름에 맞지 않게 빠르지 않았다. 

근데 자율주행등 실시간으로 이미지를 처리해야할 real time task의 수요가 늘어나게 되고 아키텍쳐의 속도를 대폭 올린 YOLO가 등장하게 된다.

 

1x1 conv layer

계산량을 줄이고, 위치정보를 보존하는 효과

 

yolo는 디텍션 task를 single regression 문제로 변환시킨다

즉, Bounding box와 classification을 하나의 신경망 구조에서 동시에 해결 > one-way detection

1. 인풋 이미지(448*448 pixel, 자세한 분석을 위해 픽셀을 두 배로 늘림)를 resize해서 S*S grid로 분할해서 CNN에 넣는다(GooLeNet)

  > grid cell 안에 앵커 박스의 중심이 찍히고 w,h값에 의해 박스는 다양하게 조정될 수 있다. 각 grid cell에서 2개의 앵커 박스를 뽑느다

 

2. 각 앵커박스는 x,y,w,h,score 이렇게 5가지 정보를 가진다.

 

셀 기준으로 confidence score를 계산

  > confidence score = pr(object) * IOU   pr(object)는 0, 1로 mapping 따라서 물체가 있는 앵커박스의 confidence      score는 pr(object)가 1이 되서 그냥 IOU 값이 된다.

 

3. 한 grid 셀에 두 개의 앵커박스가 제안되므로 최종 prediction tensor가 7x7x(2x5+20) = (7, 7, 30) 

20은 각 class에 속할 확률값이 각각 들어가게된다.