Logical Scribbles

[객체 탐지] Hard Negative Mining 이란? 본문

딥러닝/딥러닝 이론

[객체 탐지] Hard Negative Mining 이란?

KimJake 2023. 11. 20. 14:27

Object Detection task에서 bounding box를 뽑으면 수천 개를 뽑게 된다.

 

수천 개의 Bounding Box 안에 우리가 찾고자 하는 물체 혹은 객체가 있는 박스가 평균 수십 개 있다고 가정하면 나머지 박스들 즉, 물체를 포함하지 않는 박스들은 어떻게 해야할까? 이러한 방법은 문제가 있었는데 라벨이 붙은 물체와 그렇지 않은 background 물체의 수의 차이로 인해 제대로 된 학습 진행이 되지 않는다는 것이었다. 

 

즉, 하나의 물체에는 여러개의 bounding box가 나타나게 되는데 그 과정에서 비슷한 크기의 수많은 bounding box들도 생성이 되고, 그것들 중 배경과 객체의 구분을 잘 해야하는데 이것이 쉽지 않다는 것이다.

사람의 얼굴만을 탐지하기란 실제로 어렵다.

 

어떤 여행객들이 여행을 가서 사진을 찍었다고 해보자. 우리는 여행객의 얼굴을 탐지하고 싶다. 여행객이 찍은 사진 안에는 물론 여행객이 있을 것이다. 하지만 배경도 있을 것이고 주변의 자동차도 있을 수 있고 산도 있을 수 있고 강아지도 있을 수 있다.

 

이처럼 우리가 가진 데이터는 원하는 객체의 데이터가 background 데이터보다 월등히 적은 경우가 대부분이다. 이러한 상황에서 우리는 클래스 불균형을 겪게 된다. 따라서 이러한 이유 때문에 학습이 잘 되지않는 것을 방지하고자 'Hard Negative Mining'을 진행한다.

 

Hard Neagetive Mining을 직역해보면, '거짓이라고 보기 어려운 것을 마이닝하는 작업' 이다.

 

Hard Negative Mining은 모델이 오답을 낸, 즉 예측을 잘못한 어려운(hard) sample을 추출하는 방법다. 객체 탐지 모델에서 positive sample은 객체에 해당하는 영역이며, negative sample은 위에서 언급한 여행객 이외의 모든 것이다. 여기서 모델이 예측하기 어려운 sample은 주로 False Positive sample이다. False Positive sample이란 모델이 잘못하여 얼굴이 아닌 객체를 얼굴로 탐지한 샘플을 말한다. 이렇게 모델이 False Positive sample을 예측하기 어려운 이유는 객체 탐지 모델은 positive에 해당하는 객체의 영역만을 탐지하기 때문에, 배경을 잘못 예측한 False Negative sample은 object detection task에서 고려하지 않기 때문이다.

 

따라서 Hard Negative Mining을 사용하여 모델이 예측하기 어려운 sample을 추출한 후, 학습 데이터에 포함시켜 모델이 False Positive 오류에 강건해지도록 학습시킨다.

 

Hard Negative mining 이후 학습 된 모델