Контакты
Подписка
МЕНЮ
Контакты
Подписка

Нейронные сети для задач промышленности и безопасности. Встраиваемые системы машинного зрения нового поколения

В рубрику "All-over-IP" | К списку рубрик  |  К списку авторов  |  К списку публикаций

Нейронные сети для задач промышленности и безопасностиВстраиваемые системы машинного зрения нового поколения

Нейронные сети в последнее время набирают все большую популярность, и интерес к их использованию растет как среди производителей, так и у заказчиков. Рассмотрим, как встраиваемые системы машинного зрения нового поколения на основе глубоких нейронных сетей могут быть применены в реальных проектах для задач промышленности и безопасности
Борис Вишняков
Начальник лаборатории анализа динамических сцен ФГУП "ГосНИИАС"

Одно из важнейших направлений внедрений, где будут особенно полезны нейронные сети – это решение задач видеоаналитики для "Безопасного города". Уже сегодня существуют алгоритмы, работающие на глубоких нейронных сетях (распознавание лица, человека и др.), которые можно вживить на чип на борту камеры.

Глубокие нейронные сети – что это?

Обычные полносвязные сети существовали с давних времен. В 1988 г. были придуманы конволюционные (сверточные) сети, а отдельно от них в 2006 г. – глубокие сети.

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


Ключевые плюсы таких сетей:

  1. Для обучения глубокой нейронной сети нужно очень много данных, и она не страдает эффектом насыщения из-за огромного числа обучаемых параметров, проблемы Underfitting и Overfitting более-менее решаемы.
  2. Глубокие конволюционные нейросети учитывают специфику изображений как объекта распознавания и, даже не зная каких-то ракурсов, могут распознать объект в совершенно неизвестной для себя обстановке.
  3. Могут учиться без учителя. Для этого требуется больший объем данных и процесс обучения длится значительно дольше, но уже появились новые прорывные подходы в данной области.

У нейронных сетей есть и минусы:

  1. Нужны огромные вычислительные мощности для обучения на больших объемах данных.
  2. Необходимо дорогое "железо" с большим количеством видеокарт для обработки всего нескольких каналов на один сервер в режиме реального времени.

Рывок в качестве распознавания лиц

Начиная с 2015 г. на всех общедоступных базах был совершен значительный рывок в распознавании, и можно утверждать, что лучшие российские системы распознавания лиц являются и лучшими в мире – три российские компании входят в топ-5 по базе NIST. Если раньше можно было распознать лицо только во фронтальном ракурсе, то сейчас это возможно сделать практически во всех ракурсах.

Распознавание объектов вместо моделирования фона

Классические системы распознавания построены на предварительных предположениях: моделирование фона, разделение Foreground и Background (неподвижный фон и движущиеся объекты на нем). Но это противоречит восприятию человека, так как человек и без признака движения может легко определить людей, находящихся в его поле зрения. Сейчас происходит переход от предположений о сцене именно к распознаванию отдельных объектов и используются не признаки движения, а только факт наличия объекта типа "человек на сцене". Сегодня вероятность распознавания силуэта человека уже очень хорошая – ошибки 1-го и 2-го рода составляют порядка 1% на данных среднего и высокого качества.

Реидентификация с помощью нейронных сетей

Задача реидентификации может быть решена во многих спектрах.

Первый (очевидный, но редко запрашиваемый заказчиком) – это передача человека или другого объекта видеонаблюдения от одной камеры к другой, когда его нужно подхватить с тем же ID, с которым он двигался до этого. Раньше эта задача в определенной степени решалась, но если человек на одной камере был в одном ракурсе, а на следующей – уже в новом, то не все алгоритмы идентификации хорошо справлялись. Второй – поиск человека или другого объекта в базе данных по описанию, сформированному оператором, или фотографии.


Сейчас подход к реидентификации построен на генерации Deep ID для объекта (человека, автомобиля и др.) с последующим сравнением шаблона с шаблонами других объектов (контрастные, цветовые признаки и т.д.). Более того, можно рассматривать образ человека как лицо при распознавании – то есть шаблоны внешнего вида людей загружаются в базу данных и после конкретного события, если нужно пробить образ человека по базе данных, по нему строится Deep ID, сравнивается с шаблонами, и выдаются все вхождения человека, но не по лицу, а по внешнему виду. Этот спектр задач идентификации сильно вырос и уже стал по-настоящему умным.

Контроль техники безопасности на производстве

Возросли запросы на автоматические системы промышленной безопасности в части ношения средств индивидуальной защиты. Вероятно, это связано с большими штрафами, накладываемыми на те предприятия, которые не обеспечивают ношение СИЗ на производстве. Оператору же системы видеонаблюдения отследить факт отсутствия СИЗ довольно сложно.


Глубокие нейронные сети справляются и с такой задачей – по каждому типу униформы систему придется доучить, но результаты распознавания высоки даже для таких средств индивидуальной защиты, как очки, причем на сравнительно небольших разрешениях, – ошибки 1-го и 2-го рода составляют порядка 5%.

Анализ больших данных в задачах промышленности

С точки зрения применения нейросетей в промышленности наиболее перспективными направлениями являются следующие:

  1. Поиск полезных ископаемых. Объем данных, генерируемый геологами, огромен, и новые методы на базе нейронных сетей позволяют выявить особенности, которые достаточно часто приводят к ответу "да" в тех случаях, где старые алгоритмы говорили "нет".
  2. Транспортные и логистические задачи. Хотя они давно успешно решаются методами линейного программирования, но при огромной размерности процесс будет долгим. Обучение нейронной сети на решение транспортной задачи – действенный способ разрешения подобных ситуаций, если объем данных очень большой.
  3. Предсказание неисправностей. Возможна не просто реакция на неисправность, а именно предсказание поведения системы, когда есть вероятность какого-то ЧП, например выброса химических веществ. По набору из 50–100 датчиков система должна обучаться как на успешных событиях, так и неприятных, которые имели место в прошлом. Подобные задачи уже решаются – быстро и с хорошими показателями.

Что можно добавить на борт камеры?

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

На данный момент в качестве чипа в камерах высокой ценовой категории используется в основном 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
Посещений: 9746

  Автор

Борис Вишняков

Борис Вишняков

Начальник лаборатории анализа динамических сцен ФГУП "ГосНИИАС"

Всего статей:  1

В рубрику "All-over-IP" | К списку рубрик  |  К списку авторов  |  К списку публикаций