Main Content

深層学習を使用した点群入門

深層学習により、3 次元イメージングの幅広い用途で点群を自動処理できます。点群は、通常、LiDAR や Kinect® デバイスなどの 3 次元スキャナーから取得されます。点群はロボットの操縦および認識、深度推定、ステレオ ビジョン、監視、シーン分類および先進運転者支援システム (ADAS) といった分野に応用されています。

Flowchart diagram. Point Cloud Data in first box. Preprocess (Augmentation and Densification) in second box, and in last box, Object Detection, Segmentation, Classification.

一般に、点群データを深層学習のワークフローで使用する際には、最初のステップとして次を行います。

  1. 点群データをインポートします。データストアを使用して、大量のデータを保持します。

  2. 必要に応じて、データを拡張します。

  3. 点群を符号化して、MATLAB® ベースの深層学習ワークフローに合ったイメージライクな形式にします。

規則的にグリッド化されたイメージ データを使用するときのように点群データを使用して、分類、オブジェクト検出、セマンティック セグメンテーションのタスクに同様の深層学習のアプローチを適用できます。ただし、はじめに、順番付けされていない不規則なグリッド構造の点群と LiDAR データを、規則的なグリッド形式に符号化しなければなりません。セマンティック セグメンテーションなどの特定のタスクでは、点群の構造を復元するために、イメージ ベースのネットワークの出力に対し、多少の後処理が必要です。

点群データのインポート

深層学習のワークフローにおいて点群データを扱うには、はじめに生データを読み取ります。大きすぎて一度にメモリに収まらないデータの集合を処理および表現する場合は、データストアの使用を検討してください。深層学習には大量のデータが必要となる場合がよくあるため、データストアは MATLAB における深層学習ワークフローの重要な部分です。データストアの詳細については、深層学習用のデータストア (Deep Learning Toolbox)を参照してください。

深層学習用の点群データのインポートの例では、大きな点群データ セットをインポートしてから、データストアを構成して読み込みます。

データの拡張

深層学習モデルの精度と成否は、大きな注釈付きデータセットに依存します。拡張を使用して、より大きなデータセットを生成することで、過適合を抑えられます。分類システムがデータ内のノイズを誤ってシグナルとしてとらえると、過適合が発生します。拡張によってノイズを追加することで、モデルはデータ点のバランスを調整し、エラーを最小化します。拡張を行うことで、元の学習データでは適切に表せない可能性があるデータ変換のロバスト性が向上します (回転、反射、変換など)。また、拡張によって過適合を抑えることで、多くの場合に推論段階でより良い結果が得られます。深層学習ニューラル ネットワークが検出するよう学習した対象に基づいて予測が行われるようになるからです。

深層学習用点群データの拡張の例では、点群データと共に使用する、ランダム化された基本的なデータ拡張パイプラインを設定します。

点群データのイメージライクな形式への符号化

MATLAB ベースの深層学習のワークフローで点群データを学習に使用する場合、そのデータは密かつイメージライクな形式に符号化されていなければなりません。"密化" すなわち "ボクセル化" とは、不規則でグリッド化されていない形式の点群データを密かつイメージライクな形式に変換する処理です。

深層学習用点群データの符号化の例では、点群データを密かつグリッド化された構造に変換します。

符号化した点群データによる深層学習分類ネットワークの学習

点群データを密な形式に符号化した後は、標準的な深層学習アプローチにより、イメージ ベースの分類、オブジェクト検出、セマンティック セグメンテーションのタスクにそのデータを使用できます。

3 次元点群内のオブジェクトを分類するための分類ネットワークの学習の例では、点群データを前処理してボクセルに符号化してから、そのイメージライクなデータをシンプルな 3 次元畳み込みニューラル ネットワークで使用して、オブジェクト分類を行います。

参考

| | | |

関連する例

詳細