Compartir a través de


TensorFlow + DirectML con Windows ML: detección de objetos en tiempo real desde vídeo

Flujo de clasificación de imágenes

En este tutorial se muestra cómo entrenar y evaluar localmente un modelo de detección de objetos en tiempo real en una aplicación para UWP. El modelo se entrenará con TensorFlow localmente en la máquina a través de las API de DirectML, que proporciona entrenamiento acelerado por GPU en todos los dispositivos Windows. A continuación, el modelo entrenado se integrará en una aplicación para UWP que usa la cámara web para detectar objetos en el fotograma en tiempo real, localmente mediante las API de Windows ML.

Comenzaremos habilitando TensorFlow en la máquina.

Si quiere obtener información sobre cómo entrenar el modelo con TensorFlow, puede continuar con Entrenamiento de un modelo.

Si tiene un modelo de TensorFlow, pero quiere obtener información sobre cómo convertirlo a un formato ONNX adecuado para su uso con las API de WinML, consulte Conversión del modelo.

Si tiene un modelo y quiere obtener información sobre cómo crear una aplicación WinML desde cero, vaya a Implementación del modelo.

Habilitación de la aceleración de GPU para TensorFlow con DirectML

Para habilitar TensorFlow en la máquina, siga estos pasos.

Comprobación de la versión de Windows

El paquete TensorFlow con DirectML en Windows nativo funciona en Windows 10 versión 1709 (compilación 16299) o versiones posteriores de Windows. Para comprobar el número de versión de compilación, ejecute winver mediante el comando Ejecutar (Windows logo key + R).

Buscar actualizaciones de controladores de GPU

Asegúrese de que tiene instalado el controlador de GPU más reciente. Seleccione Buscar actualizaciones en la sección Windows Update de la aplicación Configuración .

Configuración de TensorFlow con la versión preliminar de DirectML

Para su uso con TensorFlow, se recomienda configurar un entorno de Python virtual dentro de Windows. Existen muchas herramientas que puede usar para configurar un entorno de Python virtual; en este caso, usaremos la característica miniconda de Anaconda. En el resto de esta configuración se da por supuesto que usa un entorno de miniconda.

Configuración del entorno de Python

Nota:

En los comandos siguientes, usamos Python 3.6. Sin embargo, el tensorflow-directml paquete funciona en un entorno de Python 3.5, 3.6 o 3.7.

Descargue e instale el instalador de Windows Miniconda en la máquina. Si lo necesita, hay instrucciones adicionales para la configuración en el sitio de Anaconda. Una vez instalado Miniconda, cree un entorno con Python denominado directml y actívelo a través de los siguientes comandos:

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

Instalación del paquete Tensorflow con DirectML

Nota:

El tensorflow-directml paquete solo admite TensorFlow 1.15.

Instale tensorFlow con el paquete DirectML a través de pip mediante la ejecución del siguiente comando:

pip install tensorflow-directml

Comprobación de la instalación del paquete

Una vez instalado el tensorflow-directml paquete, puede comprobar que se ejecuta correctamente agregando dos tensores. Copie las líneas siguientes en una sesión interactiva de 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])) 

Debería ver una salida similar a la siguiente, con el operador "add" colocado en el dispositivo DML.

Pasos siguientes

Ahora que ha ordenado los requisitos previos, puede continuar con la creación del modelo WinML. En la siguiente parte, usará TensorFlow para crear el modelo de detección de objetos en tiempo real.

Importante

TensorFlow, el logotipo de TensorFlow y las marcas relacionadas son marcas comerciales de Google Inc.