티스토리 뷰
과거 리뷰한 내용을 업로드 합니다.
---
1.Abstract
자율 주행 시스템은 HD 시멘틱 맵 요소를 사용한다. 존재하는 방식들은 시멘틱 맵 문제를 메뉴얼적인 annotation으로 풀지만 확장성 문제가 있다. 최근의 방식들은 dense한 rasterized segmentation 예측으로 맵을 구성하지만 개개인의 맵 요소의 인스턴스 정보를 포함하지 않거나 vectorized map을 얻기 위해 휴리스틱한 post processing을 요구한다. 이러한 문제를 해결하기 위해 end-to-end로 Vector화 된 맵을 얻을 수 있는 VectorMapNet을 소개한다. VectorMapNet은 onboard sensor observation을 갖고 birds-eye view의 sparse한 polyline set을 예측한다. 이러한 파이프라인은 맵 요소사이의 공간적인 관계를 명확하게 모델링하고 자율 주행 task에 쉽게 사용될 수 있는 vectorized map을 생성한다. VectorMapNet은 더 고차원적인 맵을 생성하고 도로 geometry의 더 자세한 부분까지도 나타낸다.
2. Introduction
자율 주행 시스템은 도로나 횡단 보도, 교통 표지판을 이해하는 것이 중요하다. 이전에는 pre-annotated 된 HD semantic map을 통해 문제를 풀었지만 사람의 노력으로 HD map을 annotating해야 한다는 확장성 문제가 있었다.
최근의 방식들은 HD semantic map learning을 BEV의 시멘틱 세그멘테이션 문제로 고려하여 맵 요소들을 픽셀단위로 rasterize하고 각 픽셀에 class 라벨을 부여하였다. 하지만 이런 방식은 fully convolutional network들을 사용하도록 만들었다.
rasterize된 맵들은 또한 3가지 이유로 자율 주행에는 어울리지 않는다.
- Rasterize 맵은 같은 class의 라벨이지만 다른 시멘틱인 맵 요소들을 구별하는 것이 힘들다.
- 예측된 rasterize된 맵들의 spatial consistency를 주는 것이 어렵다.
- (주변 픽셀들이 모순된 semantic들이나 geometry를 가질 수 있다.)
- 2D rasterize된 맵들은 대부분의 자율 주행 시스템과 호환성이 안 좋다.
⇒ HDMapNet은 semantic, instance, directional 맵들과 이 세가지 맵들을 post-processing 알고리즘을 통해 vectorize했다. 하지만 이러한 방식도 rasterize된 맵 예측에 의존하고 있고 post-processing은 복잡하여 확장성 문제(scalability)와 성능을 제한하게 된다.
VectorMapNetMap
VectorNetMapd은 dense한 semtaic 픽셀들을 포함하지 않는 end-to-end의 Vectorized HD map learning 모델이다. 대신에 맵 요소들을 polyline의 집합으로 표현한다.
VectorMapNet 파이프라인
- VectorMapNet은 다른 modality들(카메라 이미지와 라이다)로부터 생성된 feature를 공통의 BEV feature로 통합한다.
- learnable Element queries들과 BEV feature들에 기초하여 맵 요소 위치를 탐지한다.
- Element queries로부터 모든 맵 요소들을 polyline으로 decode한다.
Contribution
- VectorMapNet은 end-to-end HD semantic map learning 방식이다. 이전의 방법들과 달리 Map learning 문제를 set prediction 문제로 풀었으며 map rasterization 또는 post-processing없이 센서 결과물로부터 vectorized output을 직접적으로 예측한다.
- 맵 요소들의 geometry와 topological 관계를 모델링하였으며 polyline을 활용하여 복잡한 맵 모양을 모델링하고 모델을 map element detector, polyline generator로 분리함으로써 어려움을 완화 시켰다.
- VectorMapNet은 nuScenes, Argoverse2 dataset에서 HD semantic map learning 성능이 SOTA를 달성하였다.
1.Abstract
자율 주행 시스템은 HD 시멘틱 맵 요소를 사용한다. 존재하는 방식들은 시멘틱 맵 문제를 메뉴얼적인 annotation으로 풀지만 확장성 문제가 있다. 최근의 방식들은 dense한 rasterized segmentation 예측으로 맵을 구성하지만 개개인의 맵 요소의 인스턴스 정보를 포함하지 않거나 vectorized map을 얻기 위해 휴리스틱한 post processing을 요구한다. 이러한 문제를 해결하기 위해 end-to-end로 Vector화 된 맵을 얻을 수 있는 VectorMapNet을 소개한다. VectorMapNet은 onboard sensor observation을 갖고 birds-eye view의 sparse한 polyline set을 예측한다. 이러한 파이프라인은 맵 요소사이의 공간적인 관계를 명확하게 모델링하고 자율 주행 task에 쉽게 사용될 수 있는 vectorized map을 생성한다. VectorMapNet은 더 고차원적인 맵을 생성하고 도로 geometry의 더 자세한 부분까지도 나타낸다.
2. Introduction
자율 주행 시스템은 도로나 횡단 보도, 교통 표지판을 이해하는 것이 중요하다. 이전에는 pre-annotated 된 HD semantic map을 통해 문제를 풀었지만 사람의 노력으로 HD map을 annotating해야 한다는 확장성 문제가 있었다.
최근의 방식들은 HD semantic map learning을 BEV의 시멘틱 세그멘테이션 문제로 고려하여 맵 요소들을 픽셀단위로 rasterize하고 각 픽셀에 class 라벨을 부여하였다. 하지만 이런 방식은 fully convolutional network들을 사용하도록 만들었다.
rasterize된 맵들은 또한 3가지 이유로 자율 주행에는 어울리지 않는다.
- Rasterize 맵은 같은 class의 라벨이지만 다른 시멘틱인 맵 요소들을 구별하는 것이 힘들다.
- 예측된 rasterize된 맵들의 spatial consistency를 주는 것이 어렵다.
- (주변 픽셀들이 모순된 semantic들이나 geometry를 가질 수 있다.)
- 2D rasterize된 맵들은 대부분의 자율 주행 시스템과 호환성이 안 좋다.
⇒ HDMapNet은 semantic, instance, directional 맵들과 이 세가지 맵들을 post-processing 알고리즘을 통해 vectorize했다. 하지만 이러한 방식도 rasterize된 맵 예측에 의존하고 있고 post-processing은 복잡하여 확장성 문제(scalability)와 성능을 제한하게 된다.
VectorMapNetMap
VectorNetMapd은 dense한 semtaic 픽셀들을 포함하지 않는 end-to-end의 Vectorized HD map learning 모델이다. 대신에 맵 요소들을 polyline의 집합으로 표현한다.
VectorMapNet 파이프라인
- VectorMapNet은 다른 modality들(카메라 이미지와 라이다)로부터 생성된 feature를 공통의 BEV feature로 통합한다.
- learnable Element queries들과 BEV feature들에 기초하여 맵 요소 위치를 탐지한다.
- Element queries로부터 모든 맵 요소들을 polyline으로 decode한다.
Contribution
- VectorMapNet은 end-to-end HD semantic map learning 방식이다. 이전의 방법들과 달리 Map learning 문제를 set prediction 문제로 풀었으며 map rasterization 또는 post-processing없이 센서 결과물로부터 vectorized output을 직접적으로 예측한다.
- 맵 요소들의 geometry와 topological 관계를 모델링하였으며 polyline을 활용하여 복잡한 맵 모양을 모델링하고 모델을 map element detector, polyline generator로 분리함으로써 어려움을 완화 시켰다.
- VectorMapNet은 nuScenes, Argoverse2 dataset에서 HD semantic map learning 성능이 SOTA를 달성하였다.
Figure 1: VectorMapNet의 overview, 센서 데이터는 맵 요소들 처럼 같은 좌표에 BEV feature에 encode 된다. VectorMapNet은 BEV feature들로부터 element queries를 이용하여 map 요소의 위치를 탐지한다. Vectorize된 HD 맵은 탐지 결과로부터 생성된 sparse한 polyline들의 집합들로부터 생성된다. Polyline들이 방향 정보를 인코딩 했기 때문에 polyline들로부터 semantic 정보(dirable area)를 추론할 수 있다.
3. VectorMapNet
3.1 문제 정의
HDMapNet과 비슷하게 onboard sensor인 (RGB 카메라, LiDar)를 사용하여 벡터화 된 맵 요소들을 모델링한다. 저자는 문제를 sparse set detection문제로 formulate하였다. map M을 compact 한 vectorized primitive들의 sparse한 set로 표현하였으며 task는 sensor로부터 추출된 정보를 통해 semantic map을 표현하는 primitive들로 모델이 예측하도록 훈련된다.
- 맵 요소들을 표현하기 위한 N polyline
- 각 polyline은 N(v)개의 정렬된 꼭지점들 v(i,n)의 집합이다.
Polyline을 사용하여 map 요소들을 표현하면 좋은 점
- HD map들은 다른 geometries( point, line, curve, polygon과 같은 )의 혼합물로 구성된다. Polyline은 이러한 geometry 요소들을 효과적으로 나타낸다.
- 순서가 있는 polyline vertice들은 맵 요소들의 방향 정보를 자연스럽게 갖는다.
- polyline 표현은 자율 주행 모듈에서 요긴하게 쓰인다.
Method overview
- 센서 데이터를 BEV 방식( F(BEV) )으로 맵핑한다.
- F(BEV)방식으로부터 polyline을 모델링한다. 이 과정은 Scene-level element detection task와 Object-level sequence generation task로 나뉜다.
- Scene-level element detection task: 모든 맵 요소들을 element keypoint을 예측함으로써 locate시키고 classify한다.
- element keypoint A
- element keypoint의 class label
- Object-level sequence generation task: 각 탐지된 맵 요소( A(i), l(i) )에 대해 polyline vertices의 시퀀스를 생성한다.
- BEV feature extractor가 sensor observation을 사용해서 BEV 공간을 생성한다.
- Map Element Detector가 map element keypoints A와 class label L을 예측한다.
- Polyline Generator가 keypoint와 class label을 통해 HD map element의 모양을 완성시킨다.
- element keypoint A
3.2 BEV Feature Extractor
BEV feature extractor는 다양한 modality input을 사용하여 공통된 feature space로 이동시키고 이러한 feature들을 모아서 BEV feature( F(BEV) )로 표현한다.
- Camera branch
ResNet을 사용하여 이미지로부터 feature를 추출하고 feature transformation module로 image space를 BEV space로 바꿨다. feature transformation module로 간단하지만 유명한 모델을 사용하였다.
- BEV feature
- Details
image data I를 위해 shared CNN backbone을 사용하여 각 카메라의 Image feature를 camera space에서 얻고 Inverse Perspective Mapping(IPM)을 사용하여 BEV space로 feature들을 변환시켰다. depth 정보가 Camera image에서는 없기 때문에 땅이 평평하고 homography를 통해 이미지를 BEV로 변환시켰다. 정확한 높이를 모르는 것은 부정확한 변환이 되기 때문에 다양한 높이 (-1m, 0m, 1m, 2m)를 사용하여 camera BEV feature를 생성했다.
- LiDAR branch
LiDAR data P를 위해 저자는 pillar-wise feature map들을 학습시키기 위해 다양한 PointPillar를 사용하여 3D space를 여러 개의 pillar들로 나누고 pillar-wise point cloud들을 사용했다.
3.3 Map Element Detector
BEV feature들을 얻은 후 map element detector의 목표는 BEV features( F(BEV) )로부터 element keypoint들 a(i,j)를 추론하는 것이다. detector는 map element의 위치와 카테고리를 element keypoint A, class label L을 추론하는 것으로 구한다.
- Keypoint representations
- Map element의 outline을 표현하기 위해 k개의 point location을 사용하였다.
- Details
실험 결과 Bbox( k=2)인 경우 성능이 가장 높음(Bottom-left, Top-right)
- Element queries
detector의 query 인풋은 learnable element quries이다.
d는 hidden embedding size,
- i번째 element query q(i , elem)은 k개의 keypoint embedding q(kp)로 이루어져 있다.
- Architecture
전반적인 map element detector의 아키텍쳐는 transformer decoder, prediction head를 포함한다. decoder는 multi-head self-/cross-attention 매커니즘들을 사용해서 element quries를 변환한다.
특별히 저자는 deformable attention 모듈을 decoder의 cross attention 모듈로 사용했다.
prediction head는 두개의 MLP를 가지고 있다.
- Element queries ⇒ Elements key point
- Element queries ⇒ Elements Class labels
map element detector안의 각 keypoint embedding q(i,j , kp)는 두 개의 learnable part들로 구성됨
- keypoint position embedding: 포인트가 한 keypoint의 어느 위치에 있는지를 나타냄
- keypoint가 어느 map element에 속해 있는지 embedding
- keypoint embedding q(i,j , kp)
3.4 Polyline Generator
주어진 맵 요소들의 label과 keypoint들을 갖고 polyline generator의 목표는 세세한 geometrical 모양을 갖는 맵 요소들을 생성하는 것이다. 특히 polyline generator는 각 polyline의 꼭지점들의 distribution p(V(i, poly) | a(i), l(i), F(BEV,f))을 초기의 layout(element keypoint, class label)과 BEV feature에 기반하여 모델링한다. 이러한 distribution을 예측하기 위해 저자는 V(i, poly)에 관한 joint distribution을 연속적인 conditional vertex coordinate distribution들의 곱으로 분해하였다. 특히 저자는 각 poly line을 polyline 꼭지점들의 좌표값들을 병합하고 추가적인 End of Sequence 토큰 (EOS)를 각 시퀀스의 끝에 추가해줌으로써 flatten 된 시퀀스로 변환시켜주었다.
- joint distribution over V(i, poly)
- flatten sequence
N(v)는 polyline을 구성하는 꼭짓점 갯수이다.
- target distribution
⇒ 왼쪽항은 element query , class label, FBEV가 다음과같을 때 polyline일 확률
⇒오른쪽 항은 polyline이 꼭짓점의 집함이기 때문에 이전 꼭짓점의 존재
확률이 조건부 확률에 포함된다.
저자는 다음 꼭지점 좌표를 위한 각 step에서 predictive distribution의 parameter를 내보내는 autoregressive 네트워크를 사용하여 distribution을 모델링했다. predictive distribution은 모든 가능한 discrete 꼭지점 좌표값과 EOS에 걸쳐서 정의된다.
- Vertices as discrete variables
discrete distribution을 사용해서 polyline vertices을 모델링하는 것은 임의의 모양들을 나타내는 장점이 있다. categorical distribution은 multi-modal, skewed, peaked, long-tailed와 같은 다양한 polyline을 표현한다. 따라서 저자는 좌표값을 discrete token들로 나누고 각 token을 categorical distribution과 함께 모델링했다.
- Details
discrete, continuous 방법으로 polyline vertices들을 모델링한 결과이다. continuous의 경우 SketchRNN과 Gaussian distribution의 mixture를 사용해서 continuous variable처럼 polyline vertice들을 모델링하였다. 그 결과 discrete의 경우가 성능 향상이 있었고 categorical distribution의 non local한 특징이 복잡한 vertex coordinate distribution을 얻는데 도움이 된다.
- Architecture
autoregressive 네트워크를 위하여 vanilla transformer를 선택하였다. 각 polyline의 keypoint coordinate들과 class label은 token화 되어 transformer decoder의 query input들로 사용된다. 그러면 연속적인 vertex token들이 transformer로 반복적으로 입력으로 들어가고 BEV feature들은 cross-attention으로 통합되며 polyline vertices처럼 decode된다. PolyGen을 따르며 저자들은 추가적인 3가지 학습된 embedding을 각 vertex token들의 embedding으로 사용했다.
- Coordinate Embedding: token이 x 또는 y 좌표를 나타내고 있는지
- Position Embedding: token이 어떤 vertex에 속해있는지
- Value Embedding: token들의 quantized 좌표값을 표현
3.5 Learning
- total loss: map element detector loss + polyline generator loss
-
- map element detector loss
detector는 bipartite loss와 함께 훈련되어 NMS와 같은 post-processing 단계들을 피한다.
- Details
map element detector의 loss function은 3가지 부분들의 linear combination으로 이루어져 있다.
map element detector: 2 * element keypoint classification에 대한 negative log-likelihood + 0.1 * + smooth L1 loss + 1 + IoU loss
loss를 얻기 위해 ground truth(A, L)과 prediction(A’, L’)사이의 correspondence를 먼저 설립.
ground-truth 맵 요소 keypoint들의 수 N이 predictions N_max보다도 작으면 ground-truth(A, L)의 세트 수를 0(no object)으로 N_max만큼 패딩해줌. correspondence sigma는 N_max 요소들의 순열로 이루어짐.
- Correspondence sigma
p(sigma(j), l(j))는 index sigma(j)의 예측에 대한 class label l(j)의 probability
Loss of keypoint는 smooth L1 loss와 IoU loss의 합
- map element detector의 Loss function
-
- Polyline generator loss
Poly line generator는 polyline vertices들의 log probability가 최대화 되도록 훈련된다.
p(v(i,n))은 discrete coordinate value v(i,n)와 v(i,<n)(n보다 작은 index를 갖는 ground truth discrete coordinate value 들의 조건부 확률이다.
4. Experiments
4.1 Evaluation metrics
- Chamfer AP
- Chamfer distace는 두 개의 순서가 없는 세트 사이의 similarity를 정량화한 distance이다. Chamfer distance는 세트의 요소들의 각 순열의 거리를 계산한 두 개의 순서가 없는 세트들 사이의 유사도를 정량화한 평가 metric이다.
저자의 실험에서는 chamfer distance를 사용하여 prediction과 ground truth polyline set 사이의 거리를 계산하였다 . 각 polyline set는 일정하게 polyline을 N(pts)개의 꼭짓점으로 나타내진다. N(pts)는 100으로 설정하였다.
- Frechet distance는 커브를 따라 위치와 points의 순서를 모두 사용하여 커브의 유사도를 계산한다.
저자는 Frechet distance의 discrete version을 사용하여 두 polyline P와 Q사이의 geometric similarity를 평가하였다. 저자는 sigma(P)를 P의 line segments의 끝점 시퀀스로 지정하였다. 특별히 sigma(P) = (p(1), … , p(m))는 원본 인풋 polyline P로부터 일정하게 샘플링 된 m개의 꼭짓점의 시퀀스이다. p(i), p(i+1)사이의 P의 각 위치는 affine transformation을 사용하여 예측할 수 있다.
4.2 Comparison with BaseLines
HDMapNet: vectorize 된결과들을 바로 사용했다.
STSU: 트랜스포머 모듈을 사용해서 움직이는 물체와 Centerline segments들을 탐지한다. association head를 통해 segments들을 모아서 도로 그래프처럼 만든다.
- nuScenes Dataset
- Argoverse2 Dataset
4.3 Qualitative analysis
- Benefits of using polylines as primitives
Polyline을 사용하면 baseline들에 비해서 두가지 장점이 있다.
- Polyline들은 효과적으로 맵 요소들의 세세한 geometries를 인코드한다.
- Polyline으로의 표현은 한결같은 방향 정보를 인코딩하여 모호한 결과 생성을 방지한다.
(Rasterized 방식은 loopy curves를 생성하기 쉽다.)
- Benefits of posing map learning as a detection problem
VectorMapNet은 top-down 방식이다. map의 topology를 모델링하고 map element의 위치를 먼저 찾는다. 그 후 map element의 디테일을 생성한다. VectorMapNet의 높은 mAP는 이러한 관점이 주요하게 작용한다.
- Vectorized HD Maps for motion forcasting
- motion focasting model을 3가지 다른 입력 세팅으로 예측된 HD map의 성능을 조사하였다.
- Past trajectories
- Past trajectories with the ground truth HD map
- Past trajectories with map predicted by VectorMapNet
VectorMapNet으로 예측된 map과 GT HD map을 사용하는 것은 큰 차이가 없는 것을 확인 해 볼 수 있다.
5. Conclusions
VectorMapNet은 end-to-end 모델로 HD semantic map learning 문제를 해결한다. 존재하는 방법들과 달리 VectorMapNet은 polyline을 사용하여 vectorized 된 HD map element를 얻는다. 이 polyline을 얻기 위하여 학습을 detection과 generation으로 나누었다. VectorMapNet은 실험을 통해 polyline 방식이 일관성있고 복잡한 구조 생성을 잘한다는 것을 보여준다.
6. Detils
6. More Visualizations of VectorMapNet
VectirMapNet을 camera-only와 Camera-Lidar를 사용했을 때 케이스로 나누어 실험을 한 결과 Lidar 정보가 더 강건한 map 예측에 시각적 정보를 보완해줄 수 있다는 것을 보여준다.
camera view는 옆의 차들에 의해 제약되는 점이 있으나 Lidar sensor의경우 옆 차를 우회하여 몇가지 cue들을 더 제공한다.
- Lidar는 depth 정보를 제공함으로써 카메라 blind zone에있느는 물체를 더 찾을 수 있다.
- 날씨가 안좋을 때 카메라에서는 잘못 인식된 결과도 Lidar를 통해 보정할 수 있다.
- light reflection으로 인한 잘못인식된 결과도 Lidar를통해 보정할 수 있다.
6.2 Implementation details
BEV feature extractor는 공유된 CNN 백본(ResNet 50)을 통해 feature map size (200, 100, 128)을 내놓는다. Lidar의 경우 64 차원을 사용한 single layer의 PointNet을 사용해서 Lidar point를 pillar로 통합하였다. element query의 수는 100이다. 트랜스포머 디코더는 map element detector와 polyline detector 모두 6개의 decoder layer가 있으며 hidden embedding size는 256이다. polyline generator의 output space에대해 map space를 200 x 100 직사각형 grid로 나누었으며 grid의 크기는
0.3m x 0.3m이다.
6.3 More Ablation studies
- Curve sampling strategies
nuScenes의경우 curvature이 어떤 threshold보다 크게변할할 때 꼭짓점들을 샘플링한다.
fixed interval은 1m마다 꼭짓점들을 샘플링한다. 이 경우학습에 필요하지 않은 많은 점들이 포함되어 성능이 떨어진다.
- Vertex modeling methods
discrete과 continuous 방식으로 polyline 꼭짓점들을 모델링하여 비교하였다. continuous 방식의 경우 polyline들의 꼭짓점이 continuous 변수처럼 을 모델링하기 위해 Guassian distribution의 mixture 를 사용했다. 그 결과 discrete case가 더 성능이 좋았으며 categorical distribution의 non-local 특성이 복잡한 꼭짓점 좌표 distribution들을 잡아내는데 도움이 되는 것을 보여준다.