Projeto de Sistema de Alarme de Segurança Usando Ultralytics YOLO11
O Projeto de Sistema de Alarme de Segurança que utiliza o Ultralytics YOLO11 integra capacidades avançadas de visão computacional para aprimorar as medidas de segurança. O YOLO11, desenvolvido pela Ultralytics, fornece detecção de objetos em tempo real, permitindo que o sistema identifique e responda prontamente a potenciais ameaças à segurança. Este projeto oferece várias vantagens:
- Detecção em Tempo Real: A eficiência do YOLO11 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 YOLO11 é 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 com a infraestrutura de segurança existente, fornecendo uma camada atualizada de vigilância inteligente.
Ver: Sistema de Alarme de Segurança com Ultralytics YOLO11 + Soluções Deteção de objectos
Nota
A geração de senha da App é necessária
- Navegue até Gerador de Senhas de App, designe um nome de aplicativo como "projeto de segurança" e obtenha uma senha de 16 dígitos. Copie esta senha e cole-a no local designado
password
campo no código abaixo.
Sistema de Alarme de Segurança usando Ultralytics YOLO
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="yolo11n.pt", # i.e. yolo11s.pt, yolo11m.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 windows
É isso mesmo! Quando executar o código, receberá uma única notificação no seu e-mail se for detectado algum objeto. A notificação é enviada imediatamente, não repetidamente. No entanto, sinta-se à vontade para personalizar o código de acordo com os requisitos do seu projeto.
Amostra de Email Recebido
SecurityAlarm
Argumentos
Aqui está uma tabela com o SecurityAlarm
argumentos:
Argumento | Tipo | Predefinição | Descrição |
---|---|---|---|
model |
str |
None |
Caminho para o arquivo do modelo Ultralytics YOLO. |
records |
int |
5 |
Contagem total de detecções para acionar um e-mail com o sistema de alarme de segurança. |
O SecurityAlarm
solução suporta uma variedade de track
parâmetros:
Argumento | Tipo | Predefinição | Descrição |
---|---|---|---|
tracker |
str |
'botsort.yaml' |
Especifica o algoritmo de rastreamento a ser usado, por exemplo, bytetrack.yaml ou botsort.yaml . |
conf |
float |
0.3 |
Define o limite de confiança para detecções; valores mais baixos permitem que mais objetos sejam rastreados, mas podem incluir falsos positivos. |
iou |
float |
0.5 |
Define o limite de Intersecção sobre União (IoU) para filtrar detecções sobrepostas. |
classes |
list |
None |
Filtra os resultados por índice de classe. Por exemplo, classes=[0, 2, 3] rastreia apenas as classes especificadas. |
verbose |
bool |
True |
Controla a exibição dos resultados de rastreamento, fornecendo uma saída visual dos objetos rastreados. |
device |
str |
None |
Especifica o dispositivo para inferência (por exemplo, cpu , cuda:0 ou 0 ). Permite aos utilizadores selecionar entre CPU, um GPU específico, 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 apresenta as imagens ou vídeos anotados numa janela. Útil para feedback visual imediato durante o desenvolvimento ou teste. |
line_width |
None or int |
None |
Especifica a largura da linha das caixas delimitadoras. Se None A largura da linha é ajustada automaticamente com base no tamanho da imagem. Proporciona uma personalização visual para maior clareza. |
show_conf |
bool |
True |
Apresenta a pontuação de confiança para cada deteção ao lado da etiqueta. Dá uma ideia do grau de certeza do modelo para cada deteção. |
show_labels |
bool |
True |
Apresenta etiquetas para cada deteção na saída visual. Proporciona uma compreensão imediata dos objectos 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 records
parâmetro), ele envia automaticamente uma notificação por e-mail com um anexo de imagem mostrando os objetos detectados.
O sistema utiliza a classe SecurityAlarm, que fornece métodos para:
- Processar frames e extrair detecções de objetos
- Anotar frames com caixas delimitadoras ao redor de objetos detectados
- Enviar notificações por e-mail quando os limites de detecção forem excedidos
Esta implementação é ideal para segurança doméstica, vigilância de varejo e outras aplicações de monitoramento onde a notificação imediata de objetos detectados é crítica.
FAQ
Como o Ultralytics YOLO11 melhora a precisão de um sistema de alarme de segurança?
O Ultralytics YOLO11 aprimora os sistemas de alarme de segurança, fornecendo detecção de objetos em tempo real e com alta precisão. Seus algoritmos avançados reduzem significativamente os falsos positivos, garantindo que o sistema responda apenas a ameaças genuínas. Essa maior confiabilidade pode ser integrada perfeitamente com a infraestrutura de segurança existente, aprimorando a qualidade geral da vigilância.
Posso integrar o Ultralytics YOLO11 com minha infraestrutura de segurança existente?
Sim, o Ultralytics YOLO11 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 obter instruções detalhadas sobre como integrar o YOLO11 em seus projetos, visite a seção de integração.
Quais são os requisitos de armazenamento para executar o Ultralytics YOLO11?
Executar Ultralytics YOLO11 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 YOLO11 e quaisquer dependências adicionais. Para soluções baseadas na nuvem, o Ultralytics HUB oferece gerenciamento de projetos e tratamento de conjuntos de dados eficientes, o que pode otimizar as necessidades de armazenamento. Saiba mais sobre o Plano Pro para recursos aprimorados, incluindo armazenamento estendido.
O que torna o Ultralytics YOLO11 diferente de outros modelos de detecção de objetos como o Faster R-CNN ou SSD?
O Ultralytics YOLO11 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 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 detecção de objetos, você pode explorar nosso guia.
Como posso reduzir a frequência de falsos positivos no meu sistema de segurança usando Ultralytics YOLO11?
Para reduzir falsos positivos, certifique-se de que seu modelo Ultralytics YOLO11 esteja adequadamente 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 detecção. Técnicas detalhadas de ajuste de hiperparâmetros podem ser encontradas em nosso guia de ajuste de hiperparâmetros.