본문 바로가기
Programming/Sensors

다중 영상 센서의 캘리브레이션

by OKOK 2017. 8. 8.

1. 서론

2. 복수의 카메라 환경

   카메라, 영상서의 대응쌍 검출 방법, SIFT, SURF, BRISK, 대응쌍 검출 알고리즘들의 성능 비교


3. 카메라와 깊이 센서 환경

   깊이 센서, 영상-깊이 영상 대응쌍 검출 방법에 대한 제안, 카메라-깊이 센서 캘리브레이션


4. 카메라와 3D LIDAR 환경

   3D 라이다, 영상-3D 포인트 클라우드 대응쌍 검출 방법에 대한 제안, 평판 평면 위를 지나는 3D 포인트 정렬,     평판 코너의 3D 위치 검출 및 적합성 판별, 마름모형 평판을 이용한 방법, 카메라-3D Lidar 캘리브레이션



1. 서론

최근 이동 매핑 시스템이나 물체 인식 등 다양한 로봇 비전 분야들에서는 목적에 따라 다양한 조합의 다중 센서를 사용하고 있습니다. 예를 들어 다수의 카메라로부터 획득한 영상들응ㄹ 스티치하여 더 넓은 화각을 갖는 파노라믹 영상을 생성하거나, 카메라로부터 얻은 영상과 함께 화각안의 영역에 대한 거리를 측정하여 깊이 영상을 생성하는 깊이 센서를 이용한 물체 인식율을 높입니다. 또는 3디 라이다 등의 센서로부터 얻은 지형 정보에 카메라에서 획득한 영상을 이용하여 색상 정보를 부여하기도 합니다.


이러한 다중 센서 환경을 구축하기 위한 전제 조건으로 각 센서 간의 공간적인 위치를 파악하는 외부 캘리브레이션 과정이 필요합니다. 서로 상대적으로 고정되어 있는 센서들의 외부 캘리브레이션을 통해 변환 행렬을 구하면, 각 센서의 데이터들을 하나의 좌표계로 정합하여 사용할 수 있는 환경이 구축됩니다. 이 때, 센서간의 외부 캘리브레이션 정확도는 정합된 데이터들의 정확도에 직결되는 만큼, 얼마나 정확한 캘리브레이션 매개변수들을 구하는지가 로봇 비전 분야의 하나의 근본적인 문제입니다.


일반적으로 센서간의 외부 캘리브레이션은, 먼저 각 센서 데이터들로부터 특징점들을 검출하는 단계와, 각 데이터의 특징점들을 비교하여 실제 동일한 점들을 매칭하여 대응쌍들을 생성하는 단계, 이들로부터 각 데이터들 간의 변환행렬을 이루는 매개변수들, 즉 캘리브레이션 매개변수들을 추정하는 과정을 거치는 단계로 진행됩니다. 


이 때, 카메라나 다양한 거리 센서들은 각각 데이터 획득 방식에 따라 데이터의 해상도나 정확도에 차이가 있습니다. 그렇기 때문에 각 센서의 특징에 따라서 다양한 방법들을 이용하여 외부 캘리브레이션을 수행합니다. 



2. 복수의 카메라 환경

방사형으로 배치되어 있는 복수이 카메라 환경에서 파노라믹 영상을 생성하는 방법에 대해 설명합니다. 복수의 카메라를 이용하면 각 카메라의 화각보다 넓은 화각을 갖는 파노라믹 영상을 생성할 수 있습니다. 기존의 파노라믹 영상은 필름의 가로 비율이 더 넓은 필름을 사용하는 방식이었지만, 현재의 파노라믹 영상은 여러 장의 디지털 영상을 이용하여 한 장의 큰 영상으로 합성하는 것을 말합니다. 


파노라믹 영상은 더 좁은 화각의 카메라로 넓은 화각의 영상을 얻을 수 있다는 장점 때문에, 다양한 분야에서 많이 사용됩니다. 특히, 광범위한 화각을 갖는 라이다와 같은 거리 센서가 사용되는 이동 매핑 시스템에는 복수의 카메라를 이용한 파노라믹 영상이 필수적으로 사용됩니다. 카메라와 카메라 사이의 캘리브레이션은 영상 처리 분야에서 전박적으로 많이 사용되는 SIFT나 SUFT, BRISK 등의 특징점 추출 기술이 파노라믹 영상 정합에 주로 사용되고 있습니다.


이와 같은 파노라믹 합성 방법은 일반적으로 모든 영상에서 특징점을 추출한 뒤, 추출된 특징점의 기술자를 통해 특징점을 매칭하고, 매칭된 점들중 Outlier를 제거한 후 Inlier를 이용한 변환 행렬을 계산하여, 투영하는 단계로 이루어져 있습니다. 최근에는 스마트폰 같은 모바일 기기의 발전으로 모바일 환경에서도 파노라믹 영상 정합이 가능하고, 정지영상 뿐만 아니라 실시간으로 입력되는 동영상에서 파노라마를 합성하는 시스템도 개발이 되었습니다.


복수의 카메라를 방사형으로 카메라들을 배치할 대, 가장 넓은 화각을 획득할 수 있지만, 이웃하게 배치된 카마레끼리 겹치는 화각이 작을수록 공통적으로 검출되는 특징점의 수가 적어집니다. 따라서 두 카메라의 영상 사이의 대응쌍의 수가 줄어들고, 캘리브레이션이 정확도가 떨어질 수 있습니다. 떄문에, 복수의 카메라를 방사형으로 배치할 때에는, 이웃한 카메라들의 화각이 적당히 겹치도록 배치해야 합니다. 


2.1 카메라

로봇 비전에서 사용되는 카메라들은 CCD와 같은 모듈을 통해 화각 안의 정보를 디지털화하여 데이터로 저장하는 디지털 카메라입니다. 또한 로봇 비전에서 가장 많이 사용되는 카메라는 CCD 모듈을 이용하여 약 380~780mm의 파장에 해당하는 가시광선 영역을 촬영하는 컬러 카메라입니다. 가시광선 영역 외에도 NIR나 등의 다양한 다양한 파장대역을 촬영하는 카메라들도 목적에 따라 많이 사용됩니다. 


각 카메라간의 정확도 높은 캘리브레이션을 위새너는, 각 영상에서 검출되는 특징점들의 위치 오차를 줄이기 위해서 높은 DPI(Dots per inch)의 영상이 유리합니다. 또한 대부분의 알고리즘에서 검출하는 특징점들은, 영상에서 고주파 영역에 해당하는, 화소 값의 변화가 큰 부분들이므로, 표본이 되는 영상을 획득할 때에는, 단색에 가까운 배경보다 댜앙한 물체나 색별화가 많은 배경을 이용하는 것이 좋습니다. 


2.2 영상에서의 특징점 검출 방법

파노라믹 영상 합성을 위새 각 영상에서 특징점을 생성하고, 대응점을 검출하는 과정은, 기존의 영상에서 특징점 검출 및 매칭 방법들을 이용합니다. 일반적으로 파노라믹 영상 생성을 위해서는 이미지 스티칭 방법이 많이 사용됩니다. 본 논문에서는 현재 많이 사용되고 있는 방법들에 대해 비교하여 성능을 분석하고 비교합니다.


2.2.1 SIFT

Scale Invariant Feature Transform 은 Harris 코너 검출기를 기반으로 한 알고리즘으로, 영상의 스케일을 변화시켜가며 Difference of Gaussian 을 이용하여 코너를 검출하는 방법입니다. 알고리즘은 순서대로 아래 4개의 주요 단계로 나뉩니다. 1단계 Scale-space extrema detection 에서는 DoG로 잠정적인 키포인트들을 정의합니다. 입력된 영상으로 생성된 scale-space의 각기 다른 스케일의 여러 개의 가우시안 블러 이미지들의 차를 통해 DoG 이미지를 생성합니다. 하나의 scale-space 에서의 각 영상 I와 가우시안 함수 G의 컨벌루션 한 결과가 주어진 식과 같을 떄, DoG 함수는 이웃한 Scale-space 에서의 각 영상과 가우시안 함수의 컨벌루션 한 결과의 차이로 식과 같이 표현할 수 있으며, 가우시안 함수는 다음과 같습니다. 


각각의 옥타브별로 서로 다른 Scale의 영상들로 이루어진 Scale-space 영상에서의 DoG의 극값들은 이미지에서의 특징점이 될 수 있는 좋은 후보이므로, 3개의 연속한 scale 평면으로 이루어진 3바이3바이3 공간의 중심에 있는 값이 가장 크거나, 가장 작을 때 키포인트 후보가 됩니다. 


2.3 대응쌍 검출 방법들의 성능 비교

파노라마 영상 정합의 단계 중 특징점 추출과 매칭에 관하여, 앞서 설명한 SIFT, SURF, BRISK 방법들의 성능을 비교 분석하기 위해 다음과 같은 실험을 진행하였습니다. 먼저 3장의 영상을 하나의 데이터 세트로 하여 중앙에 있는 영상을 중심으로 왼쪽과 오른쪽 영상에 대해 한 번씩 실험을 진행하였습니다. 각 영상간의 겹치는 부분은 약 20% 에서 70%로 다양하게 적용 하였고, 각 세트들에 대해 SIFT, SURF, BRISK 각각의 알고리즘을 적용하고, 각각 매칭점들의 수와 전체 매칭점 중에서 올바른 매칭점에 대한 백분율과 검출시간을 비교하였습니다. 


매칭점의 수는 각 알고리즘을 통해 얻어진 특징점들 중 기술자를 통해 2개의 영상 간에 매칭 된 특징점을 의미합니다. 올바른 매칭점은 RANSAC 알고리즘을 이용하여 최적의 변환 행렬을 구하게 되고, 기존의 매칭점과 이동된 매칭점간의 거리가 일정 범위 안에 있는 매칭점들을 올바른 매칭점으로 선택하였고, 검출 시간은 특징점을 검출하는 시간을 측정 및 분석하였습니다. 실험별 각 알고리즘의 매칭점 수, 올바른 매칭점의 비율, 올바른 매칭점의 수, 매칭점의 비율, 알고리즘 별 특징점 검출 시간


위에서 아래로 SIFT, SURF, BRISK 결과 영상 올바르지 않은 매칭점은 녹색으로, 올바른 매칭점은 붉은색으로 나타납니다.



3. 카메라와 깊이 센서 환경

사람은 수평 방향으로 평균 65mm 떨어져 위치한 좌우 두 눈을 이용해 시야를 형성하는데, 이로 인해 사람이 세상을 바라볼 때 양안 시차가 발생하여 입체감을 느끼게 됩니다. 따라서 인간의 욕구에 따라 영상 컨텐츠도 2D를 넘어 3D로 현장감을 향상시키는 방향으로 발전하고 있습니다. 이에 따라, 스테레오 카메라 또는 여러 대의 카메라를 이용한 촬영으로 3D 영상을 생성할 수 있습니다. 


더불어 단안 컬러 영상과 깊이 영상 또는 깊이 지도에 DIBR을 적용하여 스테레오 영상을 생성할 수 있게 되었습니다. 깊이 영상은 3D 영상 뿐만 아니라 물체인식이나 지형 정보 획득 중에서도 많이 사용됩니다. 깊이 영상은 다시점으로 촬영된 영상으로부터도 얻을 수 있지만, 깊이 센서를 이용하여 직접적으로 생성 가능합니다. 일반적으로 깊이 센서의 해상도와 정확도는 카메라보다 낮고, 고가라는 단점이 있습니다. 하지만 쉽게 깊이 영상을 생성할 수 있는 만큼 다양한 분야에서 사용되고 있습니다. 


 깊이 센서를 통해 생성된 깊이 영상은 카메라로부터 생성된 RGB 3채널에 D채널로 추가하여 RGBD 영상데이터를 이룹니다. 카메라와 깊이 센서를 이용하여 RGBD 영상을 생성하는 환경을 구축하는 방버베 대해 알아봅니다. 


3.1 깊이 센서

깊이 영상 생성을 위해 사용되는 깊이 센서는 빛을 조사하여 되돌아오는 거리를 측정하는 전통적인 TOF 카메라로써 깊이 측정을 위한 필수적인 센서이지만 고가라는 단점을 가지고 있습니다. 본 논문에서 사용한 키넥트 센서는 그림과 같이 정면을 바라봤을 때 왼쪽부터 순서대로, 적외선 발광장치와 RGB카메라, 적외선 수광 센서로 이루어져 있습니다. 컬러 영상 데이터는 RGB카메라를 통해 생성되고, 깊이 영상 데이터는 발광장치에서 조사되어 물체에 반사되어 돌아오는 적외선이 수광 센서에 감지되어 생성됩니다. 



키넥트의 적외선 레이저를 이용한 깊이 영상 생성. 적외선 발광부와 수강부가 떨어져 있기 때문에 발광장치의 사각지대가 발생합니다. 따라서 물체가 서로 겹쳐져 있을 때, 발광장치에서 나온 적외선이 앞쪽 물체에 가려져서 뒤쪽 물체에 닿지 않지만, 수강 센서에선 보이기 때문에 앞쪽 물체의 그림자와 같은 홀들이 발생하게 됩니다. 즉, 이것은 적외선 패턴이 없기 때문에 생기는 현상입니다. 


또한 아래 그림과 같이 반사되는 물체의 매질에 따라서 패턴을 인식하지 못하여서, 깊이 영상에서 깊이 정보가 없는 화소들이 발생하기도 합니다. 따라서 홀필링 기법 등을 이용하여 보완한 영상을 사용하기도 합니다. 





깊이 영상의 화소 값은 물체의 색 파장이 아닌 거리 정보를 담고 있기 때문에, 동일한 장면을 찍은 컬러 영상과 깊이 영상에서 동일한 특징점을 기대하기 어렵습니다. 


영상 특징점이란 영상에서 물체를 추적하거나 인식할 때, 영상과 영상을 매칭할 때 가장 일반적인 방법은 영상에서 주요 특징점을 뽑아서 매칭하는 것 입니다. 



첫 번째 이미지와 대응되는 지점을 두 번째 이미지에서 찾는다고 했을 떄, A는 쉽게 차을 수 있지만 B는 찾기가 어렵습니다. 이와 같이 영상을 매칭하는데 있어서 A처럼 주위 배경과 구분되면서 식별이 용이한 지점을 특징점으로 잡는게 유리함은 쉽게 알 수 있습니다. 좋은 영상 특징점이 되기 위한 조건은 다음과 같습니다. 물체의 형태나 크기, 위치가 변해도 쉽게 식별이 가능할 것. 카메라의 시점, 조명이 변해도 영상에서 해당 지점을 쉽게 찾아낼 수 있을 것. 영상에서 이러한 조건을 만족하는 가장 좋은 특징저은 바로 코너점입니다. 그리고 대부분의 특징점 추출 알고리즘들은 이러한 코너점 검출을 바탕으로 하고 있습니다. 


키넥트 센서의 경우 내장된 카메라의 해상도는 640x480이고 깊이 영상의 해상도는 최대 640x480으로 카메라와 동일하지만, 수평방향 화각이 컬러 영상보다 작습니다. 또한 깊이 영상은 각 패턴으로 읽어온 포인트들의 거리를 이용하여 보간하여 생성되기 때문에 실제 해상도는 이보다 작다고 할 수 있습니다. 또한 앞서 설명한 이유로 발생한 홀들이 존재하며, 홀들은 대부분 0에 가까운 값을 나타내기 때문에 영상처리 방법들에서 많이 사용하는 특징점인 코너나 bolb으로 우선적으로 검출되기 쉽습니다. 따라서 카메라-깊이 센서의 캘리브레이션 방법은 카메라-카메라에서 이용한 특징점 검출 및 매칭 알고리즘들을 사용해서는 좋은 결과를 얻기 힘듭니다. 


3.2 영상-깊이 영상 대응쌍 검출 방법에 대한 제안

카메라-깊이 센서 캘리브레이션을 위해 제안된 두고 제안한 도구의 형태, 깊이 영상에서 검출될 것으로 예상되는 특징점의 위치, 컬러 영상에서 검출될 것으로 예상되는 특징점의 위치


패턴의 가로, 세로길이와 개수 등의 사양을 알고 있는 체커평판을 이용하여 카메라와 체커 평판 사이이 위치를 나타내는 컬러-월드 좌표 변환행렬을 구할 수 있습니다. 다양한 배치의 체커평판 표본 영상들을 이용하여 먼저 카메라의 내부 변수들을 추정합니다. 그리고 같은 과정을 반복하여서, 깊이 센서에서 측정되는 깊이 영상을 이용하여 깊이-월드 좌표 변환행렬을 수행할 수 있습니다. 제안된 평판은 기존의 체커평판의 패턴에 반본적으로 구멍이 뚫린 형태입니다. 따라서 Harris 기반의 코너 검출 알고리즘을 이용하여 깊이영상과 컬러 영상 모두에서 쉽게 특징점을 검출 가능합니다. 예상되는 특징점의 위치는 각각 표시되어 있습니다. 따라서 각 영상에서 동일한 위치에서 검출된 특징점을 이용하여 대응쌍을 생성할 수 있습니다. 


3.3 카메라-깊이 센서 캘리브레이션

캘리브레이션 도구를 키넥트의 카메라와 깊이 센서로 동시에 촬영하는 그림과 같이 각각 실좌표-카메라좌표와의 캘리브레이션, 실좌표-깊이 센서좌표와의 캘리브레이션을 수행한 뒤, 실좌표계에 대한 상대적인 카메라와 깊이 센서 좌표계이 위치를 이용하여 카메라-깊이 센서의 캘리브레이션을 수행합니다. 

실좌표계와 카메라, 깊이 센서 좌표와의 변환 관계도


이 때 사용한 표본데이터 세트는 컬러 영상과 깊이 영상으로 이루어지며, 본 논문에서 키넥트의 카메라와 깊이 센서간의 캘리브레이션의 모든 연산 과정은 [25]에서 제공하는 MATLAB 기반의 카메라 캘리브레이션 툴박스를 사용하였습니다. 이 툴박스는 Zhang의 방법을 기반으로 하여 만들어 졌으며, 다음과 같은 파라미터들을 추정합니다. 카메라 내부 파라미터는 각각 초점거리, 카메라원점, 스큐계수, 왜곡으로 정의됩니다. 


그 다음은, 위의 과정을 통해 구하여진 카메라 내부 파라미터들을 이용하여 캘리브레이션 된 영상에서 체커평판의 위치를 추정하므로써, 카메라와 체커평판 평판과의 위치를 추정하는 외부 캘리브레이션을 수행합니다. 공간 위의 한 점 P의 카메라 참조 프레임에서 좌표벡터가 Pc 이고 실공간에서의 좌표가 Pr일 때, 카메라와 실공간 좌표계 사이의 변환은 3x3 크기의 회전 행렬 Rc 와 3x1 크기의 변환 행렬 Tc 를 이용하여 다음과 같이 나타낼 수 있습니다. 


결과 영상에서 확인 할 수 있듯이, 캘리브레이션 도구에서 예측한 지점에서 특징점들이 각각 검출되는 것을 확인할 수 있습니다. 하지만 깊이 영상에서는 앞서 설명한 것처럼, 컬러 영상에 비해 해상도가 낮고 홀들이 발생하기 때문에 검출된 특징점의 위치의 정확도가 떨어집니다. 때문에 사용한 툴박스의 자동 패턴 검출로는 깊이 영상의 코너들을 검출할 수는 없었습니다. 따라서 깊이 영상에서의 특징점에 해당하는 코너 정보는 별도로 검출하여 입력하였습니다. 



4. 카메라와 3D Lidar 환경

최근 다양한 분야에서 지형 정보의 3D 모델을 획득하기 위한 연구가 진행중입니다. 도시 환경 공학이나 자동 주행과 지능형 로봇 등 다양한 분야에서 높은 정확도와 고해상도의 3D 모델을 획득할 수 있는 센서를 필요로 합니다. 기존에는 센서 축을 기존으로 수평 방향으로 회전하며 스캔하는 방식이 2D Lidar 를 많이 사용하였습니다. 2D 라이다로부터 생성된 스캐닝 라인은 각각 스캔된 포인트와 센서 사이의 거리를 나타내는 포인트 데이터들로 이루어져 있습니다. 기술의 발달로, 최근에는 고속으로 넓은 화각의 거리 정보를 획득 할 수 있는 3디 라이더와 같은 센서들이 많이 사용되어지고 있습니다.




이번에는 3D 라이더와 카메라가 고정된 상태에서 양 센서 간의 캘리브레이션을 통한 환경 구축 방법에 대해 제안합니다. 본 논문에서 사용된 라이다는 내부에 수평방향으로 스캔하는 2디 거리 센서가 수직 방향의 축에 배열되어 있는 형태입니다. 각 거리 센서로부터 생성된 스캔 라인이 지나가며 반사된 물체 표면의 삼차원 좌표를 나타내는 점들로부터 3디 포인트 클라우드를 생성합니다. 이때, 각 라인들이 수직방향으로 방사형으로 퍼지는 형태로 되어 있기 때문에, 지형의 거리가 멀어질수록 수직방향으로 스캔 라인 사이의 간격이 멀이지기 때문에 수평방향에 비해 수직 방향의 데이터의 간격이 상대적으로 멉니다. 따라서 3디 라이더에서 생성된 3디 포인트 클라우드를 3장에서 소개한 깊이 영상과 같이 나타내면 수직 해상도가 낮기 때문에, 일반적인 영상처리 기법을 사용하여서 정확도 높은 캘리브레이션을 수행하기 어렵습니다. 


또한 물체 표면에 따라 적외선에 대해 다른 반사율을 갖기 때문에, 거리 센서로부터 같은 거리에 위치한 물체에서도, 표면에 따라 측정된 거리 사이에 오차가 발생합니다. 또한 모델에 따라, 내부의 각 2D 거리 센서들은 각각 다른 오차가 발생합니다. 또한 모델에 따라, 내부의 각 2디 거리 센서들은 각각 다른 오차가 존재합니다. 따라서 거리 정보의 정확도 향상을 위해 각 2디 거리 센서 간의 내부의 캘리브레이션을 수행하기도 합니다.


4.2 영상 3D 포인트 클라우드 대응쌍 검출 방법에 대한 제안

카메라와 3디 라이더의 캘리브레이션 방법 중 가장 잘 알려지고 많이 사용되고 있는 방법은, 기존의 2디 라이더와의 캘리브레이션을 위해 장이 제안한 체커평판을 사용한 방법입니다. 이 방법은 체커평판 평판의 법선 벡터를 각 데이터에서 검출하여 대응쌍으로 이용합니다. 또한 체커평판 평판에 반사율이 높은 테잎을 이용하여 좀 더 쉽게 3디 포인트 클라우드에서 특징점을 걱ㅁ출하는 방법도 제안되었습니다.


또한 최근에는 배경에서 모서리와 같이 3디 포인트 클라우드에서도 쉽게 인식 가능한 특징점을 이용하여, 별도의 캘리브레이션 도구를 사용하지 않는 방법들도 제안되었습니다. 선행 연구들에서 볼 수 있듯이, 다양한 방법으로 영상과 3디 포인트 클라우드 대응쌍을 생성하여 캘리브레이션의 정확도를 높이거나, 사용자의 편의를 증가시켰습니다.


삼각형 모양 평판, 마름모 모양 평판


3디 포인트 클라우드에서 물체 표면의 색상에 따라 적외선의 반사율이 다르기 때문에 발생하는 거리오차를 줄이기 위해 단색의 평면을 갖는 캘리브레이션 도구를 사용한 방법에 대해 설명합니다. 또한 영상에서 쉽게 검출 가능한 코너 특징점을 대으쌍으로 사용하기 위해, 삼각형이나 마름모의 다각형 형태의 평판을 사용합니다. 


먼저 삼각형 평판의 세 꼭지점을 카메라와 3디 라이더 양쪽 데이터에서 검출하기 위해서, 삼각형 평판을 상대적으로 고정되어있는 두 센서로부터 모두 검출 가능한 위치에 배치하여 데이터를 획득합니다. 이 때 카메라로 획득한 컬러 영상과 3디 라이다로부터 획득한 3디 포인트 클라우드를 하나의 데이터 세트로 정의합니다. 삼각형 평판을 다양한 위치에 비치시켜가며 반복하여 데이터 세트를 획득합니다. 


컬러 영상에서 캘리브레이션 도구 평판 꼭지점들의 좌표는 코너 검출 알고리즘을 이용하거나, 사용자가 직접 GUI 등을 통해 쉽게 검출 가능합니다. 하지만 이에 대응하는 3디 좌표는 앞서 설명한 3디 라이더의 거리 스캔 방식에 따라 직접적인 검출이 어렵습니다. 이를 해결하기 위해 삼각형과 같은 도형의 빗면을 이용하여 모서리에 해당하는 직선 정보를 검출하여 추정하는 방법을 설명합니다.


4.2.1 평판 평면 위를 지나는 3D 포인트 정렬

하나의 삼각형 평판의 꼭지점을 검출하기 위해서, 각 n번째 스캔 라인에서 삼각형 평판 평면을 지나는 포인트들만 분류한 집합 Pn과 전체 3D 포인트 클라우드에서 삼각형 평판 평면을 지나는 포인트들만 분류한 집합 P를 다음과 같이 정의합니다. 


이 때 pn, pn은 평판 평면 위를 지나는 라인 중 위쪽부터 n번째 라인에 위치하고, 동일 라인에서 평면 위에 존재하는 포인트 중 생성된 순서대로 m번째에 위치한 포인트를 의미합니다. n은 1부터 l까지, m은 1부터 mn까지 입니다. 거리 측정 센서로 실측하여 얻은 포인트들에서는 실제 사물의 위치와 거리오차가 존재하며, 특히 각각의 레이저 스캐너 사이의 거리 오차가 많이 납니다. 때문에 삼각형 평판의 면은 평평하더라도, 여러 대의 레이저 스캐너에서 생성한 포인트들의 집합 P는 굴곡이 이쓴 면을 나타냅니다. 이러한 거리 오차를 없애고 실제 삼각형 평판이 나타내는 공간좌표에서의 평면을 검출하기 위해서 RANSAC을 기반으로 한 3D 플랜 피팅 방법을 적용합니다.


3디 라이더에서 획득하는 3디 포인트 클라우드는 각 레이저 스캐너 마다 오차의 평균이 다릅니다. 또한 삼각형의 기하학적 특성상, 스캔되는 레이저 라인이 그림과 같이 배치된 경우 삼각형의 아래쪽에 가까운 곳을 지날수록 평판 위를 지나는 포인트의 수가 증가합니다. 각 레이저 센서 라인들이 동일한 거리에 위치한 평면에서 생성하는 스캔 거리 대비 포인트 증가량이 같을 떄, 삼격형 평판 위를 지나는 n번째 스캔 라인의 포인트량은 mn은 다음과 같습니다. 


그 다음, 검출한 평면 A 위로 포인트들의 집합 P를 투영시킵니다. 레이저 센서와 삼각형 평판은 마주보도록 배치하기 때문에, 평판의 평면 법선 벡터와 레이저 입사 각도의 차가 크지 않습니다. 그러므로 집합 P의 포인트들을 투영하는 축은 평면과 수직한 방향으로 근사시켜 정사영을 구합니다. 


가상의 포인트 p'n,L 생성 위치, 평판 모서리 부근의 3디 포인트들, 생성된 p'nl의 위치


마름모 평판은 앞서 설명한 삼각형 평판의 개념을 확장하여 적용할 수 있습니다. 컬러 영상에서는 삼각형 평판의 방법과 동일하게 평판 코너를 검출합니다. 이를 통해 위쪽 꼭지점과 아래쪽 꼭지점, 왼쪽 꼭지점, 오른쪽 꼭지점의 위치를 검출합니다. 3디 포인트 클라우드에서도 평면 A 검출단계까지 동일한 방법으로 진행합니다. 그리고 마름모 평판의 네 꼭지점을 각각 예측합니다. 


4.3 카메라 3-D 라이더 캘리브레이션

본 논문에서는 앞서 설명한 대응쌍 생성 방법 중 사각형 평판을 이용한 방법의 정확도가 더 높았기 때문에, 사각형 평판을 이용한 방법을 이용하여 실험을 진행하였습니다. 실험에 사용된 12개의 데이터 세트들 중 컬러 영상들을 나타낸 것입니다. 각 데이터 셋에서 평판들은 카메라 화각 기준으로 왼쪽, 중간, 오른쪽 등 다양한 위치에 배치되었습니다. 또한 카메라로부터 약 1.7~7m 거리에 다양하게 배치되어 있습니다. 


같은 수의 데이터 세트를 사용할 때, 다양한 위치에 다각형 평판을 배치하는 것이 높은 정확도를 갖는 캘리브레이션 결과를 얻을 수 있음을 실험을 통해 확인하였습니다. 입력된 데이터세트로부터, MATLAB을 이용하여 구현한 GUI 캘리브레이션 툴박스를 이용하여 캘리브레이션을 수행하였습니다. 먼저, 각 입력된 12개의 데이터 세트에 대해 컬러 영상과 3D 포인트 클라우드에서 대응쌍을 반복적으로 생성하였습니다. 


컬러 영상에서 평판 모서리 검출, 입력 영상에서 코너 검출 수행 결과, 검출된 코너들 중 평판 꼭지점을 선택한 결과


그리고 이에 대응하는 3D 포인트 클라우드에서 평판 꼭지점을 추정합니다. 포인트 클라우드에서 평판 모서리 검출, 평판 영역에 해당하는 포인트들, 실제 포인트들 파란색 점과 평면 A위로 정렬된 포인트들(형광녹색점), 예측된 네 개의 모서리들(파란색선)과 네 꼭지점들(빨간색 점)


이를 통해 얻은 대응쌍들은 12개의 데이터 셋으로부터 각 4개씩 최대 48개입니다. 그리고 대응쌍들의 좌표를 이용하여 3D 포인트 클라우드의 컬러 영상으로의 변환 행렬을 구하였습니다. 검출된 3D 라이더 좌표 위의 한 대응쌍 v(xvm yv, zv)의 컬러 영상 위의 한 점 v(uv, vv)으로의 변환은 변환 행렬 M을 통해 식과 같이 표현됩니다. 


그림 4-11은 사용한 데이터 세트의 수에 따른 정확도 변화에 따른 결과입니다. 각각 3D 포인트 클라우드에서 검출된 평판 꼭지점의 2차원 평면으로 reprojection 되어진 우치와 이에 대응하는 컬러 영상에서의 꼭지점의 위치의 거리 오차의 평균을 계산하였습니다. 또한 사용한 12개의 데이터로 가능한 모든 조합의 경우에 대해 계산하였습니다. 각 데이터세트에는 1개의 마름모 평판이 사용되었으므로, 하나의 데이터 세트는 4개의 대응쌍을 포함합니다. 이 때 빨간색 선은 각 조합들의 평균 오차를 나타내며, 파란색 상자의 아래쪽과 위쪽 선들은 각각 오차의 크기가 상위에 해당하는 조합의 오차를 나타냅니다. 


실험 결과 3개에서 4개의 데이터 세트를 사용했을 때 오차가 가장 많이 줄어 들었고, 6개 이상을 사용했을 때부터는 약 4픽셀정도로 오차 값이 수렴하는 것을 보였습니다. 따라서 최소 4개 이상의 데이터 셋을 사용하는 것이 좋고, 좀 더 정확도 높은 캘리브레이션을 위해서는 6개 이상을 사용하는 것이 좋음을 알 수 있습니다.



5. 실험 결과

복수의 카메라 환경에서 획득한 이미지를 나타낸 것입니다. 각 영상의 크기는 900x1200 입니다. 첫 번째 영상과 두 번째 영상 사이에 SIFT 알고리즘을 이용하여 특징점 검출 및 매칭을 통해 정합한 뒤, 다시 정합된 영상고 세 버째 영상에 동일한 과정을 진행하였습니다. 각 카메라의 영상을 정합하여 환경을 구축한 결과는 아래의 사진과 같습니다.


하나의 프레임으로 정합된 결과 영상


컬러-깊이 영상 캘리브레이션 결과


각 데이터 세트들에 대해, 컬러 영상과 깊이 영상에서 제안된 평판을 이용하여 동일한 위치에 코너 검출 방법으로 검출 가능한 특징점들을 생성한 뒤, 이를 대응점으로 사용하였습니다. 그리고 컬러 영상에 깊이 영상을 덧씌워 출력하였습니다. 그 결과, 평판의 패턴이 가까울수록 더 정확하게 검출되기 때문에, 평판이 가까이 있을수록 더 정확한 캘리브레이션 결과를 얻을 수 있었습니다.


카메라로부터 얻은 영상과 3D 라이다로부터 얻은 3D 포인트 클라우드의 캘리브레이션 결과를 나타냅니다. 먼저, 컬러 영상을 먼저 출력한 뒤, 그 위에 영상좌표계로 변환된 3D 포인트 클라우드를 출력하여 나타내었습니다. 이 떄 각 포인트들의 색깔은 3D 라이더로부터 거리에 따라 따라 변화합니다. 따라서 물체의 경계면에서 포인트의 색깔 변화와 영상에서 물체의 경계를 비교하여 정확도를 가시적으로 비교할 수 있습니다. 


컬러 영상에 3D 포인트 클라우드를 출력한 결과

3D 포인트 클라우드에 컬러 영상을 정합한 결과



포인트 클라우드에 캘리브레이션을 통해 얻은 컬러 영상에서의 색상정보를 추가한 결과를 보여줍니다. 



5. 결론

본 논문에서는 복수의 카메라를 이용한 환경, 카메라와 깊이 센서를 이용한 환경, 카메라와 3D 라이더를 이용한 환경을 구축하기 위한 캘리브레이션 방법에 대해 제안하였습니다. 이 떄, 각 센서들은 데이터의 획득 방식이나 정확도, 해상도에 차이가 있기 때문에, 이를 고려한 캘리브레이션 방법을 사용하였습니다. 복수의 카메라로부터 획득한 컬러영상들을 하나의 영상으로 정합하기 위해 SIFT, SURF, BRISK 알고리즘의 성능을 비교하고, 각 로봇 비전 환경에 대해 적합한 방법을 제안하였습니다. 


그리고 카메라와 깊이 센서이 캘리브레이션을 위해 쉽게 대응쌍을 생성하여 사용자가 쉽고 가시적으로 결과를 확인할 수 있는 도구를 제안하였습니다. 또한 카메라와 3D 라이더의 정확도 높은 ㅐㄹ리브레이션을 위한 도구를 제안하였습니다. 마름모와 같은 다각형 평판의 캘리브레이션 도구를 이용하여 주어진 센서 조건에서 4픽셀 이하의 reprojection 오차를 갖는, 기존의 방법들보다 높은 정확도의 캘리브레이션을 수행하였습니다. 본 논문에서 제안된 방법들은 카메라를 기본으로 다른 하나의 센서를 구축하는 방법들에 대해 설명하였지만, 모든 환경은 카메라를 기준으로 캘리브레이션이 수행됩니다. 따라서 카메라 외의 두 종류 이상의 센서들을 사용한 환경에서도, 하나의 센서로부터 카메라 좌표계로 변환 후 다른 센서로 변환을 함으로써 별도의 캘리브레이션을 사용하지 않고도 환경을 구축할 수 있습니다.