9.78 LiDAR-카메라 외부 캘리브레이션

1. LiDAR-카메라 캘리브레이션의 필요성

자율 주행 차량과 로봇에서 LiDAR(Light Detection and Ranging)와 카메라는 상호 보완적인 센서이다. LiDAR는 정확한 3차원 거리 정보를 제공하지만 색상과 텍스처 정보가 부족하다. 카메라는 풍부한 시각 정보를 제공하지만 정확한 거리를 직접 측정하지 못한다. 두 센서의 데이터를 융합하면 더 풍부한 환경 인식이 가능하다.

데이터 융합을 위해서는 두 센서의 좌표계 사이의 관계를 정확히 알아야 한다. 이를 결정하는 과정이 LiDAR-카메라 외부 캘리브레이션이다.

2. 캘리브레이션의 목표

목표는 LiDAR 좌표계 \{L\}과 카메라 좌표계 \{C\} 사이의 강체 변환 {}^C\mathbf{T}_L을 결정하는 것이다.

{}^C\mathbf{T}_L = \begin{bmatrix}{}^C\mathbf{R}_L & {}^C\mathbf{t}_L \\ \mathbf{0}^T & 1\end{bmatrix}

이 변환을 사용하면 LiDAR가 측정한 3D 점을 카메라 좌표계로 변환할 수 있다.

\mathbf{p}_C = {}^C\mathbf{R}_L\mathbf{p}_L + {}^C\mathbf{t}_L

이후 카메라의 내부 매개변수로 이미지 평면에 사영하여 LiDAR 점이 이미지 어디에 해당하는지 결정한다.

3. 캘리브레이션의 어려움

LiDAR-카메라 캘리브레이션은 다음과 같은 어려움을 가진다.

3.1 다른 측정 원리

LiDAR는 레이저 펄스의 반사 시간으로 거리를 측정하고, 카메라는 빛의 강도와 색상을 기록한다. 두 센서가 같은 환경의 다른 측면을 측정하므로 직접적 대응이 어렵다.

3.2 다른 데이터 형식

LiDAR는 3차원 점군, 카메라는 2차원 이미지를 산출한다. 두 데이터를 비교하려면 명시적 변환이 필요하다.

3.3 시간 동기화

두 센서의 측정 시각이 다를 수 있으며, 동기화 오차가 캘리브레이션에 영향을 준다.

4. 캘리브레이션 방법의 분류

4.1 캘리브레이션 보드 기반 방법

체커보드, 평면 보드, 또는 특수 패턴이 있는 보드를 사용한다. 이 보드를 LiDAR와 카메라가 동시에 관찰하고, 두 센서에서 인식한 보드의 자세를 비교하여 캘리브레이션을 수행한다.

4.1.1 절차

  1. 캘리브레이션 보드를 여러 위치와 방향에 놓는다.
  2. 각 위치에서 LiDAR와 카메라로 동시에 측정한다.
  3. 카메라 이미지에서 보드의 자세를 추정한다(PnP 알고리즘).
  4. LiDAR 점군에서 보드 평면을 검출한다.
  5. 두 센서의 보드 측정값을 사용하여 {}^C\mathbf{T}_L을 추정한다.

4.1.2 장점

  • 정확한 결과
  • 잘 정립된 방법

4.1.3 단점

  • 캘리브레이션 보드를 준비해야 함
  • 수동 설정이 필요
  • 환경에 의존하지 않음

4.2 자연 환경 기반 방법

특수한 캘리브레이션 보드 없이 자연 환경의 특징(에지, 평면, 코너 등)을 사용한다. 도시의 건물 모서리, 도로 표지판 등이 캘리브레이션의 단서가 된다.

4.2.1 장점

  • 보드 준비 불필요
  • 작동 환경에서 직접 캘리브레이션 가능

4.2.2 단점

  • 일반적으로 보드 기반보다 정확도가 낮음
  • 환경 조건에 민감

4.3 정보 이론 기반 방법

LiDAR 점군과 카메라 이미지의 상호 정보(mutual information)를 최대화하는 변환을 찾는다. LiDAR의 강도 정보와 카메라의 그레이스케일 강도 사이의 상호 의존성을 활용한다.

4.3.1 장점

  • 캘리브레이션 보드 불필요
  • 자동화 가능

4.3.2 단점

  • 계산 비용이 높음
  • 환경에 따라 성능 차이

4.4 딥러닝 기반 방법

신경망을 학습하여 LiDAR와 카메라 데이터로부터 직접 캘리브레이션 매개변수를 추정한다. 최근 연구가 활발한 분야이다.

4.4.1 장점

  • 학습 후 빠른 추론
  • 비전형적 환경에도 적용 가능

4.4.2 단점

  • 학습 데이터 필요
  • 일반화가 어려움

5. 보드 기반 캘리브레이션의 상세 방법

가장 일반적인 캘리브레이션 보드 기반 방법을 자세히 설명한다.

5.1 캘리브레이션 보드의 선택

LiDAR가 인식할 수 있도록 충분히 큰 평면이어야 한다. 일반적으로 1m \times 1m 정도의 평면 보드가 사용된다. 카메라가 보드 위의 특징(체커보드 패턴, ArUco 마커 등)을 인식할 수 있어야 한다.

5.2 카메라의 보드 자세 추정

카메라의 내부 매개변수가 알려진 상태에서, 이미지에서 검출된 패턴의 점들을 사용하여 보드의 카메라에 대한 자세 {}^C\mathbf{T}_P를 PnP 알고리즘으로 계산한다.

5.3 LiDAR의 보드 평면 검출

LiDAR 점군에서 평면을 검출하는 RANSAC 알고리즘을 사용한다. 보드 영역에 해당하는 점들을 추출하고 평면 방정식을 추정한다. 이를 통해 보드의 LiDAR 좌표계에서의 자세 {}^L\mathbf{T}_P의 일부 정보를 얻는다(평면의 법선과 거리만 결정됨).

5.4 변환의 추정

LiDAR가 보는 평면 정보와 카메라가 보는 보드의 6자유도 자세를 결합하여 {}^C\mathbf{T}_L을 추정한다. 여러 다양한 위치에서의 데이터를 결합하면 충분한 제약이 형성된다.

5.5 비선형 최적화

초기 추정 후 비선형 최적화로 정제한다. 각 측정의 잔차를 최소화하는 방향으로 변환을 갱신한다.

6. 캘리브레이션 잔차의 정의

캘리브레이션의 잔차는 다음과 같이 정의될 수 있다.

6.1 평면-평면 거리 잔차

LiDAR가 보는 평면과 카메라가 본 보드 평면의 차이를 측정한다. 이상적으로 이 차이는 0이어야 한다.

6.2 점-평면 잔차

LiDAR 점이 카메라가 본 보드 평면 위에 정확히 놓여야 한다. 점과 평면 사이의 거리가 잔차이다.

6.3 재투영 잔차

LiDAR 점을 카메라 이미지에 사영한 위치와 카메라 이미지에서 검출된 대응점의 차이이다.

이러한 잔차를 최소화하는 변환이 최적의 캘리브레이션이다.

7. 캘리브레이션의 검증

캘리브레이션 결과의 정확성을 검증하는 방법은 다음과 같다.

7.1 시각적 검증

LiDAR 점을 카메라 이미지에 색칠하여 사영한다. 점이 환경의 정확한 위치에 표시되는지 시각적으로 확인한다. 이는 가장 직관적인 검증 방법이다.

7.2 정량적 평가

별도의 검증 데이터셋에서 잔차를 계산한다. 평균 잔차가 작을수록 캘리브레이션이 정확하다.

7.3 작업 검증

캘리브레이션 후 실제 작업(객체 검출, 거리 측정 등)에서 정확도를 평가한다.

8. 실용적 고려 사항

8.1 시간 동기화

LiDAR와 카메라의 측정 시각이 다르면 동적 환경에서 캘리브레이션 오차가 발생한다. 하드웨어 트리거나 소프트웨어 시간 동기화로 해결한다.

8.2 진동과 변형

차량이나 로봇의 진동으로 인해 LiDAR와 카메라의 상대적 위치가 약간 변할 수 있다. 정밀한 응용에서는 주기적 재캘리브레이션이 필요할 수 있다.

8.3 환경 조건

조명, 날씨 등의 환경 조건이 캘리브레이션의 정확도에 영향을 줄 수 있다. 특히 카메라는 조명에 민감하다.

8.4 멀티 캘리브레이션

다중 LiDAR와 다중 카메라를 가진 시스템에서는 모든 센서 쌍의 캘리브레이션이 필요하다. 트리 구조로 관리하면 효율적이다.

9. 응용 사례

9.1 자율 주행

자율 주행 차량은 LiDAR와 카메라를 모두 사용한다. 두 센서의 캘리브레이션은 객체 검출, 거리 추정, 차선 인식 등의 정확도를 결정한다.

9.2 모바일 매핑

이동형 매핑 시스템(mobile mapping system)은 LiDAR와 카메라로 도시 환경을 3D 모델로 재구성한다. 정확한 캘리브레이션이 모델의 품질을 결정한다.

9.3 로봇 환경 인식

이동 로봇이 환경을 인식할 때 LiDAR와 카메라의 데이터 융합이 필요하다. 캘리브레이션이 융합의 전제이다.

9.4 농업 로봇

농업 로봇은 작물의 위치와 상태를 LiDAR와 카메라로 측정한다. 정확한 캘리브레이션이 정밀 농업의 핵심이다.

10. 캘리브레이션의 라이브러리와 도구

10.1 Autoware

자율 주행 오픈 소스 플랫폼으로 LiDAR-카메라 캘리브레이션 도구를 제공한다.

10.2 MATLAB Lidar Toolbox

LiDAR와 카메라의 캘리브레이션 GUI 도구를 제공한다.

10.3 Apollo

바이두의 자율 주행 플랫폼이 캘리브레이션 모듈을 포함한다.

10.4 기타 ROS 패키지

lidar_camera_calibration, extrinsic_calibration 등 다양한 ROS 패키지가 사용된다.

11. 참고 문헌

  • Geiger, A., Moosmann, F., Car, Ö., & Schuster, B. (2012). “Automatic Camera and Range Sensor Calibration Using a Single Shot.” IEEE ICRA, 3936–3943.
  • Pandey, G., McBride, J. R., Savarese, S., & Eustice, R. M. (2015). “Automatic Extrinsic Calibration of Vision and Lidar by Maximizing Mutual Information.” Journal of Field Robotics, 32(5), 696–722.
  • Zhang, Q., & Pless, R. (2004). “Extrinsic Calibration of a Camera and Laser Range Finder (Improves Camera Calibration).” IROS, 2301–2306.
  • Levinson, J., & Thrun, S. (2013). “Automatic Online Calibration of Cameras and Lasers.” Robotics: Science and Systems.
  • Schöller, G., Schnettler, M., Krämmer, A., Hinz, G., Bakovic, M., Güzet, M., & Knoll, A. (2019). “Targetless Rotational Auto-Calibration of Radar and Camera for Intelligent Transportation Systems.” IEEE ITSC, 3934–3941.

version: 1.0