Object Detection의 변천사 논문 Review

리뷰 논문 https://arxiv.org/pdf/1905.05055.pdf

상위 논문은 Object Detection의 변천사를 정리한 논문으로 이 논문 안에서 변천사 별 굵직했던 다양한 Detection 기법들의 논문에 대한 개괄적인 설명이 담겨 있다.

Object Detection기법에 대해서 제대로 알기 위해서는 Recognition과 Object Detection의 차이에 대하여 구분할 줄 알아야 한다. Recognition은 Object를 구분하는 것이고, Object Detection은 Recognition보다 더 작은 범위로 Object의 존재 유무만 판단한다.

더 쉽게 설명하자면 Detection은 binary classification이고 Recognition은 Multi Category classification이다.

그림입니다.

원본 그림의 이름: CLP000070344312.bmp

원본 그림의 크기: 가로 837pixel, 세로 415pixel

위 논문의 그림에서 나온 중요한 Milestones중의 하나는 바로 One-stage detector와 Two-stage Detector를 구분하게 된 이유라고 생각된다.

이는 바로 Object Detection의 주요 구성 요소를 살펴보면 위의 Detector방식의 차이를 이해할 수 있다.

주요 구성 요소로는
1> 영역 추정 (Region Proposal),
2> Detection을 위한 Deep Learning 네트워크 구성
(Feature Extraction & Network Prediction),
3> Detection을 구성하는 기타 요소 (IoU, NMS, mAP, Anchor box)가 있다.

이 중에 위 둘의 차이를 가르게 된 것은 바로 Region Proposal과 Detection을 한방에 하느냐 두 단계를 거쳐서 하느냐에 따라 One-Stage Detector, Two-Stage Detector로 구분되어진다.

이미지에서 여러 개의 물체를 Classification함과 동시에 위치를 찾아야 하고, 크기가 서로 다르고, 생김새가 다양한 오브젝트가 섞여있는 이미지에서 이들을 Detection해야 하는 제약적인 환경 때문에 구분되게 되었다. 그럼 위의 두 Detector방법에 대한 장점과 단점을 살펴보기 전에 Traditional Detection Methods부터 살펴보자

Object Detection의 초기 기법으로는 Sliding Window방식을 사용하였다. Sliding Window방식이라 Window를 왼쪽 상단에서부터 오른쪽 하단으로 이동시키면서 Object를 Detection하는 방식이다.

다양한 형태의 Window를 각각 Sliding 시키는 방식이기 때문에 Window Scale은 고정하고 Scale을 변경한 여러 이미지를 사용하는 방식이다. 여기서 발생하는 문제는 Object가 없는 영역도 무조건 Sliding하여야 하며 여러 형태의 Window와 여러 Scale을 가진 이미지를 SCAN해서 검출해야 하므로 수행 시간이 오래 걸리고 검출 성능이 상대적으로 낮다는데 있다.

사실 이미지에서는 Object가 없는 영역 즉 배경이 대부분인 경우가 많다.

이는 Object Detection의 토대가 된다.

이제부터는 Two-Stage Detector의 변천사를 알아보자.

R-CNN(Regions with CNN)을 알기 위해서는 앞에서 설명하였던 Sliding Window 방식과 Region Proposal방식의 차이를 알아야 한다. 위에서 기술했듯이 Sliding Window 방식은 Object Map의 많은 영역을 차지하는 Background까지 처리한다는 단점이 있다. 하지만 Region Proposal방식은 Object가 있을 만한 위치를 Image Crop과 Warp을 적용하여 2000개의 Region 영역을 Proposal 한다. 하지만 이 앞단에 중요한 역할을 하는 것이 바로 Selective Search기법을 활용한다는 것이다.

Selective Search기법이란 Region Proposal의 대표 방법으로써 원본 이미지로부터 최초 Segmentation을 수행하고 이를 통해 후보 Object를 추출하는 기법이다. 이를 통해 빠른 Detection과 높은 Recall 예측 성능을 동시에 만족하는 Algorithm 기법이다. 이는 Color, 무늬(Texture), 크기(Size), 형태(Shape)에 따라 유사한 Region을 계층적 그룹핑 방법으로 계산하는 기법이다. Selective Search는 최초에는 Pixel Intensity 기반의 Graph-based Segment 기법에 따라 Over Segmentation을 수행한다.

(논문 출처 : http://www.huppelen.nl/publications/selectiveSearchDraft.pdf)

위 논문 출처를 기반으로 본 동작 방식은 아래와 같다.

1> 개별 Segment된 모든 부분들을 Bounding box로 만들어서 Region Proposal 리스트로 추가한다.

2> 컬러, 무늬(Texture), 크기(Size), 형태(Shape)에 따라 유사도가 비슷한 Segment들을 그룹핑한다.

3> 다시 1>번 Step Region Proposal 리스트 추가, 2>번 Step 유사도와 비슷한 Segment들 그룹핑을 계속 반복하면서 Region Proposal을 수행

이 방식을 토대로 Region Proposal을 수행한다. 하지만 여기에도 장점과 단점이 존재하였다. 장점으로는 동 시대의 다른 알고리즘 대비 높은 Detection 정확도를 보였다. 단점으로는 너무 느린 Detection시간과 복잡한 아키텍처 및 학습 프로세스를 가진 것 이었다 이는 하나의 Image 마다 selective search를 수행하여 2000개의 region 영역 이미지를 도출하고 개별 이미지별 2000개씩 생성된 region image를 CNN Featrue map을 생성하는데 발생하는 소요 시간 때문이었다. 그리고 구성되는 아키텍처 상에 독립된 구성 요소(selective search, CNN Feature Extractor 등)가 문제로 작동하였다. 이런 문제점을 토대로 향후 개선된 연구 방향성이 정립되었다. 이는 바로 Detection 수행 시간을 줄이고 복잡하게 분리된 개별 아키텍처를 통합할 수 있는 방안의 연구가 수행되었고 이를 토대로 등장한 것이 SPP(Spatial Pyramid Pooling) Net이다. SPP는 CNN상에서 Image Classification에서 서로 다른 이미지의 크기를 고정한 크기로 변환하는 기법이다. 이는 Spatial Pyramid Matching기법에 근간을 두었고 기존의 위치 특성을 고려하지 않는 Bag of Visual Words 문제를 해결하기 위해 제안된 기법이다. 기존 위치 특성을 고려하지 않는 문제를 분면 상에 Feature들의 특징을 추출하여 Histogram화하여 해결하였다. SPM을 이용하여 서로 다른 크기의 Feature Map을 균일한 Vector 크기로 표현함으로써 연산량을 줄일 수가 있다. 이는 RCNN에서 FAST RCNN으로 넘어가는 교두보 적인 역할을 했던 기법이다.

FAST RCNN에서는 위의 SPP Layer를 ROI Pooling Layer로 변경하고 ROI Proposal을 제외한 나머지 부분에 End-to-End Network Learning을 활용하였다.

더 나아가 Faster RCNN에서는 RPN + Fast RCNN을 결합한 형태의 Network Architecture를 선보였다. 변화하는 방향성을 보자면 GPU 사용으로 빠른 학습과 Inference를 보장하고 End to End Network 학습을 통해 통합된 Network Architecture를 통한 성능 보장을 목표로 변화하고 있다고 필자는 생각한다.

마지막으로 One-Stage Detector를 알아보자

앞에서 말한바와 같이 One-Stage Detector란 Region Proposal과 Detection을 한방에 수행하는 방식이다. SSD의 주요 구성요소를 살펴보면 Multi Scale Feature Layer와 Default (Anchor) Box의 결합으로 이뤄져 있다. 여기서 중요한 부분은 바로 Default (Anchor) Box의 존재이다. Anchor Box 기반이냐 아니냐에 따라서 어떤 것이 달라질까? 생각해 보면 Anchor Box를 활용한 Object Detection의 경우 개별 Anchor 박스가 어떤 정보를 가질 수 있게 학습되는지에 대한 과정을 살펴보면 된다.

Anchor 박스가 학습을 통해 얻는 정보는
1> Anchor 박스와 겹치는 Feature Map 영역의 오브젝트 클래스 분류,
2> Ground Truth BOX 위치를 예측할 수 있도록 수정된 좌표,
3> 개별 Anchor Box별로 Detection하려는 Object 유형, Softmax값, 수정 좌표값 이다.
SSD는 Training 시 Matching전략을 사용하는데, Matching 전략이란 Bounding Box와 겹치는 IOU가 0.5이상인 Default(Anchor) Box들의 Classification과 Bounding box Regression을 최적화하는 학습을 수행한다.

One-Stage Detector의 가장 큰 장점은 Detection 수행 속도의 획기적 개선이다.

이를 극명하게 보여주는 것이 바로 YOLO(You Only Look Once)의 출현이다. YOLO는 Version1에서 Faster R-CNN(VGG16)보다 3배 빠르다고 논문에 기술되어 있고, Version2에서는 수행시간과 성능을 개선하였고, V3에서는 수행시간은 조금 느려졌으나 성능이 대폭 개선되었다고 한다. 성능 개선에 대한 평가지표인 IOU의 Cut-Off Threshold값에 따라 성능 퍼포먼스가 달라진다는 것은 유의해야 할 점이다.

YOLO-V1의 경우 입력 이미지를 S*S Grid로 나누고 각 Grid의 Cell이 하나의 Object에 대한 Detection을 수행한다. 각 Grid Cell이 2개의 Bounding Box후보를 기반으로 Object의 Bounding Box를 예측한다. YOLO-V1의 가장 큰 문제는 Image Grid Cell에 Anchor가 없다는 것이고 하나의 Cell이 하나의 Object만 Detection한다는 데 있다. 그렇기 때문에 Detection 시간은 빠르나 Detection 성능이 떨어지고, 특히 작은 Object에 대한 성능이 나쁘다.

이를 개선한 것이 바로 YOLO-V2이다. YOLO V2의 특징은 서로 다른 크기의 이미지들로 네트워크를 학습하고 Darknet-19 Classification 모델을 채택했다는 데 있다.

YOLO-V2 Anchor Box로 1 Cell에서 여러 개의 Object Detection이 가능하고 SSD와 마찬가지로 1개의 Cell에서 여러 개의 Anchor를 통해 개별 Cell에서 여러 개의 Object Detection이 가능하다. K-Mean Clustering을 통해 데이터 세트의 이미지 크기와 Shape Ratio에 따른 5개의 군집화 분류를 하여 Anchor Box를 계산한다.

하지만 여전히 작은 Object들에 대한 Detection성능의 한계를 드러냈다.

그래서 등장한 것이 YOLO-V3이다. YOLO-V3의 특징은 Feature Pyramid Network와 유사한 기법을 적용하여 3개의 Feature Map Output에서 각각 3개의 서로 다른 크기와 Scale을 가진 anchor box로 Detection을 수행한다. Classification 단을 보다 높은 Classification을 가지는 Darknet-53을 사용하였고, Multi-Labes 예측을 위해 Softmax가 아닌 Sigmoid 기반의 Logistic classifier로 개별 Object의 Multi Labels를 예측했다.

One-Stage Detector의 발전사를 살펴보면 Detection 속도는 월등하게 우수하나 작은 이미지의 Detector의 문제와 Object에 대한 Classification문제를 해결하는 쪽으로 발전했다고 개인적으로 생각한다.

요즘에 추세로 보면 NLP모형의 Attention Mechanism이 이미지에서도 활용되고 Pretrain-Model을 활용한 Transfer Learning기법을 활용하여 범용적인 다양한 이미지 추론에 활용되는 것을 볼 수 있다.

앞으로 어떤 식으로 이미지 모델이 발전할지가 기대된다.

Tagged , ,

Leave a Reply

Your email address will not be published. Required fields are marked *