TensorFlow + DirectML com Windows ML: Detecção de objetos em vídeos em tempo real

Image classification flow

Este tutorial mostra como treinar e avaliar localmente um modelo de detecção de objetos em tempo real em um aplicativo UWP. O modelo vai ser treinado com o TensorFlow localmente no seu computador por meio das APIs do DirectML, o que fornece um treinamento acelerado por GPU em todos os dispositivos Windows. Em seguida, o modelo treinado vai ser integrado a um aplicativo UWP que usa a webcam para detectar objetos no quadro em tempo real, usando localmente as APIs do Windows ML.

Comece habilitando o TensorFlow no seu computador.

Se você quer aprender a treinar o modelo com o TensorFlow, siga para Treinar um modelo.

Se você tem um modelo do TensorFlow, mas quer saber como convertê-lo em um formato ONNX adequado para uso com as APIs do WinML, consulte converter seu modelo.

Se você tem um modelo e quer aprender a criar um aplicativo do WinML do zero, navegue até Implantar seu modelo.

Habilitar a aceleração por GPU para TensorFlow com DirectML

Para habilitar o TensorFlow no seu computador, siga as etapas abaixo.

Verifique sua versão do Windows

O pacote do TensorFlow com DirectML no Windows nativo funciona no Windows 10 versão 1709 (Build 16299) ou em versões posteriores do Windows. Você pode verificar o número de versão do build executando winver por meio do comando Executar (Windows logo key + R).

Verificar se há atualizações de driver da GPU

Certifique-se de que você tem os drivers de GPU mais recentes instalados. Selecione Verificar atualizações na seção do Windows Update do aplicativo de Configurações.

Configurar o TensorFlow com a versão prévia do DirectML

Para uso com TensorFlow, é recomendável configurar um ambiente virtual do Python dentro do Windows. Várias ferramentas podem ser usadas para configurar um ambiente virtual Python. Para estas instruções, usaremos o Miniconda do Anaconda. O restante desta configuração pressupõe que você esteja usando um ambiente do miniconda.

Configurar um ambiente do Python

Observação

Nos comandos abaixo, é usado o Python 3.6. No entanto, o pacote tensorflow-directml funciona em um ambiente do Python 3.5, 3.6 ou 3.7.

Baixe e instale o instalador de miniconda do Windows no seu computador. Se for necessário, há diretrizes adicionais para instalação no site do Anaconda. Depois que o miniconda for instalado, crie um ambiente usando o Python chamado directml e ative-o por meio dos seguintes comandos:

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

Instalar o pacote do TensorFlow com DirectML

Observação

O pacote tensorflow-directml dá suporte apenas ao TensorFlow 1.15.

Instale o pacote do TensorFlow com DirectML por meio do pip executando o seguinte comando:

pip install tensorflow-directml

Verificar a instalação do pacote

Depois de instalar o pacote tensorflow-directml, verifique se ele é executado corretamente adicionando dois tensores. Copie as seguintes linhas em uma sessão interativa do 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])) 

Você deverá ver uma saída semelhante à abaixo, com o operador add posicionado no dispositivo DML.

Próximas etapas

Agora que você já resolveu os pré-requisitos, você pode seguir para a criação do modelo do WinML. Na próxima etapa, você vai usar o TensorFlow para criar seu modelo de detecção de objetos em tempo real.

Importante

TensorFlow, o logotipo do TensorFlow e todas as marcas relacionadas são marcas registradas da Google Inc.