* 공부한 내용 뇌피셜로 정리 *

Intersection over union은 model이 예측한 결과와 ground truth 실측 box가 얼마나 겹치는 가에 대한 지표 입니다. 

간단하게 그림과 같이 생각 할 수 있습니다. 겹치는 영역 / 전체 box 영역 입니다.

값의 범위는 0~1로 1에 가까울수록 예측을 잘한 것 이라는 것을 알 수 있습니다.

IOU는 코드로 간단하게 구현이 가능한데 다음과 같이 구현 하였습니다.

IOU를 간단하게 구현하고 예를 들기 위해 저번 포스팅에서 실습한 Selective Search를 활용 하였습니다.

 

https://inha-kim.tistory.com/37?category=963044 

 

[컴퓨터 비전] Sliding window 대한 내용, Selective Search 사용 및 시각화

* 공부한 내용 뇌피셜로 정리 * 컴퓨터 비전에서 Sliding Windows방식은 Object Detecion에 아주 초기 기법으로 사용된 방식이다. 사용방법은 다양한 크기의 Windows(보통 사각형 모양)을 이미지에서 이동시

inha-kim.tistory.com

내용이 궁금한 분은 들어가 보세요.

필수 패키지 import

필수 패키지 import합니다. selective search 이후의 code입니다.

 

opencv로 데이터 시각화

ground truth영역을 임의로 정한 뒤에 ground truth box는 red로, selective search 로 구한 영역을 초록색으로 표현 

하였습니다.

출력결과 

코드 실행 결과는 다음과 같습니다. 빨간색이 실제 영역, 나머지는 예측 영역.

iou를 계산하는 코드

iou계산은 다음과 진행됩니다.

교차 영역 /예측영역 + 실제 영역 - 교차 영역 

교차영역은 왼쪽 위 꼭지점, 아래 꼭지점을 구하여 넓이를 구할 수 있습니다. 이때 만약 교차하지 않으면 겹치는 영역은 0으로 됩니다.

iou를 출력하는 코드

iou를 출력하는 코드는 enumerate를 이용하여 index와 cand_box로 rects를 전달합니다.

rects에서 전달받은 좌표값을 살짝 가공 해야하는데 selective search에서 나온 값은 왼쪽 위 꼭지점 + 너비와 높이 값 이므로 오른쪽 아래의 좌표는 각각 cand_box[2]와 cand_box[3]에 cand_box[0,1] 값을 더해서 compute_iou에 전달합니다.

계산된 iou

iou값을 시각화를 진행 하여 보겠습니다.

iou가 0.5 이상인 값들만 시각화를 진행 하였습니다.

iou 0.5이상에 박스 추가

다음과 같이 iou가 0.5이상일 경우 rectangle과 putText를 추가 하였습니다.

출력결과

전체 코드는 다음과 같이 코랩에 있습니다.

https://colab.research.google.com/drive/1HtS-UsIrCRkn3gQE4xSVjcHV8en4WHyX?usp=sharing 

 

IOU.ipynb

Colaboratory notebook

colab.research.google.com

 

+ Recent posts