Object detection 에서 사용되는 IoU (Intersection over Union) 구하는 함수, 좌표상에서 계산 과정 그림 설명
Object detection 모델을 사용할 때는 정답 박스와 예측된 박스가 얼마나 일치하는지 평가하는 지표가 필요합니다. 이 때, IoU (Intersection over Union) 값이 사용될 수 있으며, 수식적으로 표현하면 아래와 같이 쓸 수 있습니다. $$$IoU = \dfrac{\text{두 박스의 교집합 부분 넓이값}}{\text{두 박스의 합집합 부분 넓이값}}$$$ 아래 함수는 두개의 박스를 입력으로 받아, 두 박스의 IoU 값을 계산 후 반환하는 함수입니다. 코드는 아래 Github 저장소에서 참고했습니다. https://github.com/1297rohit/RCNN/blob/master/RCNN.ipynb 함수 아래에는 실제 좌표상에서 IoU 를 구하기 위해 사용된 연산들을 참고사항으로 설명한 그림을 첨부했습니다. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 def get_iou(bb1, bb2): # 박스1, 박스2 를 입력으로 받음 assert bb1[ 'x1' ] < bb1[ 'x2' ] assert bb1[ 'y1' ] < bb1[ 'y2' ] assert bb2[ 'x1' ] < bb2[ 'x2' ] assert bb2[ 'y1' ] < bb2[ 'y2' ] # intersection (교집합) 박스의 {(x1=x_left,y1=y_top),...