Что такое нейросетевой видеорегистратор
Видеоаналитика на основе нейронных сетей
Видеорегистратор TRASSIR NeuroStation поставляется с несколькими модулями. Интеллектуальный модуль видеоаналитики Human Detector с очень высокой точностью определяет людей в кадре. Детектор фиксирует проникновение постороннего человека в заданную зону, формирует тревожное событие и отправляет уведомление оператору.
Также технология нейронных сетей позволяет существенно сократить количество ложных срабатываний. Поскольку внимание оператора не рассеивается, он может сфокусироваться на событиях, действительно заслуживающих внимания.
Очень полезный инструмент для ритейлеров — детектор очередей TRASSIR Queue Detector. Этот интеллектуальный модуль максимально точно определяет длину очереди перед кассой в заданной зоне. При превышении заданного порога он оперативно информирует администраторов торгового зала посредством e-mail или push-уведомлений.
Поддержка Offload-аналитики — еще один существенный плюс TRASSIR NeuroStation: к нему можно подключить любые не нейросетевые видеорегистраторы TRASSIR (например, MiniNVR). NeuroStation примет и проанализирует видеоизображения.
Offload-аналитика обеспечит обновление системы видеонаблюдения до уровня нейросетевой одним видеорегистратором — вместо замены всего парка. Чтобы получить все самые современные функции, достаточно подключить оборудование для видеонаблюдения к TRASSIR NeuroStation.
В дополнение к этому разработчики обещают расширить аналитические возможности за счет появления новых детекторов автомобилей, людей и велосипедистов. А в дальнейшем к функциям нейроаналитики, доступным на TRASSIR NeuroStation, добавится возможность отслеживать траекторию движения людей и транспортных средств.
До 128 камер
К TRASSIR NeuroStation можно подключить до 128 IP-камер. При этом производитель не устанавливает ограничений по разрешению и скорости трансляции. Поддерживаются кодеки H.265, Н.264, MPEG4, MJPEG.
Видеорегистратор принимает и обрабатывает изображения с других серверов TRASSIR (Offload-аналитика). Новинка оснащена двумя независимыми видеовыходами — DisplayPort и HDMI — для подключения двух мониторов. На передней панели расположены два порта USB 2.0, на задней — четыре USB 3.0 и один USB 3.1. На борту предусмотрено два сетевых порта RJ-45, восемь SATA-интерфейсов для подключения HDD, PS/2 — для клавиатуры.
TRASSIR OS
В фирменную операционную систему TRASSIR OS заложены следующие базовые технологии:
Нейронные сети – это та инновация в области компьютерного зрения, которая имеет огромное значение для всего рынка систем безопасности. Ее значение для развития индустрии сложно переоценить. Использование решений, основанных на нейронных сетях, в видеонаблюдении открывает для отрасли поистине огромные перспективы! Область применения этой технологии практически неограниченна и охватывает широкий спектр задач: от розничной торговли до решений для "Безопасного города".
Для сферы систем безопасности применение нейросетевых решений позволяет совершить серьезный скачок в развитии ситуационной аналитики. Благодаря использованию нейронных сетей наконец становится возможным сделать переход от предположений, основанных на математическом анализе геометрии и цветовых характеристик наборов пикселей, к распознаванию образов.
Такой подход позволяет получить важный результат, а именно однозначный ответ на вопрос, что находится на видеоизображении: человек, машина, домашнее животное или велосипед, скопление людей или подъехавший к воротам самосвал.
Определение типа объекта с очень высокой точностью является одним из важных преимуществ использования технологии нейронных сетей в современной видеоаналитике. Дело в том, что в наше время "классическая" видеоаналитика в реальном времени, к сожалению, уже не справляется с поставленными задачами. Одной из основных проблем является то, что количество видеокамер, интегрированных в различные системы безопасности, постоянно растет, и этот процесс происходит в геометрической прогрессии. Количество поступающих от камер событий также многократно увеличивается, что приводит к большому количеству ложных срабатываний.
Как следствие, оператор оказывается физически не способен эффективно обрабатывать весь поток событий от камер в реальном времени. Для снижения количества ложных срабатываний жизненно необходимой становится возможность заранее настроить типы объектов, на которые должна реагировать система. Для этого нужно наделить систему видеонаблюдения функциями, присущими человеческому мозгу, и научить ее давать оценку происходящему и самостоятельно принимать решения.
Именно эту способность и обеспечивает применение нейронных сетей.
При грамотной реализации разработчиками это позволяет значительно сократить количество ложных срабатываний системы видеонаблюдения. А это, в свою очередь, значительно разгружает операторов и сотрудников службы безопасности, следящих за обеспечением порядка на объекте, и существенно повышает эффективность их работы. Ведь им больше не приходится отвлекаться на огромное количество уведомлений, которые на самом деле оказываются всего лишь ложными тревогами. Вместо этого они могут сфокусироваться на событиях, которые действительно требуют внимания.
Использование технологии нейронных сетей оказывается очень полезным и при решении задач по поиску и анализу информации при разборе инцидентов в архиве. Возможность сортировки по классам объектов заметно сократит время на поиск нужных данных и позволит получить более точный результат.
Помимо этого, преимущество нейросетевых методов анализа изображений заключается в том, что они могут решать некоторые сложные задачи, для которых создать классический алгоритм очень затратно или практически невозможно.
Для этих целей разработчиками используется особенность, характерная для технологии искусственного интеллекта, – возможность к обучению. Именно это обстоятельство делает использование нейроаналитики в видеонаблюдении таким привлекательным и перспективным.
Важным обстоятельством является тот факт, что обучение нейронных сетей можно осуществлять для работы в тех условиях, которые существуют на конкретном объекте. Здесь нужно понимать, что обученные на одной сцене нейросети при их использовании в другой ситуации и окружении могут выдавать совершенно не те результаты, которые от них ожидаются. Идеальные результаты нейросеть будет показывать, только если обучать ее непосредственно на видеоматериалах с конкретного объекта.
На рынке существуют разные производители, которые применяют различные подходы в своих решениях. В рамках нашего обзора мы рассмотрим реализацию технологий машинного обучения и нейронных сетей в видеоаналитике на примере решений от компаний DSSL и Hikvision.
TRASSIR NEUROSTATIONПредоставлен компанией DSSL
Начнем с того, что регистратор от компании DSSL построен на базе компьютерной материнской платы, а сама нейроаналитика задействует ресурсы карты памяти.
В регистраторы устанавливаются мощные карты, такие как Nvidia GeForce GTX.
В зависимости от требуемых объемов обработки видеопотока выбирается мощность карты: 1030, 1060, 1080 и т.д.
Вся аппаратная часть работает под управлением операционной системы TRASSIR. Самое важное, что программное обеспечение пишется под конкретное железо. Таким образом, не получится собрать сервер самому и использовать на нем операционную систему TRASSIR. Этот подход дает большую надежность по сравнению с серверами на операционных системах Windows. Теперь перейдем к самим нейросетям. Обучением системы занимаются программисты DSSL, которые "натаскивают" ее на распознавание нужных типов объектов, предоставляя десятки и сотни тысяч изображений, на которых присутствует интересующий объект. В результате получился уникальный продукт с расширенным функционалом и новыми возможностями видеоаналитики.
Основное преимущество TRASSIR NeuroStation, которое появилось благодаря нейросетевому модулю, – функция распознавания присутствия человека на видеоизображении. Ранее аналитика строилась только на определении лица, движения или появления объекта в кадре, но способа отделить человека от неодушевленного предмета или животного не существовало. Это, в свою очередь, приводило к частым ложным срабатываниям и, как следствие, снижению производительности.
Технология Human Detector в новом TRASSIR NeuroStation позволяет значительно снизить количество ложных сигналов. Например, камера установлена на охраняемой территории и имеет несколько тревожных зон, в которых может проезжать транспорт, но не должен находится человек. Видеорегистратор обрабатывает данные и уведомляет оператора о тревожном событии только в том случае, если в заданной области появился человек. При этом на птицу или автомобиль устройство не среагирует.
На базе Human Detector создана еще одна важная функция – Queue Detector. Эта технология отвечает за подсчет количества людей в очереди и при превышении допустимого количества людей на одной кассе сообщает оператору.
На базе нейроаналитики также уже работает распознавание автомобильных номеров, а в скором времени будет доступен и обновленный детектор лиц.
Еще одна важная новинка, присутствующая в этой модели, – это так называемая технология Offload. Данная функция позволяет подключать к TRASSIR NeuroStation любые видеорегистраторы и анализировать все поступающие видеопотоки. Раньше для этих целей приходилось использовать сложную и дорогую систему. Несколько камер на одной территории подключались к мощному видеорегистратору, который проводил всю видеоаналитику.
Если точек, в которых необходимо вести видеонаблюдение, было больше, в каждую требовалась установка отдельного устройства для обработки данных. Теперь же достаточно подключить камеры к самым простым видеорегистраторам (например, MiniNVR), которые имеют только функции записи и хранения информации. Более мощный TRASSIR NeuroStation примет всю информацию и видеоданные и проанализирует потоки со всех точек. При этом сам нейросетевой регистратор не нужно устанавливать в одной из них, он может находится в любом месте, подключаясь к сети через Интернет.
Несколько десятков видеорегистраторов с технологией аналитики может заменить одно устройство, что намного выгоднее и удобнее в обслуживании. Кроме того, для обновления всей системы до уровня нейросетевой и получения доступа ко всем возможностям нейроаналитики достаточно подключить сеть к TRASSIR NeuroStation. Таким образом, эта задача решается установкой всего одного мощного видеорегистратора, без необходимости замены всего оборудования.
Стоит сказать, что технология Offload является функцией операционной системы TRASSIR OS, но впервые появилась именно в модели Neuro-Station.
Существующие характеристики – не предел возможностей TRASSIR NeuroStation. В скором времени на базе нейросетевого модуля и технологии Human Detector будут реализованы функции распознавания велосипедистов, грузовых и легковых автомобилей, а также определение взрослого человека и ребенка.
Одним из критериев мощности видеорегистратора является количество каналов, которые устройство может принять. К стандартному прибору можно подключить от 4 до 32 камер для записи, хранения и обработки видеопотока. Если камер больше, пользователю придется приобрести несколько видеорегистраторов, это дорого и неудобно в использовании. TRASSIR NeuroStation позволяет подключить до 128 каналов, изображение с которых будет архивироваться, анализироваться и одновременно выводиться на монитор!
Следует отметить, что более сложная аналитика требует увеличения вычислительных мощностей. Например, при возможности записи и хранения до 32 каналов обработка данных с одной камеры займет не один, а несколько потоков. Однако даже при таких условиях TRASSIR NeuroStation предоставляет большие возможности для видеоаналитики: до 100 каналов Queue Detector и до 40 каналов Human Detector.
Hikvision Ids-7716nxi-i4/8sПредоставлен компанией Hikvision Russia
Регистратор от компании Hikvision имеет принципиально другую схему организации работы нейросетей. Но обо всем по порядку.
В отличие от TRASSIR тут мы видим nonPC-видеорегистратор с установленной видеокартой. Именно благодаря ей и становится возможна нейроаналитика на данном устройстве. И если регистратор TRASSIR использует стандартные игровые видеокарты, то Hikvision использует специально разработанные модели карт, предназначенные именно для использования с видеорегистраторами. Ядром этих плат также является процессор Nvidia.
В алгоритме нейросети заложено определение человека в кадре, и регистратор способен отличить человека от автомобиля. Нейросетевые технологии помогут и найти похожих людей в архиве, и проанализировать поведение человека. Здесь следует принимать во внимание тот факт, что на данный момент эта функция работает очень стабильно, пока все происходит на одном плане. Но если вдруг неожиданно происходит смена плана или просто изменяется угол наклона камеры, то найти похожего человека в архиве становится очень сложно, электронный "мозг" слабо справляется с этой задачей.
Что касается качества определения присутствия в кадре человека или автомобиля, то тут все на высоте. Человек определяется в 98% случаев, причем на качество определения не влияет установка камеры, если в кадре находится человек, автомобиль то регистратор его определит. Помимо этого, регистратор может определять пересечение линии, вторжение, вход в зону, выход из зоны. Больше никаких детекторов на борту устройства нет. И это еще один подход к организации системы умного видеонаблюдения.
Скорее всего, производитель таким образом полностью разгрузил вычислительные мощности регистратора, давая возможность для более качественной работы нейросети.
В регистраторе нет даже простейшего детектора движения. Но, несмотря на это, устройство имеет множество smart-функций, которые реализованы благодаря аналитике, встроенной в самих камерах. Hikvision имеет богатый ассортимент камер разных форм-факторов со встроенной аналитикой различного назначения, таких как детектор лиц, распознавание различных объектов и т.д. Именно этой аналитикой и способен пользоваться регистратор, обеспечивая выполнение любых поставленных задач.
Этот подход в реализации технологий видеоаналитики говорит о том, что мировые производители (в частности, Hikvision) делают большую ставку на аналитику, работающую на борту камеры. По одному из предположений, многие из них считают, что вычислительных способностей современных видеокамер более чем достаточно для выполнения большинства самых распространенных задач и что аналитика, работающая на камерах, ничуть не уступает аналогичной, работающей на сервере.
Что касается количества камер, с которых устройство может принимать видеосигнал, то данная модель позволяет подключить до 16 каналов. При этом на каждом видеоканале будет доступен функционал детектирования присутствия человека и машин в кадре.
Помимо всего прочего, регистратор обрабатывает видеопоток с камер, имеющих разрешение до 12 Мпкс с частотой 20 кадр/с. При разрешении 8 Мпкс и ниже частота кадров возрастает до 25 кадр/с.
Для ведения архива доступно четыре SATA-разъема, также поддерживаются два жестких диска объемом памяти до 6 Тбайт.
Данная модель является проектным оборудованием, стоимость видеорегистратора предоставляется менеджерами по запросу, в среднем она варьируется в районе 144 990 рублей.
Заключение
Преимущества использования технологий нейроаналитики в современных системах видеонаблюдения очевидны и не вызывают сомнений. Аналитика на базе нейронных сетей обеспечивает более высокую точность распознавания по сравнению с обычными детекторами, применяющимися в традиционных системах видеонаблюдения (VMS). При этом стоимость ее использования будет неуклонно снижаться вместе с наращиванием объема производства и сокращением себестоимости компонентов, необходимых для создания таких систем (прежде всего мощных графических ускорителей).
В нашем обзоре мы рассмотрели два возможных подхода к организации видеонаблюдения с использованием технологий машинного обучения и нейронных сетей. Ни один из них не обладает каким-либо явным преимуществом перед другим, у каждого есть свои плюсы и минусы, и выбор того или иного решения будет зависеть прежде всего от нужд конечного пользователя.
В одном случае наиболее предпочтительным вариантом станет заточенность программного обеспечения под конкретное железо. Такой подход позволяет раскрыть весь потенциал вычислительных мощностей имеющегося железа. Важным моментом при выборе подходящего решения также может стать технология Offload, позволяющая подключать к одному мощному серверу любые видеорегистраторы. Это позволит не устанавливать нейросетевой регистратор на каждом объекте, расположить его в любом удобном месте, добавив при этом всей системе возможности нейроаналитики и значительно сократив расходы на серверы.
Во втором варианте оптимальным выбором станет организация работы нейросетей таким образом, чтобы сервер не был оснащен никакими детекторами в принципе. В этом случае значительно разгружаются вычислительные мощности регистратора, что потенциально дает возможность для более качественной работы нейросети.
Еще одним фактором, влияющим на принятие решения о выборе наиболее подходящего устройства, является возможность дальнейшего обучения нейронной сети. В случае с Hikvision система представляет собой решение Stand Alone. Здесь возможности последующего обучения системы не предусмотрено в принципе, это законченный коробочный продукт. Пользователям предлагается опираться на функционал, который уже заложен в систему разработчиками, или искать более подходящий вариант.
Подход, реализуемый в интеллектуальной видеоаналитике TRASSIR, является принципиально иным. Здесь разработчиками изначально уделяется огромное внимание возможностям дальнейшего обучения искусственного интеллекта и настройки различных нюансов.
Исходя из требований заказчика, работа нейронной сети может быть скорректирована в нужную сторону. В алгоритмы работы могут быть внесены различные исправления и дополнения, которые позволят решению наилучшим образом учитывать обстановку на конкретном объекте. В расчет принимаются все факторы, от условий освещения до угла расположения видокамеры, что позволяет в конечном итоге создать решение, которое будет наиболее эффективно решать поставленные задачи.
Каждый из этих подходов имеет право на существование. А окончательный выбор в пользу того или иного решения может сделать только сам пользователь. При этом в настоящее время все больше и больше усиливается тенденция со стороны производителей оборудования для видеонаблюдения к переносу нейроаналитики непосредственно на борт видеокамер.
Как мы видим, конкуренция между различными подходами к организации работы видеоаналитики на основе нейронных сетей обещает быть весьма захватывающей! Мы, со своей стороны, будем самым внимательным образом следить за развитием ситуации и своевременно знакомить вас с самыми свежими трендами в этой области. И первым шагом в этом направлении станет наш обзор камер со встроенной аппаратной нейроаналитикой, который увидит свет в начале следующего года. Оставайтесь с нами, наступающий 2019 год обещает быть очень интересным!
Сверточные нейронные сети - инновация в области компьютерного зрения, которая имеет огромное значение для систем безопасности. В 2012 году нейронные сети серьезно заявили о себе. С тех пор появилось множество компаний, которые уже воспользовались этой технологией.
Нейронные сети используют Facebook, Google, Amazon, Instagram. Компания Yandex распознает автомобили на фотографиях в приложении Авто CaptionBot от Microsoft - автоматически придумывает подпись к изображениям; WhatDog распознает породы собак.
Нейронные сети могут решать разнообразные задачи
Нейронные сети используются для прогнозирования, распознавания образов, для адаптивного управления системами в робототехники. Вы могли видеть робота, который обучается на основе заложенной нейронной сети. Нейронные сети оказались очень полезными при решении задач определения типов подводных объектов по сигналам гидролокатора и при выявлении фальшивых кредитных карт. Классический и самый популярный вариант использования нейронных сетей — распознавание образов на изображениях.
Использование нейронных сетей в видеонаблюдении открывает для отрасли огромные перспективы и область применения этой технологии: от розничной торговли до решений «Безопасный город». Для сферы систем безопасности — это серьезный скачок в развитии ситуационной аналитики — переход от предположений, основанных на математическом анализе геометрии и цветовых характеристик набора пикселов, к распознаванию образов. Шаг к конкретике и однозначный ответ — это именно скопление людей, или именно человек на рельсах, или именно грузовик подъехал к воротам. Использование технологии нейронных сетей полезно при решении задачи поиска и анализа информации при разборе инцидентов. Возможность сортировки по классам объектов сократит время и позволит получить более точный результат.
Что же такое нейронные сети и как они работают
Идея нейронной сети зародилась в рамках теории искусственного интеллекта. Ученые задумались над тем, как просто человек может узнать знакомого, если он, например, сбрил бороду, надел очки и похудел. Родилась идея - создать компьютер, который может распознавать объекты по внешнему виду или по другим признакам. Нейронные сети применяются при решении когнитивных задач, например, понимание обычного разговорного языка. Наверно самое большое преимущество нейронной сети — возможность обучаться и исправлять ошибки.
Нейронная сеть – состоит из множества взаимодействующих простых процессов или функций – нейронов и связей между ними. Нейроны образуют слои. В слоях нейроны не связаны между собой, но они связаны с нейронами предыдущего и следующего слоя. Точность и достоверность результата зависит от количества слоев и нейронов в сети. Выбор архитектуры нейронной сети зависит от типа решаемой задачи. Чем больше слоев и нейронов – тем точнее будет результат, ниже вероятность ошибок и выше надежность. Но если построить сеть с очень большим количеством слоев и нейронов – это серьезно скажется на производительности.
Классический пример работы с изображениями
Классификация изображений – решение, когда на основе входного изображения получается на выходе его классификация (например, это кошка, это собака, это человек и т. д.) или вероятность принадлежности объекта к какому-то классу. Для людей это простая задача. Один из навыков который мы получаем с рождения. Не задумываясь, мы можем быстро и легко идентифицировать окружающую среду, в которой мы находимся, и объекты, которые нас окружают. Когда мы видим изображение, или когда мы смотрим на окружающий нас мир, мы можем сразу охарактеризовать сцену и классифицировать объекты. Компьютеры лишены этих навыков.
Когда компьютер видит изображение, он видит массив значений пикселей. Цифры – единственные входные данные доступные для компьютера. В зависимости от разрешения и размера изображения это будет массив чисел. Вы даете компьютеру массив чисел, и он будет выводить числа, которые описывают вероятность того, что изображение будет относиться к определенному классу.
Задача - научить компьютер различать изображения и выяснять уникальные функции, которые делают собаку собакой или кошку кошкой. То есть компьютер должен уметь выполнять процесс, который происходит в нашем сознании подсознательно. Использование технологии нейронных сетей делает все это возможным.
Веб-браузеры медленно но верно реализуют большинство функций операционной системы, и остается все меньше причин разрабатывать нативное приложение, если можно написать веб-версию (PWA). Кроссплатформенность, богатое API, высокая скорость разработки на TS/JS, и даже производительность движка V8 — все идет в плюс. Браузеры уже давно умеют работать с видеопотоком и запускать нейронные сети, то есть мы имеем все компоненты для создания системы видеонаблюдения с распознаванием объектов. Вдохновленный этой статьей, я решил довести демо-пример до уровня практического применения, чем и хочу поделиться.
Приложение записывает видео с камеры, периодически отправляя кадры на распознавание в COCO-SSD, и если обнаружен человек — фрагменты видеозаписи порциями по 7 секунд начинают отправляться на указанный емейл через Gmail-API. Как и во взрослых системах — ведется предзапись, то есть мы сохраняем один фрагмент до момента детекции, все фрагменты с детекцией, и один после. Если интернет недоступен, или возникает ошибка при отправке — видеозаписи сохраняются в локальной папке Downloads. Использование емейла позволяет обойтись без серверной части, мгновенно оповестить хозяина, а если злоумышленник завладел устройством и взломал все пароли — он не сможет удалить почту у получателя. Из минусов — перерасход трафика за счет Base64 (хотя для одной камеры вполне хватает), и необходимость собирать итоговый видеофайл из множества емейлов.
Проблемы возникли следующие:
1) Нейросеть сильно грузит процессор, и если запускать ее в основном треде — на видеозаписях появляются лаги. Поэтому распознавание помещаем в отдельный тред (воркер), хотя и тут не все гладко. На двухядерном доисторическом линуксе все отлично параллелится, но на некоторых достаточно новых 4-х ядерных мобильниках — в момент распознавания (в воркере) главный тред тоже начинает лагать, что заметно по пользовательскому интерфейсу. К счастью, это не отражается на качестве видеозаписи, хотя и снижает частоту распознавания (она автоматически подстраивается под нагрузку). Вероятно, эта проблема связана с тем, как разные версии Андроида распределяют треды по ядрам, наличием SIMD, доступными функциями видеокарты и т.д. В этом вопросе я не могу разобраться самостоятельно, внутренностей TensorFlow не знаю, и буду благодарен за информацию.
2) FireFox. Приложение отлично работает под Chrome / Chromium / Edge, однако в FireFox распознавание идет заметно медленней, кроме того, до сих пор не реализован ImageCapture (конечно, это можно обойти захватом кадра из <video>, но все равно за лису обидно, ведь это стандартное API). В общем полной кросс-браузерности как не было, так и нет.
Итак, все по порядку.
Получение камеры и микрофона
Здесь мы выбираем главную камеру мобильника / планшета (или первую у компьютера / ноутбука), отображаем поток в стандартном видеоплеере, после чего дожидаемся загрузки метаданных и устанавливаем размеры служебных канвасов. Поскольку все приложение написано в стиле async/await, приходится для единобразия преобразовывать callback-API (а таких достаточно много) в Promise.
Захват видео
Захватить видео можно двумя способами. Первый — непосредственно читать кадры из входящего стрима, отображать их на канвасе, модифицировать (например дорисовывать гео- и временные метки), и затем забирать данные с канваса — для рекордера в виде исходящего стрима, а для нейросети в виде отдельных изображений. В этом случае можно обойтись без элемента <video>.
Второй способ (работающий в FF) — использовать для захвата стандартный видеоплеер. К слову сказать, он потребляет меньше процессорного времени в отличие от покадрового отображения на канвасе, но зато мы не можем добавить надпись.
В приложении используется первый вариант, в результате чего видеоплеер можно отключать в процессе распознавания. В целях экономии процессора запись осуществляется из входящего стрима, а отрисовка кадров на канвасе используется только для получения массива пикселей для нейросети, с частотой, зависящей от скорости распознавания. Рамку вокруг человека рисуем на отдельном канвасе, наложенном на плеер.
Загрузка нейросети и обнаружение человека
Тут все до неприличия просто. Запускаем воркер, после загрузки модели (довольно длительного) отправляем пустое сообщение в главный тред, где в событии onmessage показываем кнопку старта, после чего воркер готов принимать изображения. Полный код воркера:
В главном треде функцию grab_video() запускаем только после получения из воркера предыдущего результата, то есть частота детекции будет зависеть от загрузки системы.
Запись видео
При каждой остановке рекордера (мы используем фиксированный интервал) вызывается событие ondataavailable, куда передается записанный фрагмент в формате Blob, сохраняемый в this и отправляемый асинхронно. Да, this.send_chunk() возвращает промис, но функция выполняется долго (кодирование в Base64, отправка емейла либо сохранение файла локально), и мы не ждем ее выполнения и не обрабатываем результат — поэтому отсутствует await. Даже если получается, что новые видеофрагменты появляются чаще, чем могут быть отправлены — движок JS выстраивает очередь промисов прозрачно для разработчика, и все данные рано или поздно будут отправлены / записаны. Единственно на что стоит обратить внимание — внутри функции send_chunk() до первого await нужно клонировать Blob методом slice(), так как ссылка this перетирается каждые CHUNK_DURATION секунд.
Gmail API
Используется для отправки писем. API довольно старое, часть на промисах, часть на колбэках, документация и примеры не обильны, поэтому приведу полный код.
Авторизация. ключи приложения и клиента получаем в консоли разработчика Google. Во всплывающем окне авторизации Гугл сообщает, что приложение не проверено, и для входа придется нажать «дополнительные настройки». Проверка приложения в Гугл оказалась задачей нетривиальной, нужно подтвердить право собственности на домен (которого у меня нет), правильно оформить главную страницу, поэтому я решил не заморачиваться.
Сохранение видео-фрагмента на диск. Используем скрытую гиперссылку.
Управление стейтом в мире веб-компонентов
Продолжая идею, изложенную в этой статье, я довел ее до абсурда логического конца (for the lulz only) и перевернул управление стейтом с ног на голову. Если обычно стейтом считаются переменные JS, а DOM является лишь текущим отображением, то в моем случае источником данных является сам DOM (поскольку веб-компоненты это и есть долгоживущие узлы DOM), а для использования данных на стороне JS — веб-компоненты предоставляют геттеры / сеттеры для каждого поля формы. Так, например, вместо неудобных в стилизации чекбоксов используются простые <button>, а «значением» кнопки (нажата true, отжата false) является значение атрибута class, что позволяет стилизовать ее примерно так:
а получать значение так:
Не могу советовать использовать такое в продакшене, ведь это хороший способ угробить производительность. Хотя… виртуальный DOM тоже не бесплатен, а бенчмарков я не делал.
Офлайн-режим
Напоследок добавим немного PWA, а именно установим сервис-воркер, который будет кэшировать все сетевые запросы, и позволит приложению работать без доступа к интернету. Маленький ньюанс — в статьях про сервис-воркеры обычно приводят следующий алгоритм:
TRASSIR NeuroStation Pro Нейросетевой IP-видеорегистратор
Поддержка 128-и IP-каналов (без ограничений по разрешению, в зависимости от IP-камеры), лицензии на подключение IP-камер преобретаются отдельно, поддерживаемые форматы сжатия H.265/H.265+/Н.264/MPEG4/MJPEG (в зависимости от IP-камеры), базовые модули видионалитики (входят в стоимость): ActiveSearch/MultiSearch/EventSearch/Mobile Client/Fire & Smoke/Face Detector/Sabotage Detector, поддкржка дополнительных модулей видеоаналитики (лицензии приобретаются отдельно), поддержка Offload-аналитики, видеовыходы - DVI-D, HDMI и D-Sub до 1920х1080, 2 Ethernet 10/100/1000 Мбит/с, 4 USB 3.0, 1 USB 3.1, 2 USB 2.0, PS/2, 8 HDD любой ёмкости (в комплект не входят), питание AC220 В (600 Вт), диапазон рабочих температур от +10°C до +45°C, габариты 550×430×176 мм (возможна установка в стойку 19", 4U), вес 21.3 кг.
Особенности TRASSIR NeuroStation Pro
• Рассчитан на 128 IP-камер (без ограничений по разрешению). Оборудован двумя гигабитными сетевыми портами Ethernet 10/100/1000 Мбит/с , видеовыходами DVI-D, HDMI и D-Sub, восьмью SATA-интерфейсами для HDD 3.5" любой емкости, четырьмя USB 3.0 и одним USB 3.1 на задней панели, двумя USB 2.0 на передней панели и портом PS/2 для подключения клавиатуры;
• Поддерживает кодеки H.265, H.265+, Н.264, MPEG4, MJPEG (в зависимости от IP-камеры);
• Поддержка основного и дополнительного потоков с IP-камер (DualStream);
• Поставляется с предустановленной операционной системой TRASSIR OS с комплектом базовых функций. Лицензии на подключение IP-камер в комплект не входят, необходимо преобретать;
• Базовые модули видионалитики (входят в стоимость):
- ActiveSearch - интеллектуальный высокоскоростной поиск видеофрагментов в архиве;
- MultiSearch - поисковый функционал, позволяющий в одной выбранной области одновременно воспроизводить несколько фрагментов архива, относящихся к разным временным точкам;
- Mobile Client - сетевая функция управления системой видеонаблюдения TRASSIR, Web-клиент с максимальным функционалом, по характеристикам идентичным desktop-приложению TRASSIR Client.;
- Fire & Smoke - детектор дыма, основанный на анализе изображения, и детектор огня, построенный на базе математического подсчета. Оба детектора срабатывают и оповещают оператора гораздо быстрее противопожарных датчиков;
- Face Detector - модуль обнаружения и сопровождения лиц с занесением их в базу данных;
- Sabotage Detector - детектор саботажа, контролирующий качество сигнала и обнаруживающий потерю связи, заслон или засветку объектива камеры, расфокусировку, изменение зона обзора;
- EventSearch - событийный поиск с фильтрацией по ключевым словам;
• OFFLOAD-АНАЛИТИКА
NeuroStation Compact получает от MiniNVR или другого сервера TRASSIR данные, анализирует их, после чего скрипт отправляет отчет, в том числе в виде web-страницы, на локальный сервер или клиент. Возможно совместное использование обычных камер и камер с аналитикой;
• Опциональные модули видионалитики (лицензии приобретаются отдельно), все модули поддерживают Offload-аналитику (обработка данных, поступающих с других серверов):
FACE RECOGNITION
Интеллектуальный модуль распознавания и поиска лиц в базе данных. Включает в себя функционал Face Search, Face Detector. Базу данных можно сформировать или импортировать. Предусмотрен экспорт базы в файл. В многосерверной системе TRASSIR, можно использовать базу, установленную на одном из серверов TRASSIR, для распознавания лиц на нескольких серверах. При нестабильном канале связи рекомендуется полностью дублировать БД на локальный сервер;
AUTOTRASSIR
Интеллектуальный модуль распознавания государственных регистрационных знаков автомобилей - автоматически идентифицирует номера, находящиеся в поле зрения видеокамеры. Распознает номерные шаблоны России, Украины, Белоруссии, Казахстана, Грузии, Кыргызстана, Турции, Испании, Молдавии и Тайваня с точностью до 99 %. Система фиксирует проезд интересующего т/с в архиве на скриншотах и фрагментах видео. Формирует отчеты, ведет журнал. Интегрирована с приборами измерения скорости и комплексами безопасности, включающими СКУД и ОПС оборудование (шлагбаумы, ворота);
NEURO DETECTOR
Детектор объектов (люди, головы людей, автомобили, велосипеды) - для обеспечения безопасности. Основан на нейронных сетях. С высокой точностью обнаруживает объекты в кадре. При проникновении постороннего объекта в заданную зону детектор формирует тревожное событие. Предусмотрена фильтрация посторонних объектов и шума, за счет чего значительно снижено количество ложных срабатываний;
CROWD DETECTOR
Детектор чрезмерного скопления людей с настраиваемым порогом срабатывания (количество людей) — для обеспечения безопасности. Основан на нейронных сетях — сокращены ложные срабатывания по сравнению с традиционными детекторами. С высокой точностью обнаруживает объекты в кадре;
DIRECTION DETECTOR
Детектор движения в запрещенном направлении (человека, автомобиля, велосипеда) — для обеспечения безопасности. Основан на нейронных сетях — сокращены ложные срабатывания по сравнению с традиционными детекторами. С высокой точностью обнаруживает объекты в кадре;
WEAR DETECTOR
Детектор определяет наличие спецодежды - по цвету. Помогает контролировать соблюдение техники безопасности — в случае появления сотрудника без спецодежды в зоне обзора видеокамеры отправляет уведомление в реальном времени. С высокой точностью обнаруживает объекты в кадре - благодаря внедрению нейросетевой технологии значительно сокращено количество ложных срабатываний в сравнении с традиционными детекторами;
HARDHAT DETECTOR
Детектор наличия защитной каски на голове сотрудника. Помогает контролировать соблюдение техники безопасности — в случае обнаружения в зоне видимости камеры видеонаблюдения сотрудника без каски отправляет уведомление в реальном времени;
NEURO COUNTER
Нейросетевой счетчик объектов (люди, головы людей, автомобили, велосипеды). Подсчитывает количество пересекающих заданную линию или входящих в зону. Исключает из статистики сотрудников и считает людей по цвету одежды;
QUEUE DETECTOR
Детектор очередей, основанный на технологиях нейронных сетей. Измеряет длину очереди, включает модуль отчетности и оповещения о превышении длины очереди, находит сотрудников по цвету униформы. Совместно с модулем TRASSIR ActivePOS формирует оповещения с учетом количества работающих касс;
STAFF TRACKER
Модуль контроля качества работы персонала в офлайн-ритейле. Staff Tracker формирует статистику наличия необходимого количества сотрудников в различных зонах обслуживания, фиксирует количество обслуженных и оставленных без внимания посетителей, составляет отчет скорости и качества обслуживания, определяет сотрудников по цвету униформы. Формирует доказательный видеоархив. Включает отправку email-уведомлений для real-time реакции.
Технические характеристики TRASSIR NeuroStation Pro
задняя панель:
4 USB 3.0
1 USB 3.1
передняя панель:
2 USB 2.0
1 DVI-D
1 HDMI
1 D-Sub
Возможные варианты доставки:
- Самовывоз с нашего склада по адресу: г.Москва, Переведеновский переулок, дом 18, строение 11, 3-й этаж;
- Экспресс-доставка по Москве и в регионы России компанией СДЭК;
- Доставка в регионы России транспортными компаниями: Деловые Линии, ПЭК, Байкал Сервис и др.
Cтоимость доставки для конкретного заказа/оборудования уточняйте у наших менеджеров, с большой долей вероятности доставка для Вас будет БЕСПЛАТНОЙ!
Подробнее о доставке читайте здесь
Читайте также: