Проект системы охранной сигнализации с использованием Ultralytics YOLO26
Проект системы охранной сигнализации на базе Ultralytics YOLO26 объединяет передовые возможности computer vision для усиления мер безопасности. YOLO26, разработанная Ultralytics, обеспечивает object detection в реальном времени, позволяя системе оперативно обнаруживать потенциальные угрозы безопасности и реагировать на них. Этот проект обладает рядом преимуществ:
- Обнаружение в реальном времени: Эффективность YOLO26 позволяет системе охранной сигнализации обнаруживать инциденты безопасности и реагировать на них в реальном времени, сводя к минимуму время отклика.
- Accuracy: YOLO26 известна своей точностью обнаружения объектов, что снижает количество ложных срабатываний и повышает надежность системы охранной сигнализации.
- Возможности интеграции: Проект можно легко интегрировать с существующей инфраструктурой безопасности, обеспечивая дополнительный уровень интеллектуального видеонаблюдения.
Примечание
Необходимо создание пароля приложения
- Перейди к App Password Generator, укажи название приложения, например «security project», и получи 16-значный пароль. Скопируй этот пароль и вставь его в поле
passwordв коде ниже.
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 windowsПри запуске кода ты получишь одно уведомление по электронной почте, если будет обнаружен какой-либо объект. Уведомление отправляется сразу, без повторов. Ты можешь настроить код в соответствии с требованиями своего проекта.
Пример полученного электронного письма
Аргументы SecurityAlarm
Вот таблица с аргументами SecurityAlarm:
| Аргумент | Тип | По умолчанию | Описание |
|---|---|---|---|
model | str | None | Путь к файлу модели Ultralytics YOLO. |
records | int | 5 | Общее количество обнаружений для отправки электронного письма системой охранной сигнализации. |
Решение SecurityAlarm поддерживает множество параметров track:
| Аргумент | Тип | По умолчанию | Описание |
|---|---|---|---|
tracker | str | 'botsort.yaml' | Указывает алгоритм отслеживания, который необходимо использовать, например, bytetrack.yaml или botsort.yaml. |
conf | float | 0.1 | Устанавливает порог достоверности для обнаружения; более низкие значения позволяют отслеживать больше объектов, но могут включать ложные срабатывания. |
iou | float | 0.7 | Устанавливает порог Intersection over Union (IoU) для фильтрации перекрывающихся обнаружений. |
classes | list | None | Фильтрует результаты по индексу класса. Например, classes=[0, 2, 3] отслеживает только указанные классы. |
verbose | bool | True | Управляет отображением результатов отслеживания, предоставляя визуальный вывод отслеживаемых объектов. |
device | str | None | Указывает устройство для вывода (например, cpu, cuda:0 или 0). Позволяет пользователям выбирать между CPU, конкретным GPU или другими вычислительными устройствами для выполнения модели. |
Кроме того, доступны следующие настройки визуализации:
| Аргумент | Тип | По умолчанию | Описание |
|---|---|---|---|
show | bool | False | Если True, отображает аннотированные изображения или видео в окне. Полезно для мгновенной визуальной проверки в процессе разработки или тестирования. |
line_width | int or None | None | Задает толщину линий ограничивающих рамок. Если None, толщина подбирается автоматически в зависимости от размера изображения. Обеспечивает визуальную настройку для ясности. |
show_conf | bool | True | Отображает показатель уверенности для каждого обнаруженного объекта рядом с меткой. Дает представление об уверенности модели в каждом обнаружении. |
show_labels | bool | True | Отображает метки для каждого обнаруженного объекта на визуальном выводе. Дает быстрое понимание того, какие объекты были найдены. |
Как это работает
Система охранной сигнализации использует object tracking для мониторинга видеопотоков и обнаружения потенциальных угроз безопасности. Когда система обнаруживает объекты, количество которых превышает заданный порог (устанавливается параметром records), она автоматически отправляет уведомление по электронной почте с вложенным изображением обнаруженных объектов.
Система использует SecurityAlarm class, который предоставляет методы для:
- Обработки кадров и извлечения обнаруженных объектов
- Аннотирования кадров с помощью bbox вокруг обнаруженных объектов
- Отправки уведомлений по электронной почте при превышении порогов обнаружения
Эта реализация идеально подходит для домашней безопасности, наблюдения в розничной торговле и других задач мониторинга, где критически важно немедленное уведомление об обнаружении объектов.
Часто задаваемые вопросы (FAQ)
Как Ultralytics YOLO26 повышает точность системы охранной сигнализации?
Ultralytics YOLO26 улучшает системы охранной сигнализации за счет высокоточного обнаружения объектов в реальном времени. Ее передовые алгоритмы значительно снижают количество ложных срабатываний, гарантируя, что система реагирует только на реальные угрозы. Эту повышенную надежность можно легко интегрировать в существующую инфраструктуру безопасности, улучшая общее качество наблюдения.
Могу ли я интегрировать Ultralytics YOLO26 с моей существующей инфраструктурой безопасности?
Да, Ultralytics YOLO26 можно легко интегрировать с твоей существующей инфраструктурой безопасности. Система поддерживает различные режимы и обеспечивает гибкость настройки, позволяя расширить существующую установку передовыми возможностями обнаружения объектов. Подробные инструкции по интеграции YOLO26 в твои проекты можно найти в integration section.
Каковы требования к хранилищу для работы Ultralytics YOLO26?
Для работы Ultralytics YOLO26 на стандартной установке обычно требуется около 5 ГБ свободного места на диске. Это включает место для хранения модели YOLO26 и любых дополнительных зависимостей. Для облачных решений Ultralytics Platform предлагает эффективное управление проектами и наборами данных, что позволяет оптимизировать потребности в хранилище. Узнай больше о Pro Plan для получения расширенных функций, включая увеличенный объем хранилища.
Чем Ultralytics YOLO26 отличается от других моделей обнаружения объектов, таких как Faster R-CNN или SSD?
Ultralytics YOLO26 обладает преимуществом перед такими моделями, как Faster R-CNN или SSD, благодаря возможностям обнаружения в реальном времени и более высокой точности. Уникальная архитектура позволяет обрабатывать изображения гораздо быстрее без ущерба для precision, что делает ее идеальной для чувствительных ко времени приложений, таких как системы охранной сигнализации. Для сравнения моделей обнаружения объектов ты можешь изучить наше guide.
Как уменьшить количество ложных срабатываний в моей системе безопасности с помощью Ultralytics YOLO26?
To reduce false positives, ensure your Ultralytics YOLO26 model is adequately trained with a diverse and well-annotated dataset. Fine-tuning hyperparameters and regularly updating the model with new data can significantly improve detection accuracy. Detailed hyperparameter tuning techniques can be found in our hyperparameter tuning guide.