2020. 12. 23. 14:18ㆍComputer vision ღ'ᴗ'ღ
※ 본 글은 <딥러닝 컴퓨터비전 완벽가이드> 강의 및 여러 자료를 참고하여 쓰여진 글입니다. ※
github: github.com/chaeyeongyoon/ComputerVision_Study
IOU
IOU(Intersection over Union)는 모델이 예측한 결과와 실측 (Ground Truth) box가 얼마나 정확하게 겹치는 가를 나타냅니다. object detection 성능평가 지표 중 하나입니다.
Object Detection에선 개별 Object대한 검출 성공 여부를 IOU로 결정합니다. 일반적으로 0.5이상이면 예측 성공으로 인정합니다(PASCAL VOC Challenge 기준)
간단히 IOU시각화 코드를 짜보겠습니다. 자세한 코드는 글 상단의 제 깃허브에서 보실 수 있습니다.
import numpy as np
def compute_iou(cand_box, gt_box): # each box's [left, top, right, bottom]
# 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])
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
NMS
NMS는 Detected된 object의 Bounding box 중 비슷한 위치의 box를 제거하고 가장 적합한 box를 선택하는 기법입니다.
Object Detection은 object를 놓치면 안되기 때문에 object가 있을만한 위치에 많은 detection을 수행하는 경향이 강하기 때문에
이렇게 비슷한 위치에 여러 box가 생길 수 있기 때문입니다.
-수행로직
1. detected bounding box별로 특적 confidence Threshold 이해 bounding box 제거 ( 보통 confidence < 0.5 )
2. 가장 높은 confidence score가진 box순으로 내림차순 정렬한 후
높은 confidence score 갖는 box와 겹치는 다른 box를 모두 조사해 IOU가 특정 threshold( 보통 IOU Threshold > 0.4 ) 이상인 box를 모두 제거하는 과정을 모든 box에 순차적으로 적용합니다.
3. 남아있는 box만 선택합니다.
confidence score은 높고 IOU Threshold는 낮을수록 많은 Box가 제거됩니다.
※ confidence(신뢰구간)
: 모수가 실제로 포함될 것으로 예측되는 범위입니다. (최소~최대)
confidence level = 신뢰수준으로, 신뢰구간에 모집단 실제 평균값이 포함될 확률입니다. 보통 95%로 사용됩니다.
mAP(mean Average Precision)
object detection 성능평가 지표 중 하나로, 실제 Object 가 detected된 Recall변화에 따른 Precision값을 평균한 성능 수치 입니다.
왼쪽의 그래프를 보면 YOLO가 mAP로 판단했을 때 성능은 좀 낮을지라도 속도가 아주 빠르고, RetinaNet은 성능은 아주 높지만 상대적으로 속도가 느립니다.
AP(Average Precision)계산
그림과 같이 Recall-Precision그래프를 연결해 그 밑 영역의 너비가 AP입니다.
개별(여기선 11개) Recall포인트 별 최대 Precision의 평균값을 구하는 것입니다.
AP는 한 오브젝트 대한 성능수치이고,
mAP는 여러 오브젝트들의 AP를 평균한 값입니다.
recall, precision도 성능평가에 사용됩니다. 이 두 지표에 대해서는 머신러닝 완벽가이드 카테고리에서 작성하였습니다.
confidence 임계값과 recall, precision은 관련이 있습니다.
confidence가 낮아지면 더 많은 예측 bounding box를 만들게 되어 precision은 낮아지고, recall은 높아집니다
confidence가 높아지면 더 신중하게 예측 bounding box를 만들게 되어 precision은 높아지고, recall은 낮아집니다
'Computer vision ღ'ᴗ'ღ' 카테고리의 다른 글
R-CNN(Regions with CNN) (0) | 2021.01.03 |
---|---|
COCO dataset 다루기 (0) | 2020.12.26 |
주요 dataset 및 파이썬 이미지 라이브러리 (0) | 2020.12.23 |
Localization / Detection / Segmentation (0) | 2020.12.23 |
Object Detection 개요 (0) | 2020.12.23 |