LiDAR カメラ キャリブレーションとは
LiDAR カメラ キャリブレーションでは、3 次元の LiDAR 点と 2 次元のカメラ データの間の対応を確立して LiDAR とカメラの出力を融合します。
自動運転、ロボティクス、ナビゲーションなどの用途では、3 次元シーンの再構成に LiDAR センサーとカメラが広く一緒に使用されています。LiDAR センサーは環境の 3 次元構造情報を取得するのに対し、カメラは色、テクスチャ、および外観の情報を取得します。
LiDAR センサーとカメラは、それぞれ独自の座標系を基準とするデータを取得します。LiDAR カメラ キャリブレーションは、LiDAR センサーからのデータとカメラからのデータを同じ座標系に変換することによって行われます。これにより、オブジェクト検出などのワークフローにおいて、両方のセンサーからのデータを融合することが可能になります。次の図は、融合されたデータを示しています。

LiDAR カメラ キャリブレーションには、内部キャリブレーションと外部キャリブレーションがあります。
内部キャリブレーション — センサーの内部パラメーターを推定します。
LiDAR の内部パラメーター — センサーの内部パラメーターについては、製造元によってあらかじめキャリブレーションされています。
カメラの内部パラメーター — 焦点距離、レンズ歪み、せん断などのカメラの内部パラメーターを対話的に推定するには、カメラ キャリブレーター アプリを使用します。あるいは、カメラのキャリブレーションに
estimateCameraParameters関数を使用することもできます。詳細については、単一カメラのキャリブレーションの例を参照してください。
外部キャリブレーション — LiDAR センサー フレームとカメラ フレームの間の変換を対話的に推定するには、LiDAR カメラ キャリブレーター アプリを使用します。あるいは、キャリブレーションに
estimateLidarCameraTransform関数を使用することもできます。
LiDAR とカメラの外部キャリブレーション
LiDAR カメラ キャリブレーションとは、カメラの内部パラメーターが既知であることを前提とした、これらセンサーの外部キャリブレーションを指します。これは、これらのセンサーの座標系間の剛体変換を推定するプロセスです。このプロセスでは、チェッカーボード パターン、ChArUco パターン、および AprilGrid パターンをもつキャリブレーション ボードなどの標準的なキャリブレーション オブジェクトを使用します。
次の図は、チェッカーボードを使用した LiDAR センサーとカメラの外部キャリブレーション プロセスを示しています。
LiDAR カメラ キャリブレーションを対話的に実行するには、LiDAR カメラ キャリブレーター アプリを使用します。あるいは、プログラムによる次のワークフローに従います。
カメラ データと LiDAR データの両方でキャリブレーション ボードのコーナーを検出します。
カメラ コーナー — イメージで 2 次元コーナーを検出するには、
detectCheckerboardPoints、detectCharucoBoardPoints、またはdetectAprilGridPointsなどの適切なイメージ キーポイント検出器を使用します。次に、estimateBoardCornersCamera関数を使用して、カメラ フレームで 3 次元コーナーを推定します。LiDAR コーナー — LiDAR フレームでキャリブレーション ボードのコーナーを推定するには、
estimateBoardCornersLidar関数を使用します。
キャリブレーション ボードのコーナーを使用して、センサー間の剛体変換行列を推定します。この変換は、回転 R と並進 t から構成されます。剛体変換行列は、関数
estimateLidarCameraTransformを使用して推定できます。この関数は、変換をrigidtform3dオブジェクトとして返します。
変換行列を使用して次のことが可能です。
誤差を計算してキャリブレーションの精度を評価する。これは、LiDAR カメラ キャリブレーター アプリを使用して対話的に実行することも、
estimateLidarCameraTransform関数を使用してプログラムで実行することもできます。
関数
projectLidarPointsOnImageを使用して、次の図に示すように LiDAR 点をイメージに投影する。
関数
fuseCameraToLidarを使用して、LiDAR とカメラの出力を融合する。
bboxCameraToLidar関数を使用して、対応するイメージの 2 次元境界ボックスに基づいて点群の 3 次元境界ボックスを推定する。詳細については、Detect Vehicles in Lidar Using Image Labelsを参照してください。bboxLidarToCamera関数を使用し、対応する LiDAR フレームの 3 次元境界ボックスに基づいてカメラ フレームで 2 次元境界ボックスを推定することもできます。
参照
[1] Zhou, Lipu, Zimo Li, and Michael Kaess. “Automatic Extrinsic Calibration of a Camera and a 3D LiDAR Using Line and Plane Correspondences.” In 2018 IEEE/RSJ International Conference on Intelligent Robots and Systems (IROS), 5562–69. Madrid: IEEE, 2018. https://doi.org/10.1109/IROS.2018.8593660.
参考
estimateBoardCornersLidar | estimateBoardCornersCamera | estimateLidarCameraTransform | projectLidarPointsOnImage | fuseCameraToLidar | bboxCameraToLidar | bboxLidarToCamera