rueki

You Only Look Once : Unified, Real-Time Object Detection 본문

DL

You Only Look Once : Unified, Real-Time Object Detection

륵기 2021. 2. 28. 15:38
728x90
반응형

1. Abstract

 

Object Detection은 Bounding box에 대한 regression과 Class 확률을 나타내는 두 가지 문제로 나눌 수가 있느데, 지금까지는 모델 pipeline은 single network로 이루어져 왔다. YOLO는 unified architecture, 즉 통합된 구조로 속도적인 면에서 강점을 나타내고 있는데, 실시간으로 45 frame per sec 까지 가능하다고 한다.

기존의 다른 detection 모델과 비교하자면 localization error 가 있으나, 배경에 대한 false positive 비율은 줄어든다고 한다. (정답이 아닌데 정답이라고 하는 확률)

 

 

2. Introduction

YOLO는 사람의 눈과 같은 효과를 기대하는 모델이다. 사람은 무엇이든 보는 즉시 이것이 무엇인지 이해를 할 수 있기에, 이에 걸맞는 알고리즘을 만드는 것이 목표라고 한다.

RCNN에서 bounding box를 생성하고, 그 박스들을 분류하는 method인 region proposal을 사용하고, 이후에 중복 detection에 대해서 제거하고 점수를 다시 매기는 복잡한 과정을 거치는데 이는 각각의 시스템에 대해 훈련을 해야하기에 시간이 오래 걸릴뿐만 아니라, 최적화하기에도 어렵다고 한다.

 

YOLO의 특징이라 함은 Single Convolution network로 multiple bounding boxes를 예측하고, 각 클래스에 대한 확률을 나타낸다는 점과 전체 이미지에 대해 적용을 한다는 점이다. 추가적으로 아래와 같이 YOLO의 장점을 소개한다.

 

- YOLO는 다른 알고리즘보다 훨씬 빠르다.

: 복잡한 pipeline이 필요 없이 regression problem을 해결 할 수 있다.

 

- Yolo는 이미지 전체적으로 예측을 실행한다.

: train, test 하는 동안 전체 이미지에 대해 실행하기에 암시적으로 class들에 대한 정보를 인코딩는데, 그에 반해 Fast R-CNN은 더 큰 context를 볼 수 없기에 background patch들을 객체로 잘못 보는 경우가 있다.

 

- Yolo는 개체의 일반화된 표현을 학습한다.

 

 

2. Unified Detection

기존의 Detection에서 사용했던 각 components를 통합해서 하나의 neural network로 만들어서 이미지 전체에 대한 feature들로 bounding box를 예측한다. YOLO의 특징은 그래서 실시간으로 높은 Average precision을 유지한다는 것이다.

Input image에 대해 S by S grid를 적용하며, 각 grid cell은 bounding box와 confidence score를 예측한다. Confidence Score는 box에 대해서 얼마나 예측이 정확한지에 대해 반영한 점수라고 볼 수가 있다. grid cell 안에 없다면 score는 0이 나온다고 하는데, 예측되어진 box와 ground truth가 동일한 score를 가지는 것이 목표라고 한다.

 

각 bbox는 (x, y, w, h)의 좌표를 갖게 되는데, w는 width, h는 height, x와 y좌표는 box의 중간 부분을 나타낸다.

각 grid는 P(Class | Object)의 조건부 확률를 가지는데, 여기서는 grid당 하나의 class 확률만 나타낸다.

 

 

 

특정 클래스에 대해서 confidence score가 주어졌을 때, 위의 식에서 나온대로 conditional class 확률과 각 box의 confidence prediction을 곱한 점수는 bbox에서의 해당 클래스 확률과 예측된 것이 객체를 잘 잡는지에 대해서 나타낸다.

 

2.1 Network Design

전체 구조는 CNN으로 이루어져있고, VOC Dataset에 초점이 맞춰져있다. 

GoogleNet을 기반으로 이미지 분류를 하는데 24개의 CNN과 2개의 fully connected layer로 구성되어 있다.

GoogleNet에서 인셉션 모듈 대신에 1 by 1 reduction layer와 3 by 3 CNN을 사용하였다고 한다.

모델의 최종 아웃풋은 7 x 7 x 30의 텐서형태로 나오게 된다.

2.2 Training

CNN layer는 ImageNet 데이터로 pretrained 해서 사용을 하고, Darknet framework를 이용해서 훈련과 테스트를 진행하였다. 보다 정확하고 세밀한 시각정보를 위해 해상도를 448 x 448로 높였다고 한다. 그리고 final layer를 통해서 class 확률과 bounding box 좌표를 예측하게 되는데, 박스 좌표 값과 이미지 너비 및 높이 값을 0~1사이로 정규화를 했다.

그리고 활성화 함수로 Leaky Relu를 사용했으며, sse(sum-squared error)로 optimize 했다. 그러나 이게 Average precision을 최대화하는데 있어서 완벽하지는 않는다고 한다. 그 이뉴는 localization erro와 classification error를 유발하기 때문이며, 모든 이미지의 grid cell 들이 아무 객체나 포함하지 않기에 이는 모델을 불안정하게 만들 수 있다고 한다.

 

이를 해결하기 위해서 bbox의 좌표 예측에 대한 loss를 증가시키고, object가 없다고 예측한 box에 대한 loss를 감소시키는데 파라메터로 좌표에 대한 람다값 5와 오브젝트 관련 람다값 5로 설정하였다.

그리고 error metric에 대해서는 큰 box들에서의 작은 편차가 작은 박스들에서보다 덜 중요하게 반영을 했다고 한다.

 

YOLO는 multiple bounding box를 각 grid cell 마다 예측하는데, 훈련할 때는 각 객체마다 하나의 bbox를 예측하게 하기 위해서 하나의 predictor마다 IOU가 가장 높은 것에 대한 객체만 예측 가능하게 설정한다.

 

 

2.3 Inference

Training과 같이 test image에 대해서 network는 이미지마다 98개의 bbox와 해당 클래스에 대한 확률를 나타내는데, YOLOL는 single network로써, 엄청 빠른 속도를 보여주고 있다. 그리고 큰 객체나 Cell의 경계에 있는 object에 대해서 ㅣlocalize를 잘 할 수 있다고 한다. NMS는 Multiple Detection는 Multiple detection을 하는데 사용된다.

 

2.4 Limitations of Yolo

YOLO는 Bounding box 예측에 공간적 제약을 갖게 되는데 이는, 박스당 하나의 클래스만을 가질 수 있기 때문이다.

이는 즉, 모델이 예측할 수 있는 객체의 수를 제한함에 따라서, Small object에 대해서는 한계를 보인다는 것이다.

그리고 학습을 하면서, 객체에 대해 새로운 ratio or configuration을 일반화 시키는데 어려움이 있다고 한다.

그리고 loss function에 대해서 작은 object의 bbox와  큰 object의 bbox error를 같은 기준으로 처리한다. 이는 작은 bbox에 대한 error는 IOU에 큰 영향을 미친다고 한다.

 

3. Comparison to Other Detection Systems

 

Fast - Yolo는 Mean Average Precision을 63.4 % 까지 내면서, 실시간 Detection 성능을 내보였다.

그리고 네트워크는 VGG-16을 사용하면서 다른 detection 모델보다 좋은 성능을 가진다고 한다.

YOLO 역시 VGG-16을 훈련시킴에 따라 아래 성능 비교표에 나와 있듯이 좋은 성능을 내보였다.

 

4.3. Combining Fast R-CNN and YOLO

그러나 YOLO의 문제라 하면, Fast-RCNN보다 이미지 배경에서 mistake가 존재한다는 것이다.

RCNN이 예측하는 모든 bbox에 대해서 yolo는 유사한 box들만 예측하는지 확인을 한다.

그래서 YOLO는 예측된 확률과 상자간에 겹치는 부분에 대해서 예측을 더 잘하게 만든다.

 

 

 

 

 

 

 

 

 

 

 

728x90
반응형
Comments