[Paper] ROVO: Robust Omnidirectional Visual Odometry for Wide-baseline Wide-FOV Camera Systems
abstract
- 본 논문에서는 robust visual odometry system 을 사용하는 강력한 시각적 주행 거리 측정 시스템을 제안한다.
- 보다 강력한 ego-motion 추정을 위해 표준 VO 파이프라인데 3가지를 추가한다.
- 향상된 기능 일치를 위한 하이브리드 투영 모델
- 투시도와 원통 투영을 결합하여 뷰 간의 중첩을 극대화 하고 형상 매칭 성능을 저하시키는 이미지 왜곡을 최소화
- 포즈 추정을 위한 다중 뷰 p3p ransac 알고리즘
- 기존의 p3p ransac 을 다중 뷰 이미지로 확장하여 모든 뷰의 모든 형상 일치가 강력한 포즈 추정을 위해 인이더 카운트에서 고려된다.
- rig 외부 매개변수 온라인 업데이트
- 백엔드 최적화 프레임워크에 완벽하게 통합되어 충격이나 진동으로 인한 카메라 포즈의 변화를 자동으로 수정할 수 있다.
Introduction
- ego-motion estimation은 자율주행에 있어 필수적인 기능이다.
- 환경에서 로봇의 자세를 추정하려면 주변 구조와 물체를 정확하게 모델링 해야한다.
문제점
그 중에서도 카메라는 저렴한 비용, 수동적 감지, 풍부한 환경 정보, 기계적 견고성 등의 장점이 있다.
하나 이상의 카메라를 사용한 자아 운동 추정인 시각 주행 거리 측정(VO)은 실시간 처리, 정확한 자세 추정 및 외부 장애에 대한 견고성을 달성하기 위해 수십 년 동안 연구되어 왔다.
증강/가상 현실(AR/VR), 첨단 운전자 보조 시스템(ADAS), 자율 주행을 포함한 많은 애플리케이션에 널리 적용되어 왔다.
다양한 VO 시스템이 존재하는데, 예를 들어 ORB-SLAM2[1]는 단안 또는 스테레오이며 이진 설명자와 함께 특징점을 사용하거나 스테레오-DSO[2]는 특징을 위해 스테레오 카메라와 가장자리를 사용한다.
단안 시스템은 간단한 하드웨어 구성으로 매력적이지만 실제 모션 규모를 추정할 수 없다는 몇 가지 한계가 있으며, 메트릭 포즈가 필요하지 않은 AR/VR에 주로 사용된다.
멀티뷰(스테레오) VO 시스템은 로봇 애플리케이션에 적합한 보다 강력하고 실제 메트릭 ego-motion 추정치를 생성하지만 더 많은 계산 비용이 필요하다.
모든 VO 알고리듬은 과도한 동적 객체에 취약하다. 즉, 시야(FOV)의 상당 부분이 움직이는 객체에 의해 가려지면 포즈 추정이 불안정하고 부정확해진다.
본 논문에서는 pose estimation의 안정성과 정확성을 극대화 하기 위해 넓은 fov의 fisheye lens와 넓은 기준선을 갖춘 다중 카메라 rig를 사용하는 새로운 전방향 시각 주행 거리 측정 시스템을 제안한다.
wide-baseline wide-fov 설정은 스테레오 해상도가 기준 길이에 비례하기 때문에 포즈 정확도를 극대화하고 로봇 본체에 의해 가려지는 이미지 영역을 최소화 한다.
이에 따르는 문제점
- 포인트에 대한 시점이 크게 달르 수 있고 보기 간에 많은 중복이 발생하는 fisheye image 주변에서 왜곡이 크기 때문에 추적 및 일치 기능이 어려워진다
- 카메라가 멀리 떨어져 장착됨에 따라 rigid rig assumption이 유효하지 않음
- 충격, 진동 및 열로 인해 rig가 변형되거나ㅣ 카메라가 예기치 않게 움직일 수 있다.
이러한 문제를 해결하기 위해 VO 파이프라인에 3가지 새로운 구성요소를 추가한다.
중첩 영역에서 두 평면과 이들을 매끄럽게 연결하는 실린더를 사용하는 hybrid projection model를 제안한다.
이 투영 모델을 사용하면 각 뷰의 faeture point와 뷰 전체에서 일관된 feature descriptor 를 지속적으로 추적할 수 있다.
노이즈가 많은 특징 일치에서 현재 포즈를 추정하려면 ransac 알고리즘을 사용해야 한다. 본 논문에서는 하나의 각도에서 p3p를 사용하여 포즈를 계산한다.
다중 뷰 p3p ransac 는 매우 동적인 장면에서 리그 포즈를 효과적으로 추정해 낸다.
시스템 실행 전반에 걸쳐 예상치 못한 카메라 조작 포즈의 변화를 처리하기 위해 온라인 외부 보정을 구현한다(online extrinsic calibration)
이는 현재 맵의 추적된 기능에서 외부 매개 변수를 지속적으로 업데이트하고 시스템의 견고성과 정확성을 크게 향상시킨다
주요 특징
- 광범위한 기준 설정에서 fisheye camera 간의 특징 대응을 찾고 추적할 수 있는 새로은 이미지 투영 모델
- p3p ransac 알고리즘과 온라인 외부 보정을 사용하여 매우 동적인 환경에서 강력하게 작동
- 합성 및 실제 데이터 세트에 대해 제안된 알고리즘을 광범위하게 평가하면 우수한 성능을 검증한다.
algorithm
1. hybrid projection algorithm
- local feature descriptor는 이미지가 순수한 원근법일 때 가장 잘 작동하므로 뷰 사이의 중첩 영역이 가능한 원근법임을 보장하는 투영 모델을 개발한다.
- 동시에 형상 추적이 성공하려면 뒤틀린 이미지가 연속적으로 매끄러워야 한다.
이러한 조건을 만족시키기 위해 우리의 하이브리드 투영 모델은 왼쪽과 오른쪽에 두개의 투영 평면을 가지고 있고 중앙에 있는 실린더는 두개의 평면을 매끄럽게 연결한다.
각 카메라의 경우 카메라의 기준선에 평행한 평면이 투영 평면에 수직인 실린더로 연결된다.
카메라 중심이 리그 평면에 가깝게 위치할 때 제안된 방법은 스테레오 정류와 유사하며 다른 이미지에서 장면 포인트의 투영 y 좌표는 대략 같아야 한다.
뒤틀린 이미지를 구축하기 위해서는 뒤틀린 이미지의 각 픽셀 x에 해당하는 원래 어안 이미지의 픽셀 위치 xθ를 찾아야 한다.
점 x의 경우, 투영 평면/도면의 3D 점 CΩ(x)는 평면/도면 방정식을 사용하여 계산할 수 있으며, 어안 이미지 좌표는 xθ = θ(CΩ(x))로 제공됩니다.
그림 4b는 왜곡된 픽셀(위쪽)과 왜곡된 이미지(아래쪽)에 대한 어안 좌표를 보여줍니다.
2. Intra and interview feature processing
- 뒤틀린 이미지에 대해 표준 형상 감지 및 뷰 내 형상 처리를 수행한다.
feature가 균일하게 추출되도록 하기 위해 이웃 feature에 대한 최소 거리 제약 조건을 가진 orb feature 검출기를 사용한다.
기존의 feature point는 KLT tracking 알고리즘을 사용해 추적한다.
pose estimation 및 mapping quality를 개선하려면 뷰 전체에서 feature를 추적해야 한다.
뷰 feature 처리는 뷰 간에 겹치는 영역에서 일치하는 feature를 찾고 feature가 하나의 이미지에서 fov를 벗어날 때 정보를 전송한다.
orb 설명자는 추적된 지점에 부착되며, 논문에서는 k-nearest neighbor feature 매칭 알고리즘을 통해 feature 대응 관계를 찾는다.
- 일치하는 두 점 사이의 y-거리가 작다.
- 특징 스크립터와 방향 차이가 작다.
- epipolar consistency, 좌우 일관성 및 positive disparity를 만족한다.
- ZNCC 비용이 작다.
마지막으로 일치된 점을 삼각 측량하여 pose estimation에 사용되는 3D 좌표를 계산한다.
3. Multi-view P3P RANSAC
- 위의 형상 처리 및 삼각측량 후, 확보한 2d-3d 형상 대응으로부터 rig의 현재 포즈를 추정한다.
- 이 다중 뷰 p3p ransac 알고리즘은 단안 p3p ransac 알고리즘을 확장한다.
ransac 반복에서 일치 세트의 크기에 비례하는 확률을 사용하여 하나의 뷰를 무작위로 선택 한 다음, 뷰의 대응물 중에서 최소 샘플 세트를 무작위로 선택한다.
단안 p3p 알고리즘에 의해 추정된 카메라 포즈 후보에서 리그 포즈가 계산되고 모든 보기의 모든 대응이 인라이어 검사를 위해 테스트된다.
pps 샘플링은 좋은 포즈를 찾을 가능성을 높이기 위해 기능 일치가 더 많은 카메라를 더 자주 선택하는 반면, 전체 뷰 인터체크는 추정된 포즈가 모든 관찰과 일치하도록 강제한다.
ransac이 완료된 후, 3d point가 고정된 동안 모든 인라이어의 재투사 오차를 최소화 하여추정된 rig 포즈를 최적화한다.
4. Online Extrinsic Calibration
- 작동 중 카메라의 변형 및 움직임에 대처하기 위해 카메라 외부 파라미터는 로컬 번들 조정 모듈에서 공동으로 업데이트 된다.
온라인 외부 보정을 위해 카메라 외부 매개변수를 최적화에 추가한다.
여러 카메라에서 관찰된 포인트에 대해 더 높은 가중치를 부여한다.
시스템의 카메라는 rig에 고정되어 있기 때문에, 카메라 사이의 거리가 일정하ㅏㄷ는 추가적인 제약을 줄 필요가 있다.
-> 시간이 지남에 따라 리그가 증가하거나 축소되는 가능성을 제거(metric scale 재구성이 불가능해지기 때문)