IT/AI\ML

머신러닝에서의 IoU(Intersection over Union)란?

개발자 두더지 2021. 7. 19. 22:06
728x90

IoU란?


IoU는 Intersection over Union의 약어로 머신러닝의 물체검출 분야에서 2개의 영역이 "얼마나 겹쳐져 있는가"를 표시하는 지표이다.

 

 

물체 검출의 평가지표인 IoU


 IoU는 물체 검출 분야에서 평가지표로 사용된다. 여기서 물체 검출이란 "이미지"와 정답 라벨(어느 영역에 어떤 것이 있는가에 대한 정보)가 전달될 때, 이것을 얼마나 정확하게 검출하는가에 대한 문제이다. 

 정답 영역 및 예측 영역은 대부분 직사각형으로 하는 문제 설정이 많다.

 정답 영역과 예측 영역이 겹쳐진 부분이 클 수록 IoU의 값이 커진다. 예측 영역이 어긋나거나, 정답 영역내에서도 너무 작은 영역이 겹친다거나 정답 영역에 포함되어 있어도 너무 크면 IoU의 값이 낮아진다.

 즉, IoU의 값이 클수록 "물체가 잘 검출되고 있다"고 할 수 있다.

 

 

IoU의 값


 IoU의 최대값은 1이다 (정답 영역과 예측 영역이 완전히 일치하는 경우). 한편으로 IoU의 최소값은 0이다(정답 영역과 예측 영역이 완전 어긋나 있는 경우).

 IoU는 엄격한 평가지표이다. 동일한 정사각형을 비스듬히 아래와 같이 9분의 1 어긋나게 설정된 경우에도, IoU는  64/98로 0.65가 된다.

 1/9의 대각선 차이정도는 사람의 입장에서 볼 때 물체가 잘 검출이 되고 있다고 보여지지만, IoU이라는 평가지표로 보면 0.65정도가 된다.

 이렇듯, IoU이라는 평가지표는 꽤 엄격한 지표이다. 실제 아래와 같은 사례도 있다.

- 어떤 데이터 분석 대회에서는 "IoU가 0.8이상이면 올바르게 물체가 검출되고 있다고 본다"라는 규칙을 적용했지만 0.8이라는 값이 너무 엄격했으므로, 도중에 룰을 바꾸게 됐다.

 

 

IoU 계산 방법


x : 영역 중심의 x좌표

y : 영역 중심의 y좌표

w : 영역의 폭

h :  영역의 높이

 2개의 영역이 아래와 같이 주어져 있을 때,

 다음과 같이 작성하면,

[참고] xA,max(xA,min)는 A의 x 좌표의 최대값(최소값)을 의미한다.

 겹치는 부분의 조건은

또한 두 부분의 합친 영역은 다음과 같이 되므로, 

IoU를 구하는 식으로 정리하자면 아래와 같이 된다.


참고자료

https://qiita.com/shoku-pan/items/35eae224c59989957623

https://mathwords.net/iou

728x90