본문 바로가기

인공지능 공부

MC-Calib 읽어보기

https://github.com/rameau-fr/MC-Calib/issues/4

 

Open Access Paper · Issue #4 · rameau-fr/MC-Calib

Hi, this looks very interesting. Is the paper https://doi.org/10.1016/j.cviu.2021.103353 somewhere available open access? Maybe on ArXiv or as download of the author's copy on your personal homepage?

github.com

 

위 링크에서 preprint본을 볼 수 있었다.

 

내용을 정리해보자.

 

Abstract 

 

이 논문에서 우리는 MC-Calib라는 훌륭하고 강건한 툴박스를 제안한다. MC-Calib는 특정 갯수의 마커 기반의 패턴을 이용하여 연동된 멀티카메라 시스템의 칼리브레이션을 하기 위해 개발되었다. 칼리브레이션 결과는 시스템 내의 카메라와 칼리브레이션 보드의 위치를 동시에 예측하고 이를 계속해서 개선하는 방식으로 계산된다. 우리의 방식은 카메라의 갯수나, FoV의 겹침 영역 혹은 칼리브레이션 패턴을 제약하지 않는다. 게다가 카메라에 대한 사전의 정보나 체커보드의 위치 역시 요구되지 않는다. 결과적으로 최소한의 유저인터랙션만으로 정확하고 강건한 칼리브레이션 결과를 얻을 수 있어서 컴퓨터 비전 전문가가 아니더라도 툴을 이용할 수 있게 했다. 이 논문에서 우리는 우리의 기법의 강건함과 활용도를 높이는 것에 중점을 두었다. 특히 우리의 전략이 가진 구조적 특성은 노이즈가 많은 측정환경에서도 복잡한 비전 시스템이 안정적으로 칼리브레이션 되게 했다. 추가로 우리는 non-overlapping FoV 카메라를 위해  best-suited image selection 과 초기 파라미터 측정 전략을 제시한다. 결과적으로 우리의 칼리브레이션 툴박스는 퍼스팩티브 카메라와 피쉬아이 카메라 모두에 호환가능하다. 우리의 솔루션은 다수의 실제 혹인 합성의 영상 시퀀스를 통해 검증되었다. 

 

Introduction

 

최근 멀티카메라 기반의 비전 시스템에 대한 요구가 빗발치고 있다. 이 시스템들은 넓은 FoV 와 3D 공간 정보를 씬으로 부터 얻기 위해 필요한데, 그 세팅이 쉽지 않다는 문제가 있다.

 

그동안  SfM, SLAM과 관련된 강건하고 효율적인 소프트웨어를 만들기 위해 칼리브레이션 툴박스를 만드는 연구는 다소 등한시 된 바 있다. 결과적으로 대부분의 기존 카메라 칼리브레이션은 한개 혹은 두개의 카메라를 시스템에 맞추어져있다. 

 

우리 연구의 의의는 polydioptric 시스템을 위한 기존의 칼리브레이션 툴이 특정한, 제한적인 세팅에서만 작동되어왔다는 맥락에서 이해할 수 있다. 예를 들면 그동안의 칼리브레이션 툴은 주어진 제한 된 숫자의 카메라, 연결된 FoV, 인트린식 파라미터에 대한 사전지식, 외부의 비전시스템, 미러, 제한된 모션, 혹은 미리 계산된 공간에 대한 재구축들이 필요했다. 게다가 대부분의 이용가능한 툴들은 full 3D 객체 혹은 인체의 재구축을 위해 필요한 converging camera system과 호환되지 않았다. 추가로 이 칼리브레이션 기술들은 피쉬아이, 퍼스펙티브 둘 중 하나만 지원했다.

 

우리는 호환성이 높으면서도 사용자에게 편리한 툴박스를 만들면서도 다양한 카메라 구성 환경을 지원하게 했다. 우리의 솔루션은 미리 정의된 기준 마커를 이용하여 매뉴얼 인터랙션없이 생성된 이미지 시퀀스로부터 intrinsic과 extrinsic 파라미터를 한꺼번에 뽑아낸다. 제안된 방식은 또한 카메라의 숫자나 FoV의 중첩에도 제한이 없다. 게다가 임의의 갯수의 체커보드나 3D 칼리브레이션 객체 또한 카메라 파라미터 추적에 이용될 수 있다. 기존의 방식과 다르게 사전의 3D 객체에 대한 정보도 필요로 하지 않고, 자동으로 객체의 지오메트리를 계산해서 사용한다. 칼리브레이션 시스템의 예시는 피규어 1과 같다.

이 복잡한 멀티 카메라 칼리브레이션 과정을 위해서 우리는 활용도와 강건함, 효율성을 극대화하는 새로운 기술을 개발했다. 특히 최적 이미지 선택, 이미지 선택 부트스트랩, 지속적인 비선형 개선과정을 통해 non-overlapping 카메라 칼리브레이션에 대해서도 안정적이고 정확도가 높을 수 있도록 했다.

 

우리의 칼리브레이션 과정을 요약하면,

 1. 모든 관측된 체커보드는 각 카메라의 intrinsic parameter를 계산하는데 이용된다. 

 2. 만약 여러개의 칼리브레이션 보드가 하나의 이미지 안에서 보인다면, 그 상대적인 위치가 계산되고 그래프에 저장된다. 

 3. 보드가 형상이 고정되어있다고 하고, 이 그래프는 모든 보드가 공유하는 상호간 visibility를 결합해서 3D calibration 객체를 생성한다.

 4. 이 객체들의 3D 지오메트리의 초기 예측에 따라 그들의 3D 구조가 정의되고 지속적인 bundle adjustment 에 따라 개선된다.

 5. 모든 3D 칼리브레이션 객체의 추정이 끝나면, 각자 카메라의 상대적 좌표를 계산한다. 이때 좌표계의 기준은 3D object가 된다. 이 초기 예측값은 비전 시스템 내에서 FoV를 공유하는 카메라 간의 extrinsic parameters 를 계산하는데 활용된다.

 6. 정확한 추정을 보장하기 위해 카메라 간의 pose는 비선형 개선모듈을 통해서 보정된다. 이 카메라 페어들을 통해서 우리는 그래프의 형태로 모든 카메라 패어의 조합을 표현한다.

 7. 그래프 안에서 단독 컴포넌트로만 존재하는 카메라는 그룹으로 병합되고 레퍼런스 카메라를 기준으로 한 상대좌표를 부여받는다. 이 논문에서 우리는 이 카메라 그룹을 camera groups 라고 부른다.

 

만약 여러 카메라 그룹이 존재한다면, 그들 각각의 포즈를 추정하는 작업 역시 수행된다. 이 상황은 일반적으로 두 카메라 그룹이 overrallping FOV가 없는 경우에 발생한다. 이를 위해 우리는 선형 hand-eye non overlapping calibration technique를 이용한다. 결과적으로 각 카메라 그룹들의 위치는 임의의 레퍼런스 카메라를 기준으로 결정된다. 

 

8. 마지막 단계는 모든 파라미터(카메라간 위치, 보드 간의 위치, intrinsic parameters)가 bundle adjustmet를 통해서 보완된다. 이 전체 작업은 피규어 2에 그려져있다.

 

 

 

'인공지능 공부' 카테고리의 다른 글

GDTW 읽어보기  (0) 2023.08.02
unity barracuda 개념잡기  (0) 2023.07.24
MC-Calib 적용해보기. 준비단계  (1) 2023.07.20
MC-Calib 빌드하기  (1) 2023.07.20
docker runtime nvidia 문제 해결하기  (0) 2023.07.20