1. 멀티모달(영상+포인트클라우드) 객체 검출모델 훈련시 GPU 성능 및 추론시간 조사
| 멀티모달 모델 | GPU 사양 | 추론속도 |
| F-PointNet(CVPR 2018) | Evaluation GPU: GTX 1080 | ~5 FPS (200ms) |
| PointPainting(CVPR 2020) | 없음 (GPU 미기재) | +0.75 ms latency 증가 |
| EPNet (CVPR 2020) | Training GPU: TITAN XP ×4 | 없음 (추론 속도 미기재) |
| TransFusion (CVPR 2022) | Training GPU: V100 ×8 Inference GPU: Titan V100 + i7 CPU | - TransFusion-L: 114.9 ms → 8.7 FPS - TransFusion: 265.9 ms → 3.8 FPS |
| BEVFusion (2022) | Inference GPU: RTX 3090 | 119.2 ms → 8.4 FPS |
배치 1~2로 돌릴수는 있다고 함
-TransFusion은 gpu 메모리 12~16기가 원함
- BEVFusion은 gpu 메모리 24GB를 원해서 우리 환경에서는 BEVFusion은 힘듦.
<정확도>
1) F-PointNet (Frustum PointNet)- Frustum PointNets for 3D Object Detection from RGB-D Data
논문: https://arxiv.org/abs/1711.08488 (CVPR 2018)
gpu 사양: NVIDIA GTX 1080 and a single CPU core
추론속도: v1: 1 / 0.088 = 11.36 FPS, v2: 1 / 0.167 = 5.99 FPS ≈ 6 FPS
Backbone=> v1:PointNet 기반, v2:PointNet++
2) PointPainting (CVPR 2020)- PointPainting: Sequential Fusion for 3D Object Detection
논문: https://arxiv.org/abs/1911.10150
- 이미지 segmentation → LiDAR 포인트에 색칠
- PointPillars, PV-RCNN 등 기존 LiDAR detector 성능을 쉽게 상승
gpu 사양: 따로 나와있지 않음
추론속도: 기존모델에 PointPainting을 추가하였을때 0.75ms 만큼 추가된다고 나와있다.
<정확도>
3) EPNet (CVPR 2020)
논문: https://arxiv.org/abs/2007.08856
- 이미지 semantics → LiDAR point features에 attention으로 주입
- RoI 단계에서도 fusion
- LiDAR-only 대비 높은 정확도
gpu사양: Titan XP GPU(TRAIN)
추론시간: 나와있지 않음
4) TransFusion (CVPR 2022)
논문: https://arxiv.org/abs/2203.11496
- LiDAR BEV + Camera BEV → Transformer Cross-Attention
- nuScenes 등에서 당시 SOTA
- 강력한 multi-sensor fusion baseline
gpu 사양: Tesla V100 GPU / GPU 개수 8개
추론속도: 114.9~265.9ms (3.76 FPS~ 8.7 FP)
5) BEVFusion (2022)
논문: https://arxiv.org/abs/2205.13542
- 이미지 → BEV 변환(View Transformer)
- LiDAR BEV와 직접 fusion
- Tesla·XPeng 등 실제 자율주행 시스템에서 사용되는 구조
=> 차세대 자율주행 perception 구조의 핵심
gpu: RTX 3090(추론)
추론시간: 8.4 FPS
2. occupancy network
논문: https://arxiv.org/abs/1812.03828
Occupancy Network=> 3D 공간의 모든 점에 대해 물체 내부 여부를 예측하는 함수 모델
Occupancy Networks는 3D 표면을 심층 신경망 분류기의 연속 의사결정 경계로 암시적으로 나타낸다.
기존 접근 방식과 달리 Occupancy Networks는 무한한 해상도로 3D 출력을 기술할 수 있고, 차가적인 메모리 오버헤드를 필요로 하지 않음
voxel 재구성은 해상도가 증가함에 따라 메모리 비용 늘어나고 point와 mesh는 표현 제대로 하려면 후처리가 필요
-> 고정된 해상도에서 복셀화된 표현을 예측하는 대신 임의 해상도로 평가할 수 있는 신경망 fθ를 사용하여 완전한 occupancy 함수를 예측
---> 훈련동안의 메모리 사용량 급격하게 줄암
Occupancy Network는 입력(이미지, 점군, 복셀 등)을 바탕으로공간의 모든 3D 좌표 p ∈ R³에 대해,해당 점이 물체 내부(occupancy) 외부인지(empty)를 예측하는 함수 fθ(p, x)를 학습하는 모델임.
=> 이 함수의 결정 경계가 3d 물체의 표현이 됨
Occupancy Network는 voxel 좌표처럼 제한된 지점만 보는 게 아니라 3d 공간의 모든 점 p에 대해 occupancy를 예측
=> 3d 공간 전체를 연속적으로 모델
<학습과정>
1) 샘플링
학습 시, 물체의 3D bounding box 내부에서 K개의 점 p_ij 를 랜덤으로 샘플링
2) label
각 점 p_ij 가 객체 내부인지 외부인지 ->o_ij (ground truth occupancy)
3) 손실함수
- cross entropy
점을 어디서 어떻게 샘플링 하느냐가 모델 성능에 매우 중요, bounding box 내부를 균일 샘플링+작은 패딩 넣는 방식이 최적
<Inference-mesh 추출과정>
Occupancy Network는 함수만 주기 때문에 표면(mesh)을 직접 추출해야 함
<MISE(Multi-resolution IsoSurface Extraction)>
1. 낮은 해상도 그리드에서 fθ(p, x)를 먼저 평가
2. 점유/비점유가 섞여 있는 voxel(= 경계에 위치한 voxel)을 활성 voxel로 표시
3. 해당 voxel을 8개로 subdivide(세분화) -> 물체의 표면일 가능성 높으니 촘촘히 나눠라
4. 새로 생긴 grid points에 대해 다시 fθ 평가
5. 원하는 해상도까지 반복
6. 마지막에 marching cubes 적용하여 메시 생성
7. 메시를 refinement(정제)
- Fast Quadric Simplification (불필요한 삼각형 제거하고 단순화)
- 1~2차 gradient로 smoothing(Occupancy Network fθ(p)의 gradient(기울기)를 이용해 Marching Cubes가 만든 메시를 더 매끄럽고 실제 표면에 가깝게 보정 )
3. slam 을 AI로 처리하는게 있는지?
SLAM을 AI로 처리하는 방법은 이미 존재하고, 최근에는 AI-SLAM, Learning-based SLAM, Neural SLAM이라고 불리는 연구 분야로 발전하고 있음.
<기존 SLAM vs AI-SLAM 비교표 (전체 기능 항목별)
| SLAM 구성 요소 | 전통 SLAM(기하학 기반) | AI-SLAM(딥러닝 기반) | 대표 논문 |
Feature Extraction (특징점 추출) | ORB, SIFT, FAST 같은 수학 기반 특징 | CNN이 특징점을 직접 학습 → 텍스처 부족·블러에서도 강함 | SuperPoint |
Feature Matching (특징점 매칭) | KNN 매칭 + RANSAC 기반 정합 | GNN이 두 이미지 특징을 직접 매칭 | SuperGlue |
Visual Odometry(VO) (프레임간 이동 추정) | Essential Matrix, PnP, ICP | RNN/CNN이 직접 상대 pose 예측 | DeepVO |
| Pose Estimation + Bundle Adjustment | g2o / ceres 기반 최적화 | Neural optimizer가 직접 pose refinement | DROID-SLAM |
| Mapping(지도 생성) | point cloud map, octomap, TSDF | NeRF 기반 neural implicit map (고해상도) | iMAP / NICE-SLAM |
| Loop Closure(장소 재인식) | DBoW2(BoW 기반 장소 인식) | CNN 기반 place recognition, 더 robust | NeuralLC |
| Sensor Fusion(VIO, multi-sensor) | EKF, Graph-SLAM | Transformer 기반 multi-modal fusion | VIOFormer, DLIO |
| End-to-End SLAM | 여러 모듈 조합, 직접 연결 | 맵핑+포즈+탐색을 하나의 NN이 수행 | Neural-SLAM / Co-SLAM |
| 강인성(Robustness) | 조명 변화, 블러, 텍스처 없음에 취약 | 딥러닝 특징 덕분에 강함 | |
| 정확도(Accuracy) | 환경에 따라 천차만별 | 최근 연구들은 ORB-SLAM보다 높거나 비슷 | |
| 속도(FPS) | 보통 20~100 FPS (CPU도 가능) | 모델에 따라 다름 (GPU 필요), 일부는 실시간 | Co-SLAM(Real-time) |
| 학습 필요 여부 | 학습 없음 | 데이터 학습 필요 | |
1) Neural-SLAM (ICLR 2020)
가장 유명한 AI-SLAM 시리즈의 시작
논문: https://arxiv.org/abs/1904.03790
- 강화학습(RL) 기반으로 맵핑 + 로컬라이제이션 + 탐색 정책을 신경망 내에서 모두 학습
- AI로 SLAM을 대체한다는 개념을 처음 명확히 제시
2) DROID-SLAM (NeurIPS 2021) — Deep Visual SLAM for Monocular, Stereo, and RGB-D Cameras
논문: https://arxiv.org/abs/2108.08898
- Stereo(ZED)에서 성능 최강
- Tracking + Depth + BA + Feature 전부 NN
- 실시간 또는 준실시간 가능
3) Co-SLAM (CVPR 2023)- Co-SLAM: Real-time Dense Collaborative Neural SLAM
가장 최신 Neural SLAM 중 성능 최강급
논문: https://arxiv.org/abs/2303.13999
- multi-robot + neural field 기반 협력 SLAM
- Monocular / Stereo 카메라
- 매우 빠르고 정교한 dense map 생성
4. 3d lidar로 slam
깃허브를 찾아보면 대부분 ROS1을 사용하고 ROS2를 포팅하는 경우는 드물다.
1) LOAM (Lidar Odometry and Mapping)
- 3D LiDAR SLAM의 기본 모델(Odometry + Mapping 구조)
- ROS1 지원
2) FLOAM (Fast LOAM)
GitHub: https://github.com/wh200720041/floam
LOAM을 더 빠르게 경량화한 버전, CPU 부담 ↓, 드론/라파4에서도 실시간 가능
- ROS1만 지원, ROS2 포팅 필요함
3) lidarslam_ros2
https://github.com/rsasaki0109/lidarslam_ros2
- ROS2 기반 순수 LiDAR SLAM ==> ROS2 네이티브 → Foxy/Humble에서 잘 돌아감
- Ouster/Velodyne과 호환됨
- LiDAR 단일 센서만 사용 (IMU 필요 없음)
<Front-end: LiDAR Odometry>