본문 바로가기

개발/딥러닝

[논문 리뷰] You Only Look Once:Unified, Real-Time Object Detection(YOLO v1)

 

ssd와 마찬가지로 물체가 어디 있고 어떤 문체인지 판단하는 네트워크입니다. 모델이 상당히 간단하고 앵커박스가 없는 것이 특징입니다.

 

 

모델 구조

 

처음 448*448 크기의 이미지로 시작합니다. 이 이미지를 Conv2D를 이용해 7&7*30으로 줄입니다. 마지막 라벨에서는 7*7*30이 됩니다. 7*7은 피쳐의 크기입니다. 클래스가 20개고 각 피쳐픽셀 당 2개의 바운딩 박스가 들어있습니다. 각 바운딩 박스는 5개의 값으로 이루어 지는데요, 중심 좌표(x,y)와 너비와 높이(w,h)와 컨피던스 스코어(c)로 이루어져 있습니다. 그래서 각 피쳐픽셀 당 20+(5*2)=30개로 이루어 집니다. 이전에는 바운딩 박스마다 클래스를 주었는데요, 이번에는 피쳐픽셀 당 라벨이 정해집니다.

백그라운드

이 전에는 각 바운딩 박스마다 물체가 있는지(양성인지) 배경인지(음성인지) 구분했습니다. 바운딩 박스가 ssd경우 5000개가 넘었고 대부분이 음성이여서 학습에 어려움이 있었습니다. 여기서는 7*7 크기의 셀마다 라벨이 매겨져 있습니다. 이전과 같은 문제는 발생하지 않습니다.

로스

로스가 다른 논문과는 조금 다릅니다.

$ \lambda_{\text{coord}} \sum_{i=0}^{S^2} \sum_{j=0}^{B} 1_{ij}^{\text{obj}} \left[ (x_i - \hat{x_i})^2 + (y_i - \hat{y_i})^2 \right] \\ + \lambda_{\text{coord}} \sum_{i=0}^{S^2} \sum_{j=0}^{B} 1_{ij}^{\text{obj}} \left[ \left( \sqrt{w_i} - \sqrt{\hat{w_i}} \right)^2 + \left( \sqrt{h_i} - \sqrt{\hat{h_i}} \right)^2 \right] \\ + \sum_{i=0}^{S^2} \sum_{j=0}^{B} 1_{ij}^{\text{obj}} (C_i - \hat{C_i})^2 \\ + \lambda_{\text{noobj}} \sum_{i=0}^{S^2} \sum_{j=0}^{B} 1_{ij}^{\text{noobj}} (C_i - \hat{C_i})^2 \\ + \sum_{i=0}^{S^2} 1_{i}^{\text{obj}} \sum_{c \in \text{classes}} (p_i(c) - \hat{p_i}(c))^2 \tag{3} $

처음 두 줄은 바운딩 박스 위치를 학습시킵니다. 다음 두 줄은 컨피던스 스코어입니다. 마지막 줄은 클래시피케이션 로스입니다. 

 

사실 이건 기존의 디텍션 논문들과 비교했을 때 구현적인 측면에서는 정말 편리한 논문입니다.