https://arxiv.org/abs/2007.16100
Searching Efficient 3D Architectures with Sparse Point-Voxel Convolution
Self-driving cars need to understand 3D scenes efficiently and accurately in order to drive safely. Given the limited hardware resources, existing 3D perception models are not able to recognize small instances (e.g., pedestrians, cyclists) very well due to
arxiv.org
안녕하세요, 이번 글에서는 Searching Efficient 3D Architectures with Sparse Point-Voxel Convolution(2020) 논문 리뷰를 해보도록 하겠습니다.
1. Introduction
자율주행 Outdoor scene에서 3D perception 모델의 목표: high accuracy & low latency
Outdoor scene 특징: LiDAR 센서를 통해서 얻어지는 데이터는 찍은 위치에서 멀어질수록 데이터가 희미 (=Irregular), 찍힌 포인터들이나 공간적 영역이 넓음 (=Sparse) -> heavy한 데이터
기존 3D perception 모델들은 낮은 해상도의 복셀화(voxelization)와 과도한 다운샘플링(downsampling) 때문에 작은 객체를 잘 인식하지 못한다는 한계가 있음.
두 가지 3D data representations의 단점
- point cloud: 불규칙한 데이터 구조화에 많은 연산 소모
- voxel grids: 큰 정보 손실
-> 자율주행처럼 하드웨어 자원이 제한된 환경에서는 기존 모델들은 성능 저하 문제 발생
이러한 문제를 해결하기 위해, 논문에서는 Sparse Point-Voxel Convolution(SPVConv)이라는 경량 3D 모듈을 제안. 이는 기존 Sparse Convolution에 고해상도 포인트 기반 브랜치를 추가하여 미세한 디테일을 유지하면서도 연산 오버헤드를 최소화한 것.
또한, SPVConv를 기반으로 최적의 3D 네트워크 아키텍처를 탐색하는 3D Neural Architecture Search(3D-NAS)를 도입하여, SPVNAS 모델을 개발.
이 논문의 Contribution은 다음과 같다.
- SPVConv 설계: 제한된 하드웨어 환경에서도 작은 객체의 인식 성능을 개선하는 경량 3D 모듈 SPVConv를 개발
- 3D-NAS 제안: 자원 제약을 고려하여 최적의 3D 모델을 자동 탐색하는 최초의 AutoML 프레임워크인 3D-NAS를 도입
- 우수한 성능 및 확장성: SemanticKITTI 리더보드 1위를 달성, 3D 객체 탐지에도 적용 가능
* NAS (Neural Architecture Search): 자동으로 높은 정확도의 신경망을 설계하는 방법
2. SPVConv
기존 3D 모듈 2가지
- Point-Voxel Convolution
- point로 메모리 절약, voxel로 데이터 regular하게 정리하여 처리 속도 향상 및 locality 향상.
- PVCNN 성능 한계: 12GB GPU에서 최대 128³ 복셀 처리 가능.
- 대규모 scene 문제: 큰 scene(100m × 100m × 10m)에서 복셀 크기가 커져 작은 객체 학습 어려움 → 성능 저하.
- 해결책의 문제: 작은 윈도우로 쪼개고 세밀한 복셀(≤0.05m) 유지하면 244번 연산 필요 → 한 장면 처리에 35초 소요 → 자율주행 같은 real-time applications 불가.
- Dense voxel grid를 사용: 모든 공간에 데이터가 있다는 전자하에 연산을 하기에 매우 느리다
- Sparse Convolution
- 활성화된 영역만 연산하여 메모리 소비를 줄이는 방식.
- 입력과 출력 포인트 간 activate synapse(=kernel map)를 찾아 그 위에서만 convolution 수행.
- 장점: 기존 Volumetric Convolution보다 더 높은 해상도 처리 가능, 추론 속도 빠
- 깊은 구조의 한계: 네트워크가 깊어질수록 연산량이 급증해 깊은 구조를 만들기 어려움.
- 정보 손실 문제: receptive field를 키우려면 다운샘플링을 강하게 적용해야 함 → 작은 객체 인식 어려움.
위의 두 모듈의 한계를 극복하기 위해 Spase Point-Voxel Convolution 제안.
- Point-Based Branch: 고해상도 표현 유지
- Sparse Voxel-Based Branch: Sparse Conv 사용하여 다양한 receptive field 크기를 모델링
- 두 브랜치는 sparse voxelization와 devoxelization를 통해 적은 비용으로 상호 작용
복셀과 Input-point cloud를 모두 사용하는데, 메모리는 사용량은 올라가지만 주변 데이터를 찾을 때 복셀을 이용하기 때문에 빠르게 찾을 수 있고, 정확도 측면에서도 Voxelization을 통해 잃게 되는 위치의 정확도 측면을 Point 기반의 방법으로 보완하여 복셀 기반보다는 좋은 성능.
voxel feature와 point feature를 합쳐서 최종 Output
SPVConv의 두 가지 주요 데이터 구조
- Sparse Voxelized Tensor
- : 각 복셀의 3D 좌표
- fsm : 해당 복셀(grid)의 특징 벡터
- v : 복셀 크기(한 개의 복셀 변 길이)
- Point Cloud Tensor
- : 개별 포인트의 3D 좌표
- ftk : 해당 포인트의 특징 벡터
- 스파스 복셀화 (Sparse Voxelization)
- 포인트 클라우드 텐서 T를 스파스 텐서 S로 변환.
- 각 포인트의 좌표를 복셀 크기 로 나눈 후, floor 연산을 적용하여 해당 포인트가 속하는 복셀 좌표를 계산
- 기존 방식의 O(mn) 연산 복잡도를 GPU 해시 테이블로 최적화하여 으로 개선.
- 특징 집계 (Feature Aggregation)
- Sparse Convolution을 적용하여 특징 추출.
- 각 복셀의 특징 벡터 fsm는 해당 복셀에 속하는 모든 포인트의 특징 벡터 fkt의 평균값으로 계산됨
- 은 포인트가 특정 복셀에 속하는지를 나타내는 바이너리(0,1) 지표
- 은 해당 복셀에 포함된 포인트 개수로 정규화(Normalization) 역할
- GPU 병렬 처리로 기존 대비 1.3배 속도 향상.
- 스파스 디복셀화 (Sparse Devoxelization)
- 8개 이웃 복셀을 활용한 Trilinear Interpolation으로 포인트 기반 표현 복원.
- 포인트 변환 및 특징 융합 (Point Transformation & Feature Fusion)
- 포인트별 MLP 적용 후 Sparse Voxel 특징과 융합.
- MLP 연산량은 전체 연산의 4% 수준으로 경량화 유지.
3. 3D-NAS
3D-NAS는 신경망 아키텍처를 자동으로 탐색하는 방법으로, 다음과 같은 두 단계로 구성된다:
- Super Network 학습
- 다수의 SPVConv(Structured Point-Voxel Convolution) 연산자로 구성된 슈퍼 네트워크(super network) 를 먼저 학습한다.
- 이 슈퍼 네트워크는 미세한 채널 수 조정(fine-grained channel numbers)과 네트워크 깊이 조절(elastic network depths) 을 지원한다.
- 진화적 아키텍처 탐색(Evolutionary Architecture Search)
- 특정 연산 제약(computation constraint) 내에서 최적의 신경망 구조를 찾기 위해 진화적 탐색 알고리즘을 수행한다.
- 이를 통해 가장 적합한 모델(candidate model) 을 선정한다.
3D-NAS는 먼저 유연한 구조를 가진 네트워크를 학습한 후, 주어진 계산 리소스 내에서 최적의 모델을 탐색하는 방식으로 동작한다.
4. Experiments
이 논문에서는 경량화된 3D 모듈을 기반으로 먼저 SPVCNN 백본 네트워크를 수동으로 설계한 후, NAS 프레임워크를 활용하여 최적의 3D 모델을 탐색. 이를 SPVNAS라고 함.
SPVNAS는 기존 3D 모델 대비 더 적은 연산량과 빠른 속도로 더 높은 정확도 달성
3D Scene Segmentation (SemanticKITTI)
- 기존 최고 성능 모델보다 mIoU 3.3% 향상
- 연산량 및 모델 크기 대폭 감소, 속도 향상
- point-based branch 덕분에 작은 객체에서도 정확도 개선
3D Object Detection (KITTI)
- 기존 3D 탐지 모델(SECOND) 대비 작은 객체 탐지 성능 향상
- SPVConv의 Point-Voxel 융합이 작은 객체 탐지(특히 자전거)에 효과적
- cf) SECOND(최신 3D 객체 탐지 모델)는 3D Sparse Convolution + BEV 기반 2D RPN 구조