【点群のディープラーニング】PointPillars によるオブジェクト検出ワークフロー
LiDAR(light detection and ranging)は、リモートセンシング技術の1つです。LiDARセンサーはレーザーパルスを発射します。照射されたパルスは周囲にある物体で反射し、そのパルスの一部をセンサーで検知します。LiDARで得られるこの信号を解析することで、センサー周囲の環境を認識することができます。具体的には、記録された反射パルスの強度と受信時間から、物体までの距離と向きがわかるため、センサー周囲の2Dまたは3Dのマップを作成することができます。
LiDARで計測されるデータを点群と言います。点群は、レーザーパルスの反射点を3D空間上にプロットしたものであり、各点は実際のオブジェクト表面上のX、Y、およびZ座標で定義されます。このように、点群を用いることで物体の表面形状を把握することができます。LiDARは、林業、インフラ検査、鉱業など多くの産業で使用されています。
ディープラーニングを使うことで、点群データの処理をより正確に、短時間で行うことができます。次の5つのビデオで、PointPillarsの学習を例に、ディープラーニングを使用したLiDAR点群処理ワークフローの手順を説明します。こちらのリンクからも視聴いただけます。
また、LiDAR点群に対するディープラーニングの例題も複数ありますのでご覧ください。ディープラーニング、コンピュータビョン、画像処理技術を使ってLiDARの課題に取り組んだMATLABユーザーの事例として、SpacesiumがMATLABを使用して大規模LiDAR点群をセグメンテーションするディープラーニングシステムを作成した事例もあります。
点群データの読み込み
pcread関数を使用してデータストアとして点群データを読み込み、boxLabelDatastore関数を使用して境界ボックスのラベルを読み込みます。
データの前処理
データを学習用とテスト用に分割します。学習用データセットのサイズを水増しするために、各点群に固定数の’car’と‘track’クラスそれぞれのオブジェクトをランダムに追加し、反転、拡大、回転、並行移動などで拡張します。LiDARデータを使用した3Dオブジェクト検出ワークフローにおける典型的なデータ拡張方法については、「Data Augmentations for LiDAR Object Detection Using Deep Learning」を参照してください。
ディープニューラルネットワークの定義
アンカーボックスやピラーに関する値などのネットワーク構築に必要なパラメータを定義します。その後、pointPillarObjectDetector関数を使用してPointPillarsのネットワークを定義します。
ネットワークの学習
ネットワークを学習するには、トレーニングオプションを指定する必要があります。ネットワークの学習には時間がかかる場合があるため、このワークフローでは事前学習済みのPointPillarsモデルを読み込んでいます。
物体検出
テストデータセット上でPointPillarsネットワークをテストし、検出された出力のポイントクラウドと境界ボックスを表示します。
- Category:
- 機能と使い方
Comments
To leave a comment, please click here to sign in to your MathWorks Account or create a new one.