[딥러닝] Object Detection

wh·2024년 9월 26일
post-thumbnail

Object Detection

Object Detection은 Computer Vision과 Image Processing와 관련된 컴퓨터 기술이다. 이미지 혹은 영상에서 특정한 객체, 예를 들면 동물, 인간, 자도차 등을 감지할 수 있다.
Object Detecion에서는 Classification과 Localization이 함께 이루어진다. 즉, 이미지 상에서 객체의 Class를 분류하고 Bounding box를 통해 위치도 함께 특정하게 된다.


Object Detection Algorithms

Region Proposal

Region Proposal은 객체가 있을 만한 영역들의 후보군들을 여러 개 추출해주는 것을 의미한다. 객체가 있을법한 픽셀의 영역들을 대거 추출하여 추천해주는 방식인데, 크게 3가지가 있다.



(1) Sliding Window
특정한 모양의 Window가 이미지 왼쪽 상단에서 오른쪽 하단으로 점진적으로 이동하며 객체가 있을만한 Region을 Proposal해주는 방식이다.
객체가 있지 않은 부분들도 슬라이딩을 하기 때문에 시간이 많이 걸리고, 또한 객체 탐지 능력도 떨어지는 편이다.



(2) Selective Search
이미지 픽셀의 컬러, 무늬, 크기, 형태 등에 따라 유사한 영역을 계층적으로 그룹핑하여 계산하는 방식이다.
객체가 들어있을 만한 여러 개의 Bounding Box들을 만들고 반복적으로 Selective Search 방식을 이용해 최적의 Bounding Box를 선정해 Region Proposal을 해준다.
초기에 픽셀 개별로 Segmentation된 부분을 유사도에 따라 Segmentation 그룹핑을 계속 반복하게 된다.



(3) RPN(Region Proposal Network)
RPN은 학습 가능한 Network로, Convolutional Neural Network를 직접 사용하는 방식이다. 이미지의 특징들을 CNN을 통해 추출하고, 추출된 특징들을 기반으로 특정 영역에 객체가 있을 확률과 해당 영역의 경계를 예측한다.
즉, CNN을 사용하여 후보 영역들을 직접 생성하고, 이러한 후보 영역을 Object Detection 및 Classification 단계로 넘긴다.


A. RPN - Feature Extraction/Mapping

이 모듈에선 추출된 특징을 통해 물체의 유형을 분류하는 과정이 이루어진다. 특징 추출을 위해 Pretrained model이 포함된다. Pretrained model은 일반화 성능이 좋아 대부분 물체의 특징을 잘 추출할 수 있다.


B. RPN - Region Proposal

이 부분에선 model이 이미지를 관찰하고 추가 분석이 필요한 Region of Interest(관심 영역)을 제안하는 과정이 이루어진다. Region of Interest는 모델이 이미지의 해당 위치에 높은 Objectness score로 물체가 존재한다고 판단한 영역을 의미한다.
모델은 각각의 물체의 Objectness score가 매겨진 많은 수의 Box 정보를 출력한다.

많은 Box를 그린 후 각 Box 별로 Score를 계산하여 작은 Score를 가진 Box는 제거하고, 높은 Score를 가진 Box는 다음 Step으로 넘어가게 된다.


C. RPN - Prediction

이 단계에서는 물체를 포함했을 가능성이 높다고 판단된 모든 영역을 분석하여 각 영역마다 Bounding Box와 Class를 예측하게 된다.
Bounding Box Prediction: 물체를 포함하는 Box의 좌표(x, y, w, h)를 예측
Class Prediction: 해당 영역의 물체가 각 Class에 속할 확률을 예측



1-Stage Detector VS 2-Stage Detector

Region Proposal과 Classification을 한번에 하느냐 두번에 걸쳐서 하느냐에 따라서 1-Stage Detector와 2-Stage Detector로 나뉜다.
1-Stage Detector의 속도가 더 빠르다.




Issues in Region Proposal

위의 그림과 같은 개 이미지에서 모델이 객체는 잘 찾아냈으나, 객체 1개에 여러 개의 Bounding Box를 예측하게 되는 상황이 발생할 수도 있다.
이 상황은 이전 단계에서 개가 포함된 Region of Interest가 5개 제안되었기 때문에 개 주변 Bounding Box도 5개 표시된 상황이다. 객체의 위치와 종류가 정확하게 파악되었지만 이 상태는 이상적인 결과는 아니다.
여러 개의 Bounding Box를 객체를 가장 잘 포함하는 Box로 통합할 필요가 있다.



NMS(Non-Maximum Suppression)

Object Detection Algoritm의 문제점들 중 하나는 같은 물체를 여러 번 탐지한다는 것이며, 이 때문에 물체 하나에 Bounding Box 여러 개가 표시될 수 있다.
NMS는 객체 하나에 Bounding Box가 하나만 남도록 하는 방법이다.
이때 NMS 방법에서는 Confidence Score와 IoU를 이용한다.

Confidence Score는 특정 Bounding Box 안에 있는 객체가 어떤 물체의 Class일 확률을 뜻한다. 즉, 각 Bounding Box 안에 물체가 있을 확률을 의미한다.
Softmax를 통해 도출된 확률값 X IoU 를 통해 구할 수 있다.

IoU는 2개의 Bounding Box가 중첩되는 정도를 나타내는 값을 뜻하고, 0부터 1 사이의 값을 가지며 값이 클수록 좋다고 할 수 있다.
IoU에 대한 설명은 아래 포스팅에서 더 자세히 볼 수 있다.

https://velog.io/@aurorab86/딥러닝-mAP-Object-Detection-성능-평가-지표

아래에서는 NMS 기법이 어떻게 동작하는지 설명할 것이다.



만약 Confidence Score Threshold를 0.6, IoU Threshold를 0.5로 설정한다면,



우선 Confidence Score가 0.6보다 낮은 Box가 삭제된다.



그 후 가장 Confidence Score가 높은 Box(0.96)와 나머지 Box와의 IoU를 계산하고, 이 값이 기존에 설정한 IoU Threshold 값보다 큰 Box가 삭제된다.




Performance Evaluation Of Object Detection Model

Object Detection Model의 성능을 평가하는 대표적인 2가지는 아래와 같다.
mIoU: 모든 Class에 대한 각 Object에 그려지는 모든 Bounding Box의 IoU의 평균

mAP: 모든 Class에 대한 AP의 평균

아래 포스팅에서 더 자세히 확인할 수 있다.

https://velog.io/@aurorab86/딥러닝-mAP-Object-Detection-성능-평가-지표

profile
열심히 배우는 중! 😌

0개의 댓글