본문 바로가기

딥러닝

밑바닥부터 시작하는 딥러닝 8장 -2. 사물검출(object detection)

출처: 밑바닥부터 시작하는 딥러닝 p.279

 

티스토리 참고 출처

https://techblog-history-younghunjo1.tistory.com/m/178

https://velog.io/@cha-suyeon/딥러닝-Object-Detection-개념과-용어-정리   

목차 

1. object detection (사물 검출) 이란 

2.object detection의 과정

3. R-CNN 

1. object detection (사물 검출) 이란 

Object Detection = 여러가지 물체에 대한 Classification + 물체의 위치정보를 파악하는 Localization

 

object detection 이란 여러 물체에 대해 어떤 물체인지 분류하는 Classification 문제와 그 물체가 어디 있는지 박스(Bounding Box)를 통해 위치 정보를 나타내는 Localization 문제를 둘 다 해내야 하는 분야이다.

 

Localization이란 이미지 내에 하나의 object가 있을 때 그 object의 위치를 특정하는 것인데, Detection은 여러 개의 object가 존재할 때 각 object의 존재 여부를 파악하고 위치를 특정하여 classification을 수행하는 것입니다.

다수의 사물이 존재하는 상황에서 각 사물의 위치와 클래스를 찾는 작업

2. object detection 의 과정 

object detection 의 구조는

1. 입력이미지  --> 2.후보 영역 추출 ---> 3.CNN 특징 계산 ---> 4. 영역 분류 

로 이루어진다.

 

object detection 의 주요 용어 

[1] region proposal

 

[1]-1 .Sliding Window

사진에서 물체가 있을 법한 위치를 찾는 작업

물체가 있을 법한 위치를 찾기 위해서 다양한 형태의 윈도우(window)를 슬라이딩해서 물체가 존재하는지 확인하는 작업

슬라이딩 윈도우는 치명적인 단점은 객체가 없는 지역도 슬라이딩을 무조건 하기 때문에 슬라이딩 윈도우를 하는 데 시간이 많이 걸릴 뿐더러 객체를 잘 탐지할 확률도 낮아지게 된다.

[1]-2. selective search

인접한 영역끼리 유사성을 측정해서 큰 영역으로 차례대로 통합해나가는 작업

슬라이딩 윈도우 기법의 한계점을 극복하기 위해 제안된 방법이 Selective Search 방법.

Selective Search란, 일종의 알고리즘으로 이미지 픽셀의 컬러, 무늬, 크기, 형태에 따라 유사한 Region을 계층적 그룹핑 방법으로 계산하는 방식

즉, 객체가 들어있을 만한 여러개의 바운딩 박스를 만들고 반복적으로 Selective Search 알고리즘을 이용해 최적의 바운딩 박스를 선정해 Region Proposal을 해주는 것이다.

[2] IOU(intersection over union)

바운딩한 사물이 특정 사물이 맞다라는 평가지표 [Detection 성능 평가]

두 바운딩 박스가 겹치는 비율

실제 객체가 있는 바운딩 박스(Ground Truth)와 모델이 예측한 바운딩 박스(Predicted)가 포함하고 있는 영역을 계산

IoU값은 비율이기 때문에 0과 1사이의 값으로 나오게 된다. 값이 1로 갈수록 객체 탐지 모델이 매우 잘 예측한 것 을 의미한다.

 

[3] NMS(Non maxinum Suppression)

NMS는 겹친 박스들이 있을 경우 가장 확률이 높은 박스를 기준으로 기준이 되는 IoU 이상인 것들을 없앱니다.

NMS는 여러개의 바운딩 박스들 중 객체의 Confidence Score가 가장 높은 박스를 선정하고 이 Score보다 낮은 박스들은 삭제한다. 그리고 Score가 가장 높은 박스와 다른 박스들 간의 IoU를 계산 하고 미리 지정한 IoU 임곗값 보다 큰 다른 박스들을 모두 제거

 

3. 사물 검출 모델 중 하나인 R-CNN(Regions with CNN features)

 

Detection 모델들 중 먼저 R-CNN은 대표적인 two-stage 방법들이다.

R-CNN은 object가 있을 법한 후보 영역을 뽑아내는 "Region proposal" 알고리즘과 후보 영역을 분류하는 CNN을 사용한다.

이때 Proposal을 만들어내는 데에는 Selective search라는 비 신경망 알고리즘이 사용된다.이후에 후보 영역의 Classification과 Bounding Box의 regression을 위해 신경망을 사용한다.