メインコンテンツ

LiDAR カメラ キャリブレーションとは

LiDAR カメラ キャリブレーションでは、3 次元の LiDAR 点と 2 次元のカメラ データの間の対応を確立して LiDAR とカメラの出力を融合します。

自動運転、ロボティクス、ナビゲーションなどの用途では、3 次元シーンの再構成に LiDAR センサーとカメラが広く一緒に使用されています。LiDAR センサーは環境の 3 次元構造情報を取得するのに対し、カメラは色、テクスチャ、および外観の情報を取得します。

LiDAR センサーとカメラは、それぞれ独自の座標系を基準とするデータを取得します。LiDAR カメラ キャリブレーションは、LiDAR センサーからのデータとカメラからのデータを同じ座標系に変換することによって行われます。これにより、オブジェクト検出などのワークフローにおいて、両方のセンサーからのデータを融合することが可能になります。次の図は、融合されたデータを示しています。

Fused lidar and camera data

LiDAR カメラ キャリブレーションには、内部キャリブレーションと外部キャリブレーションがあります。

  • 内部キャリブレーション — センサーの内部パラメーターを推定します。

    • LiDAR の内部パラメーター — センサーの内部パラメーターについては、製造元によってあらかじめキャリブレーションされています。

    • カメラの内部パラメーター — 焦点距離、レンズ歪み、せん断などのカメラの内部パラメーターを対話的に推定するには、カメラ キャリブレーター アプリを使用します。あるいは、カメラのキャリブレーションに estimateCameraParameters 関数を使用することもできます。詳細については、単一カメラのキャリブレーションの例を参照してください。

  • 外部キャリブレーション — LiDAR センサー フレームとカメラ フレームの間の変換を対話的に推定するには、LiDAR カメラ キャリブレーター アプリを使用します。あるいは、キャリブレーションに estimateLidarCameraTransform 関数を使用することもできます。

LiDAR とカメラの外部キャリブレーション

LiDAR カメラ キャリブレーションとは、カメラの内部パラメーターが既知であることを前提とした、これらセンサーの外部キャリブレーションを指します。これは、これらのセンサーの座標系間の剛体変換を推定するプロセスです。このプロセスでは、チェッカーボード パターン、ChArUco パターン、および AprilGrid パターンをもつキャリブレーション ボードなどの標準的なキャリブレーション オブジェクトを使用します。

次の図は、チェッカーボードを使用した LiDAR センサーとカメラの外部キャリブレーション プロセスを示しています。

LiDAR カメラ キャリブレーションを対話的に実行するには、LiDAR カメラ キャリブレーター アプリを使用します。あるいは、プログラムによる次のワークフローに従います。

  1. カメラ データと LiDAR データの両方でキャリブレーション ボードのコーナーを検出します。

    1. カメラ コーナー — イメージで 2 次元コーナーを検出するには、detectCheckerboardPointsdetectCharucoBoardPoints、または detectAprilGridPoints などの適切なイメージ キーポイント検出器を使用します。次に、estimateBoardCornersCamera 関数を使用して、カメラ フレームで 3 次元コーナーを推定します。

    2. LiDAR コーナー — LiDAR フレームでキャリブレーション ボードのコーナーを推定するには、estimateBoardCornersLidar 関数を使用します。

  2. キャリブレーション ボードのコーナーを使用して、センサー間の剛体変換行列を推定します。この変換は、回転 R と並進 t から構成されます。剛体変換行列は、関数 estimateLidarCameraTransform を使用して推定できます。この関数は、変換を rigidtform3d オブジェクトとして返します。

    Extrinsic parameter transforming from lidar to camera frame

変換行列を使用して次のことが可能です。

  • 誤差を計算してキャリブレーションの精度を評価する。これは、LiDAR カメラ キャリブレーター アプリを使用して対話的に実行することも、estimateLidarCameraTransform 関数を使用してプログラムで実行することもできます。

    Error plots of calibration process

  • 関数 projectLidarPointsOnImage を使用して、次の図に示すように LiDAR 点をイメージに投影する。

    Lidar points projected on image

  • 関数 fuseCameraToLidar を使用して、LiDAR とカメラの出力を融合する。

    Fusion of image and point cloud

  • bboxCameraToLidar 関数を使用して、対応するイメージの 2 次元境界ボックスに基づいて点群の 3 次元境界ボックスを推定する。詳細については、Detect Vehicles in Lidar Using Image Labelsを参照してください。bboxLidarToCamera 関数を使用し、対応する LiDAR フレームの 3 次元境界ボックスに基づいてカメラ フレームで 2 次元境界ボックスを推定することもできます。

    Estimating bounding boxes in point cloud from image data

参照

[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.

参考

| | | | | |

トピック