Как работаюи камеры в системе стоимостью 50 млн. рублей?
На платной дороге М1 «Москва-Минск» установлено 120 камер, 25 кадров в секунду, 24 часа в день. Система работает при любых погодных условиях, любом освещении, 1 млрд кадров в день, ошибка определения пешеходов — не превышает 1 человека в день.
Подробнее о камерах и алгоритме под катом.
Платные дороги заботятся о безопасности движения ТС. Кроме заботы о людях, важность предупреждения инцидентов связана с недопущением аварий, которые приводят к остановке движения по дороге. При возникновении любых инцидентов АСУДД должна максимально быстро и точно на это отреагировать. Т.е. если обнаруживается ДТП, то АСУДД должна определить полосы возникновения ДТП, на информационных табло проинформировать водителей держаться в соседних полосах. Причем очень важно, чтобы информация не было ошибочной т.к. если человек несколько раз едет по дороге, ему АСУДД сообщает, что по полосе движение запрещено, а по факту там нет ничего, то на третий раз человек уже не будет обращать внимание на знаки и поедет как есть, что приведет к заторам.
Мне удалось поговорить о работе системы и сложностях в обработке видеопотока с Алексем Дмитриевым, заместитем технического директора компании «Вокорд»
Для решений с АСУДД Вокорд поставляет подсистему обнаружения инцидентов на дороге. В числе обнаруживаемых инцидентов:
- Человек на дороге
- Остановка машины в неположенном месте
- Движение задним ходом
- Посторонний предмет на проезжей части
- Дым
В целом, система состоит из камер и специального ПО на серверах.
Камеры
Камеры производства Вокорд находятся в сегменте машинного зрения, т.е обладают большими светочуствительными сенсорами в диапазоне от 1.4 до 4 МП. Сенсоры используются исключительно с диапазоном цветом 12-16 бит. Камеры работают под управлением процессоров, плюс отдельные модификации с DSP процессорами. На DSP процессорах могут либо выполняться алгоритмы распознавания, либо выполняться сжатие видеопотока, либо еще другие вспомогательные функции.
Внутри камеры с сенсором работает FPGA, который выполняет чтение данных с сенсоров. Данные через LVDS интерфейс передаются из FPGA в системую память камеры. Внутри самой камеры работают алгоритмы управления балансом белого и автоэкспозиции. Автоэкспозиция должна решать задачу обеспечения наилучшего изображения в различных условиях освещенности. Специфика камер для работы с автомобилями в том, что ночью движутся автомобили с включенными фарами, которые стараются “засветить” изображения. В самых первых версиях автоэкспозиции были сложности именно с фарами, т.к. вокруг фар возникает ореол, из-за которого саму ТС было не видно. Особенно это было заметно на камерах, которые стоят на возвышенности и фары ТС светят прямо в камеру.
Внутри камеры есть ограничение на количество ресурсов, доступных для работы модуля автоэкспозиции, поэтому автоэкспозиция не работает с полным видеокадром, а работает с гистограммой яркости. Для сравнения — полный несжатый кадр, снятый с сенсора 1.4 МП имеет размер 1280*1024*16 бит = 2.5 МБайт, при потоке же 25 кадров в секунду поток видеоданных составляет уже 65 МБайт. Столько ресурсов внутри камеры нет, поэтому FPGA, работающий с сенсором вычисляет гистограмму яркости, те график сколько точек какой яркости есть на исходном кадре. Эта информация для одного кадра требует уже на несколько порядков меньше данных. Сложность автоэкспозиции в этом случае в том, что она должна автоматически на основе анализа гистограммы яркости делать вывод о происходящем на картинке.
Например, так выглядит картинка с камеры, засвеченной солнцем. Абсолютных чудес не бывает и автоэкспозция может путать паттерны на графике, поэтому используется подсказка от окружающей среды. Автоэкспозция, например, учитывает движение солнца вокруг планеты Земля и текущие координаты камеры и ее направление обзора, чтобы сделать вывод, может ли текущая засветка быть вызвана именно солнцем или скорее всего это фары. Если определяется, что засвечивает солнце, то камера переходит в режим компенсации засветки. Если определяется, что фары, то компенсируется точечная засветка фарами. Есть еще пограничные случаи — компенсация теней, компенсация контровой засветки и др.
Автоэкспозиция анализирует паттерны на этой гистограмме и принимает решение что нужно делать с изображением. На изображение можно повлиять с помощью LUT (lookup translation table). LUT позволяет преобразовать изображение из диапазона 16 бит, доступных для камеры, в 8 бит, предназначенных либо для обработки алгоритмами, либо для просмотра человеком. LUT передается в FPGA, которые применяет его для каждого кадра. Скорость работы автоэкспозиции определяется частотой кадров, те за время, не большее чем 40мс, уже должна быть рекомендация о новом значении LUTa.
Текущее поколение камер передает одновременно 4 потока видео с разными кодеками и разными параметрами. Изначально, не было разделения, видеопоток нужен для человека или для работы алгоритмов распознавания. В результате все время пытались найти баланс между изображением, пригодным для человека (высококонтрастным, ярким) и пригодным для распознавания (высококонтрастным, но темным). Баланс найти так и не удалось, поэтому было принято решение не пытаться мешать теплое и мягкое и в результате камера вещается разные потоки для разных целей. И LUT играет здесь определяющую роль.
На самом деле, текущее поколение камер уже 4-е. В самом начале камеры были довольно простыми устройствами, которые состояли только из сенсора и простейшего FPGA, способного передавать изображение на компьютер для обработки. Все управление камерой осуществлялось на компьютере, команды на применение настроек отправлялись в камеру напрямик. Камеры работали, но было очень сложно обеспечивать хорошие результаты т.к. Всегда была задержка передачи видео на компьютер и команды в обратную сторону. Третье поколение камер пыталось решить проблему задержки управления путем более мощного FPGA и переноса большей части логики управления камерой с компьютера в саму камеру, но кардинальных улучшений тут достичь не удалось. Текущее, 4-е поколение, уже сделало камеру полностью автономным устройством. В итоге, каждая камера вещает 5 потоков: RAW-поток (без сжатия, 16 бит), 2 потока JPEG (для человека и компьютера), 2 потока H.264 (для человека и компьютера).
Фиксация нарушения
Наши системы распознавания инцидентов лучше всего работают с нашими же камерами, это связано с тем, что камера и система распознавания работают в тандеме, когда камера знает требования алгоритмов и готовит картинку для анализа сразу с учетом этих требований, что позволяет получить и более высокие результаты и требовать меньше процессорных ресурсов. Будущее поколение камер планируется уже на более мощных DSP, процессорах, чтобы внутри камер можно было решать задачи детектирования инцидентов полностью самостоятельно.
Распознавание инцидентов
После получения видеопотока с камер, даже в самом лучше качестве, с ним нужно что-то делать. В нашем случае это детекторы пешеходов, ДТП, остановки ТС, движения задним ходом, детектор дыма и посторонних предметов.
Детектор пешеходов
Самая первая версия, которую мы использовали — работала на основе AdaBoost и выбранных нами фич для adaboost’a. Часть пешеходов можно было обнаруживать, другую часть обнаруживать не получалось, но общим в них было то, что люди являются очень вертлявыми созданиями, которые способны очень быстро менять свой внешний вид. Например, когда автомобиль едет, он за счет инертности достаточно долго (с точки зрения компьютера) находится в одном и том же ракурсе и плавно переходит из одного в другой. Например, машина не может на 0.3 секунды вдруг развернуться и встать боком к камере, а человек это сделать может и делает регулярно. Более того, на каждом кадре человека распознать тоже не удается, поэтому в реальности пешеход с точки зрения видеоаналитики то появляется на каком-то кадре, то исчезает на втором, а потом появляется уже в другом месте на 5-м кадре. Если система на каждый кадр обнаружения пешехода будет создавать отдельное событие — такую систему быстро отключат, поэтому необходимо вести трек движения человека, чтобы на одного человека давать ровно одно событие распознавания.
Чтобы это стало возможным, вторым алгоритмом, который был разработан — стал алгоритм SLD (self learning detector). Смысл алгоритма в том, что он пытается отслеживать объекты, которые быстро меняют свой ракурс и учитывать это в трекинге объектов. SLD строит зональное представление объекта, выделяет специальные фичи в этом объекте, затем на следующем кадре SLD пытается искать близкий к первоначальному объект. Т.е. Допускается, что часть признаков объекта уже изменилась, но часть все еще остается прежней. Поэтому нужно взять оставшиеся признаки, отбросить исчезнувшие и добавить новые. Конечно, есть алгоритмы типы SIFT или SURF, которые могут решать аналогичные задачи, но пешеходы в кадре вдалеке достаточно малы — 30 точек — и на изображениях такого размера надежно выделить какие-либо признаки стандартным образом оказалось невозможным.
Трекинг пешеходов решил проблему с большими количество срабатываний, однако на фоне этого появился новый класс проблем — ошибки распознавания пешеходов. Ночью, в тусклом свете, в тенях от фонарей вдоль дороги стали появляться ложняки. Для решения этой задачи мы начали усовершенствовать детектор. Детектор на основе AdaBoost остался, но была необходимость в более надежном определении людей. В результате сначала начали использовать стандартный детектор пешеходов из OpenCV. Однако, ситуацию ночью это никак не улучшало т.к. Оказалось, что детектор работает в черно-белом режиме, поэтому ночью он продолжает ошибаться в тех же тенях. В результате было принято решение делать свою нейросеть для распознавания пешеходов. За основу классификации был взят SVM и HOG, но уже в не черно-белом изображении, а в цветном, в цветовом пространстве HLS. Ситуация опять улучшилась, но проблемы стали создавать блики фар на дороге после дождя. Эти блики, действительно, похожи на человека, даже не на человека, а на привидение, такие, парящие души, поэтому появилась задача их отбраковывать.
Первые версии пытались отбраковывать человека на основании трека и скорости движения человека. Действительно, блик пешехода от фар двигается со скоростью самой машины, а человек довольно редко бегает со скоростью 60-80 км/ч, однако это не решило проблемы целиком т.к. все равно оставались ситуации, когда распознавание обнаруживало на тени на асфальте пешехода, трек предсказывался неправильно и в результате ложный объект “двигался” со скоростью пешехода. Быстрые алгоритмы, способные вести несколько десятков людей на одном кадре закончились, после чего приняли решение о запуске тяжелых алгоритмов. Тяжелые алгоритмы требуют много вычислительных ресурсов, поэтому вызываются несколько раз за все время жизни трека, однако с очень высокой точностью позволяют отбраковать оставшиеся несколько событий в день, содержащих ложных пешеходов.
Чем оперативнее обрабатывается информация о ЧП на дорогах — тем больше возможностей для принятия решения. От качества систем подобного рода очень часто зависят человеческие жизни. Лично мне очень приятно, что данная система целиком сделана в России.
Вокорд активно ведет новые технологические разработки в области видеоанализа и специализируется на задачах машинного зрения и распознавания образов. Работа над проектами ведется много лет большим количеством первоклассных специалистов. Это непрерывный процесс, результаты которого становятся заметны обывателям только на конечной стадии, когда готовое технологическое решение можно предложить рынку. Со стороны воплощение ещё недавно казавшихся фантастикой идей может выглядеть лёгким и быстрым, но на самом деле за этим стоит огромная работа.
«Вокорд» — резидент Сколково
Все решения компании Вокорд основываются на собственных уникальных высокотехнологичных разработках команды и уже получили широкую известность на российском рынке. Технологическая новизна и высокие конкурентные преимущества
перед аналогами позволили Вокорду стать резидентом кластера информационных технологий Фонда «Сколково» в 2011 году с проектом «Исследования, разработки и коммерциализация технологий машинного 3D-зрения, моделирования и распознавания объектов реального мира». Продукт VOCORD FaceControl 3D получил грант в размере 20 млн руб. Финансирование позволило существенно доработать технологию биометрического распознавания лиц.
«Статус резидента Сколково усилил наши позиции в России. Мы продолжаем экспансию на международные рынки и извлекаем прибыль из технологий распознавания лиц. VOCORD FaceControl уже успешно решает проблемы российских и зарубежных заказчиков в ритейле, банках, в сфере обеспечения безопасности на спортивных объектах и объектах массового посещения людей, таких как транспортные узлы, торговые центры, массовые мероприятия и других, – рассказывает генеральный директор Вокорд Тимур Векилов –Кроме того, на площадках Сколково регулярно проходят мероприятия разного формата. В них мы принимаем участие и в качестве докладчиков и участников открытых дискуссий. У нас есть замечательные возможности для обмена опытом с лучшими отечественными и зарубежными специалистами в области биометрии и робототехники. Это хорошая площадка и для презентации наших готовых решений. Например, летом мы представили систему фиксации ПДД в ночное время VOCORD Traffic. Наши оригинальные алгоритмы обработки изображений получили массу положительных отзывов от коллег по цеху».
Какие выгоды Вы получаете от сотрудничества с «Сколково»?
Резидентство в ИТ-кластере «Сколково» позволило Вокорду осуществить и ряд совместных проектов с компанией «Ростелеком». Сотрудничество в рамках проектов «Безопасный город» продолжается третий год. Основная их цель — снижение смертности на дорогах и улучшение криминогенной обстановки на улицах городов.
«В «Сколково» работает замечательная команда, отзывчивая и профессиональная. Наши менеджеры знакомят нас с экспертами высочайшей квалификации и предоставляют профессиональную и востребованную специалистами площадку обмена мнениями. Благодаря Фонду «Сколково» у нас есть не только возможность участвовать в международных конкурсах передовых технологий, но и возможность получить грант на новое решение, которое будет востребовано рынком. Сколковчане всецело помогают нам двигаться к нашей цели – созданию универсальных модульных продуктов, которые применяются в самых разных сферах. Безусловно, мы планируем продолжать сотрудничество с Фондом «Сколково» по самым разным направлениям», – сказал генеральный директор Вокорд Тимур Векилов.
P.S.: Если есть интерес могу написать пост о других частях системы, а так же о технологии распознавания лиц VOCORD FaceControl. Смело задавайте свои вопросы — я переадресую их для скорейшего получения ответа.
ссылка на оригинал статьи https://geektimes.ru/post/274937/
Добавить комментарий