Projeto de Sistema de Alarme de Segurança usando Ultralytics YOLO26#
O projeto de sistema de alarme de segurança utilizando Ultralytics YOLO26 integra recursos avançados de visão computacional para aprimorar as medidas de segurança. O YOLO26, desenvolvido pela Ultralytics, oferece detecção de objetos em tempo real, permitindo que o sistema identifique e responda rapidamente a potenciais ameaças de segurança. Este projeto oferece várias vantagens:
- Detecção em Tempo Real: A eficiência do YOLO26 permite que o Sistema de Alarme de Segurança detecte e responda a incidentes de segurança em tempo real, minimizando o tempo de resposta.
- Precisão: O YOLO26 é conhecido por sua precisão na detecção de objetos, reduzindo falsos positivos e aumentando a confiabilidade do sistema de alarme de segurança.
- Capacidades de Integração: O projeto pode ser integrado perfeitamente à infraestrutura de segurança existente, fornecendo uma camada atualizada de vigilância inteligente.
Envia alertas de segurança com YOLO26#
A solução SecurityAlarm rastreia objetos no seu feed de vídeo e envia um único alerta por e-mail com uma imagem anotada em anexo assim que o número de detecções atinge o limite de records. Autentique uma conta do Gmail com uma senha de app, depois execute a solução em sua fonte.
Nota
A Geração de Senha de Aplicativo é necessária
- Navegue até o Gerador de Senha de App, indique um nome de aplicativo como "projeto de segurança" e obtenha uma senha de 16 dígitos. Copie esta senha e cole-a no campo designado
passwordno código abaixo.
import cv2
from ultralytics import solutions
cap = cv2.VideoCapture("path/to/video.mp4")
assert cap.isOpened(), "Error reading video file"
# Video writer
w, h, fps = (int(cap.get(x)) for x in (cv2.CAP_PROP_FRAME_WIDTH, cv2.CAP_PROP_FRAME_HEIGHT, cv2.CAP_PROP_FPS))
video_writer = cv2.VideoWriter("security_output.avi", cv2.VideoWriter_fourcc(*"mp4v"), fps, (w, h))
from_email = "abc@gmail.com" # the sender email address
password = "---- ---- ---- ----" # 16-digits password generated via: https://myaccount.google.com/apppasswords
to_email = "xyz@gmail.com" # the receiver email address
# Initialize security alarm object
securityalarm = solutions.SecurityAlarm(
show=True, # display the output
model="yolo26n.pt", # e.g., yolo26s.pt, yolo26m.pt
records=1, # total detections count to send an email
)
securityalarm.authenticate(from_email, password, to_email) # authenticate the email server
# Process video
while cap.isOpened():
success, im0 = cap.read()
if not success:
print("Video frame is empty or video processing has been successfully completed.")
break
results = securityalarm(im0)
# print(results) # access the output
video_writer.write(results.plot_im) # write the processed frame.
cap.release()
video_writer.release()
cv2.destroyAllWindows() # destroy all opened windowsAo executar o código, você receberá uma notificação por e-mail única se qualquer objeto for detectado. A notificação é enviada imediatamente, não repetidamente. Você pode personalizar o código para atender aos requisitos do seu projeto.
Exemplo de E-mail Recebido#
Argumentos do SecurityAlarm#
Aqui tens uma tabela com os argumentos do SecurityAlarm:
| Argumento | Tipo | Predefinição | Descrição |
|---|---|---|---|
model | str | None | Caminho para um ficheiro de modelo YOLO da Ultralytics. |
records | int | 5 | Contagem total de deteções para disparar um e-mail com o sistema de alarme de segurança. |
line_width | int | 2 | Espessura da linha para as caixas, pontos-chave e contagens que a solução desenha. |
verbose | bool | True | Ativa o registro por quadro da solução contendo formato de entrada, contagens de classes e velocidade de processamento. A chamada de rastreamento em si é sempre silenciosa. |
A solução SecurityAlarm suporta uma variedade de parâmetros track:
| Argumento | Tipo | Predefinição | Descrição |
|---|---|---|---|
tracker | str | 'botsort.yaml' | Especifica o algoritmo de rastreamento a utilizar. Opções integradas: botsort.yaml, bytetrack.yaml, ocsort.yaml, deepocsort.yaml, fasttrack.yaml, tracktrack.yaml. |
conf | float | 0.25 | Define o limiar de confiança para as deteções; valores mais baixos permitem que mais objetos sejam rastreados, mas podem incluir falsos positivos. |
iou | float | 0.7 | Define o limiar de Intersection over Union (IoU) para filtrar deteções sobrepostas. |
classes | list | None | Filtra resultados por índice de classe. Por exemplo, classes=[0, 2, 3] rastreia apenas as classes especificadas. |
device | str | None | Especifica o dispositivo para inferência (por exemplo, cpu, cuda:0 ou 0). Permite aos utilizadores selecionar entre CPU, uma GPU específica ou outros dispositivos de computação para a execução do modelo. |
Além disso, as seguintes configurações de visualização estão disponíveis:
| Argumento | Tipo | Predefinição | Descrição |
|---|---|---|---|
show | bool | False | Se True, exibe as imagens ou vídeos anotados em uma janela. Útil para feedback visual imediato durante o desenvolvimento ou teste. |
show_conf | bool | True | Exibe a pontuação de confiança para cada detecção ao lado do rótulo. Fornece uma visão sobre a certeza do modelo para cada detecção. |
show_labels | bool | True | Exibe rótulos para cada detecção na saída visual. Fornece compreensão imediata dos objetos detectados. |
Como Funciona#
O sistema de alarme de segurança usa rastreamento de objetos para monitorar feeds de vídeo e detectar potenciais ameaças de segurança. Quando o sistema detecta objetos que excedem o limite especificado (definido pelo parâmetro records), ele envia automaticamente uma notificação por e-mail com um anexo de imagem mostrando os objetos detectados.
O sistema aproveita a classe SecurityAlarm que fornece métodos para:
- Processar quadros e extrair detecções de objetos
- Anotar quadros com caixas delimitadoras ao redor dos objetos detectados
- Enviar notificações por e-mail quando os limites de detecção forem excedidos
Esta implementação é ideal para segurança residencial, vigilância de varejo e outras aplicações de monitoramento onde a notificação imediata de objetos detectados é crítica.
FAQ#
O Ultralytics YOLO26 aprimora sistemas de alarme de segurança entregando detecção de objetos de alta precisão em tempo real. Seus algoritmos avançados reduzem significativamente os falsos positivos, garantindo que o sistema responda apenas a ameaças genuínas. Essa confiabilidade aumentada pode ser integrada perfeitamente à infraestrutura de segurança existente, atualizando a qualidade geral da vigilância.
Sim, o Ultralytics YOLO26 pode ser integrado perfeitamente à sua infraestrutura de segurança existente. O sistema suporta vários modos e oferece flexibilidade para personalização, permitindo que você aprimore sua configuração existente com recursos avançados de detecção de objetos. Para instruções detalhadas sobre a integração do YOLO26 em seus projetos, visite a seção de integração.
Executar o Ultralytics YOLO26 em uma configuração padrão normalmente requer cerca de 5 GB de espaço livre em disco. Isso inclui espaço para armazenar o modelo YOLO26 e quaisquer dependências adicionais. Para soluções baseadas em nuvem, a Ultralytics Platform oferece gerenciamento eficiente de projetos e manipulação de conjuntos de dados, o que pode otimizar as necessidades de armazenamento. Saiba mais sobre o Plano Pro para recursos aprimorados, incluindo armazenamento estendido.
O Ultralytics YOLO26 oferece uma vantagem sobre modelos como Faster R-CNN ou SSD com seus recursos de detecção em tempo real e maior precisão. Sua arquitetura exclusiva permite processar imagens muito mais rápido sem comprometer a precisão, tornando-o ideal para aplicações sensíveis ao tempo, como sistemas de alarme de segurança. Para uma comparação abrangente de modelos de detecção de objetos, você pode explorar nosso guia.
Para reduzir falsos positivos, garanta que seu modelo Ultralytics YOLO26 seja treinado adequadamente com um conjunto de dados diversificado e bem anotado. Ajustar hiperparâmetros e atualizar regularmente o modelo com novos dados pode melhorar significativamente a precisão da detecção. Técnicas detalhadas de ajuste de hiperparâmetros podem ser encontradas em nosso guia de ajuste de hiperparâmetros.