reprojection error
를 최소화하도록 3차원 포인트의 위치 및 카메라의 위치를 최적화하는 과정
이미지 입력 -> 특징점 검출 -> 카메라 자세 추정(Rotation, Translation) -> 3차원 점 계산 Triangulation(삼각측량법) -> 카메라 자세, 3차원 점 보정(Bundle Adjustment) -> 보정된 카메라 자세 & 3차원 점
이미지 2개로부터 3차원 포인트의 좌표를 계산하는 방법
Tracking thread
에서 카메라 포즈를 최적화
: 영상 이미지 상의 점(X^i)과 Rotation 및 Translation 이동(RX^i+t) 후 이미지 plane에 투영(pi)된 점 사이의 차이를 최소화하는 index를 구함(argmin)
Local mapping thread
에서 Local map에 대한 키프레임과 맵 포인트를 최적화
Local Mapping Thread에서 수행됨
covisible Keyframes와 Keyframe에서 보이는 모든 맵 포인트들을 최적화한다.
Covisible keyframes: 같은 맵 포인트들을 바라보고 있는 키프레임들
Rotation, Translation(RX+t)을 통해 이동된 점을 투영(pi)시킨 점과 영상 이미지 상에서 3차원 포인트의 위치의 차이를 에러 E로 설정하여 에러가 최소화되는 방향으로 최적화
Loop closing
이 후 모든 키프레임과 맵 포인트를 최적화
루프 클로징 이후 수행됨
맵 생성 시 누적된 오차 수정
맵의 모든 키프레임과 포인트를 최적화
수식은 Local BA 식에서 모든 키프레임과 포인트로 확장
https://www.youtube.com/watch?v=ajCv1grYQPw&list=PLoJdZ7VvEiRNUxlIXlgy7Fh8ziyt4Hw50&index=4
https://velog.io/@claude_ssim/%EC%8B%9C%EA%B0%81%EC%A7%80%EB%8A%A5-Triangulation