Windows ML を使った、TensorFlow + DirectML: ビデオからのリアルタイム物体検出

Image classification flow

このチュートリアルでは、UWP アプリケーションでリアルタイムの物体検出モデルをローカルにトレーニングして評価する方法について説明します。 このモデルでは、DirectML API を介してマシン上でローカルに TensorFlow でトレーニングを行います。これにより、すべての Windows デバイスで GPU アクセラレーションによるトレーニングができます。 トレーニング済みのモデルは UWP アプリに統合され、ローカルに Windows ML API を使用して、Web カメラを使いフレーム内の物体をリアルタイムで検出します。

まず、お使いのマシンで、TensorFlow を有効にします。

TensorFlow を使用したモデルのトレーニング方法について参照したい場合は、モデルのトレーニングに進むことができます。

TensorFlow モデルがあり、WinML API での使用に適した ONNX 形式に変換する方法について知りたい場合は、モデルの変換に関するページを参照してください。

モデルがあり、ゼロから WinML アプリを作成する方法を知りたい場合は、モデルのデプロイに関するページに移動します。

DirectML を使った TensorFlow の GPU アクセラレーションを有効化する

お使いのマシンで TensorFlow を有効にするには、次の手順に従います。

Windows のバージョンを確認する

ネイティブ Windows 上の DirectML を使った TensorFlow パッケージは、Windows 10 バージョン 1709 (ビルド 16299) 以降のバージョンの Windows で動作します。 ビルド バージョン番号を確認するには、実行コマンド (Windows logo key + R) を使用して winver を実行します。

GPU ドライバーの更新プログラムを確認する

最新の GPU ドライバーがインストールされていることを確認します。 設定アプリの [Windows Update] セクションで [更新プログラムのチェック] を選択します。

DirectML プレビューを使った TensorFlow をセットアップする

TensorFlow を使用するには、Windows 内に仮想 Python 環境をセットアップすることをお勧めします。 仮想 Python 環境のセットアップに使用できるツールは多数あります。この手順では、Anaconda の miniconda を使用します。 このセットアップの残りの部分では、miniconda 環境を使用するものとします。

Python 環境をセットアップする

Note

以下のコマンドでは、Python 3.6 を使用します。 ただし、この tensorflow-directml パッケージは Python 3.5、3.6、または 3.7 環境で動作します。

マシンに Miniconda Windows インストーラーをダウンロードしてインストールします。 必要であれば、Anaconda のサイトに セットアップに関する追加のガイダンス があります。 Miniconda がインストールされたら、Python を使用して directml という名前の環境を作成し、次のコマンドでアクティブ化します。

conda create --name directml python=3.6 conda activate directml

DirectML を使った TensorFlow パッケージをインストールする

Note

tensorflow-directml パッケージの場合、TensorFlow 1.15 のみがサポートされています。

次のコマンドを実行して、DirectML を使った TensorFlow パッケージを pip でインストールします。

pip install tensorflow-directml

パッケージのインストールを確認する

tensorflow-directml パッケージをインストールしたら、2 つのテンソルを追加することで、正常に実行されることを確認できます。 以下の行を対話型の Python セッションにコピーします。

import tensorflow.compat.v1 as tf 

tf.enable_eager_execution(tf.ConfigProto(log_device_placement=True)) 

print(tf.add([1.0, 2.0], [3.0, 4.0])) 

DML デバイスで add 演算子を使った場合、次のような出力が表示されます。

次のステップ

これで、前提条件が整えられたので、WinML モデルの作成に進むことができます。 次のパートでは、TensorFlow を使用して、リアルタイムの物体検出モデルを作成します。

重要

TensorFlow、TensorFlow ロゴ、関連するマークは Google Inc. の商標です。