nuScenes miniのdatasetを試してみる

AI

nuScenesのデータセットは数百Gbyteと莫大です。

nuScenes miniならば数Gbyteのため、テストレベルなら簡単に使えます。

ダウンロードして、Vitis AI環境下で簡単に評価まで実施してみました。

 

スポンサーリンク

nuScenes miniのdatasetを試してみる

nuScenesのデータセットを慣れるために、nuScenes miniを触ってみました。

通常のnuScenesだと、自動車のデータセット(Lidar点群+画像)のため数百Gbyteあります。

nuScenes miniならば、限定されたデータのため数Gbyteで済みます。

 

今回Vitis AIの環境上で、nuScenes miniの前処理、評価、学習までテストしてみます。

 

nuScenes miniのダウンロード

nuScenesのHPからダウンロードできます。登録すれば誰でも入手可能です。

 https://www.nuscenes.org/nuscenes#download

miniに関しては「Full dataset (v1.0) →Mini」の箇所です。4Gbyteほどです。

 

ダウンロードしたファイルは、tarで解凍できます。

 

実行環境

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

  • Vitis AI 2.5
  • nuScenes Full dataset (v1.0) mini

 

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

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

 

nuScenesは複数のカメラ、LIDAR点群、マップ情報など多くのデータを持ちます。

本来は学習・評価するにも相当なハイスペックのPC・GPU環境が要求されます。

但し、筆者の一般PCでも前処理・学習済の重みの評価程度ならば可能でした。

 

Vitis AI

Vitis AIはXilinxのFPGAの向け(AI関連の)開発環境です。

今回の学習・評価にはGPUの環境が必須です。

インストール・GPUのdocker環境については下記記事で紹介しています。

VItis AI 2.5やPetaLinuxなどインストールしてみたメモ

Vitis AI GPU dockerの環境構築をしたメモ

 

nuScenes_PointPillarsのライブラリ

Vitis AIにはサンプルライブラリが多く用意されています。

nuScenes用のもあり、下記のyaml内のリンクからダウンロードできます。

今回はPointPillarsというLIDAR点群を使った3D物体検出を行います。

 https://github.com/Xilinx/Vitis-AI/tree/2.5/model_zoo/model-list/pt_pointpillars_nuscenes_40000_64_108G_2.5

 

 

nuScenes miniのデータの準備

Vitis AIのサンプルにREADME.mdにありますので、手順に従って進めていきます

ただ今回はデータセットがnuScenes miniのため、少し手順を変えています。

主に変更した箇所を紹介します。

 

ライブラリをダウンロードすると、dataフォルダの中身は空となっています。

解凍したnuScenes miniを「/data/nuscenes/」の中に入れます。

「v1.0-mini」と表記はありますが、特にフォルダ名を変更する必要はありません。

 

README.mdの記載しているコマンドに従って、学習用のデータを作成します。

nuScenes mini のため、赤字箇所の「--version v1.0-mini」が追加した箇所です。

python code/mmdetection3d/tools/create_data.py nuscenes --root-path ./data/nuscenes --out-dir ./data/nuscenes --extra-tag nuscenes --version v1.0-mini

 

学習・評価に必要なデータ「***.pkl」ファイルが何種類が作成されるはずです。

(またnuscenes_gt_databaseのフォルダも作成されてます)

これでデータの準備が無事出来ました。

 

学習済の重みファイルを評価

Vitis AIのライブラリの中には、既に学習済の(重み)ファイルが入っています。

一度評価して、ライブラリが正常に動作するかを確認します。

スクリプトが用意されており、実行するとエラーなく評価値を確認できました。

 

nuScenes miniの学習をすると…

train(学習)もスクリプトファイルになっており、簡単に実行できます。

但し、デフォルトのrun_trainはGPUを4つも使う構成になっており、そのままでは使えません。

下記のように修正します。

export CUDA_VISIBLE_DEVICES=0,1,2,3 → export CUDA_VISIBLE_DEVICES=0

GPU_NUM=4 → GPU_NUM=1

 

ただし,GPUのメモリ不足のエラーが発生します。

RuntimeError: CUDA out of memory

今回はnuScenes miniを触ってみるという目的だったので、一旦ここで終了とします。

 

Vitis AI docker上のコマンド

実際にVitis AI上で実行したコマンドの履歴を残しておきます。

基本はライブラリのREADMEの手順を従っています。

 

まとめ

nuScenes miniをダウンロードして、実際に評価・学習まで実施してみました。

(あくまでサンプルに従っただけですが…)

次は同じnuScenes形式である第6回AIエッジコンテストのデータセットを試す予定です。

コメント