Использование TensorFlow и DirectML в сочетании с Windows ML. Распознавание объектов в видео в режиме реального времени

Image classification flow

В этом руководстве объясняется, как в локальной среде обучить и проверить модель распознавания объектов в режиме реального времени, оформленную как приложение UWP. Для обучения модели мы применим TensorFlow, установленный на локальном компьютере, а также API-интерфейсы DirectML, которые поддерживают обучение с ускорением GPU на любых устройствах под управлением Windows. Затем мы интегрируем обученную модель в приложение UWP, которое будет обнаруживать объекты в потоке видео с веб-камеры в режиме реального времени, обрабатывая данные локально через API-интерфейсы Windows ML.

Для начала мы включим TensorFlow на локальном компьютере.

Если вы предпочитаете самостоятельно обучить модель с помощью TensorFlow, переходите к статье Обучение модели.

Если у вас уже есть модель TensorFlow и вы хотите узнать, как преобразовать ее в формат ONNX для использования с API-интерфейсами WinML, переходите к статье Преобразование модели.

Если у вас есть модель и вы хотите узнать, как создать приложение WinML с нуля, перейдите к статье Развертывание модели.

Включение ускорения GPU для TensorFlow с DirectML

Чтобы включить TensorFlow на локальном компьютере, выполните описанные ниже действия.

Проверка версии Windows

Пакет TensorFlow с DirectML на ОС Windows работает в версиях Windows 10 1709 (сборка 16299) и более поздних версиях. Номер версии сборки можно выяснить, запустив winver через интерфейс Выполнить (вызывается сочетанием клавиш Windows logo key + R).

Проверка обновления драйверов GPU

Убедитесь, что у вас установлен самый свежий драйвер для GPU. Щелкните элемент Проверить наличие обновлений в разделе Центр обновления Windows приложения Параметры.

Настройка TensorFlow с ознакомительной версией DirectML

Для использования с TensorFlow мы рекомендуем настроить виртуальную среду Python в среде Windows. Для создания виртуальной среды Python можно использовать много разных инструментов. В этих инструкциях применяется Anaconda miniconda. Далее при выполнении команд установки предполагается, что вы используете среду miniconda.

Настройка среды Python

Примечание.

Во всех командах ниже мы используем 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

Установка пакета TensorFlow с DirectML

Примечание.

Пакет tensorflow-directml поддерживает только версию TensorFlow 1.15.

Установите пакет TensorFlow с DirectML, выполнив следующую команду pip:

pip install tensorflow-directml

Проверка установки пакета

Завершив установку пакета tensorflow-directml, вы можете проверить правильность его работы, добавив два тензора. Скопируйте следующие строки в интерактивный сеанс 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])) 

Вы увидите выходные данные указанного ниже вида, подтверждающие выполнение оператора add на устройстве DML.

Дальнейшие действия

Итак, вы разобрались со всеми предварительными требованиями, и теперь можете создать модель WinML. При работе со следующей частью руководства вы создадите модель обнаружения объектов в режиме реального времени с применением TensorFlow.

Важно!

TensorFlow, логотип TensorFlow и все связанные метки являются товарными знаками Google Inc.