컴퓨터비전

[CV] Objectness에 대해서 이해하기

성민석 2024. 2. 14. 15:17

안녕하세요 오랜만에 다시 돌아왔습니다.

 

Object detection와 관련된 연구를 계속 하다보면, 가장 궁금한 점 중 하나는 과연 모델이 진짜 잘 찾고 있는지에 대한 부분이라고 생각합니다. Object detection는 (1) Object를 찾는 과정과 (2) Object가 무엇인지 분류하는 과정으로 크게 나뉘어져 있기 때문에, Classification과 달리 SHAP이나 LIME 그리고 CAM이나 GradCAM과 같은 XAI 방법들을 적용하여 모델의 내부를 살펴보기 모호한 부분이 있습니다. 

 

일단 Object detection에서 Object를 찾는 과정을 조금 더 깊이 알아보기 위해서는 기본적으로 Object가 어디 있는지 아는 과정부터 이해해야 합니다. 이러한 과정은 보통 Region proposal 이라고 합니다. 딥러닝이 나오기 전에도 Region proposal  과 관련된 수많은 방법론이 있었습니다. 그리고 그런 방법들 중 Sliding window이나 Selective search와 같은 방법들도 있었습니다. 하지만 그런 고전적인 방법은 이제 사용하지 않고 딥러닝 기반으로 방법이 바뀌었습니다. 다만 해당 포스팅에서는 딥러닝보다는 보다 일반적인 개념에 대해서 설명하기 때문에 딥러닝과 관련된 내용은 생략하도록 하겠습니다.

 

Figure 1. 고전적인 Region proposal 방법: Sliding window (좌) 와 Selective search (우)

 

이러한 Region proposal 과정을 통해서 모델은 주어진 이미지 속에서 일단 물체가 있는지 없는지를 판단할 수 있어야 합니다. 우리는 본 포스팅에서는 Objectness라고 부르겠습니다. 조금 더 직관적으론 물체의 존재 정도(A measure of the probability that an object exists in a proposed region of interest)로 해석할 수 있을 것 같습니다 [1]. Objectness가 무엇인지 여전히 감이 오질 않기 때문에 예시를 좀 보면서 이해를 해볼까요?

 

Figure 2. 각 bounding box별로 Objectness가 같을까요?

 

Figure 2를 보시죠. 만약 여러분의 모델이 우산이라는 Object를 찾다고 가정해봅시다. 빨간 박스의 경우는 Objectness가 너무 떨어진 상태이고, 파란색 박스는 Objectness가 다소 떨어지거나 모호하다고 볼 수 있을 것 같습니다. 우리가 모델로부터 원하는 Objectness는 바로 초록색 박스 정도일 것 입니다.

 

그렇다면 도대체 Objectness를 어떻게 측정할 수 있을까요? Alexe (2012)에 따르면, 4가지 요소에 의해서 Objectness는 구성되어 있다고 합니다 [2]. 각 구성요소에 대해서 간단하게 알아보시죠.

 

(1) Multi-scale Saliency (MS): 이건 너무나 당연한 요소 중 하나인데요. 바로 비율(Scale)입니다. 이미지를 확대해서 보느냐 축소해서 보느냐에 따라서 Objectness가 달라질 수 있다는 주장입니다. 실제로 고해상도일수록 더욱 Objectness가 높아지겠죠.

 

Alexe (2012)에서의 MS

 

(2) Color Contrast (CC): 다음으로는 Color Contrast 입니다. 이는 Bounding box에서 Object가 주변(Surrounding area)과 다르게 얼마나 눈에 띄는지를 측정하는 요소라고 생각됩니다.

Alexe (2012)에서의 CC

 

(3) Edge Density (ED): 이 값은 물체가 있다고 예상되는 Closed Bounding box 경계 근처의 Edge의 양을 측정한 값입니다. 논문에서 주장하길 Objectness는 Bounding box 내에서 훨씬 Edge들이 많이 있다고 합니다. 다만 아래 예시에서 보트와 같이 항상 그런건 아니고 그런 경향성이 있어보입니다. 이를 구현한 코드를 보고 싶다면 여기를 통해서 확인해보세요.

 

Alexe (2012)에서의 ED

 

(4) Superpixel Straddling (SS): Superpixel을 이용하면 주어진 이미지의 여러 부분을 segment할 수 있습니다. Superpixel에서 가장 중요한게 Object의 Boundary를 잘 유지해주는 부분인데요. 일반적으로 이러한 부분이 잘 유지되진 않습니다. 그래서 논문의 저자들은 이러한 Superpixel을 모두 포함할수록 Objectness가 클 수 있게 만들었습니다. 다만 아래 그림과 같이 크기가 작은 object들은 제대로 동작하지 않을 수 있습니다.

Alexe (2012)에서의 SS

 

여기까지 과거 전통적인 컴퓨터 비전에서 Objectness를 구성하는 4가지 요소를 각각 확인해보고 각 구성요소를 가볍게 살펴봤는데요. 글을 마무리하기 전에 딥러닝에서는 어떻게 Objectness를 판단하는지 빠르게 살펴보겠습니다. 결론적으로 말씀드리면, Model-agnostic한 방법 중 하나인 EigenCAM을 이용하여 모델의 Backbone을 시각화하는 방법[4]을 쓰거나 혹은 CNN의 Weights[5]나 Transformer Decoder의 Attention map을 직접적으로 시각화하는 방법을 사용합니다. 자세한 내용은 추후 포스팅으로 이어서 해보겠습니다.

 

EigenCAM을 통해서 YOLO 모델의 Saliency map을 추출

 

Faster R-CNN 모델의 내부를 시각화
주어진 이미지와 프롬프트에 따라서 모델이 어디에 관심 있어하는지를 시각화

 

References

[1] https://medium.com/@zhao.nathan/understanding-objectness-in-object-detection-models-5d8c9d032488

 

Understanding Objectness in Object Detection Models

In this article, the basics of Object Detection Models and Objectness.

medium.com

 

[2] http://calvin-vision.net/wp-content/uploads/Publications/alexe12pami.pdf

 

[3] https://cv-tricks.com/opencv-dnn/edge-detection-hed/

 

Deep Learning based Edge Detection in OpenCV - CV-Tricks.com

In this post, we will learn how to use deep learning based edge detection in OpenCV which is more accurate than the widely popular canny edge detector.

cv-tricks.com

 

[4] https://github.com/rigvedrs/YOLO-V8-CAM

 

GitHub - rigvedrs/YOLO-V8-CAM: Wanna know what your model sees? Here's a package for applying EigenCAM on the new YOLO V8 model

Wanna know what your model sees? Here's a package for applying EigenCAM on the new YOLO V8 model - rigvedrs/YOLO-V8-CAM

github.com

 

[5] https://github.com/Crescent-Saturn/Objectness-Heat-Map

 

GitHub - Crescent-Saturn/Objectness-Heat-Map: Obtain the objectness heat maps for a given image by Faster-RCNN from torchvision

Obtain the objectness heat maps for a given image by Faster-RCNN from torchvision - Crescent-Saturn/Objectness-Heat-Map

github.com

 


 

본 블로그의 모든 내용은 저자의 개인적인 견해와 학습 과정에 기반을 두고 있으며, 전문적 조언이나 권위 있는 출처의 대체물로 해석되어서는 안 됩니다. 본문에 담긴 의견과 분석은 저의 개인적인 생각을 반영한 것이므로, 이를 사실의 전부로 받아들이거나 학술적 연구, 법적 자문, 전문적 결정의 근거로 사용하는 것에는 적합하지 않습니다.

이에 따라, 본 블로그의 내용을 기반으로 한 어떠한 결정이나 조치를 취하기 전에는 추가적인 검증과 전문가의 조언을 구하는 것을 강력히 권장합니다. 저자는 본 블로그의 내용이 사용되어 발생할 수 있는 어떠한 직접적, 간접적 결과에 대해서도 책임을 지지 않습니다.

또한, 본 블로그의 내용은 저작권법에 의해 보호받고 있으며, 저자의 명시적인 사전 동의 없이 어떤 형태로든 복제, 배포, 전송, 변형, 상업적 사용을 금합니다. 본 블로그의 일부 내용을 인용하거나 참조할 경우, 출처를 명확히 밝혀주시기 바랍니다.

 

 

728x90
반응형