본문으로 건너뛰기

휴머노이드 로봇용 Visual SLAM 파이프라인을 처음부터 구현하고 KITTI Seq.00에서 성능을 평가한 사례 보고이다.

초보자가 Visual SLAM을 처음부터 구현해 버그 수정과 PnP 적용을 거쳐 스테레오 SGBM 기반으로 전환하며 KITTI Seq.00에서 APE RMSE를 8,200m에서 13.9m로 개선했다.

이 요약은 AI가 원문을 분석해 생성했습니다. 정확한 내용은 원문 기준으로 확인하세요.

TL;DR

작성자는 한 달 동안 Visual SLAM을 처음부터 구현하며 KITTI odometry Seq.00(~3.7 km)를 평가했고 초기에는 인자 순서 오류와 무제한 스케일 회복로직으로 인해 추적이 z축으로 약 11km까지 발산하며 APE RMSE가 약 8,200m에 이르렀다. 2D-2D Essential matrix 루프를 3D-2D PnP(cv2.solvePnPRansac)로 교체하고 IQR 기반 스케일 fallback을 추가하자 APE RMSE가 74.5m로 개선되었으나 monocular 스케일 불확실성은 여전히 2.35x의 보정이 필요한 구조적 한계로 남았다. 스테레오로 전환해 SGBM으로 disparity를 계산하고 calibrated baseline과 focal length로 metric depth를 복원해 MapPoint를 시딩하자 APE RMSE가 13.9m, RPE(100m) RMSE가 8.2m, Sim(3) 스케일이 약 1.0x로 측정되었으며 다만 스테레오 정렬 잔류 오차가 누적되어 높이(y축)에서 10–25m의 드리프트가 남아 추가 보정이 필요하다.

실용적 조언

  • 모노큘러 파이프라인을 설계할 때는 인자 전달 순서를 엄격히 검증하고 motion estimator에 전달되는 포인트 배열의 의미를 문서화해야 하며 스케일 회복 로직에는 상·하한 클램프를 두어 스케일 승수가 비정상적으로 증폭되는 상황을 방지해야 한다.
  • 프레임 간 포즈 추정에는 cv2.solvePnPRansac 같은 3D-2D RANSAC 기반 방법을 사용하면 외란 관측에 대한 강건성이 개선되며, 텍스처가 낮아 inlier가 적을 때를 대비해 IQR 필터링 같은 통계적 fallback을 두면 극단치로 인한 실패를 완화할 수 있다.
  • 절대적 거리 복원이 필요하면 calibrated stereo로 전환해 SGBM 등의 방법으로 disparity를 계산한 뒤 baseline과 focal length로 metric depth를 복원하고 MapPoint를 metric depth로 시딩하면 스케일 불확실성이 해소되어 장기적 APE 감소에 기여한다.

섹션별 상세

01
작성자는 초기 monocular 2D-2D visual odometry 베이스라인에서 추정 궤적이 z축으로 약 11km까지 나선형으로 발산하는 현상을 관찰했고 그 원인을 디버깅을 통해 규명했다. 구체적으로 motion estimator에 전달되는 인자를 잘못 배치하여 pts_ref와 pts_cur이 뒤바뀌었고 이로 인해 Essential matrix가 역전산되어 회전 방향이 반대로 누적되었으며, 여기에 median depth ratio로 스케일을 회복하는 로직이 결합되어 오염된 자세로부터 계산된 중간 깊이 값들이 비정상적으로 커지자 스케일 승수가 제어 없이 초비선형적으로 증폭되어 결국 NaN으로 포화했다. 이 상태의 정량적 증거로 APE RMSE가 약 8,200m에 이르렀고 추적 궤적이 수 킬로미터 단위로 비정상적으로 발산했으므로 입력 인자 순서와 스케일 회복의 안전장치(예: 클램프)가 필수적이라는 결론이 도출되었다.
02
모노큘러 파이프라인의 개선을 위해 작성자는 2D-2D Essential matrix 루프를 버리고 cv2.solvePnPRansac를 이용한 3D-2D PnP 추적으로 전환했으며, PnP가 실패할 때(예: low-texture 구간에서 inlier가 10 미만으로 떨어지는 경우)를 대비해 IQR 필터링을 적용한 스케일 추정기(fallback)를 추가했다. 이 변경으로 APE RMSE가 74.5m까지 크게 감소했으나 monocular 특유의 스케일 불확실성은 구조적 한계로 남아 Sim(3) 정합 후에도 스케일 보정 계수가 약 2.35배를 요구하는 것으로 나타났다. 이 결과는 PnP가 프레임 간 회전·병진 추정에서 강건성을 제공하지만 단안 기반에서는 절대적 거리(스케일)를 복원하기 어렵다는 실험적 근거를 제공한다.
03
스케일 불확실성을 해소하기 위해 전방(front-end)을 스테레오로 전환하고 OpenCV의 SGBM으로 disparity를 계산해 첫 프레임에서 baseline과 focal length를 이용해 정확한 metric depth를 복원했다. 복원된 metric depth로 MapPoint를 시딩하면 PnP 추적기가 진정한 미터 단위 공간에서 동작하므로 단순 단위 정규화에 의한 제약이 제거되며 그 결과 APE RMSE가 최종적으로 13.9m로 개선되고 RPE(100m) RMSE는 8.2m, Sim(3) 스케일은 약 1.0x로 측정되어 스테레오 전환의 정량적 이득이 확인되었다. 이 절차는 calibrated baseline과 focal length가 있을 때 disparity→depth 변환이 어떻게 절대적 위치 복원으로 이어지는지와 그 실무적 의미를 보여준다.
04
최종 시스템은 수평축(x,z)에 대해서는 바이어스가 6m 미만으로 비교적 견고한 반면, 고도(y축)에서는 10m에서 25m 수준의 드리프트가 지속된다는 문제가 남아 있다. 원문은 이 원인을 스테레오 정렬(rectification) 잔류 오차로 지적했으며, 이 미세한 정렬 오차들이 누적되어 높이 추정에 점진적으로 통합되는 메커니즘을 기술했다. 이 특성은 로봇 플랫폼에서 높이 정확도가 중요할 때 추가적인 정량적 보정이나 더 정교한 rectification·bundle adjustment가 필요함을 시사한다.

용어 해설

절대 자세 오차 RMSE(APE RMSE)
Absolute Pose Error의 RMSE는 전체 경로에서 추정된 로봇 위치와 참조 궤적 간의 절대적 차이의 제곱평균루트값으로, 시퀀스 수준의 누적 오차를 계량화하며 SLAM 시스템의 장기적 정확도를 평가하는 데 중요하다.
상대 자세 오차 RMSE(RPE RMSE)
Relative Pose Error의 RMSE는 일정 거리(예: 100m) 구간 단위로의 위치·자세 변화의 추정 오차를 측정하며 프레임 간 추적 안정성과 로컬 정확도를 평가하는 데 쓰인다.
Sim(3) 정합(Sim(3) alignment)
Sim(3) 정합은 회전·평행이동·스케일을 포함하는 3차원 유사변환으로 두 궤적을 정렬할 때 사용되며 모노큘러 시스템의 스케일 불확실성을 정량화하고 보정 여부를 평가하는 데 사용된다.
PnP (관점-대-점)(PnP (Perspective-n-Point))
PnP는 3차원 점 집합과 그에 대응하는 2차원 이미지 관측을 입력으로 받아 카메라의 회전과 병진을 추정하는 알고리즘 계열로서, RANSAC과 결합하면 외란 관측을 견딜 수 있는 카메라 포즈 회수를 제공한다.
SGBM (Semi-Global Block Matching)(SGBM (disparity))
SGBM은 스테레오 영상에서 블록 매칭 기반으로 불연속성을 완화하기 위해 준전역적 비용 누적을 수행해 불연속선과 텍스처가 낮은 영역에서 비교적 안정적인 disparity 맵을 산출하며, 보정된 baseline과 focal length가 있으면 metric depth 복원이 가능하다.

언급된 도구

OpenCV추천

stereo disparity 계산(SGBM)과 PnP 추적(cv2.solvePnPRansac) 같은 컴퓨터 비전 기본 연산을 제공

AI 분석 전체 내용 보기

AI 요약 · 북마크 · 개인 피드 설정 — 무료

출처 · 인용 안내

원문 발행 2026. 06. 23.수집 2026. 06. 28.출처 타입 REDDIT

인용 시 "요약 출처: AI Trends (aitrends.kr)"를 표기하고, 사실 확인은 원문 보기 기준으로 진행해 주세요. 자세한 기준은 운영 정책을 참고해 주세요.