Link to this sectionПроект системы охранной сигнализации с использованием 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При запуске кода ты получишь одно уведомление по электронной почте, если будет обнаружен какой-либо объект. Уведомление отправляется немедленно, без повторов. Ты можешь настроить код в соответствии с требованиями своего проекта.
Link to this sectionПример полученного письма#
Link to this sectionАргументы SecurityAlarm#
Ниже представлена таблица с аргументами SecurityAlarm:
| Аргумент | Тип | По умолчанию | Описание |
|---|---|---|---|
model | str | None | Путь к файлу модели Ultralytics YOLO. |
records | int | 5 | Общее количество обнаружений для запуска электронной почты с охранной сигнализацией. |
Решение SecurityAlarm поддерживает различные параметры track:
| Аргумент | Тип | По умолчанию | Описание |
|---|---|---|---|
tracker | str | 'botsort.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 | Отображает метки для каждого обнаружения в визуальном выводе. Обеспечивает быстрое понимание того, какие объекты были обнаружены. |
Link to this sectionКак это работает#
Система охранной сигнализации использует object tracking для мониторинга видеопотоков и обнаружения потенциальных угроз безопасности. Когда система обнаруживает объекты, превышающие заданный порог (устанавливается параметром records), она автоматически отправляет уведомление по электронной почте с прикрепленным изображением обнаруженных объектов.
Система использует SecurityAlarm class, который предоставляет методы для:
- обработки кадров и извлечения обнаруженных объектов;
- аннотирования кадров с помощью BBox вокруг обнаруженных объектов;
- отправки уведомлений по электронной почте при превышении порогов обнаружения.
Эта реализация идеально подходит для домашней безопасности, розничного видеонаблюдения и других задач мониторинга, где критически важно немедленно получать уведомления об обнаружении объектов.
Link to this sectionFAQ#
Link to this sectionКак Ultralytics YOLO26 повышает точность системы охранной сигнализации?#
Ultralytics YOLO26 улучшает системы охранной сигнализации за счет обеспечения высокоточного обнаружения объектов в реальном времени. Ее передовые алгоритмы значительно сокращают количество ложных срабатываний, гарантируя, что система реагирует только на реальные угрозы. Эта повышенная надежность позволяет легко интегрировать систему в существующую инфраструктуру безопасности, повышая общее качество видеонаблюдения.
Link to this sectionМогу ли я интегрировать Ultralytics YOLO26 со своей существующей инфраструктурой безопасности?#
Да, Ultralytics YOLO26 можно легко интегрировать в существующую инфраструктуру безопасности. Система поддерживает различные режимы и обеспечивает гибкость для настройки, позволяя расширить существующую конфигурацию возможностями продвинутого обнаружения объектов. Подробные инструкции по интеграции YOLO26 в свои проекты можно найти в integration section.
Link to this sectionКаковы требования к хранению данных для запуска Ultralytics YOLO26?#
Для запуска Ultralytics YOLO26 в стандартной конфигурации обычно требуется около 5 ГБ свободного места на диске. Это включает место для хранения модели YOLO26 и любых дополнительных зависимостей. Для облачных решений Ultralytics Platform предлагает эффективное управление проектами и работу с наборами данных, что может оптимизировать потребности в хранении. Узнай больше о Pro Plan, чтобы получить расширенные функции, включая увеличенное хранилище.
Link to this sectionЧем Ultralytics YOLO26 отличается от других моделей обнаружения объектов, таких как Faster R-CNN или SSD?#
Ultralytics YOLO26 превосходит такие модели, как Faster R-CNN или SSD, благодаря возможностям обнаружения в реальном времени и более высокой точности. Ее уникальная архитектура позволяет обрабатывать изображения гораздо быстрее без ущерба для precision, что делает ее идеальной для чувствительных ко времени приложений, таких как системы охранной сигнализации. Для всестороннего сравнения моделей обнаружения объектов ты можешь изучить наше guide.
Link to this sectionКак я могу снизить частоту ложных срабатываний в моей системе безопасности с помощью Ultralytics YOLO26?#
Чтобы снизить количество ложных срабатываний, убедись, что твоя модель Ultralytics YOLO26 адекватно обучена на разнообразном и хорошо размеченном наборе данных. Тонкая настройка гиперпараметров и регулярное обновление модели новыми данными могут значительно повысить точность обнаружения. Подробные методы hyperparameter tuning можно найти в нашем hyperparameter tuning guide.