Проект системы охранной сигнализации на базе Ultralytics YOLO26#
Проект системы охранной сигнализации с использованием Ultralytics YOLO26 интегрирует передовые возможности компьютерного зрения для повышения уровня безопасности. YOLO26, разработанный Ultralytics, обеспечивает обнаружение объектов в реальном времени, позволяя системе своевременно выявлять потенциальные угрозы безопасности и реагировать на них. Этот проект предлагает несколько преимуществ:
- Обнаружение в реальном времени: эффективность YOLO26 позволяет системе охранной сигнализации обнаруживать инциденты безопасности и реагировать на них в реальном времени, сокращая время реакции.
- Точность: YOLO26 известен своей точностью при обнаружении объектов, что снижает количество ложных срабатываний и повышает надежность системы охранной сигнализации.
- Возможности интеграции: проект можно легко интегрировать в существующую инфраструктуру безопасности, добавив усовершенствованный уровень интеллектуального видеонаблюдения.
Отправка предупреждений системы безопасности с помощью YOLO26#
Решение SecurityAlarm отслеживает объекты в видеопотоке и отправляет одно оповещение по электронной почте с прикрепленным аннотированным изображением, как только количество обнаружений достигает порога records. Выполни аутентификацию аккаунта Gmail с помощью пароля приложения, затем запусти решение для своего источника данных.
Перейди к генератору паролей приложений, укажи имя приложения, например «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 | Общее количество детекций, необходимое для отправки электронного письма системой охранной сигнализации. |
line_width | int | 2 | Толщина линий для рамок, ключевых точек и счётчиков, которые рисует решение. |
verbose | bool | True | Включает покадровый журнал решения с указанием формы входных данных, количества классов и скорости обработки. Сам вызов отслеживания всегда выполняется без вывода. |
Решение SecurityAlarm поддерживает различные параметры track:
| Аргумент | Тип | По умолчанию | Описание |
|---|---|---|---|
tracker | str | 'botsort.yaml' | Определяет используемый алгоритм отслеживания. Встроенные варианты: botsort.yaml, bytetrack.yaml, ocsort.yaml, deepocsort.yaml, fasttrack.yaml, tracktrack.yaml. |
conf | float | 0.25 | Задаёт порог уверенности для детекций: более низкие значения позволяют отслеживать больше объектов, но могут включать ложноположительные результаты. |
iou | float | 0.7 | Задаёт порог пересечения над объединением (IoU) для фильтрации перекрывающихся детекций. |
classes | list | None | Фильтрует результаты по индексу класса. Например, classes=[0, 2, 3] отслеживает только указанные классы. |
device | str | None | Определяет устройство для инференса (например, cpu, cuda:0 или 0). Позволяет выбрать CPU, конкретный GPU или другое вычислительное устройство для выполнения модели. |
imgsz | int or tuple | 640 | Целевой размер изображения для инференса: целое число для квадрата или пара (height, width). Формы корректируются под шаг модели. |
max_det | int | 300 | Максимальное количество детектирований, сохраняемых на кадр перед трекингом, ограничивающее объекты, обрабатываемые решением в плотных сценах. |
quantize | int or str | None | Точность инференса: 16 (FP16) или 32/не задано (FP32) для моделей PyTorch и TorchScript; остальные форматы вычисляют с точностью, выбранной их артефактом и средой выполнения. Заменяет устаревший флаг half. |
Кроме того, доступны следующие настройки визуализации:
| Аргумент | Тип | По умолчанию | Описание |
|---|---|---|---|
show | bool | False | Если True, аннотированные изображения или видео отображаются в окне. Это полезно для получения визуальной обратной связи в процессе разработки или тестирования. |
show_conf | bool | True | Отображает показатель уверенности для каждой детекции рядом с её меткой. Показывает, насколько модель уверена в каждой детекции. |
show_labels | bool | True | Отображает метки каждой детекции в визуальном результате. Даёт непосредственное представление об обнаруженных объектах. |
Как это работает#
Система охранной сигнализации использует отслеживание объектов для мониторинга видеопотоков и обнаружения потенциальных угроз безопасности. Когда система обнаруживает объекты, количество которых превышает указанный порог, заданный параметром records, она автоматически отправляет уведомление по электронной почте с прикрепленным изображением обнаруженных объектов.
Система использует класс SecurityAlarm, предоставляющий методы для:
- Обработки кадров и извлечения обнаруженных объектов
- Аннотирования кадров ограничивающими рамками вокруг обнаруженных объектов
- Отправки уведомлений по электронной почте при превышении пороговых значений обнаружения
Такая реализация идеально подходит для обеспечения безопасности дома, наблюдения в розничных магазинах и других задач мониторинга, где критически важно немедленно получать уведомления об обнаруженных объектах.
Часто задаваемые вопросы#
Ultralytics YOLO26 повышает эффективность систем охранной сигнализации благодаря высокоточному обнаружению объектов в реальном времени. Его передовые алгоритмы значительно сокращают количество ложных срабатываний, гарантируя, что система реагирует только на реальные угрозы. Повышенную надежность можно легко интегрировать в существующую инфраструктуру безопасности, улучшив общее качество видеонаблюдения.
Да, Ultralytics YOLO26 можно легко интегрировать в существующую инфраструктуру безопасности. Система поддерживает различные режимы и обеспечивает гибкие возможности настройки, позволяя расширить существующую конфигурацию за счет передовых возможностей обнаружения объектов. Подробные инструкции по интеграции YOLO26 в свои проекты можно найти в разделе об интеграции.
Для запуска Ultralytics YOLO26 в стандартной конфигурации обычно требуется около 5 ГБ свободного места на диске. Сюда входит место для хранения модели YOLO26 и дополнительных зависимостей. Для облачных решений Ultralytics Platform предоставляет эффективные возможности управления проектами и наборами данных, что помогает оптимизировать требования к хранилищу. Узнай больше о тарифном плане Pro с расширенными возможностями, включая увеличенный объем хранилища.
Ultralytics YOLO26 превосходит такие модели, как Faster R-CNN или SSD, благодаря возможностям обнаружения в реальном времени и более высокой точности. Его уникальная архитектура позволяет обрабатывать изображения значительно быстрее без ущерба для точности, что делает модель идеальной для приложений, чувствительных к задержкам, например систем охранной сигнализации. Для подробного сравнения моделей обнаружения объектов изучи наше руководство.
Чтобы снизить количество ложных срабатываний, убедись, что модель Ultralytics YOLO26 достаточно обучена на разнообразном и хорошо аннотированном наборе данных. Точная настройка гиперпараметров и регулярное обновление модели с использованием новых данных могут значительно повысить точность обнаружения. Подробные методы настройки гиперпараметров описаны в нашем руководстве по настройке гиперпараметров.