Study

SLAM-Former 실습

Period2026.07.17 - 07.23
FormatOpen-source Practice
ModelV1 · V1.1 · V1.1-long

실습 범위

SLAM-Former 공개 코드를 실행해 입력이 순차적으로 처리되는 구조를 확인하고, EuRoC MH01, KITTI, 직접 촬영한 실내 데이터에서 trajectory와 dense reconstruction의 동작을 살펴봤다. 서로 다른 checkpoint를 비교하고 긴 시퀀스에서 발생한 메모리 한계도 함께 기록했다.

ExecutionFrame-by-frame update

각 이미지를 차례로 읽어 frontend와 backend를 호출하는 online 처리 구조를 확인했다.

MeasuredEuRoC MH01 evaluation

Sim(3) Umeyama alignment 기준 ATE RMSE는 0.584846 m였다.

LimitsRepeated structure · Keyframe growth

반복적인 도로 구조에서 drift가 나타났고, keyframe이 누적된 긴 sequence에서 OOM이 발생했다.

1. 순차 처리 구조 확인

demo.py는 image folder의 frame을 하나씩 읽고 각 frame마다 slam.step(frame_id, img)을 호출한다. step 내부에서는 frontend update와 backend update가 이어지므로, 저장된 전체 시퀀스를 한 번에 입력하는 batch reconstruction이 아니라 frame 단위로 state를 갱신하는 구조임을 확인했다.

01Frame loading
02slam.step
03Frontend + Backend
04State / map update
demo.py에서 이미지를 순차적으로 처리하는 SLAM-Former 실행 루프
Sequential execution loop. 입력 frame을 순회하며 slam.step을 호출하고, 처리가 끝나면 결과를 저장한다.
Online 처리와 real-time 성능의 구분--vis가 real-time visualization으로 설명되어 있어 실행 중 결과를 확인할 수는 있었지만, 이번 실습에서는 FPS와 frame latency를 별도로 측정하지 않았다. 따라서 sequential online 처리 여부는 확인했지만 wall-clock real-time 성능까지 검증한 것은 아니다.

2. Checkpoint와 실행 설정

공개 checkpoint는 입력 해상도와 sequence 길이에 맞춰 구분되어 있었다. 커스텀 데이터와 EuRoC, KITTI 실험에서는 긴 시퀀스를 대상으로 학습된 V1.1-long을 주로 사용하고, target_size=224retention_ratio=0.5를 적용했다.

CheckpointTarget size실습에서 확인한 특징
V1518기본 checkpoint. 실내 회전 구간과 KITTI에서 reconstruction이 무너지는 사례가 있었다.
V1.1518ConvHead를 사용하는 후속 checkpoint.
V1.1-long224더 긴 sequence 길이로 학습된 checkpoint. office에서는 V1보다 회전 구간이 안정적이었다.
SLAM-Former 공개 checkpoint 목록
Checkpoint configuration. V1.1-long은 224 입력과 긴 sequence 학습 설정을 사용한다.
공통 실행 명령 보기
python slam/demo.py \
  --ckpt_path ./weights/V1.1-long.pth \
  --image_folder <IMAGE_FOLDER> \
  --output_dir <OUTPUT_DIR> \
  --target_size 224 \
  --retention_ratio 0.5 \
  --vis

3. EuRoC MH01 정량 평가

EuRoC MH01의 cam0 image stream을 V1.1-long으로 처리했다. 정량 평가에는 MASt3R-SLAM에서 제공하는 TUM 형식의 EuRoC ground truth를 가져와 사용했으며, SLAM-Former의 추정 trajectory에 Sim(3) Umeyama alignment를 적용해 비교했다.

SequenceMH01EuRoC Machine Hall 01
ATE RMSE0.584846 mTranslation · Sim(3) alignment
Keyframes87최종 출력에서 확인
SLAM-Former로 복원한 EuRoC MH01 point cloud와 camera trajectory
EuRoC MH01 reconstruction. Dense point cloud 위에 추정 camera pose와 trajectory를 함께 표시한 결과다.
EuRoC MH01 evo APE 측정 결과
ATE evaluation. evo_ape에서 Sim(3) Umeyama alignment를 적용해 RMSE 0.584846 m를 얻었다.
SLAM-Former가 EuRoC MH01에서 생성한 keyframe 파일 목록
Keyframe output. 최종 point cloud 출력 폴더에서 87개 keyframe을 확인했다.
EuRoC MH01 timestamp별 translation APE 그래프
APE over time. Timestamp별 translation error와 RMSE, mean, median, standard deviation 범위를 함께 표시한다.
EuRoC MH01 reference trajectory와 translation APE를 표시한 3D plot
Trajectory error map. 점선 reference trajectory와 추정 trajectory의 위치별 APE를 색으로 비교한다.
MASt3R-SLAM과 여러 baseline의 EuRoC ATE 비교 결과
MASt3R-SLAM Table 9. EuRoC에서 ORB-SLAM, DROID-SLAM, MASt3R-SLAM 등 baseline의 ATE를 비교한 결과.
EuRoC baseline과의 비교이번 SLAM-Former MH01 실행의 ATE RMSE는 0.584846 m였다. Table 9의 calibrated MASt3R-SLAM은 0.023 m, uncalibrated 설정은 0.180 m로, 이번 설정에서 SLAM-Former가 EuRoC에서 우수한 성능을 보였다고 보기는 어렵다. 다만 구현과 checkpoint, 평가 절차가 완전히 같지 않으므로 직접적인 method ranking으로 해석하지 않았다.

4. 실내 데이터 실습

직접 촬영한 office와 room sequence에서는 checkpoint에 따른 안정성, 회전 구간, texture-less surface, 움직이는 사람의 영향을 중심으로 관찰했다.

Office · static scene

V1은 camera가 회전하는 구간에서 map이 무너졌지만, V1.1-long은 같은 유형의 회전을 비교적 안정적으로 통과했다. 복원 결과에서는 벽과 바닥처럼 texture가 적은 영역도 연속적인 구조로 남았다.

SLAM-Former V1.1-long office reconstruction 결과
Office reconstruction. V1.1-long의 point cloud와 camera trajectory 결과.
Office sequence. V1.1-long이 frame을 순차 처리하는 과정.

Room · dynamic + static scene

작은 room sequence에서는 V1, V1.1, V1.1-long을 비교했다. 이 데이터에서는 V1 · 518이 가장 안정적인 정성 결과를 보였다. 움직이는 사람이 포함되어도 static reconstruction이 즉시 붕괴하는 현상은 보이지 않았다.

SLAM-Former V1 518 checkpoint의 small room reconstruction 결과
SLAM-Former V1 · 518. Small room sequence에서 얻은 point cloud와 camera trajectory.
SLAM-Former V1.1-long 224 checkpoint의 small room reconstruction 결과
SLAM-Former V1.1-long · 224. 같은 유형의 small room sequence에서 얻은 비교 결과.

Small room 실행 비교

SLAM-Former V1 · 518의 실행 결과와 MASt3R-SLAM의 texture-less 구간 relocalization 실패 사례를 나란히 비교했다.

SLAM-Former V1 · 518. Dynamic object와 static background가 함께 있는 small room sequence의 처리 과정.
MASt3R-SLAM comparison. 같은 규모의 room sequence에서 texture-less 영역을 지난 뒤 relocalization에 실패하는 사례.
정성 비교의 해석 범위SLAM-Former에는 dynamic object를 명시적으로 제거하는 별도 module이 없다. MASt3R-SLAM과의 비교도 같은 camera trajectory나 입력 frame을 엄밀히 통제한 정량 실험은 아니므로, texture-less 영역과 dynamic scene에 대한 상대 성능을 입증한 결과로 해석하지 않았다.

5. KITTI 반복 구조 실험

KITTI에서는 도로, 차량, 건물, 가로수처럼 비슷한 형태가 반복되는 장면에서 불안정한 동작이 나타났다. V1은 회전 구간에서 쉽게 무너졌고, V1.1-long은 초반에는 진행했지만 일부 sequence에서 keyframe pose가 실제 진행 방향과 다르게 이동했다.

Sequence관찰한 현상해석
KITTI 0018초반 진행 후 전방 이동이 정체되고 pose가 흔들림반복 구조에서 backend matching이 불안정했을 가능성
KITTI 0028차량은 전진하지만 일부 keyframe pose가 뒤쪽으로 이동유사한 도로 장면 사이의 잘못된 대응으로 추정
KITTI 0047흰색 point noise가 나타난 뒤 일부 구간에서 회복Backend correction이 항상 안정적이지는 않음
SLAM-Former KITTI reconstruction 결과
KITTI reconstruction. 반복적인 outdoor scene에서 trajectory와 geometry가 흐트러진 사례.
KITTI 0018. V1.1-long 실행 중 keyframe과 point cloud가 갱신되는 과정.
원인에 대한 추정Correspondence와 attention weight를 분석하지 않은 상태이므로, 반복 구조에서의 backend matching 실패는 관찰된 keyframe drift를 바탕으로 한 가설이다.

6. 긴 시퀀스와 메모리 한계

V1.1-long에 2,000 frame으로 구성한 in_2000 sequence를 입력했을 때 약 1,000 frame을 넘긴 시점부터 OOM이 발생했다. 핵심은 입력 frame 수 자체보다 선택되어 남는 keyframe 수다. Keyframe이 증가하면 frontend가 유지하는 KV cache와 backend가 갱신할 map token도 함께 쌓이고, backend가 누적 state를 처리하는 연산량과 memory cost가 커진다.

  • 확인한 현상: 1,000 frame 이후 GPU memory 부족으로 실행이 중단됐다.
  • 가능한 원인: Keyframe과 함께 누적되는 KV cache·map token, 그리고 이를 다시 처리하는 backend의 비용 증가.
  • 추가로 필요한 검증: Keyframe 수에 따른 memory profile, backend 호출 주기와 retention ratio 변화에 따른 사용량 측정.

정리

구분확인한 내용
실행 구조Frame을 하나씩 입력하고 frontend와 backend state를 순차 갱신하는 online 구조.
정량 결과EuRoC MH01에서 Sim(3) alignment 기준 ATE RMSE 0.584846 m, keyframe 87개.
잘 동작한 조건V1.1-long은 office 회전 구간에서 V1보다 안정적인 정성 결과를 보였다.
불안정한 조건KITTI의 반복 구조에서 keyframe drift와 geometry noise가 나타났다.
시스템 한계긴 sequence에서 keyframe, KV cache, map token이 누적되어 1,000 frame 이후 OOM이 발생했다.
남은 검증FPS·latency, dynamic robustness, checkpoint별 정량 비교, 장기 sequence memory profile.

향후 계획

  • KITTI의 반복 구조에서 SLAM-Former가 실패하는 원인 분석
  • EuRoC MH01에 대한 3D reconstruction 정량 평가
  • EuRoC MH01에서 다른 baseline method보다 성능이 낮게 나온 원인 분석

Comments