Abstract
- HD Map은 움직임을 예측하거나, 플래닝 등에 핵심 정보를 제공하한다.
- 실제 도로 토폴로지와 기하 정보는 소수에 불가하여, 보지 못했던 시나리오를 일반화 하기 위한 정보는 부족하다.
- 시퀀스, 일반 그래프, 계층적 그래프를 포함하여 다양한 데이터 표현을 사용하여 AutoRegressive 모델을 탐색한다.
- HDMapGen을 제안한다. 본 모델은 고품질, 다양한 HD Map을 생성할 수 있는 계층적 그래프 생성 모델이다.
- Argoverse 데이터 셋에서 실험을 수행하였다.
서론
- HD Map은 자율 주행에서 핵심이 되는 요소로 '3차원 공간 상에서 위치 인지', '다른 차량의 움직임 예측'.
- HD Map은 도시 모델링 및 시뮬레이션의 중요한 구성 요소
- 아래의 2가지 이유로 합성 HD Map을 생성하려고 하였다.
: 실제 세계에서 HD Map을 생성하는 것은 비싸다
: 실제 세계의 Map 정보로는 자율 주행에 필요한 기술 스택을 일반화할 테스트 요소가 부족하다. 예를 들어 모션 예측, 모션 플래닝
- 이전에는 '도시 레이아웃'을 생성하려는 연구가 종종 있었다. 본 연구는 차선, 신호등과 같은 세부 정보가 부족했다. 그리고 본 논문과 같이 생성 모델을 이용해 HD Map을 생성하는 시도는 없었다.
- 본 논문의 주요 공헌
: 데이터를 이용한 HD lane 맵 생성
: Autoregressive 생성 모델을 탐색하고, 다른 모델 대비 우수한 계층선 그래프 생성 모델인 HDMapGen을 제안
: Argoverse 데이터 셋에서 평가
2. 관련 연구
2.1 도로 맵 모델링 및 생성
- 가장 잘 알려진 것은 L-system, 연속된 명령어로 로드 네트워크를 생성한다(딥러닝 방법 X)
- 이후 연구는 생성된 결과에 대해 더 많은 제어를 부과하기 위해 제약 조건 혹은 Likelihood 함수에 따라, Procedual 모델에서 샘플링 하도록 제안되었다.
- 딥러닝 모델들 VectorNet, LaneGCN 등은 Graph Attention Network, Graph Convolution를 활용해서 도로를 인코딩하였다.
- Neural Turtle Graphics(NTG)는 Encoder-Decoder RNN 모델을 사용하여 패스를 노드로 인코딩하고 (노드-엣지)로 디코딩 하였다. NTG는 도시 단위의 로드 레이아웃을 생성하는 것이 그쳤다.
- 반면, 본 논문은 HD 도로, 차선 생성에 초점을 두었다.
2.2 그래프 생성 모델
- GRNN, GraphGAN, VGAE, GRAN 모델 등 그래프 생성 모델이 존재.
- 최근에는 MolGAN, NEVAE 등이 작은(분자?) 단위의 그래프 생성을 제안하였다.
- 하지만, 위의 방법들은 인접 행렬과 같은 그래프 토폴로지 생성에 초점이 맞춰져 있다.
- HD Lane 맵이 생성하는 그래프는 '공간 좌표'와 '기하학적 특성'이 함께 제공되는 그래프이므로 더 복잡하다.
2.3 기하 데이터 생성
- Ha et al 은 사람의 드로인 시퀀스에 따라 Sketch Strokes 를 순차적으로 생성하는 VAE 구조의 RNN 모델인 SketchRNN 제안.
- GRASS와 StructureNet은 오토인코더의 변형을 제안
- PolyGen은 3차원 가구 메쉬를 생성하는 Autoregressive Transformer 모델이다.
- 위의 방법 들과 달리, 본 논문 방식에서는 전체 맵을 하나의 시퀀스로 처리하는 대신 2레벨 계층을 사용하여 맵 생성 품질을 향상 시켰다.
3. 방법
- HD Map에서 '곡선(Curve)'는 곡률을 재구성하기에 충분한 양의 점이 있는 Polyline으로 저장된다.
- 반면, 각각의 차선은 UniqueID가 있다.
Sequence: 모든 선은 연결되어 있고, 맵 상은 모든 선을 정렬하여 전체 맵을 점(?)들의 연속으로 본다. 3가지 상태가 존재하며, 각 점은 이전 점 대비 Offset 거리를 가지고 있다. q=1 인 상태는 다음 점이 새로운 선의 시작점임을 의미하고, q=2는 다음 점이 현재 선분에서 이어짐을 의미한다. 마지막으로, q=3은 전체 맵 생성이 완료되었음을 의미한다.
해당 표현 방식의 첫번째 단점은 점의 순차적 순서를 정의하는 방법이 없다(?)는 것이고, 두번째로는 여러 차선의 교차점을 커버하기 위해서는 여러 차선을 다시 반복해야 한다는 것이다. 즉, 교차점의 점들은 다수의 독립된 점으로 나타나게 된다.
Plain Graph: (흔히 알고 있는 그래프 표현) 모든 제어 점을 노드로, 제어 점간을 잇는 선을 엣지로 본다. 각 노드는 (x,y) 좌표 점을 가진다. 교차점은 Degree가 2 이상을 가진다. 하지만 본 방법은 너무 큰 사이즈의 인접 행렬을 생성하는 문제가 존재한다.
Hierarchical Graph: 키 포인트를 노드로 하는 글로벌 그래프를 먼저 생성한다. 키 포인트들은 차선의 끝 점 혹은 교차점이다. 글로벌 그래프의 엣지는 두개의 키 포인트 간에 차선 여부를 나타낸다. 두번재 스텝으로 각 라인 곡률을 로컬 그래프로 표현한다. 고정된 토폴로지로 인해 직접접으로 로컬 노드의 좌표를 예측한다(?). 작은 사이즈의 인접 행렬이 필요.
3.2 AutoRegressive Model
글로벌 그래프의 출력은 인접 행렬 L 과 노드 공간 좌표로 표현된 기하 특징 표현(C) 으로 구성되고 글로벌 그래프는 AutoRessive Model로 생성된다.
(1) 무 방향 그래프인 글로벌 그래프를 먼저 생성한다. 현재 스텝 t에서는 글로벌 그래프 디코더가 C_t 와 상응하는 엣지 L_{t, s}를 예측한다.
(2) $ s \in [1, t-1] $ 그리고 새로운 행과 열 L_t 를 생성한다.
(3) 로컬 그래프 디코더를 적용하여 차선 객체 L_{t, s}의 곡률을 출력으로 낸다.
(4) 로컬 그래프의 출력인 각 글로벌 엣지 L_{t, s}는 두개의 고정된 길이(W)의 좌표 $(C_{j})_{t, s}$ 와 각 지력 노드 j의 유효 마스크 $(M_{j})_{t, s}$ 이다.
총평:
- 맵을 그래프로 표현을 하는 것은 일반적이나, 차선은 차선끼리, 표지판은 표지판끼리, 교차로는 교차로 끼리 그래프를 생성하기 때문에 본 논문이 제시한 계층적 그래프는 특별한 방법이라는 생각은 들지 않았다.
- 다만 그래프 표현을 딥러닝 모델로 생성하는 것은 근래의 트렌드 이므로 익혀야 할것 같다는 생각이 들었다.