Detecção de Objetos em tempo real com drones
ATENÇÃO! Este repositório está sendo atualizado com as intruções, porém os códigos já estão disponibilizados na sua íntegra.
RESUMO
- Criei um hotspot a partir do celular e conectei meu notebook nele, mesma rede.
- Instalei NGINX no notebook para criar um RTMP Server.
- Fiz streaming da tela do celular para o notebook, usando o app de celular PRISM Live.
- Executei um script Python para monitorar a porta 1935 e capturar os pacotes RTMP com o OpenCV.
- Passei os frames na arquitetura deep learning YOLO, treinada no COCO dataset.
INSTRUÇÕES (EM ATUALIZAÇÃO)
1. Baixar o modelo YOLO-COCO
Devido à restrição de tamanhos de arquivos no Github, não foi possível disponibilizar o modelo YOLO treinado no dataset COCO.
Para esse script funcionar, baixe este arquivo zip aqui e coloque todo o conteúdo extraído (3 arquivos no total) dentro do diretório coco-yolo
.
2. Baixar o modelo YOLO-COCO automaticamente
Executar o script utilizando o argumento --download-assets
para baixar os arquivos de configuração e modelo YOLO treinado com dataset COCO.
Exemplo:
python main.py -i rmtp://localhost/live --download-assets
3. Execução com Tiny-YOLO
Se tiver problemas de perfomance durante a execução, tente rodar com o parâmetro --yolo-version=yolov3-tiny
. O script irá utilizar um modelo treinado com dataset menor.
O Tiny-YOLO demonstrou ser aproximadamente 442% mais rápido que as versões mais completas, chegando a mais de 244 FPS em uma única GPU. https://www.pyimagesearch.com/2020/01/27/yolo-and-tiny-yolo-object-detection-on-the-raspberry-pi-and-movidius-ncs/
Exemplo:
python main.py -i rmtp://localhost/live --yolo-version=yolov3-tiny