Введение
Актуальной проблемой является создание рабочего прототипа программного обеспечения для распознавания объектов. Актуальность такого рода задач заключается в извлечении дополнительной информации об объекте, в том числе, выводы о наличии или расположении других объектов. Такие анализы могут быть использованы в решении ряда социальных проблем, таких как детектирование объектов в общественных местах. К примеру, можно привести, оставленные рядом без хозяина сумки, кейсы и т. д с взрывчатым веществом. Для работы такой программы, поставлена задача выбора процессора с максимально высокой рабочей скоростью для слежения за объектом в реальном времени.
Алгоритм, который будет использован при обнаружении, является высокоэффективным для поиска объектов на изображениях и видеопотоках в режиме реального времени. По предварительной оценке, наш детектор обладает крайне низкой вероятностью ложного обнаружения. Метод хорошо работает и обнаруживает даже при наблюдении объекта под небольшим углом. Точность распознавания с использованием данного метода может достигать значения свыше 90%, что является очень хорошим результатом.
В данной работе приводится модель распознавания и детектирования объектов на основе сверточной нейронной сети, где глубокое обучение сети дает преимущество в эффективности и точности. Приводится сравнительный анализ производительности процессоров CPU и GPU, так как обработка большого массива данных в видеопотоке является очень ресурсно затратным. Использования графического видеопроцессора для обработки данных повышает вычислительную мощность на 3-4 порядка.
Цель работы: создание рабочего прототипа программного обеспечения для распознавания объектов.
Задачи:
1) изучить информацию по теме исследования;
2) сравненить работы с использованием графического и центрального процессора для распознавания и детектирования объекта.
3) выбрать процессор с максимально высокой рабочей скоростью для слежения за объектом в реальном времени.
Практическая значимость работы: полученные результаты могут быть использованы в учебных заведениях для выявления посещаемости учащихся, в контрольно-пропускных пунктах (вместо ID-карт) и во время поступления абитуриентов для контроля качества и т.д. Мониторинг стратегически важных объектов, распознавания и идентификация лиц в пунктах проверки (пересечения границ), которые необходимы для выявления запрещенных лиц. Также могут быть применены в банках РК для подтверждения личности заемщика, сотрудника, в больших торговых домах для подсчета клиентов, проведения мониторинга и анализа востребованности той или иной продукций, что в свою очередь приносит большую прибыль. Также может быть использована в частных и государственных компаниях для мониторинга рабочего времени персонала
1. Современное состояние машинного зрения
1.1. Происхождение и современное состояние технологии машинного зрения.
Революция развития машинного зрения назревала на протяжении многих лет. Машинное зрение - это научное направление в области искусственного интеллекта, в частности робототехники. Нейронные сети являются дополнением и развитием классических экспертных и нечетких систем – главных направлений в приложении теории искусственного интеллекта. Основной современной проблемой создания эффективных нейронных сетей является совершенствование моделей биологического нейрона, приближение работы нейронных сетей к работе человеческого мозга. На наш взгляд, принципиально важным является правильный выбор модели динамики нейрона. С точки зрения инженерии, машинное зрение стремится автоматизировать задачи, которые может выполнять зрительная система человека. Оно связано с автоматическим извлечением, анализом и пониманием полезной информации из одного изображения или последовательности изображений [1].
Существует масса методов для решения различных строго определённых задач машинного зрения, где методы часто зависят от задач и редко могут быть обобщены для широкого круга применений. Многие из методов и приложений все ещё находятся в стадии фундаментальных исследований, но всё большее число методов находит применение в коммерческих продуктах, где они часто составляют часть большей системы, которая может решать сложные задачи.
1.2. Машинное зрение как научное направление в области искусственного интеллекта.
Машинное зрение является технологией создания искусственных систем, предназначенной для фото и видеопортретной идентификации, распознавания и детектирования объектов из большого массива данных фото и видеоизображений. Актуальной задачей является распознавание и детектирование объектов в режиме реального времени с допустимым уровнем скрытности и высоким показателем точности идентификации, менее зависящих от внешних факторов, таких как освещенность, ракурс и т.д. Требуется, чтобы детектор распознавания и идентификации обладал крайне низкой вероятностью ложного обнаружения лица. На сегодняшний день доверие к использованию “машинного зрения” растет, тому причиной являются разработки новых поколений технологий видеоанализа с высокими разрешающими свойствами, скоростью вычисления большого объема данных и использованием современного подхода обработки данных основанный на теории искусственной нейронной сети. Нейронные сети нового поколения глубокого обучения показывают колоссальные результаты в задачах распознавания образов, о чем свидетельствуют множественные современные научные публикации в рейтинговых журналах [2-4]. Теория искусственной нейронной сети постоянно дорабатывается и улучшается, но, несмотря на это принципиально важным моментом является правильный выбор модели динамики нейронов.
Нейрон — это вычислительная единица, которая получает информацию, производит над ней простые вычисления и передает ее дальше. На рисунке 1 приведена простая нелинейная матиматическая модель нейрона [5]:
Рисунок 1 - Нелинейная математическая модель нейрона
На рисунке 2 показана простая схема искусственной нейронной сети (ИНС), состоящей из входного слоя (красный), скрытого слоя (зеленый) и выходного слоя (оранжевый). Каждое соединение между нейронами передает сигнал от одного нейрона к другому. Принимающий нейрон обрабатывает сигнал и передает сигналы нисходящим нейронам, подключенным к нему внутри сети.
Рисунок 2 - Схема искусственной нейронной сети
1.3. Сверточные нейронные сети (ConvolutionalNeuralNetwork).
Сверточная нейронная сеть (СНС) является высокоэффективным методом идентификации. В настоящее время нейронная сеть свертки стала одним из активно исследуемых направлений в современных научных работах. Сверточная нейронная сеть обладает уникальным преимуществом в распознавании речи и обработке изображений благодаря своей специальной структуре, разделяемой локальными весами, особенно изображение многомерного входного вектора может быть непосредственно введено в сеть для параллельного обучения, что позволяет избежать сложности извлечения признаков и процесса классификации данных. СНС имеют слои, называемые сверточными слоями (Рисунок 3).
Рисунок 3 - Слои СНС
Для сверточного слоя происходящее преобразование называется операцией свертки.
где, – двумерное изображение, – матрица с размерностью (ядро свертки).
2. Применение сверточных нейронных сетей для обнаружения объектов
2.1. Современная система обнаружение объектов – YOLO.
YOLO (Youonlylookonce) – это современная система обнаружения объектов в реальном времени (Рисунок 4). YOLO делятся на следующие виды в зависимости от обученных множеств: SSD300, SSD500, YOLOv2, Tiny YOLO, YOLO 9000. Базовая модель YOLO обрабатывает изображения в режиме реального времени с 45 кадрамив секунду, когда Fast YOLO, обрабатывает поразительные 155 кадров в секунду.
Рисунок 4 - Система обнаружения YOLO
Одна сверточная сеть одновременно предсказывает множество ограничивающих блоков и вероятностей классов для этих блоков. YOLO тренируется на полных изображениях и напрямую оптимизирует производительность обнаружения.
YOLO имеет несколько преимуществ по сравнению с традиционными методами обнаружения объектов (R-CNN, DeepMultiBox, Overfeat, Модели деформируемых деталей, MultiGrasp):
Высокая скорость. Кроме того, YOLO достигает более чем в два раза средней точности в отличии от других систем реального времени.
Глобальность рассуждение об изображении при прогнозе. В отличие от скользящих окон и методов, основанных на предложении региона, YOLO видит все изображение во время обучения и тестирования, поэтому оно кодирует контекстную информацию о классах и внешнем виде.
Изучение обобщаемых представления объектов.
Принцип работы YOLO:
Система делит входное изображение на сетку . (Если центр объекта попадает в ячейку сетки, эта ячейка сетки отвечает за обнаружение этого объекта);
Каждая ячейка сетки предсказывает ограничивающие рамки и оценки достоверности для этих ячеек;
Достоверность (Если в этой ячейке нет объекта, доверительные оценки должны быть равны нулю);
Каждый ограничивающий прямоугольник состоит из следующих предсказаний: , , ,(x,y координаты представляют центр прямоугольника относительно границ ячейки сетки, -ширина, -высота) и достоверность [6].
Система моделирует обнаружение как проблему регрессии. Она делит изображение на четную сетку и одновременно предсказывает ограничивающие прямоугольники, достоверность этих прямоугольников и вероятности классов. Эти предсказания кодируются как тензор .
Сеть обнаружения имеет 24 сверточных слоя, за которыми следуют 2 полностью соединенных слоя. Чередование сверточных слоев 1 x 1 уменьшает пространство элементов по сравнению с предыдущими слоями (Рисунок 6).
Рисунок 6 - Архитектура YOLO
YOLO накладывает строгие пространственные ограничения на предсказания ограничивающего прямоугольника, поскольку каждая ячейка сетки предсказывает только два прямоугольника и может иметь только один класс. Например, модель борется с небольшими объектами, которые появляются в группы, такие как стаи птиц.
2.2. Сравнительный анализ производительности CPU и GPU для задач распознавание объектов.
В нашем исследовании была использована библиотека YOLOv2 на языке программирования Python с заранее обученными весами, который способен обнаруживать до 80 объектов. Для реализации этой цели было использовано открытый исходный код “Darkflow” и программная библиотека с открытым исходным кодом для высокопроизводительных численных расчетов “Tensorflow”.
Параметры сети
model – нужен для указания типа моделя, который будет в дальнейшем использован.
load – предназначен для указания файла с обученными весами.
thresholdэто нижняя граница значения вероятности достоверности для хранения обнаруженных объектов (Рисунок 7).
Рисунок 7 - Построение модели
Для решения этой задачи были использованы два разных вида процессора ноутбука AsusIntelCorei7-5500U 2.4 Ghz, NVDIAGeForce 920M, а именно CPUи GPU.
CPU(CentralProcessingUnit) часто называют «мозгом» компьютера. Это коллекция миллионов транзисторов, которыми можно манипулировать для выполнения самых разных вычислений. Стандартный процессор имеет от одного до четырех процессорных ядер с тактовой частотой от 1 до 4 ГГц. Процессор мощный, потому что он может делать все. Если компьютер способен выполнить задачу, это потому, что процессор может это сделать.
GPU (Graphics Processing Unit) - это специализированный тип микропроцессора. Он оптимизирован для отображения графики и выполнения очень специфических вычислительных задач. Он работает на более низкой тактовой частоте, чем процессор, но во много раз превышает число процессорных ядер.
Рисунок 8 - Программа для детектирование изображения
Для проверки скорости программы на количество людей, были взяти разные рисунки с одинаковыми размерами (800x560 пикселей). На рисунке 8 приведено обнаружение людей с помощью YOLO.
Рисунок 9 - Обнаружение людей с помощью YOLO
2.3. Детектирование и отслеживание множественных объектов в видеопотоке данных с помощью TensorFlow-GPU.
Одной из задач машинного зрения является классификация, детектирование и отслеживание образов (объектов). Для решения такого рода задач применяются нейронные сети последнего поколения CNN/DNN (Convolutional Neural Network, Deeplearning). С использованием сверточной нейронной сети стало возможным решение таких задач, как обнаружение объектов (objectdetection), необходимая для подсчета посещаемости (учащихся в учебных заведениях, посетителей ТРЦ и т.д.), учета рабочего времени сотрудников, выявления несанкционированных (недакларированных) объектов и т.д.
На рисунке 9 показан автоматический расчет посещаемости занятий студентами с помощью видеокамер, установленных в учебных аудиториях. В аудитории находятся 12 студентов и преподаватель. Подсчет людей с помощью сверточной нейронной сети глубокого обучения показывает правильный результат, где общее количество 13.
Рисунок 10 - Подсчет посещаемости студентов нейронной сетью
Для выбора оптимальных параметров нейронной сети были протестированы аудитории с разными освещенностями, расположением камер. Полученные результаты были внесены в программу для корректировки параметров. Приведем еще один результат обнаружение объектов (Рисунок 11), где камера расположена на входе в учебный центр. В данном случае количество людей 9.
Рисунок 11 - Подсчет людей с помощью нейронной сети для обнаружения объектов
Для обнаружения объектов с помощью нейронной сети используется большая ресурсная база. Такого рода технологии могут быть использованы в общественных местах в целях обеспечения безопасности. Камеры, запрограммированные обнаруживать объекты, помогают сотрудникам железнодорожных вокзалов и аэропортов качественно анализировать происходящую ситуацию и могут помочь в преждевременном обнаружении опасности. Для примера, были рассмотрены ситуации с оставленным рюкзаком без хозяина. Программа может отслеживать положение объекта и дать сигнал (своего рода тревогу) через определенное время (Рисунки 12-13).
Рисунок 12 - Обнаружение сумки, рюкзака и кейса
Рисунок 13 - Отслеживание сумки, рюкзака и кейса в видеопотоке данных с помощью TensorFlow-GPU
Заключение
В процессе работы были использованы сверточные нейронные сети и различные типы операций, такие как подвыборка, нулевое заполнение, которые использовались для правильного, качественного определения шаблонов изображении. Получены результаты сравнения работы с использованием графического и центрального процессора для распознавания и детектирования объекта. Было установлено, что в обработке файлов в видеопотоке данных, графический процессор является намного быстрее (на 4 порядка) по сравнению с центральным процессором. Было доказано, что количество детектируемых объектов не влияет на рабочую скорость программы. Также показано, что с уменьшением размера исследуемого рисунка скорость программы незначительно увеличивается.
Предлагаемые решения в первую очередь ориентированы для простоты и удобства. Широкая сфера применимости и адаптируемости к различным типам задач, связанных с машинным зрением, делает предлагаемые разработки привлекательным и может решать многие проблемы потенциального клиента. Такие как, мониторинг стратегически важных объектов, распознавания и идентификация лиц в пунктах проверки (пересечения границ), которые необходимы для выявления запрещенных лиц. Также могут быть применены в банках РК для подтверждения личности заемщика, сотрудника. В больших торговых домах для подсчета клиентов, проведения мониторинга и анализа востребованности той или иной продукций, что в свою очередь приносит большую прибыль. Также может быть использована в частных и государственных компаниях для мониторинга рабочего времени персонала [7].
Список использованной литературы
Cox D.D., Dean T. Neural networks and neuroscience-inspired computer vision //Current Biology. – 2014. – Vol. 24, №. 18. – P. R921-R929.
Fonseca A., Cabral B. Prototyping a GPGPU neural network for deep-learning big data analysis //Big Data Research. – 2017. – Vol. 8. – P. 50-56.
Wang Y., Li B., Luo R., Chen Y., Xu N., Yang H. Energy efficient neural networks for big data analytics //Proceedings of the conference on Design, Automation & Test in Europe. – Dresden, 2014. – P. 345.
Maggiori E., Tarabalka Y., Charpiat G., Alliez P. Convolutional neural networks for large-scale remote-sensing image classification //IEEE Transactions on Geoscience and Remote Sensing. – 2017. – Vol. 55. – №. 2. – P. 645-657.
Haykin S.S., Neural networks and learning machines. – Upper Saddle River: Pearson, 2009. – Vol. 3. – P. 906.
Redmon J., You only look once: Unified, real-time object detection //Proceedings of the IEEE conference on computer vision and pattern recognition. – 2016. – P. 779-788.
Кожагулов Е.Т., Ибраимов М.К., Хохлов С.А., Жексебай Д.М., Сарманбетов С.А. FarabiVision 1 – Биометрическая система для учета рабочего времени по идентификации лица // Свидетельство о внесении сведений в государственный реестр прав на объекты, охраняемые авторским правом №1464 от 25 января 2019 года.