Ultralytics YOLO27: Запишись в список ожидания.
Get Started

Проект системы охранной сигнализации на базе Ultralytics YOLO26#

AI-powered security alarm system with object detection

В этом проекте используется компьютерное зрение Ultralytics YOLO26 для создания системы охранной сигнализации. YOLO26 обеспечивает обнаружение объектов в реальном времени, позволяя системе оперативно выявлять потенциальные угрозы безопасности и реагировать на них. Проект обладает рядом преимуществ:

  • Обнаружение в реальном времени: Благодаря эффективности YOLO26 система охранной сигнализации обнаруживает происшествия и реагирует на них в реальном времени, сводя к минимуму время реагирования.
  • Точность: Точное обнаружение объектов с помощью YOLO26 сокращает число ложных срабатываний и повышает надёжность системы охранной сигнализации.
  • Возможности интеграции: Проект позволяет добавить аналитику на основе ИИ к существующим камерам видеонаблюдения, дополняя имеющуюся систему наблюдения интеллектуальным уровнем обнаружения.


Смотреть: Система охранной сигнализации с Ultralytics YOLO26 + решения для обнаружения объектов

Отправляй оповещения о безопасности с YOLO26#

Решение SecurityAlarm отслеживает объекты в видеопотоке и отправляет одно оповещение по электронной почте с прикреплённым размеченным изображением, как только число обнаруженных объектов достигает порога records. Подключи аккаунт Gmail с помощью пароля приложения, а затем запусти решение для обработки источника.

Требуется пароль приложения

Перейди в генератор паролей приложений, укажи название приложения, например "проект системы безопасности", и получи пароль из 16 символов. Скопируй пароль и вставь его в поле password в коде ниже.

Система охранной сигнализации на базе Ultralytics YOLO
import cv2

from ultralytics import solutions

cap = cv2.VideoCapture("path/to/video.mp4")
assert cap.isOpened(), "Error reading video file"

# Запись видео
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"  # адрес электронной почты отправителя
password = "---- ---- ---- ----"  # пароль приложения из 16 символов, созданный на странице: https://myaccount.google.com/apppasswords
to_email = "xyz@gmail.com"  # адрес электронной почты получателя

# Инициализируй объект охранной сигнализации
securityalarm = solutions.SecurityAlarm(
    show=True,  # отобразить результат
    model="yolo26n.pt",  # например, yolo26s.pt, yolo26m.pt
    records=1,  # общее число обнаружений для отправки электронного письма
)

securityalarm.authenticate(from_email, password, to_email)  # аутентифицировать почтовый сервер

# Обработка видео
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)  # доступ к результату

    video_writer.write(results.plot_im)  # запись обработанного кадра.

cap.release()
video_writer.release()
cv2.destroyAllWindows()  # закрытие всех открытых окон

При запуске кода ты получишь одно уведомление по электронной почте, если будет обнаружен хотя бы один объект. Уведомление отправляется сразу и не повторяется. Ты можешь настроить код в соответствии с требованиями своего проекта.

Пример полученного письма#

Security alert email notification example

Аргументы SecurityAlarm#

Вот таблица с аргументами SecurityAlarm:

АргументТипПо умолчаниюОписание
modelstrNoneПуть к файлу модели Ultralytics YOLO.
recordsint5Общее количество обнаруженных объектов, при достижении которого отправляется электронное письмо с предупреждением системы безопасности.
line_widthint2Толщина линий рамок, ключевых точек и счётчиков, которые рисует решение.
verboseboolTrueВключает журнал решения для каждого кадра с указанием формы входных данных, количества объектов по классам и скорости обработки. Сам вызов отслеживания всегда выполняется без вывода сообщений.

Решение SecurityAlarm поддерживает различные параметры track:

АргументТипПо умолчаниюОписание
trackerstr'tracktrack.yaml'Задаёт алгоритм отслеживания. Встроенные варианты: botsort.yaml, bytetrack.yaml, ocsort.yaml, deepocsort.yaml, fasttrack.yaml, tracktrack.yaml.
conffloat0.25Задаёт порог уверенности для обнаружений: при более низких значениях можно отслеживать больше объектов, но возрастает вероятность ложноположительных срабатываний.
ioufloat0.7Задаёт порог пересечения над объединением (IoU) для фильтрации перекрывающихся обнаружений.
classeslistNoneФильтрует результаты по индексу класса. Например, classes=[0, 2, 3] отслеживает только указанные классы.
devicestrNoneЗадаёт устройство для инференса (например, cpu, cuda:0 или 0). Позволяет выбрать CPU, определённый GPU или другое вычислительное устройство для выполнения модели.
imgszint or tuple640Целевой размер изображения для инференса: целое число для квадратного изображения или пара (height, width). Размеры корректируются с учётом шага модели.
max_detint300Максимальное количество обнаружений, сохраняемых в каждом кадре перед отслеживанием; ограничивает число объектов, обрабатываемых решением в насыщенных сценах.
quantizeint or strNoneТочность инференса: 16 (FP16) или 32/unset (FP32) для моделей PyTorch и TorchScript не на CPU; для других форматов точность определяется артефактом модели и средой выполнения. Заменяет устаревший аргумент half.

Кроме того, доступны следующие настройки визуализации:

АргументТипПо умолчаниюОписание
showboolFalseЕсли True, показывает аннотированные изображения или видео в окне. Полезно для мгновенной визуальной проверки во время разработки или тестирования.
show_confboolTrueПоказывает оценку уверенности каждой детекции рядом с меткой. Позволяет оценить уверенность модели в каждой детекции.
show_labelsboolTrueПоказывает метки каждой детекции на визуализации. Помогает сразу понять, какие объекты обнаружены.

Как это работает#

Система охранной сигнализации использует отслеживание объектов для мониторинга видеопотоков и обнаружения потенциальных угроз безопасности. Когда число обнаруженных объектов в кадре достигает заданного порога (установленного параметром records), система автоматически отправляет уведомление по электронной почте с прикреплённым изображением обнаруженных объектов.

В системе используется класс SecurityAlarm, предоставляющий методы для:

  1. Обработки кадров и извлечения обнаруженных объектов
  2. Аннотирования кадров ограничивающими рамками вокруг обнаруженных объектов
  3. Отправки уведомлений по электронной почте при достижении пороговых значений обнаружения

Эта реализация подходит для домашней безопасности, видеонаблюдения в магазинах и других задач мониторинга, где важно немедленно получать уведомления об обнаруженных объектах.

Часто задаваемые вопросы#

  • Ultralytics YOLO26 повышает эффективность систем охранной сигнализации благодаря точному обнаружению объектов в реальном времени. Это сокращает число ложных срабатываний, поэтому система реагирует преимущественно на реальные события. Ты можешь дополнительно сократить число ложных тревог, ограничив обнаружение релевантными classes (например, только людьми), повысив порог conf или увеличив records.

  • Да. Решение SecurityAlarm обрабатывает кадры из любого источника, который может считывать OpenCV, включая видеофайлы, веб-камеры и RTSP-потоки с IP-камер, поэтому ты можешь добавить обнаружение с помощью YOLO26 к существующей системе камер.

  • Для запуска Ultralytics YOLO26 в стандартной конфигурации обычно требуется около 5 ГБ свободного места на диске. Оно понадобится для хранения модели YOLO26 и дополнительных зависимостей. Для облачных решений Ultralytics Platform предлагает эффективное управление проектами и наборами данных, помогая оптимизировать использование хранилища. План Pro увеличивает объём хранилища до 500 ГБ.

  • Ultralytics YOLO26 превосходит такие модели, как Faster R-CNN и SSD, благодаря обнаружению объектов в реальном времени и более высокой точности. Её одноэтапная архитектура обрабатывает изображения значительно быстрее без потери точности, поэтому модель хорошо подходит для задач, чувствительных ко времени, например для систем охранной сигнализации.

  • Чтобы сократить число ложных срабатываний, убедись, что модель Ultralytics YOLO26 достаточно обучена на разнообразном и качественно размеченном наборе данных. Настройка гиперпараметров и регулярное обновление модели на новых данных могут значительно повысить точность обнаружения.

Комментарии