TensorFlow und DirectML mit Windows ML: Objekterkennung in Echtzeit aus Videos

Image classification flow

In diesem Tutorial erfahren Sie, wie Sie ein Objekterkennungsmodell in Echtzeit in einer UWP-Anwendung lokal trainieren und auswerten. Das Modell wird mit TensorFlow lokal auf Ihrem Computer über die DirectML-APIs trainiert, wodurch ein GPU-beschleunigtes Training auf allen Windows-Geräten ermöglicht wird. Das trainierte Modell wird dann in eine UWP-App integriert, die Ihre Webcam verwendet, um Objekte im Frame lokal mit Windows ML-APIs in Echtzeit zu erkennen.

Zunächst aktivieren wir TensorFlow auf Ihrem Computer.

Wenn Sie erfahren möchten, wie Sie Ihr Modell mit TensorFlow trainieren, können Sie mit Trainieren eines Modells fortfahren.

Wenn Sie über ein TensorFlow-Modell verfügen, aber erfahren möchten, wie Sie es in ein ONNX-Format konvertieren, das für die Verwendung mit WinML-APIs geeignet ist, lesen Sie Konvertieren Ihres Modells.

Wenn Sie über ein Modell verfügen und erfahren möchten, wie Sie eine WinML-App von Grund auf neu erstellen, navigieren Sie zu Bereitstellen Ihres Modells.

Aktivieren der GPU-Beschleunigung für TensorFlow mit DirectML

Um TensorFlow auf Ihrem Computer zu aktivieren, fahren Sie mit den folgenden Schritten fort.

Überprüfen der Version von Windows

Das Paket „TensorFlow mit DirectML“ unter nativem Windows funktioniert mit Windows 10, Version 1709 (Build 16299) oder höheren Versionen von Windows. Sie können die Buildversionsnummer überprüfen, indem Sie winver mit dem Befehl Ausführen (Windows logo key + R) ausführen.

Überprüfen auf GPU-Treiberupdates

Stellen Sie sicher, dass Sie den neuesten GPU-Treiber installiert haben. Wählen Sie im Abschnitt Windows Update der App Einstellungen die Option Nach Updates suchen aus.

Einrichten von TensorFlow mit DirectML (Vorschauversion)

Für die Verwendung mit TensorFlow empfiehlt es sich, eine virtuelle Python-Umgebung in Windows einzurichten. Es gibt viele Tools, die Sie verwenden können, um eine virtuelle Python-Umgebung einzurichten – für diese Anweisungen verwenden wir miniconda von Anaconda. Für den Rest dieses Setups wird davon ausgegangen, dass Sie eine miniconda-Umgebung verwenden.

Einrichten einer Python-Umgebung

Hinweis

In den folgenden Befehlen verwenden wir Python 3.6. Das tensorflow-directml-Paket funktioniert jedoch in Umgebungen mit Python 3.5, 3.6 oder 3.7.

Laden Sie das Miniconda Windows-Installationsprogramm herunter, und installieren Sie es auf Ihrem Computer. Bei Bedarf finden Sie auf der Website von Anaconda eine zusätzliche Anleitung für das Setup. Sobald Miniconda installiert ist, erstellen Sie mithilfe von Python eine Umgebung namens „directml“ und aktivieren diese mit den folgenden Befehlen:

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

Installieren des Pakets „TensorFlow mit DirectML“

Hinweis

Das tensorflow-directml-Paket unterstützt nur TensorFlow 1.15.

Installieren Sie das Paket „TensorFlow mit DirectML“ über PIP, indem Sie den folgenden Befehl ausführen:

pip install tensorflow-directml

Überprüfen der Paketinstallation

Sobald Sie das tensorflow-directml-Paket installiert haben, können Sie überprüfen, ob es ordnungsgemäß ausgeführt wird, indem Sie zwei Tensoren hinzufügen. Kopieren Sie die folgenden Zeilen in eine interaktive Python-Sitzung:

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])) 

Es sollte eine ähnliche Ausgabe wie die folgende angezeigt werden, wobei der Add-Operator (Hinzufügen) auf dem DML-Gerät platziert ist.

Nächste Schritte

Nachdem Sie die Voraussetzungen erfüllt haben, können Sie mit der Erstellung Ihres WinML-Modells fortfahren. Im nächsten Teil verwenden Sie TensorFlow, um Ihr Modell für die Objekterkennung in Echtzeit zu erstellen.

Wichtig

TensorFlow, das TensorFlow-Logo und alle zugehörigen Marken sind Marken von Google Inc.