Projeto de sistema de alarme de segurança com Ultralytics YOLO26#
O projeto de sistema de alarme de segurança que utiliza Ultralytics YOLO26 integra capacidades avançadas de visão computacional para melhorar as medidas de segurança. O YOLO26, desenvolvido pela Ultralytics, fornece deteção de objetos em tempo real, permitindo que o sistema identifique e responda rapidamente a potenciais ameaças à segurança. Este projeto oferece várias vantagens:
- Deteção em tempo real: A eficiência do YOLO26 permite que o sistema de alarme de segurança detete e responda a incidentes de segurança em tempo real, minimizando o tempo de resposta.
- Precisão: O YOLO26 é conhecido pela sua precisão na deteção de objetos, reduzindo falsos positivos e aumentando a fiabilidade do sistema de alarme de segurança.
- Capacidades de integração: O projeto pode ser integrado perfeitamente na infraestrutura de segurança existente, fornecendo uma camada atualizada de vigilância inteligente.
Enviar alertas de segurança com YOLO26#
A solução SecurityAlarm acompanha objetos no teu fluxo de vídeo e envia um único alerta por e-mail com uma imagem anotada em anexo assim que o número de deteções atingir o limite records. Autentica uma conta do Gmail com uma palavra-passe de aplicação e, em seguida, executa a solução na tua fonte.
Navega até ao Gerador de Palavras-passe de Aplicativos, designa um nome para a aplicação, como "security project", e obtém uma palavra-passe de 16 dígitos. Copia esta palavra-passe e cola-a no campo password no 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 executares o código, receberás uma única notificação por e-mail se algum objeto for detetado. A notificação é enviada imediatamente, não repetidamente. Podes personalizar o código de acordo com os requisitos do teu projeto.
Exemplo de e-mail recebido#
Argumentos de SecurityAlarm#
Eis uma tabela com os argumentos de 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 necessária para acionar um e-mail com o sistema de alarme de segurança. |
line_width | int | 2 | Espessura das linhas das caixas, dos pontos-chave e das contagens desenhados pela solução. |
verbose | bool | True | Ativa o registo por fotograma da solução, incluindo a forma da entrada, as contagens por classe e a velocidade de processamento. A chamada de rastreamento permanece sempre silenciosa. |
A solução SecurityAlarm é compatível com vários 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 rastrear mais objetos, mas podem incluir falsos positivos. |
iou | float | 0.7 | Define o limiar de Interseção sobre a União (IoU) para filtrar deteções sobrepostas. |
classes | list | None | Filtra os resultados pelo índice da classe. Por exemplo, classes=[0, 2, 3] rastreia apenas as classes especificadas. |
device | str | None | Especifica o dispositivo para a inferência (por exemplo, cpu, cuda:0 ou 0). Permite selecionar entre CPU, uma GPU específica ou outros dispositivos de computação para executar o modelo. |
imgsz | int or tuple | 640 | Tamanho da imagem de inferência alvo: um inteiro para um quadrado ou um par (height, width). As formas são ajustadas para o passo do modelo. |
max_det | int | 300 | Número máximo de detecções mantidas por quadro antes do rastreamento, limitando os objetos que uma solução processa em cenas densas. |
quantize | int or str | None | Precisão de inferência: 16 (FP16) ou 32/não definido (FP32) para modelos PyTorch e TorchScript; outros formatos computam na precisão que o artefato e o tempo de execução selecionam. Substitui a flag obsoleta half. |
Além disso, estão disponíveis as seguintes definições de visualização:
| Argumento | Tipo | Predefinição | Descrição |
|---|---|---|---|
show | bool | False | Se True, apresenta as imagens ou vídeos anotados numa janela. É útil para obter feedback visual imediato durante o desenvolvimento ou os testes. |
show_conf | bool | True | Apresenta a pontuação de confiança de cada deteção junto à etiqueta. Permite compreender o grau de certeza do modelo em cada deteção. |
show_labels | bool | True | Apresenta etiquetas para cada deteção no resultado visual. Permite compreender imediatamente os objetos detetados. |
Como funciona#
O sistema de alarme de segurança utiliza o acompanhamento de objetos para monitorizar fluxos de vídeo e detetar potenciais ameaças à segurança. Quando o sistema deteta objetos que excedem o limite especificado (definido pelo parâmetro records), envia automaticamente uma notificação por e-mail com uma imagem em anexo que mostra os objetos detetados.
O sistema utiliza a classe SecurityAlarm, que fornece métodos para:
- Processar frames e extrair deteções de objetos
- Anotar frames com caixas delimitadoras à volta dos objetos detetados
- Enviar notificações por e-mail quando os limites de deteção são excedidos
Esta implementação é ideal para segurança residencial, vigilância de lojas e outras aplicações de monitorização em que é fundamental receber uma notificação imediata dos objetos detetados.
Perguntas frequentes#
O Ultralytics YOLO26 melhora os sistemas de alarme de segurança ao fornecer deteção de objetos de alta precisão em tempo real. Os seus algoritmos avançados reduzem significativamente os falsos positivos, garantindo que o sistema responde apenas a ameaças reais. Esta maior fiabilidade pode ser integrada perfeitamente na infraestrutura de segurança existente, melhorando a qualidade geral da vigilância.
Sim, o Ultralytics YOLO26 pode ser integrado perfeitamente na tua infraestrutura de segurança existente. O sistema é compatível com vários modos e oferece flexibilidade para personalização, permitindo melhorar a configuração existente com capacidades avançadas de deteção de objetos. Para obter instruções detalhadas sobre a integração do YOLO26 nos teus projetos, visita a secção de integração.
A execução do Ultralytics YOLO26 numa configuração padrão requer normalmente cerca de 5 GB de espaço livre em disco. Isto inclui espaço para armazenar o modelo YOLO26 e quaisquer dependências adicionais. Para soluções baseadas na cloud, a Ultralytics Platform oferece uma gestão eficiente de projetos e um tratamento eficaz de conjuntos de dados, o que pode otimizar as necessidades de armazenamento. Obtém mais informações sobre o Plano Pro para funcionalidades avançadas, incluindo armazenamento alargado.
O Ultralytics YOLO26 oferece uma vantagem em relação a modelos como Faster R-CNN ou SSD graças às suas capacidades de deteção em tempo real e à sua maior precisão. A sua arquitetura exclusiva permite processar imagens muito mais rapidamente 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 deteção de objetos, podes consultar o nosso guia.
Para reduzir os falsos positivos, garante que o teu modelo Ultralytics YOLO26 foi devidamente treinado com um conjunto de dados diversificado e bem anotado. O ajuste fino dos hiperparâmetros e a atualização regular do modelo com novos dados podem melhorar significativamente a precisão da deteção. Podes encontrar técnicas detalhadas de ajuste de hiperparâmetros no nosso guia de ajuste de hiperparâmetros.