728x90
SMALL
YOLO 객체 검출에서의 중요한 IoU
IoU 는 Intersection of Union 의 줄임말
객체 검출은 객체의 주위에 정사각형으로 검출
그 정사각형을 Bounding Box 라고 한다
객체 검출을 예측하는 바운딩 박스와 실제 바운딩박스로 나뉜다
객체를 검출할떄 예측,실제 바운딩박스에 겹치는 부분을 union 이라고 한다
그리고 그리고 그 바깥부분들을 intersection 이라고 한다
우선 intersection 을 구해야한다
구하는 법은 간단하다
공통적인 바운딩박스의 너비에 4개의 점을 구해야한다
시계반대 방향으로 꼭짓점들이 a.b.c.d 라고하자
그러면 (b - a) * (d - a) 로 intersection을 구해낸다
그리고 intersection을 구했다면 Union을 구해야한다
Union을 구하기 위해서는
예측 바운딩박스 와 실제 바운딩 박스를 더하고 intersection의 너비로 나누어 주면 Union을 구할수있다
마지막으로 가장 큰 핵심
IoU 를 구하려면
intersection 에서 union을 나누어주면 구할수있다
파이썬 코드로 개념들을 차례로 구현하면 이렇다
import numpy as np
def compute_iou(pred_box, gt_box):
x1 = np.maximum(pred_box[0],gt_box[0])
y1 = np.maaxumum(pred_box[1], gt_box[1])
x2 = np.maximum(pred_box[2],gt_box[2])
y2 = np.maaxumum(pred_box[3], gt_box[3])
intersection = np.maximum(x2-x1,0) * np.maximum(y2-y1,0)
pred_box_area = (pred_box[2]-pred_box[0]) * (pred_box[3]-pred_box[1])
gt_box_area = (gt_box[2]-gt_box[0]) * (gt_box[3]-gt_box[1])
union = pred_box + gt_box - intersection_area
iou = intersection / union
return iou
https://driip.me/34deae03-7a40-44ee-849d-756e6e852f49
IoU(Intersection of Union), NMS(Non-Maximum Suppression)
Table of Contents
driip.me
전현성님의 정리를 참고하여 블로그로 작성했습니다
728x90
LIST
'재밌게 인공지능을 공부해보자!' 카테고리의 다른 글
딥러닝모델 단순 퍼셉트론 2 ( 학습과정과 코드구현) C,C++ (0) | 2022.03.05 |
---|---|
딥러닝모델 단순 퍼셉트론 (C/C++) (0) | 2022.03.01 |