Paper link : https://arxiv.org/abs/2003.09405
Explainable Object-induced Action Decision for Autonomous Vehicles
A new paradigm is proposed for autonomous driving. The new paradigm lies between the end-to-end and pipelined approaches, and is inspired by how humans solve the problem. While it relies on scene understanding, the latter only considers objects that could
arxiv.org
Introduction
이 논문에서는 전방 카메라 이미지 (단일 프레임) 만을 사용하여 해당 시점에서 자율주행 차량이 취할 수 있는 Action, 그리고 왜 그런 결과를 내었는지에 대한 Explanation을 함께 예측하는 모델을 제안하고 있다. (2020 CVPR)
Overall Architecture
Goal is to jointly predict actions and explanations.
이미지 속에는 수많은 object들이 존재하지만, 실제로 자율주행 차량의 state 변화를 야기하는 object는 극히 일부이다. 이런 object들을 "action-inducing objects"라고 부른다.
Action-inducing object에만 집중하여 decision-making 과정을 수행하면, action의 선택 이유를 설명하는 explanation set의 정의가 간단해진다. 실제로, 유한한 explanation만으로도 각 object에 설명을 부여할 수 있으며, semantic class의 auxiliary set처럼 생각하면 된다.
논문에서는 action과 explanation을 함께 예측하는 모델을 제안하고, 이를 학습시키기 위한 데이터셋 BDD-OIA를 고개하고 있다. BDD-OIA는 BDD100K 데이터셋의 일부를 선택하여 라벨링한 것으로, multi-label 구조를 갖고 있다. 본 논문에서는 총 4개의 contribution을 주장하고 있다.
- Action (driving command)과 explantion을 함께 annotate한 대규모 데이터셋인 BDD-OIA를 제공함.
- Action과 explanation 모두의 정확도 향상을 목표로하는 새로운 multi-task action prediction 구조를 제안함.
- Action-inducing object와 global scene context에 대한 reasoning 과정이 결합된 CNN 구조를 적용함.
- Explanation을 함께 도출함으로써 action에 대한 decision-making 성능이 향상됨을 실험을 통해 검증함.
Joint Action and Explanation Prediction
Definitions
Action은 크게 다음의 두 가지로 분류할 수 있다.
- 환경 내의 object들과 독립적인 class. e.g. 연료 소모 최적화를 위한 항속 주행
- 주변 object들과 상호작용하는 class. e.g. 정지 장애물을 회피하기 위한 차선 변경
여기서는 두 번째 class에 초점을 맞추고 있으며, 한 가지 흥미로운 특징으로 이러한 object-induced action들은 굉장히 casual(?)한 구조를 갖고 있다는 것이다. 예를 들어, 전방에 도로를 건너고 있는 보행자는 차량으로 하여금 "slow down" action을 선택하게 만든다. 하지만, "slow down" action이 보행자에 의해서만 유도되는 것은 아니다. 예를 들어, 전방 신호등이 빨간색이면 마찬가지로 차량은 "slow down" action을 선택할 것이다.
이처럼 각각의 action은 작은 explanation set을 갖는다고 생각할 수 있고, joint prediction task는 factorial classification problem으로 고려될 수 있다. 물론 다양한 edge case들이 존재할 수 있지만, 이미 존재하는 explanation과 독립적이라면 그냥 간단하게 추가해 주면 된다.
본 논문에서는 e2e 자율주행 시스템에서 주로 사용되는 4가지 action을 선택했으며, 총 21가지의 explanation을 선정하였다. 구체적인 내용은 Table 1에 나와있다.
제안하고 있는 OIA model은 multi-task, multi-label classification task를 수행하며, 현재 시점에서 가능한 jointed (action, explanation) pair proposal을 목표로 한다.
$$ \phi :\mathcal{X}\mapsto (A,E)\in \left\{0,1\right\}^4\times \left\{0,1\right\}^{21} \tag{1} $$
BDD-OIA Dataset
차량의 주행 과정은 대부분 "Move forward" action으로 구성되어 있으며, 다른 action들은 비교적 나타나는 빈도가 낮고 수행 시간이 짧다. 본 논문에서는 이로 인해 발생되는 데이터 수의 불균형을 완화하고자 하였으며 ("Turn left"와 "Left lane change" action을 합침), 이미 존재하는 데이터셋들 중 action을 선택한 이유에 대한 annotation이 되어 있는 것은 없기 때문에 새로운 데이터셋을 제안하고 있다. 또한, 최소 5개의 주변 차량들, 그리고 5명의 보행자나 자전거가 존재하는 복잡한 scene을 선정하여 도심 환경을 타겟으로 했다.
5초짜리 video clip 형태의 데이터 구조를 가지며, MTurk를 사용하여 labeling을 진행했다. 총 22,924개의 clip이 존재하며, explanation별 데이터 수는 차이가 있지만 action별 데이터 수는 꽤 균형을 맞춘 것을 Table 1에서 확인할 수 있다.
Deep Learning Architecture
Architecture Overview
본 논문에서 제안하는 모델의 전체 구조는 Figure 3과 같다. 전방 카메라의 RGB image를 input으로 받으며, 단일 step의 single frame만을 사용한다. 가장 먼저 image의 backbone feature를 뽑아내며, 이후 두 가지 모듈로 나뉜다. Local feature (( t_{l_i} (i=1,2,...,N) ))는 Faster R-CNN의 RPN과 ROI head layer로부터 생성된다. Global feature (( t_g ))는 size 및 dimension을 processing하여 local feature와 결합되고, scene context와 object-scene relationship 정보를 포함한다. 이렇게 계산된 feature 정보는 Action-Inducing Object Selection Module로 들어가 최종적으로 action (( \hat{A} ))과 explanation (( \hat{E} ))을 예측한다.
네트워크는 다음의 multi-task loss function을 사용하여 학습된다.
$$ \mathcal{L}=\mathcal{L}_A+\lambda\mathcal{L}_E \tag{2} $$
여기서, (( \mathcal{L}_A=\sum_{j=1}^{4}L[\hat{A}_j,A_j] )), (( \mathcal{L}_E=\sum_{j=1}^{21}L[\hat{E}_j,E_j] ))이며, (( A_j ))와 (( E_j ))는 각각 (( j^{th} )) action과 explanation의 GT label을 의미한다. (( L[\cdot,\cdot] ))은 binary cross entropy loss, 그리고 (( \lambda ))는 action과 explanation error간 상대적 중요도를 control하는 hyperparameter이다.
아래는 직접 뜯어본 모델 구조이다. (잘못된 부분이 있을 수도 있으니 참고만 ^^)
Implementation Details
Global Module
Faster R-CNN 네트워크에서 생성된 backbone feature를 사용하여 global feature (( t_g ))를 생성한다. 구체적으로, 2개의 Conv. + ReLU layer와 local average pooling을 포함하고 있다. 추후 local feature와 concatenate할 수 있도록 dimension을 2056에서 256으로, 그리고 spatial size는 (( 7 \times 7 )) 로 감소시킨다.
Action-Inducing Object Selection Module
Faster R-CNN에서 생성된 모든 object proposal 중 action-inducing object만 선택한다. 구체적으로, 먼저 (( 7 \times 7 )) size의 local feature tensor (( t_{l_i} )) (( N ))개를 추출한 뒤, global feature와 결합되어 각 object별 object-scene tensor (( t_{(l+g)_i} ))를 형성한다. 이렇게 형성된 tensor들은 (( N \times c \times 7 \times 7 )), (( c=2048+256 ))의 형태로 concatenate되어 Selector (( \mathcal(s) ))의 input으로 사용된다.
Selector (( \mathcal(s) ))는 3개의 Conv. layer와 (( N ))개의 output을 갖는 softmax layer로 구성되어 있으며, (( N ))개의 object들에 대한 probability distribution, i.e. action-inducing object score를 나타낸다. 이후 top-(( k )) objects 및 object-scene tensors (( t_{(l+g)_i} ))를 선택하여 다음 stage로 넘긴다.
Predictions
Object-scene tensor를 input으로 받아 global pooling 및 feature vector로의 벡터화 과정을 거친 후, FC layer를 거쳐 jointed action and explanation prediction을 수행한다.
Object-Scene Relations
지금까지의 구조를 통해 네트워크는 scene-object 관계를 파악하고 reasoning 과정을 수행할 수 있게 된다. Global module은 global scene layout 내 object들의 spatial context를 제공하여 backbone feature map에 attention 메카니즘을 결합한 형태의 기능을 한다. Object-scene tensor가 Selector를 통과하고, Eqn.(2)의 loss function을 통해 전체 모델이 학습됨에 따라 global feature map은 차량의 action 선택과 관련이 많은 object일수록 높은 점수를 부여하고, 중요하지 않은 object들은 무시할 수 있도록 학습된다.
Experiment
Setup
BDD-OIA 데이터셋에서 각 clip의 마지막 frame만을 추출하여 image의 형태로 학습에 사용했으며, training (16,082), validation (2,270), test (4,572)로 분배했다. Training specification은 다음과 같다.
- Input image size : (( 3 \times 720 \times 1280 ))
- Selector : k = 10
- 2-stage training :
- First stage: Pre-train Faster R-CNN using BDD100K dataset
- Second stage: Freeze Faster R-CNN and train the whole model
- Adam optimizer w/ weight decay: (( 1 \times 10^{-4} )), initial lr (( \alpha )): 0.001
- 50 epoch ; (( \alpha )) devided by 10 every 10 epochs
- Evaluation metric : Averaged F1 score
$$ F1_{all}=\frac{1}{\left|A \right|}\sum_{j=1}^{\left|A \right|}F1(\hat{A}_j, A_j) \tag{3} $$
Interplay btw Actions and Explanations
(( \lambda ))를 변화시키면서 action, explanation prediction에 미치는 영향을 조사했다. 그 결과는 Table 3에 나타나 있으며, (( \lambda = 1 )), 즉 explanation에 action만큼의 중요도를 부여했을 때 가장 높은 성능을 보였다. 따라서, explanation의 존재는 모델의 action output에 대한 설명을 부여할 뿐만 아니라, 전체적인 accuracy를 높이는 효과도 갖는다는 주장을 하고 있다. 자세한 내용은 논문의 5.2절을 참고하자.
Interplay btw Local and Global Features
Local feature와 global feature를 함께 사용하는 것의 중요성을 검증하기 위해 둘 중 하나만 사용했을 때의 성능과 비교했으며, 둘 다 사용했을 때 (( k ))가 미치는 영향도 보여주고 있다. 모델이 local object 정보만 사용했을 때 가장 안좋은 성능을 보여주며, spatial 정보가 필수적임을 시사하고 있다. 반대로 global 정보만 사용했을 때는 성능이 크게 떨어지지 않았는데, 이는 모델이 주로 contextual reasoning을 수행하기 때문이라고 생각할 수 있다. 또한, BDD-OIA 데이터셋이 복잡한 도심 환경을 위주로 선정되어 있기 때문에, (( k ))가 너무 작게 되면 성능이 떨어지게 된다.
Model Comparisons
Baseline은 purely global method이며, [5]는 purely local selector라고 생각하면 된다.
[5] Dequan Wang, Coline Devin, Qi-Zhi Cai, Fisher Yu, and Trevor Darrell. Deep object-centric policies for autonomous
driving. In International Conference on Robotics and Automation (ICRA), pages 8853–8859. IEEE, 2019.
Single vs. Multiple Action Predictions
Single-label prediction과의 성능을 비교하기 위해 추가 라벨링을 진행했다. BDD100K 데이터셋에서 제공하는 차량의 IMU 데이터를 활용하여 차량의 실제 action을 annotation했고, 11,236개의 training image, 그리고 3,249개의 testing image가 존재한다. 모델은 Figure 3에서 제안된 것과 동일하지만, 마지막에 softmax layer를 추가하여 하나의 action만을 선택한다.
Single action prediction이 더 낮은 성능을 보인 것이 좀 의아했는데, 그 이유를 다음과 같이 설명하고 있다.
- 데이터셋 내의 class간 불균형이 증가함. 실제 운전자는 대부분 "move forward" 또는 "stop/slow down" 의 action을 수행하기 때문에 모델 또한 대부분의 판단을 F 또는 S로 하게 됨. (6,773 F / 4,258 S / 111 L / 94 R labels)
- Single label은 오히려 혼란을 야기함. 실제로 직진을 했다고 해서 우회전이나 좌회전을 못하는 것이 아닌데, 모델은 직진만 되는 것으로 학습되고, 다음 유사한 상황에서 우회전을 하게 되면 큰 loss가 발생됨.
Qualitative Results