Nota
O acesso a esta página requer autorização. Podes tentar iniciar sessão ou mudar de diretório.
O acesso a esta página requer autorização. Podes tentar mudar de diretório.
Agora que configuramos o TensorFlow, usaremos a arquitetura YOLO para treinar o modelo de deteção de objetos. YOLO é uma rede neural que prevê caixas delimitadoras e probabilidades de classe a partir de uma imagem numa única avaliação. Os modelos YOLO podem processar mais de 60 quadros por segundo, tornando-se uma ótima arquitetura para detetar objetos em vídeos. Você pode encontrar mais informações sobre como o YOLO funciona aqui.
Usando YOLO
Primeiro, baixe este arquivo de exemplo YOLO, que contém scripts auxiliares para começar.
Ao usar YOLO, temos 3 opções:
Utilize pesos de modelo pré-treinados para YOLO. O modelo pré-treinado foi treinado em um grande conjunto de dados com 80 classes (categorias) para objetos do dia a dia como ônibus, pessoa, sanduíche, etc. Se você quiser baixar um modelo YOLO pré-treinado no formato ONNX, você pode fazê-lo aqui. Em seguida, você pode prosseguir para a etapa final deste tutorial para aprender a integrar esse modelo em um aplicativo.
Implemente a aprendizagem de transferência com um conjunto de dados personalizado. A aprendizagem por transferência é um método para usar um modelo treinado como ponto de partida para treinar um modelo resolvendo uma tarefa diferente, mas relacionada. Este tutorial usará os pesos YOLO pré-treinados com 80 classes para treinar um modelo com 20 classes utilizando o conjunto de dados VOC. Se você quiser criar seu próprio conjunto de dados com classes personalizadas, consulte as instruções aqui.
Treine YOLO a partir do zero. Esta técnica não é recomendada, porque é muito difícil convergir. O artigo original do YOLO treinou a darknet na imagenet (contendo centenas de milhares de fotos) antes de treinar toda a rede também.
Implementar a aprendizagem de transferência em pesos YOLO pré-treinados no conjunto de dados VOC.
Vamos prosseguir com a segunda opção e implementar o aprendizado de transferência com as etapas a seguir.
- Em uma janela miniconda, navegue até o diretório de exemplo yolo e execute o seguinte comando para instalar todos os pacotes pip necessários para YOLO.
pip install -r requirements.txt
- Execute o script de configuração para baixar os dados e pesos pré-treinados
python setup.py
- Transforme o conjunto de dados. Consulte
tools/voc2012.pypara implementação - este formato é baseado na API de deteção de objeto tensorflow. Muitos campos não são obrigatórios, mas foram preenchidos para compatibilidade com a API oficial.
python tools/voc2012.py \
--data_dir './data/voc2012_raw/VOCdevkit/VOC2012' \
--split train \
--output_file ./data/voc2012_train.tfrecord
python tools/voc2012.py \
--data_dir './data/voc2012_raw/VOCdevkit/VOC2012' \
--split val \
--output_file ./data/voc2012_val.tfrecord
- Treine o modelo. Execute os seguintes comandos:
python convert.py
python detect.py --image ./data/meme.jpg # Sanity check
python train.py \
--dataset ./data/voc2012_train.tfrecord \
--val_dataset ./data/voc2012_val.tfrecord \
--classes ./data/voc2012.names \
--num_classes 20 \
--mode fit --transfer darknet \
--batch_size 16 \
--epochs 10 \
--weights ./checkpoints/yolov3.tf \
--weights_num_classes 80
Agora você tem um modelo re-treinado com 20 classes, pronto para uso.
Próximos passos
Agora que criamos um modelo TensorFlow, precisamos convertê-lo para o formato ONNX para uso com as APIs do Windows Machine Learning.