IOU : 모델이 예측한 결과와 실측 Box가 얼마나 정확하게 겹치는 가를 나타내는 지표
Detection 데이터 셋별로 IOU 임계값이 다르다.
Pascal voc는 0.5, MS COCO는 0.5 ~ 0.95 의 여러가지 경우를 두고 제출하도록 한다.
위 그림은 예시이다.
만약 Pascal voc 데이터 셋에서 왼쪽 2가지 경우만 Detecte 성공이고 나머지 3가지 경우는 실패이다.
import numpy as np
def compute_iou(cand_box, gt_box):
# Calculate intersection areas
x1 = np.maximum(cand_box[0], gt_box[0])
y1 = np.maximum(cand_box[1], gt_box[1])
x2 = np.minimum(cand_box[2], gt_box[2])
y2 = np.minimum(cand_box[3], gt_box[3])
#여기서 x, y의 크기 비교는 x는 오른쪽으로 갈수록 크고, y는 아래로 갈수록 크다.
intersection = np.maximum(x2 - x1, 0) * np.maximum(y2 - y1, 0) #넓이 구하기
cand_box_area = (cand_box[2] - cand_box[0]) * (cand_box[3] - cand_box[1])
gt_box_area = (gt_box[2] - gt_box[0]) * (gt_box[3] - gt_box[1])
union = cand_box_area + gt_box_area - intersection #교집합 제외 나머지 공간
iou = intersection / union
return iou
IOU의 threshold 값을 높게 잡으면 detection 성능이 올라갈 것이다.
하지만 detection 성능 평가에는 여러가지가 복합적으로 존재하기 때문에 적절한 값(0.5)을 사용한다.
728x90
반응형
LIST
'AI > 컴퓨터 비전' 카테고리의 다른 글
이미지 데이터 증강 (Data augmentation) (0) | 2023.10.10 |
---|---|
GoogleNet (InceptionNet) 정리해보기 (1) | 2023.10.10 |
NMS : 여러 Bounding Box 중 확실한 Box만 선택하는 기법 (0) | 2022.12.04 |
[Python, OpenCV 4로 배우는 컴퓨터 비전과 머신러닝] CH03 (0) | 2022.12.04 |
[Python, OpenCV 4로 배우는 컴퓨터 비전과 머신러닝] CH02 (0) | 2022.11.25 |