VisionGuard - Detector
FIAP Postech IA - Hackathon Fase 5 - Grupo 19
Humberto Maia
Leonardo Miyagi
Luiz Fernando Vilas Fonseca
Luiz Henriques Gonçalves Carneiro de Albuquerque
Rafael Pivetta Balbuena
O código fonte do projeto está disponível no repositório do Github
A ideia inicial era a de desenvolver uma CNN (Convolutional Neural Network) que reconhecesse objetos cortantes.
O primeiro passo foi a seleção de datasets específicos para treinamento do modelo. Optamos por utilizar os datasets Knife Dataset e Dangerous Objects disponíveis no Roboflow.
Ao longo do processo inicial, tentamos utilizar o Keras como base e algum modelo já existente como MobileNetV2 ou EfficientNet, mas os resultados não foram muito bons. O modelo considerava muitos objetos como cortantes sendo que não eram, e também perdia alguns que eram óbvios.
Decidimos então utilizar como base o modelo YoloV11, que é um modelo já treinado para reconhecimento de objetos. A partir dele, treinamos o modelo com os datasets selecionados.
O Jupyter Notebook contendo o código de treinamento do modelo está no repositório em train_yolo.ipynb
Os videos de teste do Hackathon foram processados pelo modelo e também disponibilizados no repositório:
Video 1
Video 2
Uma vez que o modelo estava treinado e pronto para uso, partimos para o desenvolvimento da interface.
O objetivo era disponibilizar uma ferramenta capaz de obter como entrada uma imagem, video ou webcam e detectar objetos cortantes utilizando o modelo treinado
Optamos por utilizar Python com Flask para o desenvolvimento do backend e HTML / Javascript com Bootstrap para o frontend.
Uma imagem Docker do aplicativo é gerado e então publicado na Digital Ocean
O sistema primário de notificação é um Alerta Visual na própria ferramenta, quando um objeto cortante é identificado
Além disso, implementamos um sistema de Notificação por Email onde a imagem do objeto identificado é enviado para o email informado
Para isso, utilizamos a biblioteca smtplib do Python
Adicionalmente, implementamos o envio de Notificações por SMS utilizando o Twilio como plataforma