두 번째로 살펴본 논문은 1-stage detector의 대표적인 model인 YOLO 이다.
가장 첫 모델인 Yolo v1부터 살펴보는 것이 맞을 것 같아서 이 논문을 읽어보게 되었다.
지난번에 한번 읽어보았으니,,, 지난번보단 빨리 읽을 수 있겠지?
파이팅해보자~!
영어가 안되가지고 해석이 너무 힘들었다...
오늘은 블로그에 정리되어 있는 논문 리뷰 글을 읽은 후 논문을 읽어보았다.
참고한 블로그
그랬더니 그나마 좀 읽힌다...
파이팅!
그렇다면 YOLO의 동작 과정에 대해서 살펴보자.
YOLO는 input image를 의 grid로 나눈다. 어떤 물체의 중심이 어떤 grid cell 안에 있으면, 그 grid cell이 그 물체를 감지하는데 책임이 있다.
각각의 grid cell에선 B개의 bounding box와 그 box들에 대한 confidence score를 예측한다. 이 confidence score는 bbox에 물체가 있고 어떤 물체인지가 얼마나 정확한지에 대한 신뢰도를 나타낸다. 각각의 bbox는 x,y,w,h,confidence의 5개 정보로 구성된다. confidence는 결국 예측된 box와 ground truth box 사이의 IOU * 클래스로 분류될 확률을 의미한다.
또한 각각의 grid cell에서는 또한 C개의 conditional class probabilities를 예측한다. 이 확률들은 grid cell이 물체를 포함하고 있다는 가정하의 조건부 확률이며, 각 grid cell에서의 bbox의 수와 상관 없이 1세트의 class probabilites만 예측한다.
test 과정에서는 conditional class probabilities와 indeividual box confidence predictions를 곱한다. 이는 각각의 bbox별로 class specific confidence를 제공한다. 해당 점수는 box안에 나타난 물체의 class에 대한 확률과 bbox가 얼마나 물체에 잘 맞게 형성되었는지에 대한 정보를 가지고 있다.
그럼 이제 Yolo의 Network Design에 대해서 살펴보자.
식의 의미를 조금 더 살펴보자.
먼저 첫번째와 두번째 line은 localization loss계산을 담당하는 부분이다. 해당 부분에서는 해당 물체를 예측하는 bbox predictor의 coordinate에 대한 loss를 계산한다. 앞에서 언급한바와 같이 를 통해서 큰 가중치를 두어 loss를 계산하는 모습을 살펴볼 수 있으며, width 와 height는 root를 씌워서 scaling 한 모습을 확인할 수 있다.
세번째와 네번째 line은 confidence loss를 담당하는 부분인데, 물체가 존재하는 bbox predictor에 대해서는 그냥 SSE를 더해주고, 물체가 존재하지 않는 bbox에 대해서는 를 곱하여 더해줌으로써 적은 가중치만 두는 모습을 확인할 수 있다.
마지막으로 다섯번째 줄은 물체가 존재하는 bbox에 대해서 class probabilites의 loss를 계산해주는 term이라고 볼 수 있을 것이다.
움 약간 의문이라면, 3와 4 line의 confidence loss를 계산하는 부분과 5 line의 class probabilites loss를 계산하는 부분이 약간 겹치는거 아닌가? 다르다. 마지막은 classfication 자체의 loss를 계산한다고 볼 수 있다. 분류기의 (yolo에서는 회귀로 동작하지만) 성능을 높이기 위한 loss인 것이다.