Gaussian YOLOv3:An Accurate and Fast Object Detector Using Localization Uncertainty for Autonomous Driving
08 Nov 2019 | Deep learningGaussian YOLOv3:An Accurate and Fast Object Detector Using Localization Uncertainty for Autonomous Driving
Original paper: https://arxiv.org/pdf/1904.04620.pdf
Authors: Jiwoong Choi, Dayoung Chun, Hyun Kim, and Hyuk-Jae Lee (서울대, 서울 과기대)
- 참고 글
- https://hoya012.github.io/blog/Tutorials-of-Object-Detection-Using-Deep-Learning-GaussianYOLOv3/
- 공식 코드
- C 기반의 코드
- https://github.com/jwchoi384/Gaussian_YOLOv3
- ICCV2019에 발표된 논문으로, Yolo v3 기반의 기존 object detection모델이 갖는 문제를 개선하기 위한 연구를 수행한 논문
- 자율주행 환경에서 사용하기 위해선 object detection 모델이 실시간으로 동작해야 하면서도 높은 정확도를 가져야 함
- 이러한 관점에서 어떻게 연구를 수행했는지 설명
Indroduction
- ICCV2019에 40편 이상 되는 object detetion 논문들이 accept 됨
- 최근 핫한 연구분야
- 여러 논문들이 나오면서 정확도 지표는 과거 R-CNN, OverFeat들에 비해 굉장히 높아졌음
- 하지만 object detection을 실생활에 적용하는 대표적인 case인 자율주행에 대해서는 실시간 동작이 필수요소
- 일반적으로 실시간 동작을 위해선 30FPS의 동작이 필수
-
논문에서는 실시간 동작이 가능한 1-stage detection model인 YOLOv3를 기반으로 연구를 수행
- 또한 자율주행에서는 mislocalization(False Positive, 오탐지)가 굉장히 위험한 결과를 초래할 수 있음
- False Positive로 인해 차량이 갑자기 급정거를 하며 사고로 이어질 수 있기 때문
- 하지만 대부분의 논문들은 오로지 mAP 수치만 높히려고 하지, False Positive 자체를 줄이는 것을 목표로 하지 않음
-
이 논문에서는 정확도(mAP)를 높이면서 동시에 자율주행에 맞게 False Positive를 줄이는 방법을 제안
- 이 논문에서 주목할 점
- Object detection 알고리즘들의 output은 bounding box coordinate, class probability 인데, class에 대한 정보는 확률 값으로 출력되지만 bounding box coordinate들은 deterministic한 값을 출력하기 때문에 bounding box의 예측 결과에 대한 불확실성을 알 수 없음
- 저자는 이러한 점에 주목해서 bounding box coordinate에 Gaussian modeling을 적용하고 loss function을 재설계해 모델의 정확도를 높히고 localization uncertainty를 예측하는 방법 을 제안
Gaussian YOLOv3
Gaussian Modeling
- Gaussian YOLOv3의 설명에 앞서 기존의 YOLOv3에 대해 정리한 그림은 아래와 같음
- Network 구조는 YOLOv3 논문등을 확인
- YOLOv3의 예측 결과는 각 image grid마다 4개의 bounding box coordinate, objectness score, class score가 한 묶음이 되어 하나의 예측 box를 그리게 됨
- Objectness score는 이 bounding box 안에 object가 존재하는지를 나타내는 확률값
- Class score는 존재하는 object가 모든 class별로 해당 class일 확률을 나타내는 값
- Bounding box coordinate를 구성하는 t parameter들은 예측된 box의 중심 좌표, size를 나타내는 값이며 하나의 정해진 값을 나타냄
- Objectness score, class score는 확률 값 이며 thresholding등을 통해 낮은 확률을 갖는 값들을 걸러낼 수 있음
- Bounding box coordinate 는 확률 값이 아니기때문에 예측된 box의 좌표들이 얼마나 정확한지, 아닌지를 알 수 없음
- 이를 해결하기 위해 bounding box coordinate를 구성하는 4개의 t parameter들에 Gaussian Modeling을 적용한 모델이 Gaussian YOLOv3
- 주어진 test input x에 대한 output y의 Single Gaussian Model은 위 그림의 (1)과 같이 나타 낼 수 있음
- YOLOv3의 구조에 맞게 이를 적용한 방식은 (2)~(4)
- 각 coordinate의 mean값은 예측된 bounding box 좌표를 의미
- Variance 값은 uncertainty를 의미
- 즉, variance가 작으면 확실한 bounding box라고 예측한 경우고, variance가 크다면 예측된 bounding box가 불확실한 것을 의미
- Gaussian Modeling은 기존 YOLOv3의 detection layer만 수정하면 되고, 연산량 자체도 미미하게 증가하기 때문에 처리 속도가 거의 유지되면서도 정확도만 더 향상시킬 수 있음
- 512x512 input 기준 YOLOv3: $99\times10^9$ FLOPS, Gaussian YOLOv3: $99.04\times10^9 FLOPS$
Reconstruction of loss function
- 기존 YOLOv3은 bounding box regression에 sum of the squared error loss function을 사용
- Gaussian YOLOv3은 bounding box coordinate에 Gaussian Modeling을 적용해 Gaussian parameter로 변환했기 때문에 이에 맞게 loss function을 재설계 해야 함
- 논문에서는 negative log likelihood(NLL) loss를 이용했으며, 이는 위 그림의 (5)에서 확인 가능
-
GT의 bounding box는 위 그림의 (6)~(9)를 통해 계산되며 각 식의 notation은 논문 참조
- 기존 YOLOv3의 sum of the squared error loss는 학습 과정에서 noisy한 bounding box에 대한 패널티를 줄 수 없음
- 새로 구성한 loss function의 경우 noisy bounding box에 대한 uncertainty를 반영하게 되면서 패널티 부여 가능해짐
- 즉, 데이터셋이 noisy하더라도 uncertainty를 이용하기 때문에 믿을 수 있는 데이터에 집중하는 효과를 얻을 수 있음
- 또한 전반적인 정확도 향상도 얻을 수 있음
Utilization of localization uncertainty
- Detection criterion에 localization uncertainty를 적용
- 예측한 bounding box안에 어떤 물체가 있는지 계산할 때 objectness score와 class score를 곱해서 사용하는데, 여기에 $(1-Uncertainty_{avg})$를 곱해줌
- 이를 통해 False Positive를 줄이고, 전반적인 정확도를 향상 시킬 수 있음
- Uncertainty는 각 coordinate의 uncertainty를 평균내서 사용
실험결과
실험 데이터셋과 실험환경
- 논문에서는 자율주행 환경에 적합한 KITTI 데이터셋과 BDD 데이터셋을 이용
- KITTI 데이터셋은 car, cyclist, pedestrian 3가지 class로만 구성되어있고, 7,481 장의 학습 셋과 7,518장의 테스트 셋으로 구성됨
-
테스트 셋은 GT가 존재하지 않기때문에 학습 셋의 절만을 검증용 셋으로 사용함
- BDD 데이터셋은 bike, bus, car, motorcycle, person, rider, traffic light, traffic sing, train, truck의 총 10가지 class로 구성
-
학습, 검증, 테스트 셋이 각각 7:1:2로 나뉘어있음
- 각 데이터셋마다 주로 사용되는 IoU thresholdㄱ밧은 선행 연구들과 동일한 값을 사용했으며, 학습에 사용한 hyper parameter, 실험환경 등은 논문 참조
실험결과
- 위는 KITTI, BDD validation dataset중 car class에 대해 예측된 bounding box들의 IoU에 따른 localization uncertainty를 그래프로 나타낸 결과
- IoU가 높을수록 localization uncertainty는 낮으며, 두 값이 반비례하는 경향을 보임
- 이를 통해 제안하는 localization uncertainty가 실제로 예측된 bounding box의 confidence를 잘 나타내고 있음을 확인 가능
- 기존 방법들과 성능을 비교할 때 더 좋은 mAP 점수를 보이며, 특히 baseline인 YOLOv3에 비해 1FPS가량의 미묘한 속도감소만으로 정확도를 크게 높일 수 있었음
- Table4를 보면 YOLOv3 대비 True Positive도 늘었고 False Positive가 약 40%이상 감소된 것을 확인 가능
-
즉, Bounding box coordinate에 uncertainty를 부여함으로써 False Positive를 줄이겠다는 논문의 목적이 잘 달성된 것을 확인 가능
- 다만, bounding box coordinate에 uncertainty를 부여하면서 얻을 수 있는 효과중 하나인 noisy data에 robust해진다는 점을 실험적으로도 그런 경향을 확인할 수 없음
- 이를 입증해기 위해선 noisy label을 담고 있는 object detection용 public dataset이 필요하기 때문에 본 논문에서는 실험 불가능하지만, 추후 이러한 데이터셋이 나온다면 적용해서 실험 결과를 살펴 볼 수 있음
결론
- 자율주행을 타겟으로 실시간 동작하면서 동시에 자율주행에 치명적인 False Positive를 효과적으로 줄이는 방법을 제안
- 대표적인 자율주행 데이터셋에 대해 높은 성능을 보여주고 있음을 확인 할 수 있음