見出し画像

NVIDIA GET3D のデータセットの準備

「NVIDIA GET3D」のデータセットの準備する手順をまとめました。

・Ubuntu 20.04

1. NVIDIA GET3D のデータセット

NVIDIA GET3D は合成データセットで学習しています。リポジトリでは、Shapenet 用のレンダリングスクリプトを提供しています。

今回は、このスクリプトを使ってデータセットを作成するところまで行います。

2. データセットの作成

データセットの作成手順は、次のとおりです。

◎ GET3Dリポジトリの準備
(1) Ubuntuに作業フォルダ(~/get3d)を作成して移動。
(2) GET3Dリポジトリをクローン。

$ git clone https://github.com/nv-tlabs/GET3D

◎ ShapeNetの準備
(1) 「ShapeNet」から「ShapeNetCore v1」(ShapeNetCore.v1.zip) をダウンロード。
ユーザー登録が必要です。サイズは32GBで、ダウンロードには数時間かかりました。

(2) 作業フォルダ(~/get3d)に「ShapeNetCore.v1.zip」を配置して解凍。

$ unzip ShapeNetCore.v1.zip
$ cd ShapeNetCore.v1
$ unzip "*.zip"

◎ Blenderの準備
(1) 「Blender」のサイトから「Blender v2.90.0」(blender-2.90.0-linux64.tar.xz) をダウンロード。
「download every version blender」から「Blender2.90 」の「blender-2.90.0-linux64.tar.xz」をダウンロードします。

(2) 作業フォルダ(~/get3d)に「blender-2.90.0-linux64.tar.xz」を配置して解凍。

$ tar -xvf blender-2.90.0-linux64.tar.xz

◎ ライブラリのインストール
(1) ライブラリのインストール

$ apt-get install -y libxi6 libgconf-2-4 libfontconfig1 libxrender1
$ cd blender-2.90.0-linux64/2.90/python/bin
$ ./python3.7m -m ensurepip
$ ./python3.7m -m pip install numpy 

◎ レンダリングスクリプト
(1) レンダリングスクリプトのフォルダに移動

$ cd ~/get3d/GET3D/render_shapenet_data

(2) render_all.pyのコードの確認。
render_all.pyのコードを見ると、Car、Chair、Motorbikeのデータセットを作成するコードであることがわかります。

synset_list = [
    '02958343',  # Car
    '03001627',  # Chair
    '03790512'  # Motorbike
]

(3) レンダリングスクリプトの実行。
--blender_rootはREADMEの記述 (blender-2.90.0-linux64/2.90/python/bin) は間違いなので、Issuesでおすすめされた記述 (blender-2.90.0-linux64/blender) を指定します。

$ python render_all.py --save_folder ~/get3d/save_image/ --dataset_folder ~/get3d/ShapeNetCore.v1/ --blender_root ~/get3d/blender-2.90.0-linux64/blender

(4) 出力の確認。
save_imageを確認すると、cameraとimgというフォルダができて、その下にレンダリング画像が生成されていきます。

・save_image
 ・camera
  ・<synsetId>
   ・<modelId>
    ・elevation.npy
    ・rotation.npy
   :
 ・img
  ・<synsetId>
   ・<modelId>
    ・000.png
    ・001.png
     :
   :

3. データセットによる学習は保留中

データセットによる学習は、ColabのA100 VRAM 40GB x 1 ではスペックが足りず保留中。


この記事が気に入ったらサポートをしてみませんか?