메뉴 바로가기 본문 바로가기

BEV

  • Shin Kim
  • 2023.01.25

Bird’s-Eye-View from Monocular Images 

들어가며

자율주행을 위해 사용되는 라이다는 ( )원 이상의 가격을 호가합니다. 이러한 라이다의 비싼 가격때문에 여러대의 RGB카메라만을 가지고 자율주행을 시도하는 연구들이 많이 이루어지고 있습니다. 대표적인 기업으로 테슬라를 들 수 있는데, 작년 Tesla AI Day에서는 테슬라의 자율주행 전략에 대한 소개가 있었습니다. 비전 부분의 발표자인 andrej는 자율주행을 위한 모션 플래닝을 위해서는 3차원 벡터 스페이스에서의 예측이 이루어져야 한다고 말하며, 여러대의 카메라로 부터 얻어진 피쳐를 3차원 공간상으로의 변환해 활용하는 방법에 대해 소개합니다.  이러한 시점의 변환을 통해 surround view 이미지로 부터 Bird’s eye view (이하BEV) 좌표에서의 예측이 가능해지며, RGB 카메라만을 통한 자율주행이 가능해지게 됩니다. 


 

[그림1] Tesla’s ai day [10]


카메라로 촬영된 이미지는 3차원 공간의 특정 시점에서의 2차원 사영입니다. 가령, 2차원의 이미지 공간상에서 객체탐지와 같은 작업을 완벽하게 수행했다 하더라도 , 여러 검출 결과들을 가지고  BEV 좌표상으로 변환하거나 합치는 과정은 또 다른 문제입니다. 카메라 평면상의 이미지를 BEV로 변환하는 IPM과 같은 전통적인 방법이 존재하지만, 단일 이미지만으로는 가려진 부분을 다룰 수 없다는 점과 Homography를 이용한 변환이기에 물체가 동일 평면상에 존재하지 않을 경우 정확도가 떨어지는 등의 문제가 있습니다. 그렇기에 최근에는 뉴럴네트워크를 이용하는 방법들이 많이 연구되고 사용되고 있습니다. 이번 글에서는 단일 이미지 또는 surround view 이미지 feature를 BEV feature로 변환해 활용하는 연구들에 대해 알아봅니다. 


 

[그림2] IPM 알고리즘을 사용한 시점 변환 [11]

NuScenes데이터셋

BEV 공간 예측을 위한 훈련을 위해서는HDMap과 같은 도로상의 3차원 정보를 포함한 데이터셋이 필요합니다. 실제로 드론 등을 이용해 BEV 이미지를 촬영해 라벨링을 하기는 다소 비현실적이므로, 이미지 데이터를 촬영한 시점에서의 좌표정보를 통해 맵 데이터로부터 BEV 데이터를 가공해 사용하게 됩니다.  

먼저, 공개 데이터셋 중 자율주행위한 multimodal 데이터셋인 nuscenes 데이터셋에 대해 살펴봅니다. nuScenes 데이터셋은 3D 객체 인식을 위해 nuTonomy에서 제작한 데이터셋입니다. 보스턴, 싱가폴의 도로에서 수집했으며, 현존하는 데이터셋들은 주행환경의 편향성이 강해 일반화 성능이 낮은 문제가 많기에 nuScenes에서는 최대한 다양한 상황을 포함하도록 20초 길이의 1000개의 상황을 선별했습니다. 6개의 RGB카메라, 5개의 레이다, 1개의 라이다로 데이터를 수집했으며 2Hz로 어노테이션 되어있습니다.

 

[그림3] Nuscenes 데이터 수집 센서 [12]

총 23개 클래스의 3D bbox로 구성되며 움직임 등의 상태를 나타내는 8개의 속성을 포함합니다. 추가로 nuScenes-lidarseg에는 기존 23개 클래스에 9개의 배경 클래스가 추가된 포인트클라우드 어노테이션을 포함합니다.

 

 

 

[그림4] Nuscenes 데이터셋 시각화 예시 

추가로 Map Expansion에는 차선, 횡단보도, 신호, 주행가능영역 등 11개 계층의 도로 정보를 제공하며, 개발툴과 튜토리얼도 제공하기에 데이터 사용이 용이합니다. [2]


 

[그림5] Nuscenes 데이터셋의 맵 정보를 사용해 가공한 BEV데이터(좌) 카메라 파라미터, 위치 정보를 사용해 카메라에 다시 사영시킨 이미지(우)   


View Transformation 


카메라 이미지에서 얻어진 feature를 BEV 상으로 변환하여 downstream task를 수행하기 위해서는 view transform이 필요합니다. 2D 이미지 좌표상에서 얻어진 feature를 월드 좌표상의 3D feature로 변환하는 과정에 해당하는데, 카메라 이미지를 백본 네트워크에 통과시켜 얻어진 feature를 view transformation을 통해 3D공간상에서의 세그멘테이션이나 디텍션과 같은 테스크를 수행하기에 적절한 형태로 변환하게 됩니다. view transformation은 카메라 파라미터를 이용해 3차원 공간상으로 feature를 직접 사영시키거나, transformer의 어텐션 모듈과 MLP를 사용하는 등 다양한 방법들이 연구되고 있습니다. 몇 가지 논문들을 통해 view transformation의 방법들에 대해 알아봅니다.  


Lift, Splat, Shoot 

Lift, splat, shoot에서는 임의의 카메라 집합으로부터 획득된 surround view 이미지에서의 feature를 공통된 BEV space상으로 변환합니다. shoot 부분에서는 모션 planning에 대해서도 간단히 다뤘습니다. 각각의 이미지로부터 추출된 feature를 카메라 intrinsic, extrinsic을 이용해 frustum 모양으로 변환하여 BEV 그리드 상으로 투영시키는 방법으로 직접적으로 BEV상에서의 표현을 추출함으로써, 모델이 이미지를 BEV상에서 표현하는 방법과 더불어 다수의 카메라 집합에서의 이미지를 하나의 도메인에서 합치는 방법까지도 학습하게 됩니다.

이미지 feature를 BEV space에 투영시키는 과정인 life-splat과정에대해 살펴봅니다. Lift 단계에서는 이미지 좌표를 여러 카메라가 공유하는 3D좌표로 올리게 되는데, 이 과정을 위해서는 이미지 평면에서의 깊이 정보가 필요합니다. 따라서 모델은 깊이 정보를 추정하는 방법을 학습하게 되는데, 실제로 정확한 깊이를 추정하는 것이 아닌 가능한 깊이의 분포표현을 학습하게 됩니다. 즉, 2D이미지 평면에서 각 픽셀에 해당하는 컨텍스트 c와 깊이의 확률분포 α를 학습하게 되며 확률분포 α에 의해 스케일링 된 값인 cd=dc 공간 좌표에서의 컨텍스트로 사용됩니다.

 

[그림6] 카메라 이미지 feature의 3차원 변환 (Lift)  

이러한 과정을 통해 모델은 이미지 상의 컨텍스트를 BEV상의 특정 위치로 배치시킬 수 있고, 이미지 평면의 내재적 특성상, 추정되는 깊이가 애매한 경우에도 2D포인트에서 3D직선으로 대응시키는 방법을 취할 수 있게 됩니다.

다음단계인 Splat에서는 Lift 과정에서 얻어진 각각의 카메라 이미지의 feature를 하나의 BEV공간상에 투영시킵니다. 카메라 intrinsic, extrinsic을 사용하여 이미지 평면상의 픽셀포인트를 3차원 공간상의 레이에 대응시켜 frustum 형태의 feature맵을 BEV feature공간으로 투영시키고 각각의 feature point를 가장 근접한 pillar에 할당시킵니다. 최종적을 얻어진 C H W 크기의 feature는 BEV CNN을 통과해 segmentation과같은 테스크를 수행합니다.  

 

[그림7]  카메라 파라미터를 사용해 BEV 공간으로의 splat

학습 및 평가는 nuScenes, Lyft 데이터셋을 사용했으며, object road, lane segmentation task를 위해 3D bbox를 BEV에 사영시켜 ground truth 데이터를 얻었습니다. BEV 그리드는 200x200크기의 셀을 사용했고 각 셀은 0.5m x 0.5m를 나타내어 모델은 100m x 100m 크기의 BEV공간을 예측합니다. 




 

 

그림 [8] Lift, splat, shoot 모델 인퍼런스 예시


다음으로는 transformer의 cross attention 모듈을 사용한 논문입니다.

Projecting Your View Attentively: Monocular Road Scene Layout Estimation via Cross-view Transformation 

카메라 기반의 방법에서 수행한 로드 세그멘테이션 작업을 BEV 공간으로 투영시키기 위해 view transformation을 수행하게 되는데, 이러한 과정이 독립적으로 이루어지게 된다면 정보의 손실, 왜곡을 불러오기도 합니다. 이러한 문제를 해결하기 위해 본 논문에서는 cross-attention transformer 모듈을 사용해 MLP로 이미지 공간의 feature를 BEV 공간으로 직접적으로 투영시킵니다. 또한 모델이 차량과 도로의 관계등을 고려할 수 있도록 context-aware discriminator를 사용합니다. 

 

[그림9] 제안된 view transformation module 

논문에서 제안된 네트워크는 그림[]과 같습니다. 인코더, 디코더 네트워크 사이에 cross-view transformer(CVT) 모듈을 도입합니다. CVT모듈은 2개의 레이어로 구성된 MLP로 이미지 도메인에서의 피처 X를 BEV 도메인 피처 X’ 로 변환 후 다시 이미지 도메인의 피처 X’’로 투영하고, X와 X’’ 사이의 도메인 consistency를 유지하기 위해 피처사이의 L1 로스를 사용합니다. 추출된 세 피처는 cross-view transformer에 공급되어 cross-attention에 해당하는 연산을 수행하게 되며, feature selection scheme을 통해 최종적으로 피처를 추출해 디코더를 통과해 세그맨테이션 태스크를 수행합니다.

또한 GAN에서와 같이 discriminator를 도입하는데, 단순히 모델 예측 값과 GT사이의 진위만을 판별하는 것이 아닌 차량과 도로의 공간적 관계를 모델이 명시적으로 학습할 수 있도록  hybrid 구조의 adversarial loss를 사용합니다. (context aware discriminator)

정리하자면, 단일 카메라 정면 이미지로부터의 피처를 BEV 피처로 변환하기위해 MLP를 사용해 두 도메인사이의 cross-attention을 수행하였고 추가적으로 context-aware discriminator를 사용해 차량과 로드 세그멘테이션을 BEV 공간상에서 수행하는 방법을 제안했습니다. 


위에서 소개한 논문들 외에도 DETR 구조를 사용해  BEV에서의 라인 파라미터, 객체를  직접 예측하거나[7], [8], adversarial 학습으로 단일이미지만으로 가려진 부분의 예측에 집중한 모델 [6],  temporal self-attention으로 시간 정보를 활용한 모델 [9] 등 많은 연구들이 이루어 지고 있습니다. 





나가며

References

[1] https://www.youtube.com/watch?v=j0z4FweCy4M

[2] https://github.com/nutonomy/nuscenes-devkit

[3] nuScenes: A multimodal dataset for autonomous driving, Holger Caesar, Varun Bankiti, Alex H. Lang, Sourabh Vora, Venice Erin Liong, Qiang Xu, Anush Krishnan, Yu Pan, Giancarlo Baldan, Oscar Beijbom, arXiv:1903.11027v5


[4] Lift, Splat, Shoot: Encoding Images from Arbitrary Camera Rigs by Implicitly Unprojecting to 3D, Jonah Philion, Sanja Fidler,  arXiv: 2008.05711v1


[5] Projecting Your View Attentively: Monocular Road Scene Layout Estimation via Cross-view Transformation, Weixiang Yang,Qi Li,Wenxi Liu,Yuanlong Yu,Yuexin Ma,Shengfeng He,Jia Pan, Proceedings of the IEEE Computer Society Conference on Computer Vision and Pattern Recognition, 2021


[6] MonoLayout: Amodal scene layout from a single iage, Kaustubh Mani, Swapnil Daga, Shubhika Garg, N. Sai Shankar, Krishna Murthy Jatavallabhula , and K. Madhava Krishna ,arXiv:2002.08394v1


[7] Structured Bird's-Eye-View Traffic Scene Understanding from Onboard Images, Yigit Baran Can Alexander Liniger Danda Pani Paudel Luc Van Gool, arXiv:2110.01997


[8] DETR3D: 3D Object Detection from Multi-view Images via 3D-to-2D Queries, Yue Wang, Vitor Guizilini, Tianyuan Zhang, Yilun Wang, Hang Zhao, Justin Solomon, arXiv: 2110.06922v1


[9] BEVFormer: Learning Bird's-Eye-View Representation from Multi-Camera Images via Spatiotemporal Transformers, Li, Zhiqi, Wang, Wenhai Li, Hongyang Xie, Enze Sima, Chonghao Lu, Tong, arXiv: 2203.17270v1


[10] https://www.youtube.com/watch?v=j0z4FweCy4M


[11] https://csyhhu.github.io/2015/07/09/IPM/

 

[12] https://www.nuscenes.org/

 

About Author


김 신

Pro, AI 3팀

skim@cubox.ai