본문 바로가기
Study/Paper Review

[paper review] TPV Former (Tri-Perspective View for Vision-Based 3D Semantic Occupancy Prediction)

by Hoony-Daddy 2024. 2. 25.
728x90

이번에 포스팅할 논문은 TPVFormer로 multi-cam기반의 semantic occupancy prediction model입니다. An academic alternative to Tesla's Occupancy Network이라는 부제로 일전의 테슬라 day에서 보여준 autnomous vehicle model의 academic버전이라고 저자는 주장하고 있습니다.

 

벤치마크에서도 상위권에 랭크하고있습니다.(사실 multi-cam기반의 semantic occupancy or segmentation 논문은 거의없습니다..)

 

Prior Knowledge

시작하기 전에 deformable attention에 대해 이해할 필요가 있습니다. 아래 포스팅에 자세히 서술하였습니다. 간략히 말하면 기존의 attention mechanism에서는 attention단계에서 모든 feature들끼리 하다보면 computation cost가 매우 큰 단점이 존재합니다. 이에 따라 query feature와 reference point를 정하고 이 reference point에 learning base로 offset을 적용하여 sampling된 feature point들끼리만 attention을 적용합니다. 즉, 중요한 친구들하고만 attention하겠다라고 정리할 수 있습니다.

 

[CV / Detection] DETR기반의 Image Detector들

안녕하세요. 2D Detection관련하여 이번에는 DETR 모델에 관련해서 포스팅 하려합니다. 포스팅 시점 현재 2D image detection에서 bench mark SOTA에 올라와 있는 모델이 DETR기반의 모델이기 때문에 해당 모델

jaehoon-daddy.tistory.com

TPV?

TPV는 Tri-perspective View의 줄임말로 BEV의 상위랭크 버전입니다. BEV보다는 recptive field가 크고 voxel만큼은 아니여서 computation cost는 그보다는 낮다는 것이 장점입니다. BEV의 xy plane, yz plane, zx plane버전이라고 생각하시면 되겠습니다.

Methodology

위의 그림이 전체적인 overview입니다. 집중해야할 부분은 TPV Representation부분으로 결국 TPV representation공간을 update하는 것이 목적입니다.

nuscenes data기반으로 보면 6개의 camera에서 얻은 image로 backbone network를 거쳐 각각 feature map을 얻습니다. 그리고 논문에는 나와있지는 않지만 zero initial value로 초기화된 TPV space를 정의합니다. world coordinate을 기준으로 하면 각각 plane 은  [h,w,c] or [w,z,c] or [z,h,c] 의 shape으로 구성되어 있습니다. (c는 채널)

Image Cross-Attention

우리의 목적은 TPV Representation 공간을 학습시켜 update하는 것입니다. 이를 위한 첫번째 모듈로 cross-attention단계를 거칩니다. TPV plane의 임의의 grid를 뽑습니다. 이를 TPV query라고 하고 거듭말하지만 learnable parameter로 이 grid들을 학습시켜 TPV representation을 업데이트합니다.

TPV query를 기준으로 orthogonal 하게 매칭되는 다른 두 plane에 매칭되는 부분을 (그림에서 빨간색 점) reference point로 그룹화합니다. reference point들을 world coordinate의 3차원 공감에 있습니다. 이를 각각의 calibration matrix를 이용해서 각각의 카메라에서 나온, backbone을 거쳐나온 feature map에 projection합니다. 이 후 valid feature가 존재하는 것들끼리 prior knowledge에서 설명한 deformable attention을 거칩니다. 그렇게 feature 를 업데이트 한 후 그 값들을 summation하여 TPV query의 값을 업데이트합니다.

Hybrid-attention

 

다음으로 hybrid-attention 모듈을 거치게 되는데, TPV space내부에서 attention을 하게됩니다. cross-attention과 마찬가지로 임의의 TPV query를 뽑고 해당 plane에서는 random하게 주변의 n개의 feature를 뽑습니다. 마찬가지로 othogonal 방향으로 매칭되는 다른 두 평면의 grid의 n개와 deformable attention을 거쳐 TPV query를 업데이트하게 됩니다.

application?

TPV representation을 위에서 설명드린대로 update하고나면 최종적으로는 이를 사람이 인식할 수 있도록 voxel representation 혹은 point feature레벨로 변환해야합니다. voxel은 TPV plane들을 오버랩해서 각각 summation한후에 mlp를 태워 표현합니다. 이를 통해 occupancy grid map을 구합니다.

point feature레벨은 lidar data(raw data)가 있을때 이와 매칭되는 TPV plane에서의 3개의 grid를 구하고 이를 summation후에 mlp를 태워 해당 point의 label을 예측하게 됩니다.

Experiment

nuscenes 데이터로 segmentation 결과합니다. TPVFormer는 위의 application에서 point feature방법으로 구하였습니.

사실 lidar segmentation model대비 성능이 높지는 않지만 그래도 camera만으로도 유의미한 결과를 도출했다는데 의의를 둘순있겠습니다.

위의 그림이 occupancy grid타입의 map입니다.

 

이상으로 TPVFormer리뷰를 마치겠습니다.