Релиз «Рувер» — наше программное обеспечение для камер видеонаблюдения

5dbaa38affed105a3379597f26c3c700.jpg

Приветствуем всех хабрчан! Ранее мы уже публиковали статью про разработку собственного программного обеспечения для камер видеонаблюдения. В статье рассказывали через что мы прошли и с какими трудностями мы столкнулись. Было не легко, но мы справились и получили ценный опыт на пути к собственной разработке! Мы проделали долгий тернистый путь от рождения Nexus, когда набивали шишки, к Рувер — созданную полностью с нуля прошивку. Фактически мы проводили разработку четыре раза с чистого листа, приобретая опыт от чипов HiSi до Mstar. Когда понимали, что разработка уперлась в стену, то несколько раз нам приходилось менять архитектуру с нуля. Сегодня это полностью отечественная прошивка без каких-либо «черных ящиков» от китайских компаний, прошивка, исходные коды которой, мы с легкостью готовы передавать в 8-ой центр ФСБ для исследования на отсутствие недекларированных возможностей, прошивка, развитием которой занимаемся целиком мы сами.

И вот наступил новый этап! Рувер вышел в релиз. Мы готовы с гордостью представить вам новый функционал нашего ПО.

Новые фичи

Ниже будут перечислены фичи с кратким описанием и применением. Конечно, многие из них являются стандартными для «породистого» оборудования видеонаблюдения, и мы это хорошо понимаем. Но в любом случае список функций и опций будет постепенно увеличиваться, развитие прошивки не останавливается, и приоритеты расписаны на год вперед. Однако, приоритеты двигаются, если какой-либо Заказчик остро нуждается в какой-либо специфической функции, которую для него мы поднимем вверх в приоритете.

Стабильный поток

Одной из приоритетных задач было создание идеального стабильного потока. Была поставлена цель — опередить именитых конкурентов из Азии. И эта цель была достигнута! Мы добились супер стабильного потока благодаря уникальным инновациям НИЦ «Технологии», и теперь в этом вопросе крупнейшие азиатские бренды остались позади.

IRIS

Некоторым заказчикам очень важно наличие функции IRIS (автодиафрагма), позволяющая камере автоматически изменять размер отверстия диафрагмы при изменении освещенности сцены. Конечно, для некоторых специалистов в сфере видеонаблюдения этот функционал может показаться ненужным. Но у каждого заказчика есть свои требования и условия эксплуатации камер. Поэтому наши разработчики пошли на встречу клиентам, ведь IRIS в видеонаблюдении вполне применим, здесь многое зависит от того, под какой объект и с каким техническим заданием необходимо создавать систему безопасности. Вы запросили — мы сделали и внедрили. Теперь будет возможность заказывать в конфигураторе нашего производства камеры с опцией DC-IRIS: https://www.electronic-machines.ru/configurator/ip-kamery. В скором времени мы обновим конфигуратор производства для заказчиков!

А еще есть фича, что видео в веб-морде камер можно просматривать в любых браузерах! Это не особое ноу-хао, но тем не менее, хотелось сделать это удобным для пользователя.

ROI

Функция ROI для ip камер позволяет выбрать на изображении конкретные области интереса, в которых поток будет сжиматься с более высоким качеством, чем изображение вне зонах интереса. В случаях повышенной активности в кадре, когда камере не будет хватать битрейта, ROI оптимизирует поток так, что качество потока в выделенных зонах будет наилучшим.

Режим коридора

Коридорный режим в камерах позволяет менять изображение на вертикально-ориентированный формат с подходящим соотношением сторон (9:16, 3:4). Коридорный формат удобен для ряда локаций — просмотра длинных коридоров, периметра промышленного предприятия (забора) или тоннелей метро. Фактически вот, что происходит при переходе в коридорный формат — вертикальные и горизонтальные углы обзора меняются между собой, и, соответственно, камера «видит» больше по вертикали и меньше по горизонтали. В результате, при использовании коридорного формата на прямых участках периметра, коридора, тоннеля и т.п. можно сэкономить на количестве камер, т.к. при данном режиме работы существенно уменьшается слепая зона. Но за это придется заплатить уменьшением обзора по горизонтали.

Раздельные настройки режима день/ночь

Наши разработчики реализовали два независимых набора настроек, один для дневного режима съемки, второй для ночного.

Ночные и дневные настройки для камер видеонаблюдения резко отличаются: если в дневное время камерам необходимо бороться с избыточной яркостью, а также возможными пересветами изображения, то ночью необходимо выдавать изображение с минимальным количеством шумов и высокой детализацией. Два набора настроек позволяют получать оптимальное изображение и в дневное, и в ночное время. Достаточно выставить оба комплекта настроек согласно условиям эксплуатации, а также задать расписание работы для системы переключения между двумя режимами.

Наши специалисты рекомендуют использовать автоматическое переключение. При нем камера будет переключаться в зависимости от уровня освещенности, используя специальный датчик, и подстраиваться под текущие условия смены дня и ночи. Однако для специфических сцен (например, нужно видеть номер автомобиля с включенными фарами ночью) настоятельно рекомендуем проводить более тонкую настройку.

Адаптивная ИК-подсветка

В камере появилась функция адаптивной Ик-подсветки, где камера самостоятельно может управлять мощностью диодов. С помощью адаптивной ИК-подсветки можно избавиться от сильного пересвета объекта в кадре за счёт уменьшения её мощности.

Также мы добавили для пользователя возможность выбора мощности подсветки. Менять мощность можно с помощью передвижения ползунков в интерфейсе.

Детектор пересечение линий

Детектор пересечения линий является аналитической функцией. Данная функция позволяет нарисовать виртуальную линию при пересечение которой будет осуществляться один из выбранных сценариев в камере: вывод сообщения в OSD, перевести камеру в день, перевести камеру в ночь.

Детектор движение

Детектор движение также является аналитической функцией. Наше ПО фиксирует изменение в кадрах и идентифицирует движение. Можно также задать на экране зоны детекции движения, чтобы фиксировать их в строго заданных на экране областях и исключить триггеры в нерелевантных для клиента местах.

Режим 60 кадров

В 8 мп камерах появилась возможность работы с 60к/с. Данная функция хорошо подходит для ускоренной съёмки. Её используют для получения эффекта замедленного движения. К примеру для аналитики распознавания номеров на скорости это функция будет очень полезной.

Настройка групп учетных записей

Наши разработчики реализовали расширенную настройку групп учетных записей пользователя. Теперь можно управлять правами пользователей с разными настройками доступа. Количество учетных записей без ограничений.

Поддержка кодека Opus

Аудиокодек Opus в нашем ПО открывает новые возможности. Теперь оператор может услышать весь звук с микрофона прямо в веб-интерфейсе. Также данный аудиокодек обладает рядом преимуществ:

  • Адаптация к изменению пропускной способности канала.

  • Качество звука остаётся неизменным, а кодек частично компенсирует потери, обеспечивая трансляцию без сбоев.

  • Низкий уровень задержки. Кодек обеспечивает практически не ощутимую задержку (26,5 мс).

  • Выделение речевой информации из общего аудиопотока. Это позволяет расходовать пропускную способность канала максимально эффективно.

  • Восстановление данных в случае потерь на плохих каналах. Кодек использует стандартизованную методику FEC (Forward Error correction) для исправления сбоев и ошибок при передаче данных.

  • Высокая производительность на различных архитектурах. Кодек работает хорошо даже на мобильных устройствах с процессорами ARM.

Улучшен режим мультикаста

Режим мультикаста — это способ передачи видеопотока, при котором камера отправляет данные одновременно нескольким получателям (например, серверам или клиентам) через одну передачу в сети. Вместо создания отдельного соединения для каждого устройства, мультикаст оптимизирует использование сетевых ресурсов, уменьшая нагрузку на камеру и сеть. Это особенно важно при работе с несколькими мониторами, серверами записи или системами аналитики, обеспечивая масштабируемость и стабильность системы видеонаблюдения.

Наш режим мультикаста теперь работает по всем принятым стандартам. Можно передавать данные, не перегружая систему. Для некоторых особых заказчиков теперь мультикаст работает не только канонично по Any Source или Specific source multicast, но также как у всеми нами любимых камер Axis.

Безопасность ip камер — хорошие пароли

Безопасность наших клиентов является одной из приоритетных направлений. Одним из самых уязвимых звеньев в системах безопасности является слабый пароль ip камеры, который стоит по дефолту, и с «рождения» никогда не меняется. Но это тема отдельной статьи. В Рувере не будет простых паролей, система будет требовать сложные. Теперь никаких admin, qwerty, 12345 и прочих.

Стандарт Open API

Мы внедрили Open API, чтобы заказчик смог интегрировать наше ПО «Рувер» под свои системы быстро и удобно.

Поддержка ГЛОНАСС

Мы продолжаем интегрироваться в отечественные системы! Поступила задача от Заказчика — и мы развели модуль, написали небольшое ПО и интегрировали его в прошивку Рувер. Теперь в наши камеры можно встраивать модуль ГЛОНАСС. Наши камеры могут подключаться к спутникам, а в интерфейсе выводятся точные географические координаты и абсолютно точное время. Благодаря подключению к системе ГЛОНАСС наши камеры можно использовать на флоте и на железнодорожных составах, в этих сферах, как вы понимаете, навигация имеет важнейшее значение. Также видеоматериал с наших камер можно смело использовать в качестве доказательств в суде — подлинность видеозаписи устанавливают в соответствии с местом установки камеры и ее координатами в строке оверлея. Прохождение метрологии впереди.

Поддержка 4G

Пришел запрос от потенциального заказчика — и мы его реализовали. Мы спроектировали небольшой модем, написали к нему прошивку, интегрировали в прошивку Камер и в конфигурацию электронных модулей камер. Камера видеонаблюдения с 4g — это современные реалии, и наша прошивка «Рувер» уже соответствует актуальным требованиям. Кстати, хотим напомнить, что и в наших камерах «Рувер» есть раздел для сим-карт, чтобы клиенты смогли передавать данные по мобильной связи. Опция в скором времени будет доступна в конфигураторе: https://www.electronic-machines.ru/configurator/ip-kamery.

Фиксирование логов камеры

В камерах теперь появилась функция логирования, которая позволяет быстрее разбираться с проблемами если они возникают на камере. Но данная функция закодирована и будет передаваться специалистам технической поддержки для детального изучения.

Отображение сессий

С помощью отображения сессий оператор может отслеживать кто на текущий момент использует камеры и с какого ip адреса.

Наше ближайшее будущее

В ближайшем релизе мы планируем реализовать следующие функции:

  • Добавить протокол https.

  • Сделать стандарт IEEE 802.1X.

  • Реализовать детально настраиваемое изображение в интерфейсе.

  • Внедрить интеграцию сенсоров 2/5/8,12 MP от Starvis 2 в Global Shutter.

С какими проблемами мы столкнулись

Разработка собственного ПО всегда затрагивает множество проблем. Сложность разработки программ у каждой команды может касаться абсолютно разных вещей. Мы хотим поделиться своим опытом, с чем мы столкнулись и что мы преодолели.

Проблемы в коммуникации

Одной из основных проблем является непонимание. Порой разработчикам приходилось работать без четких требований к конкретному результату, когда нужно было реализовать что-то, но не сообщалось, что в итоге должно быть. Также иногда в разработке работа велась с ориентиром на обратную связь. В целом, часто не хватало четкого технического задания, на который можно было бы опереться.

Решение проблемы импорта/экспорта настроек

Реализация импорта/экспорта настроек — довольно сложная вещь. Для разработки этого функционала нужно было затронуть весь проект на 100%. Важно было предусмотреть обратную совместимость с прошлыми и будущими версиями. Плюс есть множество нюансов, которые зависят от конкретной платформы. Например, камеру нужно перезагрузить перед применением какой-нибудь настройки, а значит экспорт данного параметра нужно сделать в последнюю очередь и как-то предупредить пользователя. Такие вещи могут отличаться от платформы к платформе и нужно найти универсальное решение.

Управление подсветки по яркости изображения

Эту фичу тоже было очень тяжело реализовать. Основная проблема заключалась в том, что не было возможности получить нормальное освещение без ИК-подсветки. Если включается ИК-подсветка, то изображение становится ярче, а хотелось бы получить освещение без учета подсветки. Подсветка должна работать от уровня освещенности, но когда её активируешь, то приложение считает, что стало светло, а на самом деле это освещение от подсветки. Разработчикам пришлось выдумывать как учесть яркость с которой светит подсветка. Если не учитывать подсветку, то приложение будет думать, что после смены режима ночь сразу настал день и так по кругу.

Вывод

Опыт разработки Рувера показал на что способна команда. Мы гордимся результатом — нашим продуктом, который клиенты оценят по достоинству. Но разработка также обозначила проблемы в процессах, которые мы обязательно будем улучшать.

Не забывайте подписываться на наши соцсети VK, Telegram, Rutube и YouTube. Также заходите на наши сайты НИЦ Технологии и Рувер. До встречи!

© Habrahabr.ru