Серверная гудит, коммутатор моргает всеми портами, а на мониторе охраны вместо лиц — серые квадраты и рваные артефакты. Заказчики часто формулируют задачу в лоб. Звучит она так: интеграция видеоаналитики со СКУД и VMS: как подключить ИИ к RTSP-потоку без замены камер. На практике кто-то решает, что это вопрос одного скрипта с YOLO, натравленного на 50 каналов H.264 по локалке. Гигабитный линк задыхается, процессор сервера упирается в 100%, турникет открывается через восемь секунд после того, как человек подошел к проходной. А потом приходит безопасник и спрашивает, почему лег архив видеонаблюдения.
Вердикт: прикручивать нейросети к зоопарку старого оборудования можно и нужно. Покупать «смарт-камеры» за неадекватный прайс с проприетарной аналитикой, которая превращается в кусок пластика при обновлении прошивки, — инженерная слабость. Любая китайская болванка за сорок баксов или регистратор пятилетней давности, способные отдавать RTSP или поддерживать профиль ONVIF S, годятся для computer vision. Проблема не в камере. Проблема в том, как вы перевариваете видео и как отправляете команду обратно в железный мир.
Чтобы забрать поток без замены парка, вам не нужны вендорские SDK. Часто камеры физически спрятаны за NVR (регистратором) в изолированной подсети — тогда поток тянется с каналов самого регистратора. Базовый трюк для high-load: всегда используйте sub-stream (вторичный поток разрешения 640x360 или 480p) для детекции и трекинга объектов, а main-stream запрашивайте точечно, только когда нужно вытащить кроп лица для распознавания. Тянуть полсотни полновесных потоков 1080p при 25 кадрах в секунду — это смерть сети. Один канал съедает около 3–4 Мбит/с. Малейший джиттер коммутатора, потери пакетов по UDP, и вы теряете опорные кадры (I-frames). В этот момент нейросеть ловит артефактное месиво и сыплет ложными срабатываниями.
Интеграция видеоаналитики со СКУД и VMS: как подключить ИИ к RTSP-потоку без замены камер
Центральный процессор умрет первым. Декодирование видео на CPU в промышленном инференсе — это преступление против здравого смысла. Несжатый поток 1080p при 25 fps — это 150 Мбайт/с на одну камеру. Пятьдесят камер забьют оперативную память со скоростью 7.5 Гбайт/с. Вы обязаны гнать RTSP напрямую в аппаратный декодер видеокарты (блок NVDEC у NVIDIA). Только так одна условная RTX A5000 или консюмерская 4090 способна удержать 60–80 потоков, оставив вычислительные CUDA-ядра свободными под сами веса модели. Пайплайн обязан быть zero-copy: захват, декодирование и ресайз тензора происходят в VRAM без гоняния данных по шине PCI-Express туда-обратно.
Второе правило архитектуры: вам не нужны 25 кадров в секунду. Человек не телепортируется сквозь створки турникета. Для стабильного трекинга силуэта достаточно 5–7 fps. Кадры нужно жестко дропать на входе, защищая бюджет времени инференса. Балансировка строится на пулах асинхронных воркеров: упал RTSP-линк на морозе — процесс молча пытается переподключиться, пришел битый кадр — выбросили и идем дальше. Ожидание I-frame не должно блокировать цикл.
Где ставить железо? Тут начинается физика. Когда мы в Morana Labs проектировали контур компьютерного зрения для периметра обогатительной фабрики, стало очевидно: централизация дешевле по железу, но требует толстой оптики. Серверная стойка экономит бюджет на GPU и живет в комфортных +20°C. Альтернатива — edge-вычисления. Вы ставите компактный модуль уровня NVIDIA Jetson Orin Nano в термокожух на столбе прямо у камеры. Сеть разгружается полностью: по Ethernet летят только килобайты JSON с координатами. Питать можно от того же PoE-коммутатора через сплиттер (Jetson съест 15 Вт). Но обслуживание парка из сотен разбросанных под снегом Linux-коробок превращает саппорт в ад. Выбирайте: сервер спасет нервы админам, но заставит перекладывать кабельные трассы; edge спасет старую сеть, но увеличит стоимость владения (TCO) в разы из-за выездов с вышкой.
Возврат событий: реле, Wiegand и нулевой ping
Нейросеть нарисовала bounding box и классифицировала человека. Компьютерному зрению комфортно, но аппаратному турникету абсолютно плевать на ваши тензоры. Чтобы створка открылась, нужно конвертировать софтверный эвент в физический сигнал, уложив задержку (latency) «кадр → событие» строго в 300–400 миллисекунд. Человек идет со скоростью полтора метра в секунду. Спайк пинга до полусекунды — и сотрудник врезается коленями в металл.
Как пробросить решение ИИ обратно в легаси-инфраструктуру:
- Аппаратная эмуляция Wiegand. Самый бесшовный метод для легаси-СКУД (Болид, Perco, Sigur). Сервер с аналитикой оснащается микроконтроллером (например, дешевым STM32 на шине USB/RS-485), который притворяется считывателем карт. ИИ узнает лицо, достает ID из базы и отправляет битовый код. Система даже не догадывается, что работает с нейросетью — для нее просто «приложили карту». Не пытайтесь дергать пины Wiegand напрямую из user-space Linux: операционка даст джиттер, тайминги протокола съедут, и контроллер отбросит посылку.
- Сухие контакты и IP-реле. Сигнал с сервера идет на сетевой модуль (реле Laurent, Овен), который замыкает контакт кнопки выхода на турникете или запускает сирену ОПС. Метод дубовый, работает всегда, реакция реле — 5–15 мс. Прощает отсутствие сложных сетевых протоколов в автоматике здания.
- Программные API (HTTP/gRPC/Webhooks). Метаданные отправляются в VMS-систему (Trassir, Milestone) или верхнеуровневый софт диспетчера. Идеально для поднятия тревоги на мониторе или логов. Но использовать HTTP для прямого открытия дверей нельзя. Сборка мусора в языке бэкенда или минутный затык на коммутаторе гарантированно дадут лаг, разрушающий эргономику проходной.
Никто не ждет, пока видео дойдет до монитора охраны. Реалтайм работает по кратчайшему пути: аппаратный захват, инференс, бинарный сигнал в реле. Видеоаналитика в промышленном проде не должна хранить архивы — она работает как stateless-фильтр.
Не пытайтесь переписывать правила физического доступа. ИИ — это просто очень умный датчик. Оставьте принятие решений о правах доступа аппаратному контроллеру, а хранение видео — NVR-регистратору. Задача инженера — филигранно извлечь кадр из RTSP, найти паттерн и молча скормить результат железной логике здания по Wiegand. Только при такой сепарации контуров система способна молотить годами без перезагрузок и зависаний.