* 공부한 내용 뇌피셜로 정리 *
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합니다. selective search 이후의 code입니다.

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

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

iou계산은 다음과 진행됩니다.
교차 영역 /예측영역 + 실제 영역 - 교차 영역
교차영역은 왼쪽 위 꼭지점, 아래 꼭지점을 구하여 넓이를 구할 수 있습니다. 이때 만약 교차하지 않으면 겹치는 영역은 0으로 됩니다.

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

iou값을 시각화를 진행 하여 보겠습니다.
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
'AI 공부 한 것' 카테고리의 다른 글
[논문 리뷰] AlexNet(2012) 논문리뷰 (ImageNet Classification with Deep ConvolutionalNeural Networks) (0) | 2022.01.11 |
---|---|
[컴퓨터 비전] object detection 성능 평가 방법 (mAP, Precision, Recall) (3) | 2021.12.29 |
[컴퓨터 비전] NMS (Non Max Suppression) (0) | 2021.12.28 |
[컴퓨터 비전] Sliding window 대한 내용, Selective Search 사용 및 시각화 (0) | 2021.12.24 |
[12/22] 인공지능 공부한내용 (0) | 2021.12.22 |