[논문정리] Gaussian YOLOv3: An Accurate and Faster Object Detector Using Localization Uncertainty for Autonomous Driving
2020. 1. 20. 18:06ㆍPapers/Object Detection
Gaussian YOLOv3: An Accurate and Faster Object Detector Using Localization Uncertainty for Autonomous Driving
Jiwoong Choi, Dayoung Chun, Hyun Kim
Seoul National University
ICCV 2019 포스터
Abstract
- 자율주행에서는 빠른 추론 속도와 높은 정확도가 굉장히 중요하다.
- 추론 속도가 늦거나 정확도가 낮을 경우 인명사고로 이어질 수 있기 때문에 자율주행에서는 단순히 정확하기만한 객체 검출을 사용하지 못하고 실시간적으로 높은 성능의 객체 검출을 할 수 있는 검출기가 필요하다.
- FP(false positive)는 치명적인 사고로 이어질 수 있다.
- 그러므로, 자율 주행 응용프로그램에서는 잘못된위치를 찾는것을 막아야 될 필요가 있다.
- 해당 논문은 one-stage에서 많이 사용되어지고 있는 YOLOv3에서 detection layer의 parameter와 loss fucntion을 수정하여 성능을 향상시켰다.
- 기존 YOLO의 경우에는 objectness score와 class score 두개만을 사용하여 객체의 유무를 판단하였지만 해당 Gaussian YOLOv3는 bounding box의 점수로 활용되어질 수 있는 값을 활용하여 기존에 있었는 박스 위치의 불확실성을 해결하였다.
- 위에서 언급한 박스 위치의 불확실성을 예측함으로써 FP를 상당히 줄일 수 있게 되었으며 TP또한 증가시킴으로써 정확도를 향상시킨다.
- YOLOv3와 비교하였을 때 mAP는 3.09, 3.5를 각각 KITTI와 Berkeley deep drive(BDD) 데이터셋에서 성능을 얻었다.
- 또한 속도 (fps)또한 약 42임으로써 실시간 객체 검출로써 충분한 속도를 보유하고 있다.
Introduction
- 기존 deep-learning기반의 객체 검출 알고리즘의 치명적인 문제점중 하나로 bounding box의 불확실성에 대한 정보가 없다는 것이다.
- bbox(bounding box)의 불확실성에 대한 정보를 사용하지 않기 때문에 잘못된 위치를 검출하는 것을 예방할 수 없다.
- 자율 주행에서, FP는 GT(ground-truth)가 아닌 물체에서 bbox를 잘못 검출하거나, GT에서 bbox의 주정확한 감지결과를 나타내며, TP(true-positive)는 GT와 bbox가 동일한 것을 의미한다.
- FP는 불필요한 브레이크로 이어질수 있기 때문에 치명적인 사고로 이어질 수 있다. 따라서 FP는 자율 주행에서 굉장히 위험한 부분이다.
- 다른말로 말하자면, 검출된 bbox의 불확실성을 예측하는것은 굉장히 중요하다고 할 수 있다. 이는 FP를 줄이기 때문에 자율 주행에서 사고를 예방할 수 있다.
- 이를 해결하기 위해서 자율 주행에 알맞는 YOLOv3기반의 새로운 객체 검출 알고리즘을 제안한다.
- YOLOv3는 다중 객체 검출을 할 수 있으며 굉장히 빠른 추론 속도를 가지고 있다.
- 이러한 이점을 통해 YOLOv3는 자율 주행 응용프로그램에 알맞지만 일반적으로 two-stage 방법에 비해서 낮은 검출률을 가지고 있다.
- 그렇기 때문에 실시간 객체 검출 능력을 가지고 있으면서 정확도를 높이는 것이 필수적이다.
- 해당 목표를 이루기위해, 해당 논문은 YOLOv3의 bbox에서 단순 value만 가져오는 것 뿐만 아니라 위치 불확실성을 판단하기 위한 parameter를 추가적으로 사용하고 bbox의 loss function을 재설계했다.
- 이를 통해 bbox의 불확실성을 확인할 수 있으며 이는 FP를 감소시키고 TP를 증가시키는 것으로 이어진다.
Gaussian YOLOv3
Gaussian modeling
- 그림 1을 보면 YOLOv3는 각 그리드 셀마다 3개의 bbox를 예측한다.
- objectness score와 class score는 0~1사이의 값을 가진다. 1에 가까울수록 객체가 존재하거나 해당 클래스와 일치하는 것을 의미하고 0은 반대를 의미한다.
- 하지만 해당 방법은 bbox에 대한 점수가 없기 때문에 bbox가 얼만큼 일치하는지에 대한 정보가 존재하지 않는다.
- 또한, objectness score는 bbox의 신뢰성을 반영하지 않았다.
- 그러므로 bbox의 불확실성에 대해서 알 수 있는 방법이 존재하지 않았다.
- 이를 해결하기 위해 추가적인 값을 통해서 불확실성을 판단한다.
- 평균과 분산값을 활용하여 평균은 기존의 bbox의 value를 판단하는 척도로 활용하고 분산값은 bbox의 불확실성을 판단하는 척도로 활용한다.
- 논문에서는 위의 그림과 같은 값을 통하여 판단한다고 한다. 하지만 실질적으로 어떻게 해당 값을 얻을 수 있는지에 대한 의문이 있었다. 그래서 open source를 보고 알아낸 것으로는 뒤에서 나올 loss function을 평균과 분산을 활용하는 loss function을 활용함으로써 학습을 통해 해당 값을 평균과 분산의 값을 의미하도록 학습하게 만들었다. 이러한 값을 만들기 위해서 기존 yolov3 detection layer의 입력 값을 추가적인 convolution layer를 사용하여 channel의 수를 확장시킨다. 확장한 값을 학습을 통하여 평균과 분산 값이 되도록 학습을 진행하는 것이다.
- 이러한 추가적인 작업은 512X512 입력 이미지 기준으로 YOLOv3는 $99{\times}10^9$FLOPs를 가지고 있지만 Gaussian YOLOv3는 $99.04{\times}10^9$이다.
- 성능은 향상시키고 계산량은 단 0.04%만 증가했다.
Reconstruction of loss function
- 기존의 YOLOv3는 bbox에 대해서는 MSE(mean squared error), objectness 와 class에 대해선s BCE(binary cross-entropy)를 사용했다.
- Gaussian YOLOv3는 NLL(negative likelihood) loss function을 사용하였다.
$$L_x = -{\sum_{i=1}^W}{\sum_{j=1}^H}{\sum_{k=1}^K}\gamma_{ijk}log(N(x^G_{ijk}|\mu_{t_x}(x_{ijk}),\sum_{t_x}(x_{ijk})+\varepsilon))$$ - $L_x$는 NLL loss를 의미하며 나머지 $y,w,h$에 대해서도 동일한 loss function을 활용한다.
- $W,H,K$는 각각 너비,높이 그리고 Anchor Box의 수를 의미한다.
- 또한 객체의 유무를 판단하기 위해서 다음과 같은 식을 사용한다.
$$Cr. = \sigma(Object) \times \sigma(Class_i) \times (1-Uncertainty_{aver})$$ - $\sigma(Object) , sigma(Class_i)$는 각각 objectness score 와 class score를 의미한다.
- $Uncertainty_{aver}$는 bbox의 불확실성을 의미한다.
Experimental Results
Conclusion
- 객체 검출에서 높은 정확도와 실시간 검출속도는 자율 주행에서 굉장히 중요하다.
- 하지만 추론 속도와 정확도는 trade-off 관계를 가지고 있는데 그 부분에서 문제가 발생한다.
- 이러한 문제를 해결하기 위해서 자율 주행을 위한 trade-off 관계를 달성하였다.
- Gaussian 모델링과 loss function 재설계를 통하여 TP를 증가시키고 FP를 줄임으로써 실시간 능력을 보유하면서 정확도를 높였다.
- KITTI와 BDD 데이터셋 기준으로 YOLOv3와 비교하여 각각 3.09, 3.5 mAP를 향상시켰다.
'Papers > Object Detection' 카테고리의 다른 글
MLP-Mixer: An all-MLP Architecture for Vision (0) | 2022.05.24 |
---|---|
[논문정리]Cascade RPN: Delving into High-Quality Region proposal Network with Adaptive Convolution (0) | 2020.02.27 |
[논문정리]Training-Time-Friendly Network for Real-Time Object Detection (0) | 2020.01.14 |
Real-Time Object Detection YOLO (중요부분 요약) (0) | 2019.12.19 |