관리 메뉴

코딩하는 락커

[Week4] 경계 상자 예측하기 + 합집합 위의 교집합(IOU) 본문

[2020] 📚 DSC 겨울방학 스터디

[Week4] 경계 상자 예측하기 + 합집합 위의 교집합(IOU)

락꿈사 2020. 2. 7. 17:41

https://youtu.be/yo9S3eNtkXc

https://youtu.be/ANIzQ5G-XPE

앞선 포스팅에서 sliding window를 통해 input이미지의 object detection을 알아보았지만, 여전히 문제는 남아있다. 픽셀상의 문제로 bounding box가 object와 정확하게 일치하지 않는 것이다.

 

이 문제를 해결하기 위해서는 YOLO(You Only Look Once) 알고리즘을 사용해야 한다. 기본적인 원리는 image classiffy나 object localization과 동일하다.

 

우선 훈련 셋을 만들기 위해 output 레이블 y를 정의한다.  YOLO 알고리즘은 두 객체의 중간 점을 취한 다음, 중간 점을 포함하는 영역에 이 객체를 해당하는 것이다. 그렇게 되면 아래와 같은 사진의 결과 레이블이 나온다.  보라색 레이블은 object가 없는 영역의 결과 행렬이고 초록색 레이블은 object가 있는 영역의 결과 행렬이다.

 

그러면 그 결과로 8차원 결과 벡터를 갖게 되고, 예시 이미지는 3 x 3 그리드 셀 이미지이기 때문에 전체 볼륨은 3 x 3 이므로 target output은 3 x 3 x 8이 된다. 결과가 나왔으면 방향 전파를 사용하여 input값을 output 볼륨과 매핑하여 신경망을 훈련시고 이렇게 되면 신경망은 object에 있어 정확한 바운딩 박스를 도출할 수 있다.

 

간단하게 말하자면 객체의 중간 점을 포함하는 그리드 셀 하나에 해당 객체를 할당하는 방법으로 라벨링하면 정확한 object의 bounding box를 얻어낼 수 있다는 것이다.

 


그렇다면 물체 감지 알고리즘이 잘 동작하는지는 어떻게 알 수 있을까? 합집합 위의 교집합Intersection Over Union이라는 물체 감지 알고리즘 평가 함수를 통해 알 수 있다.

 

IOU함수란 참 bounding box와 결과 bounding box 사이의 교집합을 계산하는 함수이다. 위 이미지의 빨간색(참 bounding box) 박스와 보라색(결과 bounding box) 박스 사이의 노란색 공통 부분을 의미한다. 그리고 이것을 참 bounding box와 결과 bounding box의 초록색 합집합 부분으로 나누는 것이다. 그리고 그 결과값이 0.5보다 크면 맞다고 판단한다

 

그리고 만약 더 정확하게 맞추고 싶다면 0.5를 1이하의 더 높은 값으로 바꾸면 된다.

 

이렇게 IOU를 사용하면 object localization 알고리즘이 정확한지 평가할 수 있게 된다!

Comments