LiDAR

LiDAR (Light Detection and Ranging: 光検出と測距) センサーは、レーダーやソナーと同様に距離を測定するセンサーです。センサーはレーザーパルスを照射し、物体からの反射を利用して周囲の構造を認識します。センサーは反射した光エネルギーを検知して物体までの距離を測定し、周囲の 2D または 3D 表現を作成します。LiDAR は、さまざまな産業分野で知覚システムの開発に使用される主要なセンサーの 1 つになりつつあります。LiDAR を使用すると、オブジェクト検出やセマンティック セグメンテーションなどの 3D 知覚ワークフローや、地図作成、自己位置推定と環境地図作成の同時実行 (SLAM)、パスプランニングなどのナビゲーション ワークフローを実現できます。

LiDAR が重要である理由

自律システムでは、カメラ、IMU、レーダーなどの複数のセンサーを組み合わせて環境認識に活用しています。LiDAR は、周囲の環境に関する高精度かつ構造的な 3D 情報を提供することで、他のセンサーがもつ欠点の一部を解消できます。この利点が一因となり、LiDAR センサーは知覚技術の主流市場に導入されるようになりました。

数台の車が含まれる走行シナリオの点群データ。

道路シーンの LiDAR 点群。

LiDAR が市場で普及している主な理由は、次の 3 つです。

  • 低価格の LiDAR。測距距離、サイズ、堅牢性などの性能が向上した低価格の LiDAR が登場したことで、収益性が比較的低い産業用途においても、この技術を広く利用できるようになりました。
  • 正確な 3D データ。LiDAR は、レーダーやソナーなどの他の距離センサーよりも高精度で、周囲の高密度な 3D 情報を点群として収集します。これにより、3D 再構成の精度が向上します。
  • LiDAR 処理アルゴリズム。セマンティック セグメンテーション、オブジェクトの検出と追跡、LiDAR とカメラのデータ融合、LiDAR SLAM などの LiDAR 処理ワークフローが近年進展したことで、業界では開発ワークフローに LiDAR を取り入れられるようになりました。MATLAB などのツールを使用すると、LiDAR 処理アルゴリズムを開発・適用できます。

LiDAR の用途

LiDAR は、自動運転から地球科学に至るまで、幅広い産業分野で活用されています。その用途は、搭載されているプラットフォームに基づいて、大きく 3 つのグループに分類できます。

  • 航空機 LiDAR
  • 地上 LiDAR
  • 屋内 LiDAR

航空機 LiDAR

航空機 LiDAR とは、無人航空機 (UAV) や航空機に搭載された LiDAR センサーのことです。航空機 LiDAR で取得した広範囲の地形の 3D 点群データは、LiDAR による地図作成、特徴抽出、地形分類などの用途に利用できます。

上部に LiDAR を搭載して飛行するドローンの画像。

航空機 LiDAR センサー。

建物や樹木を含む航空点群データ。

 航空機 LiDAR データ。

航空機 LiDAR の用途としては、次のような例が挙げられます。

  • 農業: LiDAR 技術は、農業分野において、植生エリアの地図作成、農地や集水域の正確な地形把握などに広く活用されています。
  • 都市計画: LiDAR は、ある地域の数値表面モデル (DSM)、さらにはデジタル都市モデル (DCM) の作成に利用されており、作成されたモデルは、都市の設計や、既存の都市における新たなインフラの建設に役立ちます。
  • 地質図作成: LiDAR は、地球表面の 3D マップ作成に利用でき、作成されたマップは鉱業、精密林業、石油・ガス探査などの分野でさらに活用できます。
  • 航空ナビゲーションおよびパスプランニング: 現在、LiDAR は UAV に搭載され、リアルタイムの 3D データを収集して周囲の環境を自律航行するために利用されています。

MATLAB® を使用した航空機 LiDAR 処理の例をご覧ください。

地上 LiDAR

地上 LiDAR には、固定型地上 LiDAR と移動型 LiDAR の 2 種類があります。

  • 固定型地上 LiDAR とは、固定型プラットフォームに設置された LiDAR です。これらは、土地測量、道路測量、地形図作成、数値標高モデル (DEM) の作成、農業、その他の用途で広く利用されています。また、より近距離から詳細なデータを取得する必要がある用途に適しています。
  • 移動型 LiDAR とは、自動車やトラックなどの移動プラットフォームに搭載された地上 LiDAR です。移動型 LiDAR の最も重要な用途は、自動運転です。車両に搭載された LiDAR は、周囲の 3D 点群データを取得します。そのデータはさらに、知覚やナビゲーションのワークフローで利用されます。こうしたワークフローについては、次のセクションで詳しく説明します。 
車両の上部に搭載された複数の LiDAR。

移動型 LiDAR センサー。

自動車と樹木を含む道路シーンの点群データ。

移動型 LiDAR データ。

MATLAB を使用した地上 LiDAR 処理の例をご覧ください。

屋内 LiDAR

LiDAR は、移動ロボットに搭載されることで、屋内ロボティクス分野で広く利用されています。3D LiDAR 以外にも、2D LiDAR やレーザースキャナーは、LiDAR によるスキャンや地図作成といった屋内ロボティクスの用途でも使用されています。これらの LiDAR は周囲の深度情報を収集し、その深度情報はユースケースに応じてさらに処理されます。

屋内 LiDAR センサー。

屋内 LiDAR センサー。

屋内 LiDAR データのスクリーンショット。

屋内 LiDAR データ。

屋内 LiDAR の主な用途は、次のとおりです。

  • LiDAR による地図作成および SLAM: 2D LiDAR または 3D LiDAR を使用すると、それぞれ 2D または 3D の SLAM と地図作成を行えます。
  • 障害物検知、衝突警告、回避: 2D LiDAR は、障害物の検知に広く利用されています。このデータは、衝突警告の表示や障害物の回避にも利用できます。

MATLAB を使用した地上 LiDAR 処理の例をご覧ください。

MATLAB を使用した LiDAR 点群の処理

MATLAB および Point Cloud Toolbox™ を使用すると、LiDAR 点群の処理作業を簡略化できます。MATLAB には専用のツールや関数が用意されており、3D データ型、データのスパース性、データ内の無効な点、大きなノイズなど、LiDAR データ処理における一般的な課題を解消できます。

ライブおよび記録済みの LiDAR データを MATLAB にインポートし、LiDAR 点群処理ワークフローを実装して、本番環境に展開する C/C++ コードと CUDA® コードを生成できます。

MATLAB に用意されている重要な LiDAR 点群処理機能の一部について、次のセクションで説明します。

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

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

  • Velodyne Lidar Hardware Support Package を使用する場合は Velodyne センサーから、Ouster Lidar Hardware Support Package を使用する場合は Ouster センサーからライブデータをストリーミングします。
  • PCD、PLY、PCAP (Velodyne、Ouster、Hesai Pandar)、Ibeo データコンテナ、LAS、LAZ など、さまざまなファイル形式で保存された点群データを読み込みます。
  • PCD、PLY、LAS、LAZ など、さまざまなファイル形式で点群データを書き込みます。
  • LiDAR 点群データをシミュレーションすることで、現実世界のシステムに導入する前にアルゴリズムやワークフローをテストできます。MATLAB では、処理アルゴリズムのテストを行うためにセンサーのパラメーターを定義することで、シミュレーション環境内で 3D または 2D の LiDAR データを生成できます。Point Cloud Toolbox、UAV Toolbox、Automated Driving Toolbox には、LiDAR 点群をシミュレーションする LiDAR センサーモデルが用意されています。
LiDAR センサーモデル。

Velodyne® Lidar センサーからのライブ LiDAR データのストリーミング。

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

LiDAR 点群の前処理

LiDAR データの前処理を行うことで LiDAR データの品質を改善し、そのデータから基本情報を抽出できます。Point Cloud Toolbox には、点群のダウンサンプリング、メディアン フィルタリング、位置合わせ、変換、特徴量の抽出を行う機能が用意されています。

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

MATLAB では、LiDAR とカメラのキャリブレーションを実行して LiDAR とカメラ間の変換を推定し、カメラと LiDAR のデータを融合できます。さらに、LiDAR 点群に色情報を融合したり、同じ位置に設置されたカメラの 2D 境界ボックスを使用して LiDAR の 3D 境界ボックスを推定したりできます。

LiDAR カメラ キャリブレーター アプリのスクリーンショット。

LiDAR カメラ キャリブレーター アプリ。

LiDAR 向けディープラーニング

MATLAB では、ディープラーニング アルゴリズムを適用して、LiDAR データのオブジェクト検出とセマンティック セグメンテーションを行えます。

  • MATLAB では、わずか数行のコードで、PointSeg や SqueezeSegV2 など、LiDAR データ用の事前学習済みセマンティック セグメンテーション モデルをインポートできます。また、独自のディープラーニング モデルの学習、評価、展開を行うこともできます。
  • MATLAB では、PointPillars や ComplexYolo-V4 ネットワークなどの堅牢性の高い検出器の設計、学習、評価を行うことができます。LiDAR 点群内のオブジェクトを検出し、その周辺に指向性のある境界ボックスを当てはめることができます。
  • Point Cloud Toolbox のマルチセンサー ラベラー アプリは、点群のラベル付け作業を簡素化します。同じシーンを捉えた複数のセンサーから得られた動画、イメージシーケンス、LiDAR 点群で、オブジェクト検出やセマンティック セグメンテーション用のグラウンド トゥルース データにラベル付けできます。また、組み込みアルゴリズムやカスタムアルゴリズムを適用してラベル付けを自動化し、自動化アルゴリズムの性能を評価することもできます。
トラックと自動車がラベル付けされた点群のエゴビュー。

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

点群でのオブジェクト追跡

MATLAB を使用すると、エンドツーエンドのオブジェクト追跡ワークフローに組み込まれる複数のドメインを統合できます。これにより、LiDAR 点群データの読み込みと前処理、ディープラーニングを適用したオブジェクトの検出、事前定義済みのトラッカーを使用したオブジェクトの追跡、ターゲット ハードウェアへの展開を行えます。

連続した点群データから追跡された車両のスクリーンショット。

オブジェクトの検出および追跡

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

点群のレジストレーションとは、同じシーンの 2 つの 3D 点群を、共通の座標系に整合させるプロセスです。Point Cloud Toolbox の関数を使用すると、反復最接近点 (ICP)、LiDAR オドメトリおよび地図作成 (LOAM)、正規分布変換 (NDT)、高速大域レジストレーション (FGR)、コヒーレント点ドリフト (CPD) など、ローカルおよびグローバルな手法を使用して、点群同士をレジストレーションできます。点群レジストレーション アナライザー アプリを使用すると、点群を対話的にレジストレーションし、さまざまなレジストレーション手法を使用した結果を比較できます。

自己位置推定と環境地図作成 (SLAM) は、車両やロボットの周囲環境に対する位置と向きを計算すると同時に、その環境の地図を作成するプロセスです。このツールボックスは、点群データを使用したグラフベースの 3 次元 SLAM をサポートしています。

点群レジストレーション アナライザー アプリ

点群レジストレーション アナライザー アプリ

LiDAR 点群の処理に関する詳細については、Point Cloud Toolbox および Computer Vision Toolbox™ を参照してください。

LiDAR に関するよくある質問 (FAQ)

LiDAR (Light Detection and Ranging) は、レーザーパルスを照射し、物体からの反射を利用して周囲の構造を認識するとともに、反射した光エネルギーを記録して 2D または 3D 表現を作成する距離センサーです。

レーダーやソナーも距離測定用センサーですが、LiDAR はレーザーパルスと反射光エネルギーを利用して距離を測定し、他の距離測定センサーよりも高い精度で、構造的な 3D 情報を提供します。

点群とは、LiDAR センサーによって取得されたデータポイントの集合であり、周囲の 3D 構造を表現するものです。これは、オブジェクト検出、セマンティック セグメンテーション、地図作成などの用途向けに処理できます。

LiDAR システムは、その搭載プラットフォームに基づいて、航空機 LiDAR (UAV や航空機に搭載)、地上 LiDAR (固定型または移動型)、屋内 LiDAR (ロボティクス分野で利用) の 3 つのグループに分類されます。

LiDAR は、自動運転、農業用地図作成、都市計画、地質図作成、UAV ナビゲーション、土地測量、地形図作成、屋内ロボティクスにおける SLAM、障害物検知、衝突回避などに利用されています。

市場での普及は、性能が向上した低コストの LiDAR の登場によって促進されています。点群として高密度かつ高精度の 3D データを収集できることから、セマンティック セグメンテーションや SLAM といった複雑なアルゴリズムの適用が可能となっています。

LiDAR とカメラのキャリブレーションとは、カメラで撮影された画像と LiDAR で取得された点群との間の変換関係を導き出すプロセスです。これにより、LiDAR 点群に色情報を融合したり、同じ位置に設置されたカメラの 2D 境界ボックスを使用して 3D 境界ボックスを推定したりできます。

MATLAB では、LiDAR データのストリーミングおよび読み取り、前処理とフィルタリング、LiDAR とカメラのキャリブレーション、オブジェクト検出やセマンティック セグメンテーション用のディープラーニング、オブジェクト追跡、点群のレジストレーションと SLAM が可能です。