공돌하우스

Distance-IOU Loss 본문

AI

Distance-IOU Loss

전자둥이 2021. 7. 25. 21:39

일반적으로 현재 존재하는 object detection 방법에는 3가지로 분류할 수 있습니다.

 - one-stage detection : YOLO series, SSD etc...

 - two-stage detection : R-CNN series etc..

 - multi-stage detection : Cascade R-CNN 

 

이렇게 다른 detection frameworks를 가지고 있지만 bounding box regression 인 target의 위치를 예측하는 사각형 박스는 중요한 단계로 취급됩니다. 현재 가장 대중적으로 사용되고 있는 boundign box regression 방법은 IOU방법입니다. 

B^gt는 정답결과이고 , B는 예측 결과입니다.

보통 L1-norm이나 L2-norm loss를 B^gt와 B의 distance loss을 측정할 때 사용되어왔습니다. 하지만 2019년에 이는 적절한 방법이 아니라며 IOU loss가 등장하기도 했습니다.

 하지만 IOU loss역시 단점이 존재합니다. bounding box 간의 overlap이 없으면 동작하지 않는다는 점입니다. 따라서 overlap이 있을 시에만 loss를 측정하기에 non-overlapping cases의 경우 어떠한 기울기의 움직이도 발생하지 않습니다.

 

이를 극복하기 위해 GIOU-loss가 등장합니다.

GIOU-loss

GIOU loss는 B, B^gt를 모두 커버하는 가장 작은 박스 C를 이용하게 됩니다. 따라서 예측 박스는 타깃 박스와 겹치지 않더라도 C 때문에 loss을 줄일 수 있는 방향으로 갈 수 있게 됩니다.

하지만 GIOU loss 또한 다른 단점을 갖고 있습니다. 분명 IOU-loss에 있던 단점인 non-overlapping cases일 경우 gradient vanishing 문제는 해결이 되지만 수렴 속도가 느리고 부정확한 바운딩 박스를 예측하고 예측 박스가 타깃 박스를 포함할 수 있을 정도로 커지면 IOU항과 똑같이 동작을 똑같이 하게 된다는 단점이 있습니다.

위 그림을 보시면 예측 박스가 타깃 박스를 포함할 수 있을 정도로 커지면 IOU항과 똑같이 동작하는 모습을 확인할 수 있습니다. (즉 IOU만 고려하고 위치를 전혀 고려하지 않음을 확인할 수 있습니다.) 반면 DIOU Loss는 중심점 좌표를 고려하므로 overlap 된 경우에 두 바운딩 박스의 위치까지 고려를 합니다.

검은박스:anchor 초록박스:target 검정박스 predicted box 

위 그림은 iteration에 따른 GIOU Loss의 바운딩 박스 예측 과정입니다. 매 반복이 진행하면서 target과의 overlap을 위해 predicted box의 영역이 넓어집니다. 그리고 target과 overlap이 된 이후부터는 IOU를 높이기 위해 predicted box의 크기를 줄여 나가는 모습을 확인할 수 있습니다.

반면에 DIOU Loss는 IOU와 중심점 좌표를 함께 고려하므로 predicted box가 서서히 target으로 이동하는 것을 확인 할 수 있으며 GIOU LOss보다 훨씬 더 적은 iteration으로 수렴하는 모습을 보여줍니다.

 

이제 본격으로 DIOU LOSS와 CIOU LOSS에 대해서 알아보겠습니다.

DIOU Loss(Distance - IOU Loss)

로우 : Euclidean distance, c: diagonal length fo the smallest enclosing box convering the two boxes

IOU Loss에서 중심점을 고려하는 페널티 term을 추가한 식입니다. 

위 그림에서 설명하듯이 DIOU Loss는 중심점을 고려한다는 사실을 알 수 있습니다.

DIOU Loss 특징

IOU Loss와 GIOU Loss의 장점을 모두 갖고 있습니다. non overlapping 된 경우에 두 박스의 거리를 최소화하는 방향으로 제공하므로 GIOU Loss보다 빠르게 수렴하는 장점이 있습니다.

 

CIou Loss ( complete IOU Loss)

DIou loss에서 aspect ratios을 추가적으로 고려한 게 CIou Loss라고 생각하시면 됩니다.

즉 IOU, Central point distance, aspect ratio 세 가지 요소를 함께 고려합니다. 

V는 aspect ratio의 일치성을 측정하고, 알파는 non-overlapping case와 overlapping case의 균형을 조절합니다. 특히 non-overlapping 경우에 높은 우선순위를 부여하는 역할을 합니다.

CIOU Loss의 gradient는 위의 수식과 같습니다.

h와 w가 [0, 1] 범위에 있는 경우에 w^2 + h^2의 값이 매우 작아져 gradient explosion 문제가 발생됩니다. 따라서 저자의 경우에는 w^2 + h^2를 1로 대체했다고 합니다.

 

Non-Maximum Suppression using DIOU

si : classification score 입실론: NMS threshold

NMS을 할 때 IOU뿐만 아니라 두 박스의 중심점 거리도 동시에 고려하기 때문에 매우 유연한 NMS라고 할 수 있습니다.

그림과 그래프를 결과를 보면 아시겠지만 타깃박스가 가깝게 붙어 있는 경우, NMS을 진행하면 supression이 되는 물체들이 많아지는 방면, DOIU-NMS를 사용한다면 타겟 박스의 중심점도 고려하기 때문에 타깃 박스끼리 겹쳐져 있는 경우에 robust 하다는 장점이 있습니다. 

 

Experimental Results

YOLOV3 on PASCAL VOC

SSD on PASCAL VOC

FASTER R-CNN on MS COCO




'AI' 카테고리의 다른 글

[딥러닝]SSD모델 default anchor box 그려보기  (0) 2021.09.03
자연어 처리 중 wordnet  (0) 2021.06.20
[딥러닝] Activation Function 소개  (0) 2021.06.04
ResNet skip-connection  (0) 2021.05.30