LiDAR (Light Detection and Ranging)

LiDAR(Light Detection and Ranging、ライダー)は、ターゲットをレーザー光で照らし、反射光を分析することで、対象物までの距離を測定したり、対象物の性質を捉えることができます。このページでは、LiDARの原理、製品、LiDARを使用するメリット、自動運転にとどまらないLiDARの幅広い活用事例について紹介します。

LiDARは、パルス光を使って周囲の物体までの距離測定を行ったり、物体の性質を特定したりするリモートセンシング技術です。LiDARセンサーが、レーザーパルスを照射して物体に反射させ、周囲の物体・空間の構造を認識します。センサーが、反射した光のエネルギーを記録し、記録した時間とパルス光を照射した時間との差分を取ることで、物体までの距離を測定することができます。パルス光は、方位方向(アジマス方向)や仰角方向(エレベーション方向)にスキャンしながら計測を行うことで、周囲の環境を2Dまたは3Dで表現することができます。

LiDARセンサーは、自動運転、自律走行やロボットなどで使用される主要なセンサーの一つです。LiDARは、物体検出(得られたデータから、車や人などのオブジェクトを検出する)やセマンティックセグメンテーション(記録した一つ一つのパルスにラベルやカテゴリを関連付けるタスクで、現在では主にディープラーニングで行われる)などの3D知覚や、マッピング、SLAM(Simultaneous localization and mapping、自己位置推定と環境地図作成を同時に行う技術)、パスプランニング(経路計画、自己位置から目的地まで、障害物などに衝突しないで到達できる経路を生成する)などのナビゲーションワークフローを実現します。

LiDARのメリット・原理・メーカー

自律システムでは、環境認識のために、カメラ、IMU(Inertial Measurement Unit、完成計測装置)、レーダーなどの複数のセンサーを使用しています。LiDARは、高精度で構造的な3次元情報を提供することで、他のセンサーの欠点を補完することができます。このメリットにより、LiDARセンサーは認知・知覚領域におけるメインストリームとなりました。

地上車両に搭載されたLiDARセンサーで収集されたLiDARデータ

地上車両に搭載されたLiDARセンサーで収集されたLiDARデータ

LiDARの弱点・デメリット

これまでLiDARのメリットを紹介してきましたが、LiDARには固有のデメリットもあります。

  • 気象条件の変化に弱い。LiDARが照射するパルスは、主に赤外線です。この波長帯の電磁波は霧や雨などの気象条件下では、大気中で拡散・反射してしまいますので検知距離が大幅に減少・ノイズが増し、データ処理が難しくなります。
  • 検知しにくい物体がある。LiDARは対象物から反射した送信パルスを受信することで、物体を検知します。したがって反射光が見えにくいケースでは検知性能が減少します。例えば黒い物体です。黒い車などは、反射率が低いため検知しにくいことが知られています。他にも窓ガラスなどは光が透過してしまうために、検知が難しくなります。さらに鏡やカーブミラー、遠方の水面などは鏡面反射と呼ばれ、照射した光はセンサーに戻ってこないため、計測することができません。
  • 比較的高価である。カメラやミリ波レーダーなどほかのセンサーと比較すると、高価です。最近では安価なLiDARが出てきていますが、それでも経済的に大きなコストが発生するため、導入にあたっての大きな障害の一つとなります。 ただ、近年では、検知可能距離、サイズ、堅牢性などの特性を高めた低価格のLiDARが最近では登場しています。結果として、比較的収益性の低い産業用アプリケーションでもLiDARを利用できるようになりつつあります。

代表的なLiDARメーカー

自動運転をはじめロボティクスやインフラシステム向けにLiDARの市場は大きく成長しています。それに伴ってスタートアップからカーサプライヤーまで多くの企業がLiDARの研究開発に参入しており、競争も激しくなっています。代表的なLiDARメーカーを紹介します。特性や性能、コストに応じて最適なLiDARを選択する必要があります。

空中LiDARセンサ

空中LiDARセンサ

空中LiDARデータ

空中LiDARデータ

空中用LiDARには次のような活用事例があります。

農業:LiDAR技術によって、植生エリアのマッピング、農場の正確な地形の特定、集水エリアの特定などを行うことができます。これによって、例えば、農業従事者が、最大の作物収量を達成するために、高価な肥料を農地のどの区域に使用するかの判断をサポートすることができます。また、農機周辺の作業者を自律的に把握し安全を確保する目的にも使われます。

都市計画・建設:LiDARは、ある地域のデジタルサーフェスモデル(DSM)やデジタルシティモデル(DCM)の作成に使用され、都市の設計や既存の都市に新しいインフラを構築する際に使用されます。高さ情報を得ることで、任意の場所からの景観シミュレーションや、災害時の被害エリア予測といった使い道があります。

地質学的マッピング:LiDARを使って地表の3Dマップを作成し、それを鉱山、精密林業、石油・ガス探査などの用途に利用することができます。空から木の下の地形情報を取得できるため、アマゾンなどにおける遺跡探査でも成果を挙げています。

空中ナビゲーションとパスプランニング:最近では、LiDARは無人航空機(UAV)に搭載されていて、リアルタイムに3Dデータを収集して、自律的に周囲の状況を捉えています。得られた点群データを逐次レジストレーションして3次元地図を生成したり、生成した地図と現在スキャンした点群データをマッチングし、自機の位置を推定します。

屋内用LiDAR(自動搬送車/AGV、見守りロボット、掃除ロボットなどで活用)

屋内用LiDARは、移動ロボットに搭載することで、屋内でのロボティクス用途に広く利用されています。3D LiDARの他に、2D LiDARやレーザースキャナーも、LiDARスキャンやマッピングなどの屋内ロボットアプリケーションに使用されます。これらは周囲の情報をより詳細に収集し、利用用途に応じて応用することができます。

移動式LiDARセンサー

移動式LiDARセンサー

移動式LiDARデータ

移動式LiDARデータ

空中用LiDAR(ドローン・UAV・航空機などで活用)

空中用LiDARは、無人航空機(UAV)や航空機に搭載されたLiDARセンサーです。空中LiDARは、広い地形の3D点群データを取得し、LiDARマッピング、特徴抽出、地形分類・リモートセンシング、気象計測、バイオマス計測などに利用することができます。

屋内型LiDARセンサ

屋内型LiDARセンサ

屋内型LiDARデータ

屋内型LiDARデータ

屋内用LiDARの一般的な用途は以下の通りです。

  • LiDARマッピングとSLAM:2Dまたは3D LiDARを使用して、それぞれ2Dまたは3DのSLAMとマッピングを行うことができます。
  • 障害物検知、衝突警告と回避:2D LiDARは障害物の検知に広く使用されています。このデータはさらに、衝突警告の作成や障害物の回避に利用できます。
  • セキュリティ・防犯:屋内に固定設置し定点計測を行うことで不審者の侵入などの検知に利用されるケースもあります。

LiDAR処理の手法

MATLABとLiDAR Toolbox™は、LiDARの処理作業を簡単にします。MATLABでは、LiDAR専用ツールや関数を用いて、3Dデータタイプ、データの疎性、データ内の無効な値、高いノイズなど、LiDARデータの処理における一般的な課題をスムーズに対処することができます。

リアルタイム、録画されたLiDARデータをMATLABにインポートし、LiDAR処理のワークフローを実装し、C/C++およびCUDAコードを作成して実運用に導入することができます。

LiDARの点群を処理する際に、MATLABが提供する機能は次のようなものがあります:

LiDARデータのストリーミング、読み込み、および書き込み

MATLABでセンサーデータを処理する際の最初のステップは、データをMATLABのワークスペースに取り込むことです。以下が実行可能です。

  • Support Packageを使用して、VelodyneやOusterのセンサーからのリアルタイムデータをストリーミングします。
  • PCD、PLY、PCAP (Hesaiなど)、Ibeoデータコンテナ、LAS、LAZなどの異なるファイル形式で保存された点群を読み込みます。
  • PCD、PLY、LAS、LAZ形式で点群データを保存することができます。
  • rosbag、ros2bag形式で保存された点群データのトピックをインポートし、再生することができます。
  • シミュレーション環境でLIDARデータを合成し、処理アルゴリズムをテストすることができます。UAV Toolbox™およびAutomated Driving Toolbox™は、LiDARの点群をシミュレーションするためのLiDARセンサーモデルを提供します。解像度や最大検知距離など、様々なプロパティを設定することができます。既存のLiDARセンサープロダクトを模擬することもできますし、特定条件下で性能を最大化するようなオリジナルの構成の探索を行うことも可能です。
Velodyne LiDARセンサーからのLiDARデータをリアルタイム配信

Velodyne LiDARセンサーからのLiDARデータをリアルタイム配信

3D LiDARデータのシミュレーション

LiDARデータの処理

LiDARデータを前処理することで、データの質を向上させたり、基本的な情報を抽出することができます。

LiDAR Toolboxには、ダウンサンプリング、メディアンフィルター処理、整列、変換、点群からの特徴抽出などの基本的な前処理関数を網羅しています。これらの関数を利用することで、処理の高速化やメモリの節約などの効果が得られます。さらに、地表面からの点群を推定・除去する関数や、セマンティックセグメンテーションのためのディープニューラルネットワークを適用するためのフォーマット変換、メッシュ変換などもあります。センサ自体の動きによる歪み補正やDEM変換などアプリケーションに特化した機能もリリースごとに増えています。

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

MATLABでは、LiDARカメラのキャリブレーションを行い、カメラとLiDARデータを融合させるためのLiDARカメラ変換を推定することができます。この機能はアプリとして実装されており、チェッカーボードを撮影したカメラ画像と点群データをペアとして読み込ませます。変換行列の推定はボタンワンクリックで完了します。さらに、誤差の大きなペアデータを除いて再計算など全てGUIで操作が可能です。

このようなキャリブレーションが可能になると、LiDAR点群データにカメラ画像から取得した色情報を融合したり、その逆に、カメラ画像に点群データを投影することが可能となります。このような可視化情報の拡張により、データの解釈が容易になったり、開発効率が向上したりするだけでなく、オブジェクト検出精度の向上や、色付きの3次元点群マップが構築できるなど開発アプリケーションの付加価値を向上させることができます。また、同位置のカメラからの2Dバウンディングボックスを使ってLiDARの3Dバウンディングボックスを推定したりなどの応用も可能です。

LiDAR Camera Calibratorアプリによるキャリブレーションの例

LiDAR Camera Calibratorアプリによるキャリブレーションの例

LiDARのためのディープラーニング

MATLABを使うことで、物体検出やセマンティックセグメンテーションのための機械学習・ディープラーニング アルゴリズムをLiDAR点群データに適用することができます。

  • MATLABに数行のコードを記述するだけで、PointSeg++やSqueezeSegV2、RandLANetなど、事前に学習されたセマンティックセグメンテーションモデルをインポートして、手元にあるLiDARデータをセグメント化することができます。また、独自の深層学習モデルを学習し、評価、実機に実装することもできます。
  • MATLABでは、PointPillarsネットワーク、Complex-YOLO v4ネットワークのようなロバストな検出器の設計、トレーニング、評価、実機実装が可能です。LiDARの点群の中のオブジェクトを検出し、該当する点群に向きをもったバウンディングボックスをフィットさせることができます。
  • LLDN-GFCネットワークを使った車線検出
  • LiDAR ToolboxのLiDAR Labelerアプリは、点群のラベリングやアノテーションを簡単にします。オブジェクトの周囲にバウンディングボックスを手動で追加し、組み込みまたはカスタムアルゴリズムを適用して、LiDAR点群のラベリングを自動化し、自動化アルゴリズムの性能を評価することができます。
点群のセマンティックセグメンテーション

点群のセマンティックセグメンテーション

点群上の物体追跡

MATLABは、物体追跡ワークフローに供給する複数のセンサー出力を融合することができます。これにより、LiDARデータの読み込み、前処理、ディープラーニングの適用による物体の検出、定義済みのトラッカーを使用した物体の追跡、ハードウェアへの展開ができます。

オブジェクトの検出と追跡

オブジェクトの検出と追跡

点群レジストレーションとSLAM

MATLABには、LiDAR点群のレジストレーションを行い、SLAMアルゴリズムを使用して3Dマップを構築する関数があります。LiDAR点群から高速点特徴ヒストグラム(FPFH)記述子を抽出してフレーム間で照合し、照合された特徴に基づいた点群のレジストレーションができます。

また、地上用および空中用のLiDARデータのLiDAR点群シーケンスをつなぎ合わせて、3D SLAMアルゴリズムを実装することもできます。LOAM SLAMといった特徴点ベースのレジストレーションを使う人気のアルゴリズムの実装も可能です。

MATLAB を使用した UAV 用の航空機 LiDAR SLAM の実装

航空機 Lidar データに 3D SLAM を実装し、姿勢グラフの最適化を適用してマップを改善します。

LiDAR処理の詳細については、LiDAR ToolboxおよびComputer Vision Toolbox™を参照してください。