TensorFlow + DirectML 与 Windows ML:从视频中实时检测对象

Image classification flow

本教程介绍如何在 UWP 应用程序中本地训练和评估实时对象检测模型。 该模型将通过 DirectML API 在计算机上使用 TensorFlow 进行本地训练,该 API 可在所有 Windows 设备上提供 GPU 加速训练。 训练后的模型将集成到一个 UWP 应用中,该应用使用网络摄像头通过 Windows ML API 在本地实时检测帧中的对象。

我们将首先在计算机上启用 TensorFlow。

如果想了解如何使用 TensorFlow 训练模型,可以继续学习训练模型

如果你有一个 TensorFlow 模型,但想了解如何将其转换为适用于 WinML API 的 ONNX 格式,请参阅转换模型

如果你有一个模型,并且想要了解如何从头开始创建 WinML 应用,请导航到部署模型

通过 DirectML 启用 TensorFlow 的 GPU 加速

若要在计算机上启用 TensorFlow,请执行以下步骤。

检查 Windows 版本

在本机 Windows 上使用 DirectML 包的 TensorFlow 适用于 Windows 10 版本 1709(内部版本 16299)或更高版本的 Windows。 可以查看内部版本号,方法是通过 Run 命令 Windows logo key + R 运行 winver

检查 GPU 驱动程序更新

确保已安装最新的 GPU 驱动程序。 在“设置”应用的“Windows 更新”部分中,选择“检查是否有更新”

通过 DirectML 预览设置 TensorFlow

若要与 TensorFlow 配合使用,建议在 Windows 中设置虚拟 Python 环境。 可以使用许多工具来设置虚拟 Python 环境 - 对于这些说明,我们将使用 Anaconda 的 miniconda。 此设置的其余部分假定你使用 miniconda 环境。

设置 Python 环境

注意

在下面的命令中,我们使用 Python 3.6。 但是,tensorflow-directml 包适用于 Python 3.5、3.6 或 3.7 环境。

在计算机上下载并安装 安装程序。 如果需要,Anaconda 网站上提供了关于设置的附加指南。 安装 Miniconda 后,使用名为 directml 的 Python 创建环境并通过以下命令激活它:

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

使用 DirectML 包安装 Tensorflow

注意

tensorflow-directml 包仅支持 TensorFlow 1.15。

通过运行以下命令,通过 pip 安装带有 DirectML 包的 TensorFlow:

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. 的商标