Телефон вибрирует тридцатый раз за час. Открываешь снапшот, а там ветка. Потом кошка. Потом тень от облака. Потом снова ветка. На тридцать первом уведомлении ты просто отключаешь нотификации, и вся идея «умного наблюдения» отправляется туда же, куда и коробка от камеры. На антресоль.
Эта статья о том, как команда Faceter потратила месяцы, чтобы того самого тридцать первого уведомления не было. И почему путь к «действительно умной камере» прошел не через покупку мощного железа, а через инженерный компромисс. На железе, которое уже есть у пользователя. В том числе на камерах с прошивкой OpenIPC.

У Faceter была простая на первый взгляд задача: подключить камеру на открытой прошивке OpenIPC к своему облаку. OpenIPC давно был в поле зрения команды. Ведь открытая прошивка дает независимость от вендоров и работает на огромном парке устройств.
Это ровно та свобода, которой так не хватает в мире закрытого «железа», где производители прячут распознавание людей и лиц внутри своих фирменных приложений.
Но за свободой обнаружился парадокс. Камера прекрасно отдавала видео, а вот над ее собственной аналитикой еще предстояло поработать. Детекция движения реагировала на листья, птиц, блики. Для пользователя это и есть те самые сотни ложных срабатываний, после которых наблюдение из помощника превращается в источник раздражения.
Получилась честная инженерная развилка: камера как источник видео отличная, но камера как аналитик – пока нет. Но этим и удобен продукт OpenIPC: открытая прошивка дает фундамент, на котором можно смело строить. И команда Faceter запустила процесс строительства.

Самый очевидный путь: взять фабричный AI SDK от производителя процессора и включить распознавание людей. Команда честно прошла этот путь до конца. Результат стоит привести как есть:
Корень проблемы у всех трех форматов оказался общим: отсутствие нормальной документации, закрытость архитектур и почти полное отсутствие техподдержки для нестандартных задач. Эти готовые решения мы обозвали «черными ящиками».
Пока сценарий совпадает с тем, что задумал вендор, все работает. Шаг в сторону, и адаптация растягивается на месяцы без выхода в стабильный продакшен.
Вывод, к которому пришла команда, звучит почти банально, но за ним месяцы работы: чтобы дать пользователю реальную аналитику, а не просто видеопоток, детектор нужно делать самим. Такой, что выживет в условиях жесткого дефицита ресурсов: мало оперативной памяти, слабый процессор, разные чипы, минимум свободного места в прошивке.
Здесь начинается самое интересное с инженерной точки зрения. Полноценная нейросеть, которая «жует» каждый кадр в высоком разрешении, на таком железе просто не живет. Не хватит ни памяти, ни процессора. Поэтому решение Faceter стало не совсем нейросетью, а гибридом классических алгоритмов компьютерного зрения и машинного обучения.
Первый шаг: отказ от тяжелого видеопотока. Вместо него используется MJPEG, 5 кадров в секунду в ограниченном разрешении. Этого с запасом хватает для задачи, а декодирование такого потока почти не нагружает процессор камеры. Бонус – универсальность: MJPEG умеют отдавать многие стримеры, в том числе Majestic в составе OpenIPC.
Но даже пять кадров в секунду для слабого чипа – это много. Поэтому обработка построена как каскад из трех фильтров, где каждый следующий получает на вход все меньше данных:

Именно эта узкая специализация – ключ ко всему. Модель не пытается распознать сто классов объектов, она отвечает только на один вопрос.
За счет этого весь пайплайн укладывается в 70-80 миллисекунд на обработку и минимально расходует память. Ветка, качнувшаяся на ветру, до третьего фильтра просто не доходит. Ее отсекает каскад. А человек у забора – доходит.
Именно так уведомление «обнаружено движение» превращается в уведомление «человек у забора». Так произошла смена самой ценности системы.
| Было | Стало |
| Сотни ложных срабатываний в день | Резко меньше шума, реакция на контекст |
| «Движение в кадре» | «Человек у забора» |
| Уведомления хочется отключить | Уведомлениям можно доверять |
| Камера – источник видео | Камера – источник событий |
Каждое подтвержденное событие фиксируется в ленте, прилетает снапшотом в приложение или в Telegram-бот. То самое тридцать первое уведомление про ветку больше не приходит.
И что важно: решение не заперли внутри облака Faceter. Детектор доступен и как отдельная утилита для OpenIPC: его можно встраивать в собственные скрипты и системы как готовый строительный блок. По сути, в экосистему открытого железа добавился недостающий модуль: легковесный и точный классификатор «человек / не человек».
У этой истории есть эффект, который выходит за рамки одного детектора. Интеллектуальная аналитика уже не привилегия нового и дорогого оборудования. Проблема большинства массовых решений не в слабом железе, а в «слепоте к контексту»: универсальные прошивки делаются для глобального рынка и плохо учитывают конкретные условия конкретной камеры, отсюда и ложные срабатывания.
Опыт интеграции с OpenIPC показал обратный принцип: умное наблюдение достигается не заменой железа, а глубокой инженерной работой поверх того, что уже есть.
И это результат кооперации двух отечественных команд: открытой экосистемы OpenIPC и облачной платформы Faceter. За саму возможность такой интеграции команда Faceter благодарна сообществу OpenIPC: без открытой прошивки этого проекта подобраться к «железу» так близко было бы попросту невозможно.
Еще больше обзоров, кейсов и полезной информации о видеонаблюдении в нашем официальном Telegram-канале. Подписывайтесь, чтобы оставаться в курсе важных событий.