В рубрику "All-over-IP" | К списку рубрик | К списку авторов | К списку публикаций
Одно из важнейших направлений внедрений, где будут особенно полезны нейронные сети – это решение задач видеоаналитики для "Безопасного города". Уже сегодня существуют алгоритмы, работающие на глубоких нейронных сетях (распознавание лица, человека и др.), которые можно вживить на чип на борту камеры.
Обычные полносвязные сети существовали с давних времен. В 1988 г. были придуманы конволюционные (сверточные) сети, а отдельно от них в 2006 г. – глубокие сети.
Революция в машинном зрении случилась в 2011 г., когда были собраны в первом виде глубокие сети для задач машинного зрения и прошла первая волна публикаций о глубоких сверточных нейронных сетях в распознавании изображений.
Ключевые плюсы таких сетей:
У нейронных сетей есть и минусы:
Начиная с 2015 г. на всех общедоступных базах был совершен значительный рывок в распознавании, и можно утверждать, что лучшие российские системы распознавания лиц являются и лучшими в мире – три российские компании входят в топ-5 по базе NIST. Если раньше можно было распознать лицо только во фронтальном ракурсе, то сейчас это возможно сделать практически во всех ракурсах.
Классические системы распознавания построены на предварительных предположениях: моделирование фона, разделение Foreground и Background (неподвижный фон и движущиеся объекты на нем). Но это противоречит восприятию человека, так как человек и без признака движения может легко определить людей, находящихся в его поле зрения. Сейчас происходит переход от предположений о сцене именно к распознаванию отдельных объектов и используются не признаки движения, а только факт наличия объекта типа "человек на сцене". Сегодня вероятность распознавания силуэта человека уже очень хорошая – ошибки 1-го и 2-го рода составляют порядка 1% на данных среднего и высокого качества.
Задача реидентификации может быть решена во многих спектрах.
Первый (очевидный, но редко запрашиваемый заказчиком) – это передача человека или другого объекта видеонаблюдения от одной камеры к другой, когда его нужно подхватить с тем же ID, с которым он двигался до этого. Раньше эта задача в определенной степени решалась, но если человек на одной камере был в одном ракурсе, а на следующей – уже в новом, то не все алгоритмы идентификации хорошо справлялись. Второй – поиск человека или другого объекта в базе данных по описанию, сформированному оператором, или фотографии.
Сейчас подход к реидентификации построен на генерации Deep ID для объекта (человека, автомобиля и др.) с последующим сравнением шаблона с шаблонами других объектов (контрастные, цветовые признаки и т.д.). Более того, можно рассматривать образ человека как лицо при распознавании – то есть шаблоны внешнего вида людей загружаются в базу данных и после конкретного события, если нужно пробить образ человека по базе данных, по нему строится Deep ID, сравнивается с шаблонами, и выдаются все вхождения человека, но не по лицу, а по внешнему виду. Этот спектр задач идентификации сильно вырос и уже стал по-настоящему умным.
Возросли запросы на автоматические системы промышленной безопасности в части ношения средств индивидуальной защиты. Вероятно, это связано с большими штрафами, накладываемыми на те предприятия, которые не обеспечивают ношение СИЗ на производстве. Оператору же системы видеонаблюдения отследить факт отсутствия СИЗ довольно сложно.
Глубокие нейронные сети справляются и с такой задачей – по каждому типу униформы систему придется доучить, но результаты распознавания высоки даже для таких средств индивидуальной защиты, как очки, причем на сравнительно небольших разрешениях, – ошибки 1-го и 2-го рода составляют порядка 5%.
С точки зрения применения нейросетей в промышленности наиболее перспективными направлениями являются следующие:
Когда мы говорим о том, какие алгоритмы интеллектуального видеонаблюдения можно добавить на борт камеры, то очень многое зависит от чипа (его архитектуры, процессора, памяти), который используется для обработки изображений – он получает картинку с матрицы и дальше отправляет ее в сеть. Многие производители открывают доступ к этому чипу, поскольку он практически всегда недогружен и в него можно встраивать модули видеоанализа.
На данный момент в качестве чипа в камерах высокой ценовой категории используется в основном SoC (System on a Chip) на базе процессоров ARM, в которых есть интегрируемые Floating Point Unit или Neon.
Стоит отметить, что общие недостатки классических процессоров перевешивают их плюсы. По сути, плюс только в том, что у них достаточное количество оперативной памяти для загрузки в память нейронной сети. Но ISP в чипе практически всегда закрыт – ни один вендор не открывает ISP, хотя по умолчанию в SoC он доступен для разработчиков.
Практически все производители экономят на количестве памяти FLASH и RAM – урезают ее донельзя, пытаясь удешевить свое решение. Это приводит к катастрофе, когда начинается импорт новых алгоритмов. С алгоритмами предыдущего поколения (обнаружение лиц или движущихся объектов) нет никаких проблем, но сделать что-то на базе глубоких нейронных сетей получается очень редко.
Кроме того, до сих пор даже в достаточно дорогих камерах находится SoC с очень слабым CPU – в основном Cortex-A7, Cortex-A8, Cortex-A9. Дата выхода этих процессоров – 2012–2014 гг., новые ядра ARM в текущих SoC практически не применяются. Архитектуры от NVIDIA и Intel (Altera) FPGA пока не используются в камерах – это дорого.
Архитектуры от NVIDIA представляют больший интерес, поскольку на данный момент все фреймворки для обучения глубоких сетей реализованы с использованием NVIDIA CUDA SDK. После обучения алгоритмов практически ничего не придется делать с нейронной сетью, чтобы заставить ее работать, к примеру, на NVIDIA Jetson, в то время как для плат Intel нужно полностью переделывать и оптимизировать библиотеки работы с нейронными сетями. Тем не менее эффект хороший – в данных SoC есть достаточно места, чтобы внедрить нейронную сеть (FLASH и RAM), необходимая мощность графических ядер, чтобы решать задачи в реальном времени, и поддержка процессора ARM, на который также возлагается определенная часть вычислений (начиная от декодирования картинки и заканчивая простейшими алгоритмами, которые накладываются поверх нейронных сетей или выполняют предобработку).
Какие задачи нейронные сети смогут решать, находясь на борту камер, а какие – нет?
1. Распознавание лиц. Нейросетевые детекторы лиц могут найти лицо по части лица, то есть даже по практически полностью загороженному лицу. Но можно ли их применить на камере? Нет, так как даже на обычных компьютерах, на CPU в Real-Time это практически нереально, поиск лиц работает только на видеокартах.
Зато на камере можно использовать детектор на базе старых алгоритмов, например Виолы-Джонса 2001 г.
Распознавание в реальном времени на камерах также невозможно. Биометрические шаблоны по лицу строятся на стандартных процессорах со скоростью от 250 до 2000 мс. На камерах это можно будет сделать, только когда они сменят свою архитектуру.
Однако можно проводить распознавание в близком к реальному времени – выбирать из трека лиц одно с наилучшим ракурсом и в процессе с низким приоритетом, чтобы не влиять на качество алгоритма детектирования лиц, потихоньку строить для него биометрический шаблон. Это работает хорошо, но небыстро – шаблон строится от 20 до 80 с, время зависит от глубины нейронной сети, с помощью которой распознаются лица. Однако если стоит задача сохранить список тех, кто был на объекте, а не сразу выдавать результат оператору, кто именно пришел, то такая скорость не проблема.
2. Видеоаналитика. Нейросетевой детектор людей и машин на борту камеры сделать не получится – примерная скорость работы текущих алгоритмов 3–5 кадр/с на очень хорошей видеокарте.
3. Реидентификация. Построить шаблон для распознавания человека (по силуэту, одежде и пр.) на камере можно в таких же условиях, в каких применяется построение шаблонов в распознавании лиц, поэтому решить задачу реидентификации с помощью нейронных сетей на борту камеры можно, но не в реальном времени.
4. Нейросетевой детектор оставленных предметов. Такой распознаватель можно внедрить на камеру, так как в оставленных предметах без модели фона не обойтись, а она отлично работает на камере. И далее нейронная сеть будет заниматься исключительно классификацией уже найденного моделью фона объекта.
5. Обнаружение СИЗ. Можно использовать детектор на базе моделей фона, а сверху накладывать нейросетевой классификатор СИЗ – человек в защитной одежде или обычной.
Таким образом, нейросетевые детекторы для всех задач недоступны на текущем уровне развития мобильных процессоров. Но какие-то нейросетевые классификаторы/распознаватели могут быть использованы уже сейчас на процессорах, которые производители камер внедряют в свои устройства.
Текущее положение дел в области нейронных сетей характеризуют четыре основных направления, которые наблюдаются в мире:
1. Глубокие соревнующиеся сети для имитации данных (GAN, Domain Transfer Learning, Zero-Shot Learning). Существенно помогают решить проблему с дополнительным созданием обучающей выборки для нейронных сетей, которые уже занимаются распознаванием.
2. Интерпретация динамической визуальной информации на естественном языке (Action Detection and Prediction, Video Annotation, Video and Language Understanding, Text-to-Video, VQA). Это то, чего все ждут, – Activity and Behavior Recognition, а именно – детекторы драк, объятий, рукопожатий, бега и др. Результаты в понимании поведения улучшились уже в два раза по сравнению с алгоритмами двухлетней давности.
3. Обучение глубоких сетей как активных агентов (Reinforsement Learning, Lifelong Learning). Имеется в виду обучение сети без учителя.
4. Глубокое обучение с использованием структурных моделей, баз знаний и программ логического вывода (Graph Structured CNN, Deep Visual Reasoning). Был совершен большой рывок в сфере Activity and Behavior Recognition. Понимание сцены – это самое высокоинтеллектуальное, что может быть в системе видеонаблюдения. Компьютер будет описывать то, что происходит, например "человек в красной куртке прошел в здание, повернул направо и зашел в конкретную комнату". Это новый уровень взаимодействия человека с компьютером и понимания компьютером того, что происходит на сцене.
5. GANS (Generative Adversarial Networks). Это сети, которые могут сделать из чего угодно что угодно (из зимы лето и обратно, поменять местами зебр с лошадьми и т.д.) и учатся генерировать определенные объекты.
Опубликовано: Журнал "Системы безопасности" #1, 2018
Посещений: 9671
Автор
| |||
В рубрику "All-over-IP" | К списку рубрик | К списку авторов | К списку публикаций