YOLO series
YOLO v1
- R-CNN과 같은 2-stage model에서는 image 안의 object가 있을 것으로 예측되는 위치를 찾는 Region Proposal 단계가 있다. 반면, YOLO에서는 모든 영역을 적당한 크기의 Grid로 균등하게 나눠서 각 Grid안에 bounding box의 중심좌표의 위치와 bounding box의 width, height를 찾도록 설계했다. 우측 그림을 참고한다.

- 예를 들어, $S×S$ grid로 image를 분할해서, 만약 bounding box의 중심 좌표가 특정 grid cell에 들어간다면, 그 grid cell 위에서 그 bounding box를 추정한다.
- 각 grid cell은 $B$개의 bounding box를 추정하며, 각 box에 대한 “confidence” score를 추정한다.
- confidence score는 “각 box가 object를 포함할 확률, 그리고 그 box가 얼마나 정확한지”에 대한 confidence이다.
- confidence=Pr(Object)×IoU(predicted box,ground truth box)
- 각 bounding box에 대해, 다음과 같은 5개의 값을 예측해야한다.
- 중심좌표값 (x, y)
- bounding box의 (width, height)
- confidence score
- 각 grid에 대해서, 그 안에 중심좌표를 갖는 bounding box의 $C$개의 클래스에 대한 확률분포를 예측해야 한다. (각 grid 별로 하나의 클래스만 예측 가능한 듯??)
- Loss function :

- $λ_{coord}$: box coordinate regression error와 classification error가 서로 다른 가중치로 loss에 들어가는 것이 더 좋을 수 있다. 이를 위해 box coord regression term에 주기 위한 가중치이다.
- $λ_{noobj}$: object가 있는 bounding box와 없는 bounding box의 imbalance 문제를 위해 도입된 hyperparameter이다. 특별한 가중치 없이 학습할 경우, 대부분의 bounding box는 object가 없기 때문에 confidence score가 0으로 가는 현상이 생길 수 있다. 그래서 object가 없을 경우의 bounding box의 confidence score는 loss에서 차지하는 가중치를 낮춘다. 논문에서는 $λ_{noobj}=0.5$ 로 잡았다.
- $\mathbb{I}^{obj}_{i}$ : $i$-번째 grid에 object가 있을 경우에만 1이고 다른 경우에는 0. 마지막 term에서 사용되었는데, 각 클래스별 확률분포와 추정 확률분포 사이의 L2-error를 계산했다. (Cross Entropy로 계산해주는 것이 더 좋지 않을까 싶다)
- $\mathbb{I}^{obj}_{i}$ : $i$-번째 grid에 object가 있으며, 이 object를 예측해야할 “책임”이 $j$-번째 box에 있는 경우 1이고 다른 경우($i$-번째 grid에 object가 없거나, 있지만 이를 예측해야할 “책임”이 다른 index의 box에 있는 경우)에서는 0. (Ground Truth Label을 만들 때, 각 bounding box마다 몇 번째 box가 예측하도록 해야할까?)