논문에서 풀고자 하는 문제는 다음과 같다: detection문제에서 object classification과 bbox regression은 서로 다른 task이지만 같은 feature에서부터 예측이 이뤄진다. 어떻게 이 두 task를 잘 align 할 수 있을까? 몇 가지 제안을 하는데 그중 하나가 TAL이다
우선 \( t=s^\alpha u^\beta\) 점수 기반으로 label asignment를 한다
alpha=1, beta=6
s = classification score (GT class에 해당되는 예측 확률)
u = IoU (GT bbox와 IoU)
t는 classification과 bbox regression 중 중점을 어디에 줄지 조절할 수 있게 해준다
각 GT label마다 t 값이 가장 큰 m개를 positive sample로 사용하고, 나머지는 negative sample로 사용
여기서 IACS는 IoU Aware Classification Score의 약자다. 보통 classification score은 GT class에 1, 나머지는 0인 벡터로 표현이 된다면, IACS는 GT class에 GT bbox와 predicted bbox와의 IoU 값을 갖고, 나머지는 0이다.
특징: negative example (q=0) 같은 경우만 \( p^\gamma\)로 down-weight 하고, positive sample은 down-weight 하지 않는다. 참고로 Focal loss 같은 경우 positive sample에도 비슷하게 \( (1-p)^\gamma\)factor이 있다
y=1: GT class, p = predicted probability
VariFocal Loss 논문에서 \( \alpha=0.75, \gamma=2.0\) 사용
Box Regression
IoU loss 같은 경우, GIoU 또는 SIoU loss를 사용 (N,T 모델은 SIoU, 나머지는 GIoU loss)
Distriburted focal loss (DFL) (https://arxiv.org/abs/2006.04388)같은 경우 작은 모델에서 사용하면 inference speed 저하가 있기 때문에 M/L 모델에서만 사용. 보통 bbox 위치를 직접 regression 하지만, DFL를 활용하기 위해서 heat map 같은 approach를 사용한다.
우선 \( \hat{y} = \sum_{i=0}^n p(y_i) y_i\)로 적는다. 여기서 \( y_i\)는 bbox regression branch에서 각 feature에서 예측되는 bbox 위치가 되고, \( P(y_i)\)는 각 feature에서 예측 값이 얼마나 믿을만한지 알려주는 척도 (확률분포)로 해석 가능하다. 이 확률 분포를 기반으로 예측 값들을 평군내서 최종 bbox 위치 예측 값 \( \hat{y}\)을 구한다. (밑에 그림에서 DFL 참고)
\( P(y) \)는 \( S\)라는 별도의 softmax layer를 통해서 구한다. 편의상 \(S_i = P(y_i)\)라고 부른다
DFL은 y 근처에 확률이 높게 나오도록 한다. Global minimum은 \( S_i = \frac{y_{i+1}-y}{y_{i+1}-y_{i}}\), \( S_{i+1} = \frac{y-y_{i}}{y_{i+1}-y_{i}}\)이고, 이때 \( \hat{y} =\sum_{i=0}^n p(y_i) y_i= y\)인 것을 보일 수 있다.
Objectness
Objectness loss를 사용하면 성능이 저하되어서 사용하지 않는다
Objectness branch를 추가하면 task alignment learning에 방해가 되어서 성능 저하가 일어난다고 저자들은 추측한다
Training
Epoch
YOLOv5 같은 경우 300 epoch 학습했다
YOLOv6에서는 오래 학습하면 도움이 되어서 400 epoch동안 학습을 한다
Self-Distillation
self-distillation이기 때문에 teacher과 student의 모델 구조는 같다
우선 pre-training을 하고, pre-trained 모델을 teacher로 사용한다
DFL를 사용하면 regression도 classification task로 바뀌기 때문에 (DFL 같은 경우 확률 분포를 내밷는다), classification과 bbox regression 둘 다 knowledge distillation이 가능하다