Gaussian YOLOv3:An Accurate and Fast Object Detector Using Localization Uncertainty for Autonomous Driving

|

Gaussian 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에 대해 정리한 그림은 아래와 같음
views
  • 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
views
Gaussian Modeling for 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을 재설계 해야 함
views
Loss function of Gaussian YOLOv3
  • 논문에서는 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 데이터셋을 이용
views
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, 실험환경 등은 논문 참조

실험결과

views
IoU vs Localization uncertainty on KITJTI and BDD validation sets
  • 위는 KITTI, BDD validation dataset중 car class에 대해 예측된 bounding box들의 IoU에 따른 localization uncertainty를 그래프로 나타낸 결과
  • IoU가 높을수록 localization uncertainty는 낮으며, 두 값이 반비례하는 경향을 보임
  • 이를 통해 제안하는 localization uncertainty가 실제로 예측된 bounding box의 confidence를 잘 나타내고 있음을 확인 가능
views
Gaussian YOLOv3 성능 비교
  • 기존 방법들과 성능을 비교할 때 더 좋은 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를 효과적으로 줄이는 방법을 제안
  • 대표적인 자율주행 데이터셋에 대해 높은 성능을 보여주고 있음을 확인 할 수 있음