Проект системы охранной сигнализации с использованием Ultralytics YOLO26#
Проект охранной сигнализации на базе Ultralytics YOLO26 объединяет передовые возможности computer vision для усиления мер безопасности. YOLO26, разработанная Ultralytics, обеспечивает object detection в реальном времени, позволяя системе быстро идентифицировать потенциальные угрозы безопасности и реагировать на них. Этот проект предлагает несколько преимуществ:
- Обнаружение в реальном времени: эффективность YOLO26 позволяет системе охранной сигнализации обнаруживать инциденты безопасности и реагировать на них в реальном времени, сводя к минимуму время отклика.
- Accuracy: YOLO26 известна своей точностью обнаружения объектов, что снижает количество ложных срабатываний и повышает надежность системы охранной сигнализации.
- Возможности интеграции: проект можно легко интегрировать в существующую инфраструктуру безопасности, обеспечивая дополнительный уровень интеллектуального видеонаблюдения.
Отправляй оповещения безопасности с помощью YOLO26#
Решение SecurityAlarm отслеживает объекты в твоем видеопотоке и отправляет единственное оповещение по электронной почте с прикрепленным изображением с аннотациями, как только количество обнаружений достигнет порога records. Аутентифицируй учетную запись Gmail с помощью пароля приложения, а затем запусти решение для своего источника.
Примечание
Необходимо создать пароль приложения
- Перейди к 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 | 'tracktrack.yaml' | Задает алгоритм трекинга, который нужно использовать. Встроенные опции: botsort.yaml, bytetrack.yaml, ocsort.yaml, deepocsort.yaml, fasttrack.yaml, tracktrack.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 можно легко интегрировать в твою существующую инфраструктуру безопасности. Система поддерживает различные режимы и обеспечивает гибкость настройки, позволяя расширить существующую конфигурацию за счет продвинутых возможностей обнаружения объектов. Подробные инструкции по интеграции YOLO26 в твои проекты можно найти в integration section.
Запуск Ultralytics YOLO26 на стандартной конфигурации обычно требует около 5 ГБ свободного места на диске. Это включает в себя место для хранения модели YOLO26 и любых дополнительных зависимостей. Для облачных решений Ultralytics Platform предлагает эффективное управление проектами и работу с датасетами, что позволяет оптимизировать требования к хранилищу. Узнай больше о Pro Plan для получения расширенных функций, включая увеличенное хранилище.
Ultralytics YOLO26 превосходит такие модели, как Faster R-CNN или SSD, благодаря возможностям обнаружения в реальном времени и более высокой точности. Ее уникальная архитектура позволяет обрабатывать изображения гораздо быстрее без ущерба для precision, что делает ее идеальной для критичных ко времени приложений, таких как системы охранной сигнализации. Для получения подробного сравнения моделей обнаружения объектов ты можешь изучить наш guide.
Чтобы уменьшить количество ложных срабатываний, убедись, что твоя модель Ultralytics YOLO26 должным образом обучена на разнообразном и хорошо аннотированном датасете. Тонкая настройка гиперпараметров и регулярное обновление модели новыми данными могут значительно улучшить точность обнаружения. Подробные методы hyperparameter tuning можно найти в нашем hyperparameter tuning guide.