[arvix 2023] TR3D: TOWARDS REAL-TIME INDOOR 3D OBJECT DETECTION

최근에 sparse 3D convolution을 이용한 3D CNN방법은, 3d point cloud 데이터를 voxel형태로 변환하여 적용하는 voxel-based approach에 견줄만한 성능을 보이면서도 memory효율이 좋아 large scale scenes에도 잘 적용할 수 있다. 본 논문에서는 실험적 결과를 토대로 분석하면서 성능을 높일 수 있는 방법을 고민했다. 제안하는 TR3D는 Towards Real-time indoor 3D object detection의 약자로 end-to-end로 train되는 3d object detection 모델이며 다양한 indoor benchmark dataset에서 sota를 달성하였다. 또한 point cloud와 RGB의 장점을 모두 활용하기 위해 2d feature와 3d feature를 early fusion한 TR3D+FF를 제안하였고 SUN RGB-D 데이터 셋에서 sota를 달성할 수 있었다. point cloud기반 TR3D와 multi-modality 기반(rgb+point cloud) TR3D+FF는 모두 빠르면서 memory효율적인 모델로 real-time 3d detection 분야에 새로운 지표가 될 수 있을 것 같다. 참고로 해당 논문의 저자들은 fusion기반 ImVoxelNet과 이전에 리뷰했던 point cloud기반 FCAF3D를 제안한 저자와 동일하다.

Introduction

이전의 FCAF3D 논문 리뷰에서 언급했던 것 처럼 최근 3D object detection 방법론은 크게 3가지로 나눌 수 있는데 voting-based, transformer-based, 3D convolutional로 나눌 수 있다. 먼저 voting-based 방법론은 points들이 object가 있을 법 한 곳에 object center에 대해 voting하는 방식으로 feature를 추출하여 object center를 기준으로 grouping 한 주변 points들의 feature를 합친다. 많은 voting방식의 방법론들은 scalability issue가 있다. 다음으로 transformer-based 방법론들은 end-to-end learning을 통해 학습하고 foward pass 방식으로 inference하는 방식을 사용한다. transformer의 사용으로 좀 더 generalized한 방식이지만 여전히 large scenes를 processing하기 어려운 scalability issue가 존재한다. 3D convolutional 방법론의 경우에는 이전 FCAF3D나 voxelnet과 같이 point cloud를 regular한 grid의 voxel형태로 변환하여 processing하는 방법론이다. voxel로 변환하여 사용하는 경우 sparse한 3d data를 processing하는데 좀 더 효율적이다. sparse한 voxel은 사용하지 않아도 되기 때문이다. 하지만 dense한 volumetric features는 많은 memory를 필요로하고 따라서 많은 연산량이 필요하다. 그렇기 때문에 sparse representation과 sparse 3D convolutions가 사용된다. 다른 방법론들과 비교해보았을때 sparse 3d convolution을 사용한 방법론이 memory측면에서 효율적이며 large scene에 대해서도 scalability 문제가 적다. 하지만 최근까지 accuracy에 대한 부분이 해당 방법론들의 문제도 여겨졌다. 하지만 이전 FCAF3D 논문에서 빠른 속도와 accuracy까지 좋은 성능을 보인 method를 제안했다. 

근래까지 3d object detection 방법론들 중 좋은 성능을 보였던 모델들은 geometric input인 point cloud만을 input으로 하였다. 하지만 다른 modality의 장점을 3d object detection에 적용하여 data의 표현력을 높일 수도 있다. 우선 point cloud의 경우에는 data를 취득하기가 어렵고 추가적인 장비나 processing이 필요하다. 3d data가 취득하기 어려운 이유에 대해 생각해보면 우선 3d point cloud를 취득하기 위한 sensor는 비용이 비싸고, 또 고품질의 point cloud를 취득하기 위해 resolution과 accuracy 측면에서 한계가 있다고 한다. 또한 스캔한 point cloud 품질면에서 noise나 outlier를 제거하는 후처리를 해주어야하는데 이 과정에서 많은 시간이 소요된다. 하지만 rgb camera data는 3d point cloud보다 취득과 가공이 쉬워 더 접근성이 좋다고 할 수 있겠다. 기존에 존재하는 rgb data를 마지막에 fusion하는 late fusion방식에서는 많은 memory를 필요로 하는 구조를 가지거나 활용 목적에 따라 custum한 procedure에 의존하기 때문에 사용하는데 제한적이다. 반면 본 논문에서는 rgb를 point cloud를 기반으로 하는 모델에 early fusion을 활용한 방법을 사용하였고 multi-modality를 활용한 3d object detection에서 sota를 달성할 수 있었다.

Related Work

위에서 언급했던 것처럼 최근 3d object detection 방법론은 크게 voting-based, transformer-based, voxel-based 3가지로 나눌 수 있다.

우선 voting-based 방법론에서 대표적으로는 VoteNet이 있다. 3d point feature를 추출하여 object center로 추측되는 point에 voting을 하고, voting된 center 주변 point들을 grouping하여 각 group마다 feature 연산하는 방법이다. 이후에 BRNet, H3DNet, RGBNet 등이 제안되었다.

transformer-based 방법론의 경우 voting-based와 다르게 parameter를 통해 명시적으로 grouping하지 않아 덜 domain-specific 하다고 할 수 있겠다. GroupFree, 3DETR과 같은 방법론들이 존재한다.

voxel-based 방법론은 points들을 regular grid인 voxel형태로 바꾸어 3d convolutional network에 태우는 것이다. 이 경우 dense한 volumetric voxel에서는 많은 연산량을 요구하게된다. GSDN가 sparse 3d convoluitons를 사용하여 computational cost를 줄이려했지만 accuracy가 좋지 않았다. FCAF3D는 anchor-free방식을 사용하여 더 data-driven한 방식을 지향했고, 최초로 voting-based보다 좋은 성능을 보이는 voxel-based 방법론이었다. 본 논문에서는 FCAF3D를 base로 하였다. 

그리고 이제 point cloud와 rgb를 fusion하는 방법이 있다. rgb image에 포함된 semantic한 정보를 추가로 사용하여 detection 성능을 향상시키는 방법이다. ImVoteNet, EPNet++, MMTC 등이 있다. 최근에 나온 TokenFusion은 transformer model을 사용하며 정보가 부족한 token을 point cloud와 rgb의 inter-modal features로 대체하는 방법으로 학습한다. 

Method

본 논문에서 제안하는 TR3D는 이전에 리뷰했던 FCAF3D를 base로 하며 simple한 fully convolutional 구조를 가져 빠르지만 높은 accuracy를 보인다. 또한 rgb의 semantic한 정보를 더하기 위해 point cloud와 rgb image를 early feature fusion한 TR3D+FF model을 제안하였다. FCAF3D는 바로 전에 리뷰한 논문으로 해당 링크에서 확인할 수 있다.

TR3D: 3D Object Detection Method

여기서는 FCAF3D를 조금 수정한 모델을 base로 사용하였다. 아래 Fig 1에서 FCAF3D와 본 논문에서 제안하는 TR3D의 구조를 비교하여 보여준다.

우선 FCAF3D에 대해 간단히 알아보자. FCAF3D는 anchor-free방식의 indoor 3d object detection 모델로 다양한 indoor dataset에서 sota를 달성하였다. model architecture는 크게 backbone block, neck, head로 나뉜다. backbone은 ResNet애서 2d convolution을 sparse 3d convolution으로 변경하여 적용하였다. 논문에서 이렇게 변형한 backbone을 HDResNet으로 언급했다. sparse 3d convolution에 대해서도 간단히 설명하자면 0이 아닌 값을 가지는 부분이 output에 영향을 미치는 rule을 파악해서 해당 부분만 연산하는 방식이다. 아래 예시 그림을 통해 좀 더 알아보자.

맨 왼쪽 그림에서 빨간색으로 표시된 부분만이 정보가 존재하는 voxel이다. 나머지 파란 부분은 point가 존재하지 않는 빈 voxel이라는 뜻이다. 즉 input 중 (1,2)에만 정보가 존재한다고 할 수 있는데 현재 5×5 input에 3×3 filter로 padding없이 cnn연산을 하면 3×3의 output이 생성되는 것을 알 수 있다. 현재 그림에서 input에서 값이 존재하는 voxel과 연산되는 filter는 (0,1)위치이고 그 연산의 결과는 output (0,0)에 저장되게 된다. 해당 위치 값에만 영향을 미치게 되는 것이다. 맨 우측을 보면 이러한 방식으로 rule book을 생성하게 되면 input좌표 (1,2)의 결과로 바뀌는 output의 좌표는 (0,0), (1,0), (0,1), (1,1), (0,2), (1,2) 총 6개만이 존재한다. 따라서 input 좌표 (1,2)와 관련된 rule은 총 6개가 존재하게 된다. 따라서 원래 9개 값에 대해 9번 연산해서 총 81번 해야하는 연산량이 rule book을 이용하면 6번만 연산하게 되어 time consuming cost를 줄일 수 있다. 

그리고 neck부분은 GSDN의 decoder를 사용한다. 각 level에서 feature는 sparse transposed 3d convolution과 sparse 3d convolution, pruning을 통과하며 head부분에서 classification probabilities, bounding box regression, centerness를 각각 출력하게 된다. 

위의 Fig 1처럼 TR3D의 architecture를 구성하기 위해 S3DIS dataset에서 점진적으로 하나씩 실험하며 수정을 진행했다고 한다. 해당 실험의 결과는 아래 Table 1에 정리해서 reporting되어있다. 

우선, 저자는 baseline model인 FCAF3D보다 가볍고 빠른 모델을 만드는데 집중했다. 결과를 하나씩 확인해보자.

우선 첫 번째 level의 head에서 transposed convolutional layer가 전체 memory의 3분의 1을 차지하는 것을 확인했다. 따라서 저자는 첫 번째 layer의 head를 제거했다. 따라서 메모리 용량도 661Mb에서 415Mb로 줄어들었고 fps도 10.9에서 16.9로 6FPS가 빨라진 것을 확인할 수 있다.

그리고 추가로 pruning을 제거했을 때 성능이 pruning 했을 경우와 차이가 없는 것을 확인할 수 있고 속도는 빨라진 것을 확인할 수 있다. pruning을 제거했을 때 같은 memory용량을 차지하는 것에 대해 의문이 들었는데 생각하기로는 FCAF3D에서 input points 수와 voxel 수를 같게 유지해주기 때문에 그런 것 같다고 생각했다. 그래서 pruning과정을 제외시켰다고 한다.

그리고 4번째 level의 head도 제거를 했는데 4번째 level의 경우 넓은 영역을 수용하기 때문에 large object에 집중하는 경향이 있을 것이다. 하지만 저자는 indoor환경에서 그 정도 크기의 large object는 많지 않기 때문에 성능에 큰 영향을 주지 않을 것이라 생각하여 제거하였다. indoor 환경의 특성을 고려하여 수정한 부분이다. 성능결과를 보면 accuracy는 조금 하락했지만 parameters 수가 줄어 필요한 memory용량이 줄어드는 효과가 있었다. 사실 이 부분에 대해서 뒤에 추가적인 modification에 영향을 얼마나 미쳤는지는 모르지만 level 4에서 head를 삭제하지 않고 실험한 결과가 있었으면 좋았을 것 같다라는 아쉬움이 있다. 

또 backbone에서 level 3,4의 output channel이 기존에는 256, 512였는데 이것을 모두 128로 축소하였다. 뒷쪽 level의 channels 수를 줄여주었기 때문에 parameters 수가 68.3에서 14.7로 dramatic하게 줄어든 것을 알 수 있고 이에따라 FPS와 memory 효율도 좋아졌다. 이 부분에서 accuracy의 하락은 real-time detection을 위한 가볍고 빠른 속도를 위해서 적절한 modification이라 생각한다. 

또한 detection accuracy에 대한 고려도 하지 않을 수 없다. 

일단 FCAF3D에서 적용한 centerness가 성능에 영향을 주지 않는 것을 실험을 통해 알아냈다 Table 1에서 centerness를 제외한 것이 오히려 더 좋은 성능을 보인 것을 알 수 있다. centerness란 object center에서 떨어진 거리에 따라 멀리 떨어진 거리의 point에 영향력을 줄이고 가까운 point에 영향력은 크게하는 것이다. 따라서 centerness를 제외했다.

FCAF3D에서는 3d bounding box 내부의 points들만 object를 판별하는데 사용했다. 하지만 이 경우에 작은 물체나 화이트 보드와 같은 얇은 물체들을 검출하지 못해 놓치는 문제가 발생한다고 한다. 본 논문에서는 bounding box 내부의 points들 뿐만 아니라 그 주변에 가까운 points들까지도 고려하였다. 추가로 각각 categories에 대한 head level을 사전에 정의한다. 무슨 의미인가하면 bed, sofa와 같이 큰 objects들은 3번째 head level에서 처리하고, chair나 night stand와 같이 작은 objects들은 2번째 head level에서 처리한다는 뜻이다. 이러한 적용 방식이 Table 1에 TR3D assigner를 의미한다. 새로운 multi level assigner를 통해 61.5에서 72.9로 mAP를 향상시킬 수 있었다. 

위에서 새로운 TR3D assigner를 적용하므로써 어떤 object로 assign된 point는 gt bounding box 외부에 존재할 수 있다. 이러한 경우 IoU가 0이 되는데 두 bounding box가 겹치지 않는 경우에도 거리를 고려한 D-IoU loss를 적용하였다. D-IoU란 distance-iou를 의미하며 iou-loss에 중심점을 고려하는 penalty term을 추가한 방식이다. 

ρ는 Euclidean distance를 의미하고 b와 b^gt는 predicted box, target box의 중심점 좌표를 의미하고 c는 predicted box와 target box를 덮는 박스의 대각 길이를 의미한다. 

DIoU loss를 추가하여 72.9에서 74.5로 accuracy를 향상되었음을 확인할 수 있다.

baseline model인 FCAF3D와 비교해보았을 때 3배 적은 memory를 사용하고 parameters 수는 4.5배 적은 반면 속도는 2배가 빠른 것을 실험적으로 보였다. 모델을 경량화하면서 accuracy는 향상시킨 점이 간단하지만 큰 개선점이라고 생각이 든다. 

TR3D+FF: RGB and Point Cloud Fusion

TR3D에서는 2d image를 3d feature와 early fusion하였다. 우선 rgb images들은 2d object detection을 하기 위해 ResNet50에 FPN을 추가한 pre-trained된 network를 통과한다. 그리고 추출한 2d features는 3d space에 projection된다. 그리고 projection된 2d features와 3d features는 element-wise로 fusion한다. 아래 Fig 2에 나타난 것처럼 기존에 존재하는 rgb와 point cloud의 fusion방식을 사용한 다른 방법론들에 비해, 본 논문에서 제안하는 fusion방법인 (d)의 TR3D+FF가 더 간단하고 메모리 측면에서도 효율적이라고 한다. 뿐만아니라 더 좋은 성능을 보인다. 너무 간단해서 특별히 다른 설명이 없다.

아래 Table 2에서는 다른 point cloud based 3d object detection 방법론들에다가 본 논문에서 제안하는 fusion 방식을 적용한 실험결과를 보여주고 있다. 

먼저 point cloud를 기반으로 하는 VoteNet과 VoteNet에 본 논문에서 제안하는 fusion방식인 FF를 추가한 방법을 비교해보면 accuracy가 57.7에서 64.5로 상당히 많이 좋아진 것을 확인할 수 있다. 또 ImVoteNet의 경우 VoteNet에 image feature를 fusion했던 기존의 다른 방법론인데, VoteNet에 FF로 fusion한 방식과 비교해보면 각각 63.4와 64.5의 정확도를 보이며 본 논문에서 제안하는 간단한 fusion방법이 더 효과적이라는 것을 보여준다. TR3D와 early fusion을 추가한 TR3D+FF를 비교해보았을 때도 accuracy가 각각 67.1과 69.4로 소폭 상승한 것을 확인할 수 있다. 이 실험 결과를 통해 rgb를 fusion한 방식이 약간의 정확도 향상을 보여주었음에 따라 point cloud가 중요한 information source를 가지고 있고, rgb인 2d feature의 경우 point cloud의 정보를 보충해주는 guide역할을 한다는 것으로 이해할 수 있겠다. 따라서 추후 point cloud를 기반으로 하는 방법론에 fusion하는 방식을 잘 고려한다면 더 좋은 성능을 보이는 network가 나올 수 있겠다는 생각이 들었다. 하나 아쉬운 점은 end-to-end 방식이 아니라 2d image를 가지고 2d model을 pre-trained시켜야 한다는 점이라고 할 수 있겠다.

Experiments

Experimental Settings

본 논문에서는 SUN RGB-D, ScanNet v2, S3DIS dataset에서 실험을 진행하였다. 

ScanNet v2는 1513개의 reconstructed scans를 포함하며 본 실험에서는 18개의 object categories에 대해 axis-align bounding box(AABB)를 설정하여 진행했다.

SUN RGB-D의 경우는 monocular dataset으로 10,355장의 rgb-d images를 포함한다. object의 heading angle을 포함하는 oriented bounding box(OBB)로 annotation되어있으며 10개의 object categories에 대해서만 진행했다.

S3DIS는 6개의 large areas에서의 271 scenes로 되어있으며 일반적으로 사용하는 방식과 동일하도록 area5의 5개 categories에 대해서만 진행했다.

평가 metric은 mAP를 사용했고, random성으로 인한 outlier를 고려하고 보다 정확한 실험 결과를 위해 5번씩 train과 evaluation을 진행했다고 한다.

Comparison to Prior Work

우선 아래 Table 3은 기존의 존재하는 point cloud기반 방법론들과 본 논문에서 제안하는 TR3D를 3개의 dataset에서 평가한 결과이다. 본 논문에서 제안하는 TR3D가 모든 평가에서 가장 좋은 성능을 보이는 것을 확인할 수 있다. 특히 주목할만한 결과는 S3DIS에서는 바로 이전에 나온 sota모델인 FCAF3D와 비교결과에서 7.8%의 큰 폭의 mAP 상승을 보여주는 것이다. 또한 inference speed도 2개 가량 빨라진 것을 알 수 있다. 다른 기존 방법론들과 비교했을 때 간단한 모델 architecture를 가지지만 속도와 정확도 모든 면에서 좋은 결과를 보여 놀랍다고 생각했다. 

아래 Figure 2를 통해 ScanNet v2, SUN RGB-D, S3DIS 데이터 셋 각각에서 TR3D모델이 얼마나 잘 detection을 했는지 정성적인 평가를 해볼 수 있다.

아래 Table 4에서는 기존에 point cloud와 rgb를 함께 사용한 multi-modal 방법론들에 대해 SUN RGB-D dataset에서 평가를 진행한 결과를 보여준다. 기존 sota모델이었던 MMTC와 비교했을 때 mAP를 최대 4.8%나 향상시켜 notable한 결과를 보였다. 또한 FPS를 보면 MMTC는 7도 안되는데 TR3D+FF는 17.5로 빠른 속도를 보인다. 이외 다른 방법론들과 비교했을때도 정확도와 속도 모든 면에서 인상적인 결과를 보였다고 생각한다.

Conclusion

본 논문에서는 새롭게 간단한 architecture를 가진 3d object detection 방법론인 TR3D를 제안했다. 또한 rgb visual features를 point cloud feature와 early fusion하는 TR3D+FF를 제안했다. ScanNet v2, SUN RGB-D, S3DIS 이렇게 3개의 indoor benchmark에서 실험을 통해 좋은 성능을 보임으로써 제안하는 방법론의 효용성을 입증했다. 빨라진 속도와 높아진 정확도로 indoor 3d object detection분야에 새로운 milestone이 되었다고 생각이 들고 앞으로 end-to-end 방식의 방법론이 나오지 않을까하는 생각이 든다.

Author: 도경 김

4 thoughts on “[arvix 2023] TR3D: TOWARDS REAL-TIME INDOOR 3D OBJECT DETECTION

  1. 안녕하세요. 좋은 리뷰 감사합니다.

    저는 FCAF3D와 TR3D의 차이가 64->128->256->512로 변하는 거랑 Prunning이 있다는게 가장 큰 차이점이라고 생각을 했는데요. 그런데 prunning을 제거했을 때 왜 성능 차이가 발생하지 않는지 궁금합니다. 분명 FCAF3D에서 괜히 pruning을 사용하지 않았을텐데 제거했을 때 차이가 별로 없다면 왜 사용했을지도 궁금합니다.

    감사합니다.

    1. 댓글 감사합니다.
      FCAF3D에서 pruning을 한 것은 이전 모델 GSDN과 동일한 설정으로 진행했기 때문에 pruning을 했습니다. 3차원 cubic형태의 voxel이므로 upsampling을 하게되면 많은 parameter가 생성됩니다. 메모리를 많이 차지하기 때문에 pruining을 통해 threshold이상의 voxel에 대해서만 남기는 pruining을 진행했습니다. pruning 시 유의미한 voxel에 대해서 pruning을 한 경우 성능 드롭이 발생할 수 있다고 생각합니다.

  2. 김도경 연구원님 안녕하세요, 좋은 리뷰 감사합니다.

    본 논문의 모델은 3D object detection에 point cloud(voxel)와 RGB 컬러정보의 multi-modality를 early feature fusion하고, 모델을 경량화한 것으로 이해했습니다. 리뷰를 읽다보니 몇 가지 궁금한 점이 생겨 질문 남깁니다.
    1. 3d object detection에서 voting-based와 tramsformer-based 방법론 모두 scalability issue가 있다고 하셨는데, scalability issue가 무엇인가요?
    2. anchor-free 방법은 anchorbox를 사용하는 방법과 비교하면 어떤 장단점이 있나요? anchorbox에 구애받지 않으니 더 다양한 물체를 검출할 수 있을 것 같은데, 단점도 있는지 궁금합니다.
    3. RGB와 point cloud를 feature fusion하는 방법이 잘 와닿지 않습니다… early feature fusion이라면 color camera와 depth camera를 align해 함께 촬영해서 point cloud의 각 point 자체에 R,G,B 컬러정보를 입혀서 진행하는 것인가요? 그렇다면 일반적인 2d 컬러 영상을 convolution하는것과 동일한 방법으로 3채널 voxel에 3D convolution을 하게 되나요?

    감사합니다.

    1. 댓글 감사합니다.

      1. scalability issue란 large scene과 같은 경우 computational cost가 커서 시간이 오래 걸려 real-time detection을 하기에 어려움이 있는 문제를 의미합니다.
      2. anchor-free방식은 말씀하신대로 anchor box에 object를 한정하지 않기 때문에 다양한 크기의 object를 검출하는데 도움이 될 수 있습니다. 하지만 단점 역시 존재하는데 object의 size나 shape과 같은 정보를 대강 파악할 수 없기 때문에 data 분포에 영향을 더 많이 받는다고 할 수 있고, 이로 인해 더 많은 training data를 접해야 object에 대한 정보를 많이 얻어 좋은 성능을 보일 수 있다고 생각합니다.
      3. rgb camera로 얻은 color 정보와 depth sensor를 통해 얻은 depth 정보를 합쳐 3d point cloud정보를 얻을 수 있습니다. 여기서는 rgb를 가지고 2d detector를 이용하여 features를 추출하고 이 features와 3d point cloud를 element-wise로 더해줍니다. 말씀하신것처럼 3차원 voxel에 대해 3d convolution을 수행하게 됩니다.

답글 남기기

이메일 주소는 공개되지 않습니다. 필수 항목은 *(으)로 표시합니다