본문 바로가기
Programming/Sensors

카메라 라이다 캘리브레이션

by OKOK 2017. 8. 8.

다중 센서 캘리브레이션


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

카메라와 라이더의 캘리브레이션 방법 중 가장 잘 알려지고 많이 사용되고 있는 방법은, 기존의 2디 라이더와의 캘리브레이션을 위해 장이 제안한 체커평판을 사용한 방법입니다. 이 방법은 체커평판 펴판의 법선 벡터를 각 데이터에서 검출하여 대응쌍으로 이용합니다. 또한 체커평판 평판에 반사율이 높은 테잎을 이용하여 좀 더 쉽게 3디 포인트 클라우드에서 특징점을 검출하는 방법도 제안되었습니다. 또한 최근에는 배경에서 모서리와 같이 3디 포인트 클라우드에서도 쉽게 인식 가능한 특징점을 이용하여, 별도의 캘리브레이션 도구를 사용하지 않는 방법들도 제안되었습니다. 선행 연구에들에서 볼 수 있듯이, 다양한 방법으로 영상과 3디 포인트 클라우드 사이의 대응쌍을 생성하여 캘리브레이션의 정확도를 높이거나, 사용자의 편의를 증가시켰습니다.


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


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


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


3D 포인트 클라우드에서 마름모형 평판의 꼭지점 검출방법



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


사각형 평판을 이용한 방법의 정확도가 더 높았기 때문에, 사각형 평판을 이용한 방법을 이용하여 실험을 진행하였습니다. 실험에 사용된 12개이 데이터 세트들 중 컬러 영상들을 나타낸 것입니다. 각 데이터 셋에서 평판들은 카메라 화각 기준으로 왼쪽, 중간, 오른쪽 등 다양한 위치에 배치되었습니다. 또한 카메라로부터 약 1.7~7m 거리에 다양하게 배치되어 있습니다. 같은 수의 데이터 세트를 사용할 때, 다양한 위치에 다각형 평판을 배치하는 것이 높은 정확도를 갖는 캘리브레이션 결과를 얻을 수 있음을 실험을 통해 확인하였습니다.


입력된 데이터세트로부터, MATLAB을 이용하여 구현한 GUI 캘리브레이션 툴박스를 이용하여 캘리브레이션을 수행하였습니다. 먼저, 각 입력된 12개의 데이터 세트에 대해 컬러 영상과 3D 포인트 클라우드에서 대응쌍을 반복적으로 생성하였습니다. 먼저, 각 입력된 12개의 데이터 세트에 대해 컬러 영상과 3디 포인트 클라우드에서 대응쌍을 반복적으로 생성하였습니다. 하나의 입력 영상에서의 컬러 영상에서 평판 꼭지점 검출 과정을 나타냅니다. 그리고 이에 대응하는 3D 포인트 클라우드에서 평판 꼭지점을 추정합니다. 


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


이 때 변환행렬 M의 원소들을 이용하여, u, v는 식과 같이 표현할 수 있습니다. 외부 캘리브레이션 변수들인 변환행렬의 원소들(m11, ... , m34)를 구하기 위해 n개의 대응쌍 vn을 필요로 합니다. 6개 이상의 대응쌍을 필요로 합니다. 이 때, 비선혀최소자승법을 이용하여 정확도를 향상 시킬 수 있습니다. 


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



Calibration between Color Camera and 3D Lidar Instruments with a Polygonal Board

3. Calibration Model for Camera and LIDAR


우리는 삼각형판을 설치하였습니다. 벨로다임 라이더를 사용하였습니다. 이미지 데이터는 카메라로 찍었습니다. 2디 좌표로 형성되있습니다. 그리고 범위 데이터는 3디의 나타납니다 3차원 좌표로. 우리의 목표는 예측하는 것입니다. 투사 변환 행렬 M의 내부와 외부 파라미로 이루어진. 영상 좌표와 라이더 좌표 사이의. 그러면 이 행렬은 3디 좌표에서 2디 좌표로 나타낼 수 있습니다. 


fu, fv는 effective 초점 lengths 수평과 수직 방향의 각각 그리고 u0, v0은 이미지 평면의 센터점 입니다. 또한, R 과 t는 회전과 병진 행렬입니다. 수식1을 보면, 이 변환 행렬 엠은 내부 카메라 파라미터와 외부 파라미터의 퓨전입니다. 그리고 매트릭스 계수 mpq는 결정될 수 있습니다. 대응함으로써 짝 u,v 그리고 x, y, z. 짝. 즉, 1은 다시 아래와 같은 식으로 쓰여 질 수 있습니다. 




그리고 매트릭스 곱의 형태는 다음과 같습니다.

각 대응점에 대해 우리는 2개의 수식을 가지고 있습니다. 모르는 행렬의 계수를 알기 위해서 우리는 필요합니다 충분한 숫자의 대응 짝이.


Calibration configuration of a camera and 3D liadr 윗 삼각판


4. 꼭짓점 대응점 다각형 판의

우리의 칼리브레이션 방법은 사용합니다. 다각형 평판을 인접한 사이드. 즉, 삼각형과 마름모 모형의. 또한 사용했습니다. 삼각형 판낼을. 우리의 꼭짓점 베이스 캘리브레이션 방법은 적용할 수 있습니다. 어느 다각형 판넬을 인접한 면을 가진. 우리는 설명합니다. 우리의 방버을 단순한 삼각형 판넬과 확정 다각형 다이아몬드 간단하도록. 이것은 전반적인 단계입니다. 우리의 방법이 요약되어있습니다.


1 데이터 획득: 하나나 그 이상의 삼각형 판넬을 카메라와 라이다 앞에 둡니다. 다양한 장소에 위치한 보드의 이미지와 3디 포인트 클라우드의 데이터를 얻습니다. 이미지 안에서의 삼각형 꼭짓점의 탐지를 쉽게하고 라이더의 측정에러를 줄이기 위해서 우리는 밝은 단색 칼라의 보드를 사용하는 것을 추천합니다. 또한, 이 보드의 색은 배경의 색과 뚜렷하게 대비되어야 합니다. 


2 2디와 3디 포인트 대응을 매칭합니다. 검출합니다 꼭짓점을 삼각판낼 이미지에서 그리고 확인합니다 3디 포인터의 대응점을 레이저로 받은 예측함으로써 만나는 지점 보드의 두 인접한 면의


3. 캘리브레이션 파라미터 라이더와 카메라 사이의 추정합니다. 대응하는 점들 선형 방정식을 풉니다. 최조 추정과 수정합니다. 솔루션 마지막 추정을 위해서. 


위의 3개의 스텝중에서 우리는 2, 3번 째의 스텝에 공을 들입니다.


4.1 매칭 2디 3디 포인트 대응

선형 방정식을 풀기 위해서 변형 행렬의 우리는 찾습니다 대응점을 이미지와 라이더의 삼각형의 꼭짓점에서 2디의 경우 꼭짓점은 쉽게 찾을 수 있습니다.  


4.5 캘리브레이션 행렬의 추정

 삼각형 판넬의 수직점 카메라로 캐벼된 따라서 2디 이미지 쉽게 검출됩니다. 코너 디텍션 방법 패스트와 같은, 그다음 우리는 n개의  꼭짓점 쌍을 가지고 있습니다. 우리는 2n 선형 방정식을 가집니다. 대입함으로써 식4에 그러면 사용함으로써 단순한 값의 decompisition 방법, 우리는 선형 방정식을 풀 수 있스니다. 그러나 측정에러 때문에, 이 솔루션은 정확한 변형 행렬이라고 주장할 수 없습니다. 그러므로 우리는 필요로 합니다 수정된 과정을 하도록 4의 방정식의 해로 부터 시작, 우리는 반복합니다. 업데이트합니다 값을 사용함으로써 비선형 least square 방법. 특히, Levenberg-Marquardt 알고리즘은 적요될 수 있습니다. 업데이트 하는데에 


4.6 확장 다이아몬드 모형의 판넬

주목하세요. 우리는 더욱 스캔라인 보드, 우리는 추정할 수 있습니다 정확하게. 또한, 다각형 구조 교차점을 가진 에지 정확하게 향상합니다. 정확도를 카메라 캘리브레이션의. 예를 들어, 다이아몬드 보드 4개의 꼭짓점 더 나을 것입니다. 삼각 보드. 이 꼭짓점 감지 방법은 삼각보드는 적용될 수 있습니다. 즉, 


실험 결과


다이아몬드 실험은 수행됩니다. 평가하기 위해 성과 우리의 방버. 이 4개의 사이는 알고 있습니다. 72센티로 동일합니다. 우리의 카메라 resolution은 몇이고 벨로다임 라이더를 사용합니다. 벨로다입은 360도의 수평 방향과 41도의 위아래 각도를 가지고 32개의 스캔 라인을 가지고 있습니다. 그래서 그것의 수직 각도 레솔루션은 1.33 도 입니다. 이 센서 우리가 2디 이미지와 3디 데이터 12개의 다른 포지션.


우리의 대응 기반 추정 엠 행렬은 적용할 ㅜ 있습니다 2디 이미지 렌즈 왜곡 보정없이. 우리의 실험에서 우리는 사용했습니다 2디 이미지 데이터 렌즈 왜곡 없이. 수직 대응점을 찾기위해 우리는 4개의 커너점을 사용했습니다. 그림에서 보이듯 이 코너점은 패스트 알고리즘을 사용했습니다. 일단 모든 키보인트 4개의 수직점을 포함한 이 정확한 위치 수직의 결정됩니다. 클릭함으로써 탐지된 꼭짓점 수동적으로. 그러므로 이 패스트 알고리즘이 역할은 정확한 2디 좌표의 위츨 마우스 클릭으로 얻을 수 있습니다.


이 대응하는 코너 3디 좌표에서라이더의 추정된 side line 추저된 평면 threshold Tb 임계점 0.01. 이제 우리는 4개의 대응점 코너를 갖습니다. 2디와 3디 데이터 준비했습니다. 방정식을 풀기위해서. 우리는 12개 이상의 대응쌍이 필요합니다. 12 캘리브레이션 파라미터를 추정하기 위해서. 우리는 3개 이상의 다른 포지션에서 취해야합니다. 그러면 캘리브레이션 파라미터는 결정됩니다. 선형 방정식과 수정 과정을 풀기 위해서.


제안된 방법의 다른 포지션의 다이아몬드 정확성을 평가하기 위해서 우리는  실행했스니다. 우리의 캘리브레이션 방법을 다양한 포지션에서 계산했습니다. 캘리브레이션 픽셀 에러를. 12 포지션 사이에, 우리는 선택했습니다. 다른 3개의 포지션 우리는 전체적으로 220 가능한 조합을 가졌습니다. 각가의 실험을 위해서 우리는 3개의 포지션 4개의 데이터점 총 12개의 꼭짓점을 가집니다. 행렬 방정식을 풀기위해서. 일단 우리는 캘리브레이션 행렬의 추정값을 가집니다. 우리는 계산합니다. 재투영 에러 모든 48 꼭짓점 12개의 포지션에서. 이 재투영 에러는 계산합니다. 기반하여 거리 픽셀 사이 2디 그리고 3디 꼭짓점 추정된 행렬로. 그러면 우리는 계산합니다. 평균적인 root mean square 모든 48 재투영 에러를 위해서. 이 결과는 결과를 보듯이 재투영 에러는 감소합니다. 사용된 보드의 숫자가 오를 수록 그리고 빠르게 내려값니다. 3~4개의 보드 뒤에, 이 평균 값은 수렴합니다 4픽셀 5개의 보드 셋이후로.


카메라, 라이더의 캘리브레이션 이후로 우리는 겹쳐두었습니다. 3디 래이저 데이를 2디 이미지 위에 따라서 추정된 투영 행렬. 이 결과는. 겹쳐진 3디 데이터는 실제 2디 이미지의 깊이와 잘 맞습니다. 깊이는 나타납니다 스캔라인의 색에 따라서.


우리는 비교를 통한 실험을 수행했습니다. 체크 보드 방법에 따라. 이 추정된 파라미터는 사용했스니다. 재 투영 3디 스캔 데이터를 2디 이미지 또한 우리는 적용했습니다. 우리의 방법을 측정하기 위해서 투영 행렬. 그러면 

우리의 방법이 나타냅니다. 깊이를 더욱 정확하게.


결론

이 논문에서 우리는 제안했습니다. 새로운 접근 캘리브레이션 카메라와 3디 라이더 기반으로한 2디와 3디 키포인트 대응. 이 대응 3디는 꼿짓점 평판의 인접한 면의 그리고 귿ㄹ은 계산했습니다. 우리의 접근 이 투영 행렬은 평가될수 있습니다. 없이 내부와 외부 파라미터의 분리 없이 투영 행렬은 만들어질 수 있습니다. 또한, 우리의 단색 칼. 우리의 단색 캘리브레이션 보드는 제공합니다 더욱 안정적인 측정방법 3디 포인터 체크보드보다. 실험 결과 확인합니다 우리의 2디 3디 대응 베이스 캘리브레이션은 심지어 3d 라이더의 레솔루션이 낮더라도.


실제 실험을 할 때


그럼 먼저 캘리브레이션 툴은 왜 필요한것이지. 내부와 외부 파라미터를 굳이 알아야 하는게 아니잖아. 그냥 단순히 저 행렬을 사용하려면 매트랩 코딩으로도 가능하리라 생각됩니다.


겹쳐 씌우는 것이 필요하다 생각됩니다. 그리고 카메라 영상위에 라이다 영상을 올려야하는데, 이것을 어떻게 하는지 찾아보아야 합니다.


웹캠으로 단순하게 코너점을 찾는 것은 지금 바로 해보도록 하겠습니다. 그래서 마우스 클릭으로 하나의 에이포에서 4개의 코너점이 나오도록 찾아보겠습니다.


2. 라이다를 사용하여 코너점을 찾습니다. 해상도가 낮으므로 큰 용지가 필요합니다. 다음으로 이 대응점 12쌍을 활용하여, 변환 행렬 M을 만든 다음에, 이 행렬을 사용해서 계속해서 사용할 수 있는 것이군요. 점 12개를 사용해서 M을 만들게 된다면 다른 거리에 있는 물체의 거리도 알 수 있다는 것입니다.