nuScenes formatのLidar点群の前処理をしてみたメモ

本サイトはアフィリエイト広告を利用しています。
AI

nuScenes形式のデータセットの学習前の前処理をしてみました。

3D物体検出をするために、LIDAR点群を処理しています。

データセットの入れ方から、プログラムの実行まで紹介します。

 

スポンサーリンク

nuScenes formatのLidar点群の前処理をしてみたメモ

nuScenes形式のデータセットを取り扱ってみました。

第6回AIエッジコンテストのデータセットです。nuScenesのフォーマットでした。

自動車運転の画像・LIDAR点群で3D物体検出を行うことが目的です。

 

第6回AIエッジコンテストのデータセットにはnuScenesと違う箇所があります。

完全にはnuScenesとは同じで無いため、汎用のライブラリを使うとエラーになります。

  • 速度情報が無いこと(nuScenesは有)
  • 前方のカメラ・LIDAR情報しかない(nuScenesは複数のカメラが有)

 

エラーの内容・解決した方法含めて、紹介します。

 

実行環境

下記の環境で実行しました。

  • Vitis AI 2.5 + nuScenes_PointPillarsのライブラリ
  • 第6回AIエッジコンテストのデータセット

 

PC環境は下記となります。

  • CPU…Core i5 6400
  • GPU…NVIDIA GeForce GTX 1650
  • メモリ…16GB
  • SSD…500GB

 

nuScenes miniで動作確認済

同様なテスト環境下で、nuScenes miniにて前処理・評価・学習の動作を確認済です。

(nuScenes mini…4Gbyte程度の限定されたnuScenesのデータセット)

今回の記事との違いはデータセットの違いだけです。

 

Vitis AI上でのnuScenes_PointPillarsのライブラリでの実行例含めて説明しています。

詳細の環境に関しては下記記事をご確認お願いします。(リンク先はこちら)

nuScenes miniのdatasetを試してみる

nuScenes miniのdatasetを試してみる
nuScenesのデータセットは数百Gbyteと莫大です。 nuScenes miniならば数Gbyteのため、テストレベルなら簡単に使えます。 ダウンロードして、Vitis AI環境下で簡単に評価まで実施してみました。

 

mmdetection3dの環境でも確認済

今回はVitis AIの環境下で実行しています。

但し、Vitis AI(というDocker)上でmmdetection3dをインストールして実行しているだけです。

 

今回の前処理は単純にmmdetection3dだけをインストールしても対応できます。

また別の記事で紹介します。

 

nuScenes形式のLIDAR点群のデータを前処理します

予め、コンテストのデータセットのLIDAR情報(3d_labels)を用意します。

特に弄る必要はなく、「/data/nuscenes」に入れてもらえれば大丈夫でした。

 

(今回は)sweepsを0にする

本来nuScenesには画像・LIDAR点群だけでなく、速度・マップなど多くのメタ情報が有ります。

線形補間することで、学習・評価に使うデータを増やすことが可能です。

本来のnuSceneのデータセットにはsweepsのフォルダ内にデータが入っていました。

 

但し、今回のコンテストのデータセットには速度が無いの無視しました。

(sweepsを有りにしても良いですが、データが増えて学習時間に影響します)

 

赤字の --max-sweeps 0 を追加してsweepsを無しにして、前処理を行います。

python code/mmdetection3d/tools/create_data.py nuscenes --root-path ./data/nuscenes --out-dir ./data/nuscenes --extra-tag nuscenes --max-sweeps 0

 

前方のカメラ・LIDARのみ処理する

今回、エラーで止まりました。前方右側のカメラの情報が無いとエラーがでます。

KeyError: 'CAM_FRONT_RIGHT'

コンテストのデータセットは前方にしかカメラ・LIDARがないためです。

 

nuscenes_converter.pyを修正する

エラーが出たため下記の前処理のプログラムを弄ります。

「/code/mmdetection3d/tools/data_converter/nuscenes_converter.py」

前方カメラ・LIDAR情報のCAM_FRONT以外をコメントアウトしました。

def export_2d_annotation、def obtain_sensor2topの2か所同じ表記がありました。

 

再度実行すると、評価・学習に必要なデータの前処理が完了しました。

最後にテストデータが無いよとエラーが出ていますが、特に問題ないと思います。

コンテストには実際に試験するテストデータは用意されていないためです。

 

無事学習・評価に必要なpklファイルが出来ています。

データベースのload情報数も、リファレンス環境で前処理したものと同じになりました。

 

まとめ

nuScenes形式の第6回AIエッジコンテストのデータセットでも前処理が出来ました。

次は少ないGPUメモリでも3D物体検出の学習を進めていきます。(リンク先はこちら)

LIDAR点群の3D物体検出の学習に失敗したメモ

LIDAR点群の3D物体検出の学習に失敗したメモ
自動車のLIDAR点群データを使った3D物体検出の学習を試してみました。 ただ、Xilinxからサンプルで提供されている学習済のモデル(重み)には勝てず…。 色々と試して失敗した内容含めて紹介します。 LIDAR点群の3D物体検出の学習に失...

 

今回の記事含めて、第6回AIエッジコンテストの一環でした。

下記にてコンテストでテスト・実施したことのまとめを紹介しています。

第6回AIエッジコンテストが凄く難しいけど勉強になった感想

第6回AIエッジコンテストが凄く難しいけど勉強になった感想
第6回AIエッジコンテストに参加していました。 RISC-Vを使って、画像とLIDAR点群からの3D物体検出が課題でした。 ただ貴重な勉強の機会になりましたし、自身への忘備録としても内容を紹介します。

コメント