이번 포스팅은 mono camera 3D detection model인 MonoDGP모델입니다.
해당 모델은 MonoDETR이라는 모델을 baseline으로하여 발전시킨 모델로 아래 포스팅 참고하세요.
[paper review] MonoDETR : Depth-guided Transformer for Monocular 3D Object Detection 논문 리뷰
안녕하세요. 이번에는 monocular 3D detector인 MonoDETR 이라는 논문에 대해서 리뷰하겠습니다.MMlab으로 유명한 CUHK의 mmlab에서 나온 논문으로 ICCV '23 에 publish되었습니다. 기존의 방법들은 보통 2D detecto
jaehoon-daddy.tistory.com
Intro
대부분의 multi-camera 3D detection 모델은 각 카메라의 feature들을 BEV라는 space로 옮겨서 진행하지만 mono-camera의 경우 Depth ambiguity 때문에 BEV방법을 보통은 사용하지 않습니다. 대신 MonoDETR에서는 2D detector, DETR의 아키텍쳐방식을 변형하면 query base방식을 사용하였는데 MonoDETR도 기본적으로는 DETR과 같은 transformer방법을 사용합니다.

overview

MonoDETR대비 달라진 부분은 Depth feature을 extraction할때 segmentation head를 사용했다는 부분과 2D Decoder와 3D decoder를 분리해서 2d/3d prediction을 따로 뽑았다는 점입니다. segmentation head는 auxilary task에서 최대한 비슷한 task를 하는 것이 성능 향상에 도움이 되기 때문에 segmentation head로 바꾼것으로 보이고 2d/3d를 분리한점음 3D detector의 학습이 더 어렵기때문에 3D부분이 전체적인 성능을 망칠 수 있는 위험을 헷지하기 위함으로 생각됩니다.
Region Segmentation

segmentation head를 자세히 보겠습니다. 기본적형태는 UNet과 동일하고 foreground, background를 구분하는 것이 목표입니다. (3D GT box 에 속하면 foreground). 백본에서의 얻은 feature pyramid결과를 Unet에 통과시킵니다. 각 layer의 feature에 region probability(foreground일 확률)을 곱해 feature을 업데이트한 부분은 visual encoder로 보내고(enhanced feature), region probability를 0.5 threshold해서 이진화한 부분은 depth predictor 모듈로 보냅니다.
이 Target Region Probability는 Region loss를 사용합니다.


Dice loss는 보통의 segmentation loss로 두 샘플의 유사도를 측정합니다.
Decoupled Query
앞서 말한대로 query를 분리시킵니다. 2D decoder로 부터 대략적인 2D 정보를 추려낸뒤에 3D coder에서 interaction하는 것이 모델의 혼란을 막는다는 취지입니다.
Geometry Error

위의 그림의 예처럼 자동차의 GT를 projection하면 실제의 h를 그대로 반영할 수 없다는 내용입니다. GT h를 projection하면 2D에서는 2D height보다 작게 나오는 문제가 발생합니다. 이를 해결하기 위해 error h term을 추정할 수 있는 learnable parameter를 추가합니다.



Experiments

KITTI 벤치마크 결과입니다. Test set기준으로 BEV에서 easy case를 제외하고는 제일 높은 성능을 기록하였습니다.