O projeto "Digital Surveillance: Vigilante Inteligente" é uma iniciativa usando CNN. O projeto utiliza algoritmos de aprendizado de máquina para detectar e diferenciar situações de violência e não violência em tempo real, utilizando uma webcam.
O núcleo deste projeto é um modelo de classificação de imagens, treinado em um conjunto de dados contendo mais de 11.000 imagens, categorizadas em "Violência" e "Não Violência". O modelo é capaz de processar imagens em tempo real e identificar a presença de violência com alta precisão.
- TensorFlow e Keras: Para o desenvolvimento e treinamento do modelo de IA.
- OpenCV (cv2): Para captura e processamento de vídeo em tempo real.
- Python: Linguagem de programação usada para o desenvolvimento do projeto.
- PyInstaller: Para a criação de um executável do script Python.
-
Preparação dos Dados: O conjunto de dados foi dividido em categorias de "Violência" e "Não Violência", com redimensionamento e pré-processamento das imagens para adequá-las ao modelo.
-
Treinamento do Modelo: Utilizou-se o modelo pré-treinado MobileNetV3Small, escolhido por sua eficiência e adequação para tarefas de classificação de imagens em dispositivos com recursos limitados. O modelo foi ajustado e treinado com os dados específicos do projeto.
-
Desenvolvimento do Script: Um script Python foi criado para utilizar a webcam, processar os quadros em tempo real e aplicar o modelo para detectar violência.
-
Compilação com PyInstaller: O script foi convertido em um executável standalone, permitindo seu uso em qualquer sistema Windows sem a necessidade de instalar dependências adicionais.
O script principal do projeto realiza a captura de vídeo, processamento de imagem e aplicação do modelo para detecção de violência. O código abaixo demonstra a lógica central do aplicativo:
import cv2
import numpy as np
import tensorflow as tf
from tensorflow.keras.models import load_model
from tensorflow.keras.preprocessing import image
import os
# Carrega o modelo
model = load_model('caminho/para/MobileNetV3Small.h5')
# Inicializa a webcam
cap = cv2.VideoCapture(0)
while True:
ret, frame = cap.read()
if not ret:
break
# Processamento do frame
# ...
# Aplica o modelo e exibe o resultado
# ...
if cv2.waitKey(1) & 0xFF == ord('q'):
break
cap.release()
cv2.destroyAllWindows()O modelo MobileNetV3Small foi escolhido por sua eficiência em termos de computação e memória, tornando-o ideal para aplicativos em tempo real e dispositivos com recursos limitados. Este modelo é conhecido por sua alta precisão em tarefas de classificação de imagens, mantendo uma arquitetura leve.
- Desenvolvedor: Vinicius de Souza Santos
- GitHub: ViniciusKanh
- LinkedIn: Perfil no LinkedIn
- E-mail: vinnyciussouza@outlook.com

