Manual
do
Maker
.
com
Já vimos em outro artigo como utilizar o YOLO com Darknet. Agora vamos ver como implementar utilizando Keras!
Sem delongas, sejamos objetivos. Faça o clone do repositório:
git clone https://github.com/miranthajayatilake/YOLOw-Keras.git
Ou com YOLOv3, nesse repositório:
git clone https://github.com/qqwweee/keras-yolo3.git
Entre no diretório clonado antes de baixar os pesos:
cd keras-yolo3
Agora, baixe os pesos do site do YOLO:
wget https://pjreddie.com/media/files/yolov3.weights
Precisamos converter o formato do model para o formato utilizado no Keras. Para isso:
python convert.py yolov3.cfg yolov3.weights model_data/yolo.h5
Se seu ambiente for Python-2.7, ocorrerá um erro. Para corrigir o problema, edite o arquivo convert.py e modifique as seguintes linhas:
Modifique para :
from io import BytesIO as StringIO
Modifique para:
output_stream = StringIO()
Agora deve funcionar. Sem essa conversão, não tem como utililzar o dataset da Darknet no YOLO com Keras.
Se obtiver esse erro também, não se angustie. Edite o arquivo yolo3/utils.py e insira antes do primeiro import:
from __future__ import division
Agora já podemos fazer uso dos recursos baixados e depois de brincar, é só estudar as conversões para entender como funciona, além do programa principal, yolo_video.py, que pode ser utilizado tanto para vídeo como para imagem:
Para capturar diretamente da webcam como fiz acima, utilize:
python yolo_video.py --model yolov3.weights --gpu_num 0 --input /dev/video0
A saída é lançada por padrão em stdout, mostrando a classificação, a acurácia e a região de interesse. Com isso, poderíamos criar uma base fazendo crop da região para registro de evento, ou criar um log para análise de vídeo a posteriori.
Um trecho da saída do YOLO com Keras:
Vou procurar um vídeo com mais objetos por aqui e mais tarde subo um vídeo com o Yolo em ação no nosso canal DobitAoByteBrasil no Youtube. Se ainda não é inscrito, aproveite para assinar o canal, clique no sininho para receber notificações de novos vídeos e deixe seu like para incentivar.
Assim que possível escreverei um artigo para utilizar esses recursos com seu próprio dataset. Se não leu ainda a respeito, recomendo esses dois outros artigos:
Como criar um dataset para deep learning.
Reconhecimento de armas com inteligência artificial.
Inscreva-se no nosso canal Manual do Maker no YouTube.
Também estamos no Instagram.
Autor do blog "Do bit Ao Byte / Manual do Maker".
Viciado em embarcados desde 2006.
LinuxUser 158.760, desde 1997.