NVIDIA DIGITS 4で2クラスの物体検出モデルを作成してみた

digits4-kitti-2classes
Ubuntu 14.04にインストールしたNVIDIA DIGITS 4で、2クラス(CarとPedestrian)の物体検出(object detection)モデルを作成してみました。

以下の記事のように、GitHubのNVIDIAのDIGITSチュートリアル(https://github.com/NVIDIA/DIGITS/tree/digits-4.0/examples/object-detection)通りに実行すると、1クラス(Carのみ)の物体検出モデルとなります。また、GTX 960では1エポックに1時間半掛かるので、約1/10のデータセットを用いて、モデルの作成を行います。

NVIDIA DIGITS 4.0をインストールしてみた
NVIDIAからDeep Learning用トレーニングシステムのDIGITS 4がリリースされたので、Ubuntu 14.04にインストールしてみました。今回は、DIGITS 4、cuDNN 5.1等へのアップデートが行われています。

なお、物体検出トレーニングのグラフ表示を修正しておきたい場合は、以下の記事を参照して、対策を行っておきます。

NVIDIA DIGITS 4の物体検出トレーニングのグラフが変?
DIGITS 4の物体検出トレーニング時のグラフ表示が変なので、暫定処置を行ってみました。
スポンサーリンク

DIGITS 4

Firefox等のブラウザを起動し、URLにlocalhostを入力すると、DIGITS「Home」ページが表示されます。

Modelの作成を行うため、ページ右上の「Login」ロゴをクリックして、予めLoginしておきます。

DIGITS 4 Dataset

以下の記事で作成したDataset「KITTI_S」を利用します。

NVIDIA DIGITS 4で物体検出モデルを作成してみた
Ubuntu 14.04にインストールしたNVIDIA DIGITS 4で、物体検出(object detection)モデルを作成してみました。KITTIの約1/10のデータセットを用いて、DIGITS 4の使い方を説明しています。

DIGITS 4 Model

DIGITS「Home」ページの「New Model」下の「Images」ボタンをクリックし、プルダウンメニューから「Object Detection」を選択しても良いのですが、ここでは上の記事で作成したModel「Detector_S」の設定を流用します。

Model「Detector_S」の設定を流用するために「Clone Job」ボタンをクリックします。

digits4-kitti-2classes-2
すると、以下の「New Object Detection Model」ページが表示されます。このページの左側の「Select Dataset」では「KITTI_S」が選択されていることを確認します。

中央の「Solver type」と「Base Learning Rate」に、それぞれAdamと0.0001が設定されていることを確認します。また、VRAMが4GBの場合、「Batch size」と「Batch Accumulation」に、それぞれ2と5が設定されていることを確認します。なお、このモデルでは、「Training epochs」を30から10に変更します。

また、GitHubの最新のREADME.mdに従い、右側の「Subtract Mean」をNoneに変更します。

digits4-kitti-2classes-3
「New Object Detection Model」ページの下側のNetwork(s)では、「Custom Network」タブを選択し、「Torch」タブではなく「Caffe」タブが選択されていることを確認し、テキストボックスにdetectnet_network.prototxtの代わりに、detectnet_network-2classes.prototxthttps://raw.githubusercontent.com/NVIDIA/caffe/caffe-0.15/examples/kitti/detectnet_network-2classes.prototxt)の内容をコピー・ペーストします。

また、予めここ(https://github.com/BVLC/caffe/tree/rc3/models/bvlc_googlenet)からbvlc_googlenet.caffemodelをダウンロードしておき、「Pretrained model(s)」に(パスとファイル名が)設定されていることを確認します。

「Model Name」に名前(ここでは、「Detector_S_2C_E10」)を入力した後、「Create」ボタンをクリックします。

今回のモデルは、約1時間半経過したところで、トレーニングが終了しました。

digits4-kitti-2classes-4

DIGITS 4 物体検出

なお、DIGITS 4.0では、マルチクラスのBounding Boxes表示に対応していないため、「Select Visualization Method」は「Raw Date」に変更します。

digits4-kitti-2classes-5

「Test a single image」の「Upload image」に、kitti_data/raw/testing/image_2ディレクトリの000111.pngを指定して「Test One」ボタンをクリックすると、以下のページが表示されます。

digits4-kitti-2classes-6

上記の2クラスの物体検出の結果が、この記事の最初の画像です。

まとめ

Ubuntu 14.04にインストールしたNVIDIA DIGITS 4で、2クラスの物体検出(object detection)モデルを作成してみました。