LiDAR カメラ キャリブレーションとは
LiDAR カメラ キャリブレーションでは、3 次元の LiDAR 点と 2 次元のカメラ データの間の対応を確立して LiDAR とカメラの出力を 1 つに融合します。
自動運転、ロボティクス、ナビゲーションなどの用途では、3 次元シーンの再構成に LiDAR センサーとカメラが広く一緒に使用されています。環境の 3 次元構造情報を LiDAR センサーで取得し、カラー、テクスチャ、外観の情報をカメラで取得します。LiDAR センサーとカメラは、それぞれ独自の座標系を基準とするデータを取得します。
LiDAR カメラ キャリブレーションは、LiDAR センサーからのデータとカメラからのデータを同じ座標系に変換することによって行われます。これにより、両方のセンサーからのデータを融合し、シーン内のオブジェクトを正確に識別できるようになります。次の図は、融合されたデータを示しています。
LiDAR カメラ キャリブレーションには、内部キャリブレーションと外部キャリブレーションがあります。
内部キャリブレーション — LiDAR センサーとカメラの内部パラメーターを推定します。
LiDAR センサーの内部パラメーターについては、製造元によってあらかじめキャリブレーションされています。
カメラの内部パラメーターについては、焦点距離、レンズ歪み、せん断などを関数
estimateCameraParameters
を使用して推定できます。詳細については、単一カメラのキャリブレーションの例を参照してください。カメラのパラメーターは、カメラ キャリブレーター アプリを使用して対話的に推定することもできます。
外部キャリブレーション — LiDAR センサーとカメラの位置や向きなどの外部パラメーターを推定して、センサー間の相対的な回転と並進を確立します。
LiDAR とカメラの外部キャリブレーション
LiDAR センサーとカメラの外部キャリブレーションでは、それらの座標系の間の幾何学的関係を確立する両者間の剛体変換を推定します。このプロセスでは、チェッカーボード パターンをもつ平面のボードなどの標準のキャリブレーション オブジェクトを使用します。
次の図は、チェッカーボードを使用した LiDAR センサーとカメラの外部キャリブレーション プロセスを示しています。
外部キャリブレーションのプログラムによるワークフローは次の手順で構成されます。代わりに、LiDAR カメラ キャリブレーター アプリを使用して LiDAR カメラ キャリブレーションを対話的に実行することもできます。
カメラと LiDAR センサーの両方からチェッカーボードの 3 次元情報を抽出します。
カメラ データから 3 次元のチェッカーボードのコーナーのワールド座標を抽出するには、関数
estimateCheckerboardCorners3d
を使用します。LiDAR 点群データからチェッカーボード平面を抽出するには、関数
detectRectangularPlanePoints
を使用します。
チェッカーボードのコーナーと平面を使用して、回転 R と並進 t で構成される剛体変換行列を取得します。剛体変換行列は、関数
estimateLidarCameraTransform
を使用して推定できます。この関数は、変換をrigidtform3d
オブジェクトとして返します。
変換行列を使用して次のことが可能です。
誤差を計算してキャリブレーションの精度を評価する。これは、
estimateLidarCameraTransform
を使用してプログラムで行うことも、LiDAR カメラ キャリブレーター アプリを使用して対話的に行うこともできます。関数
projectLidarPointsOnImage
を使用して、次の図に示すように LiDAR 点をイメージに投影する。関数
fuseCameraToLidar
を使用して、LiDAR とカメラの出力を融合する。対応するイメージの 2 次元境界ボックスに基づいて点群の 3 次元境界ボックスを推定する。詳細については、Detect Vehicles in Lidar Using Image Labelsを参照してください。
参照
[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.
参考
estimateLidarCameraTransform
| estimateCheckerboardCorners3d
| detectRectangularPlanePoints
| projectLidarPointsOnImage
| fuseCameraToLidar
| bboxCameraToLidar