Система детектирования объектов R-CNN впервые была представлена в 2014 году в [5] и состоит из трех модулей. Первый модуль генерирует гипотезы о местоположении объекта на изображении независимо от класса объекта. Второй модуль представляет из себя большую сверточную нейронную сеть, которая извлекает признаки из каждой гипотезы, преобразуя их в вектор фиксированной длины. Третий модуль – это машина опорных векторов, осуществляющая классификацию векторов признаков на наборе конкретных классов объектов.
Модель имеет хорошие показатели качества выделения объектов, но рассчитана на работу со статичными изображениями и имеет среднее время работы 15 секунд, что не позволяет использовать ее в реальном времени. Улучшения, предлагаемые в данной работе, можно разделить на следующие пункты:
1. Оптимизация алгоритма селективного поиска с целью существенного снижения количества генерируемых гипотез, а следовательно, времени их обработки.
2. Использование сверточной нейронной сети высокого порядка для улучшения качества распознавания объектов.
3. Ускорение сверточной нейронной сети с использованием векторно-матричных процессоров, для компенсации повышения алгоритмической сложности сети.
Цель исследования – адаптировать модель выделения объектов R-CNN для работы в режиме реального времени без существенных потерь в качестве распознавания.
Материал и методы исследования – моделирование, эмпирический эксперимент, измерение и анализ результатов.
Селективный поиск на сегодняшний день является одним из самых совершенных и точных алгоритмов нахождения алгоритмов на изображении и включает множество разнообразных стратегий для рассмотрения изображения с как можно более обширного числа точек зрения.
Рис. 1. Модель оптимизации алгоритма селективного поиска
Главная идея заключается в том, чтобы ускорить выделение объектов с помощью селективного поиска путем уменьшения количества генерируемых гипотез. Сделать это возможно за счет понижения размерности обрабатываемых данных путем фильтрации исходного изображения на основе его изменений во времени, а также исключения гипотез, для которых можно сделать вывод, что они не относятся ни к одному из целевых объектов, на основании размера, содержания и распределения цветов на изображении. Схема приведена на рис. 1.
Таким образом, улучшения модели выделения объектов на изображении можно разделить на три группы:
1. Предварительное выделение фона от «новых» областей на изображении. Этот этап приводит к значительному уменьшению количества обрабатываемых данных и времени, затрачиваемого на генерацию гипотез.
2. Изменения в модели селективного поиска:
– исключение использования больших масштабов при иерархической обработке изображения;
– отбрасывание слишком больших и слишком малых гипотез, которые в любом случае не будут покрывать зоны, в которых может появиться объект;
– исключение объектов, имеющих тонкую, длинную структуру (менее 30 % пикселей от общей площади, занимаемой фигурой).
3. Дополнительное отсеивание окон-кандидатов на основе цветового профиля и низкоуровневой структуры.
В табл. 1 представлены результаты для различных алгоритмов выделения фона на основе 1 – Медианного фильтра, 2 – Гауссова среднего, 3 – Применения ядер свертки, 4 – Изменения собственных векторов сегментов изображения, 5 – Изменения собственного вектора всего изображения [4].
Следовательно, наибольшую точность выделения фона дал метод использования ядер и операции свертки, но важную роль играет также время, необходимое на осуществление вычислений. Поэтому в качестве алгоритма выделения новых объектов от фона целесообразно использовать первый или второй вариант.
Таблица 1
Результаты для различных алгоритмов выделения фона
Метод |
Цветовое пространство |
Точность |
Время |
1 |
RGB |
0,91 |
0,03 |
HSV |
0,92 |
0,04 |
|
2 |
RGB |
0,91 |
0,02 |
HSV |
0,92 |
0,03 |
|
3 |
RGB |
0,94 |
0,17 |
HSV |
0,94 |
0,18 |
|
4 |
RGB |
0,87 |
0,23 |
HSV |
0,87 |
0,24 |
|
5 |
RGB |
0,61 |
0,25 |
HSV |
0,71 |
0,26 |
В качестве признака для сравнения и отсеивания окон-гипотез используется 64-битный вектор, аналогичный бинаризованному нормализованному градиенту, описанному в [3]. Он необходим для того, чтобы убрать из изображения высокочастотную информацию, оставив только низкочастотную структуру. Алгоритм получения вектора состоит из следующих шагов:
1. Уменьшение размера до 8×8 точек независимо от первоначального размера или соотношения сторон изображения.
2. Перевод изображения в оттенки серого.
3. Вычислить среднее значение для всех 64 компонентов вектора.
4. Преобразовать все значения в биты, т.е. осуществить операцию бинаризации. Если значение компонента вектора больше среднего значения, он устанавливается в 1, в обратном случае 0.
5. Перевести отдельные биты в одно 64-битное значение.
6. Сравнить степень различия двух векторов, используя расстояние Хэмминга.
Даже после удаления части гипотез на всех предыдущих шагах остается большое количество окон-кандидатов, поэтому необходимо применить еще один этап отсеивания изображений-гипотез по цветовому профилю. В табл. 2 показана зависимость времени выполнения алгоритма и количества генерируемых гипотез от каждого из предложенных улучшений.
Следующая часть эксперимента заключалась в том, чтобы проверить, как изменится качество работы сети при использовании нейронов высоких порядков на различных ее слоях. В таких нейронах вместо обычного взвешенного суммирования используются функции высоких порядков – квадратные, кубические, тригонометрические и т.д.
Результат использования полиномиальных сумматоров может сильно отличаться в зависимости от многих условий, и зависит от конкретной задачи распознавания, конкретной архитектуры сети и того, на каком слое выбранной архитектуры эти сумматоры располагаются. Если конкретный слой со стандартными линейными сумматорами мог проводить нужные разделяющие поверхности и выделять необходимые признаки, то введение полиномиальных сумматоров не будет оказывать положительного действия на качество распознавания. Если же потенциал слоя со стандартной архитектурой был раскрыт недостаточно, и разделяющие поверхности не были построены с достаточной точностью, то нейроны высших порядков могут существенно улучшить ситуацию. На рис. 2 приведены результаты работы сети.
Таблица 2
Замер затрачиваемого времени и числа генерируемых гипотез для простого примера
№ п/п |
Алгоритм |
Время, затрачиваемое на выполнение |
Количество генерируемых гипотез |
1 |
Селективный поиск (СП) |
1,119 |
356 |
2 |
Оптимизированный селективный поиск (ОСП) |
1,156 |
235 |
3 |
Выделение фона + ОСП |
0,187 |
98 |
4 |
Выделение фона + ОСП + отсеивание |
0,588 |
14 |
Рис. 2. Результаты экспериментов: ТМ – тестовое множество, ВМ – валидационное множество, I – входной слой, C1-C3 – сверточные слои, S1-S2 – субдискретизирующие слои, F – полносвязный слой, O – выходы сети
Добавление нейронов высоких порядков на полносвязный выходной слой не дало значительного увеличения точности распознавания, хотя для многослойного персептрона добавление полиномиальных нейронов приводит к существенному улучшению работы сети [2]. Установка нейронов высоких порядков на S-слои не имеет смысла и может привести только к излишнему усложнению вычислений. Наибольшее влияние на качество распознавания образов произвело внедрение нейронов высших порядков на первый сверточный слой, и чем дальше находится слой с нейронами второго порядка от входа сети, тем это влияние становится меньше. Использование сумматоров на первом и втором слоях дает существенно больший прирост качества обучения, чем позиционирование на втором и третьем сверточных слоях сети. Добавление третьего полиномиального слоя не приводит к каким-либо позитивным изменениям и является излишним усложнением архитектуры сети и вычислений.
Внедрение сверточных слоев высокого порядка в нейронную сеть влечет за собой увеличение алгоритмической сложности модели и времени, требуемого на распознавание. Поэтому третьим этапом эксперимента было ускорение сверточной нейронной сети второго порядка с применением процессоров векторно-матричной архитектуры.
Ускорение сверточной нейронной сети первого порядка с помощью процессоров NeuroMatrix описано в [1]. При использовании сумматоров второго порядка алгоритм вычисления карт признаков будет модифицирован с учетом выполнения следующих шагов для каждого нейрона:
1. Рабочая и Теневая матрицы разбиваются на ячейки 4×4. Возможно разбиение на большее число ячеек, но такой подход увеличивает риск переполнения единиц памяти при обработке больших массивов данных.
2. Загружаются весовые коэффициенты W и входы нейрона X, выполняется операция взвешенного суммирования, полностью аналогичная вычислениям в стандартной модели нейронов.
3. После этого вектор входных значений модифицируется с помощью операции маскирования, превращаясь в четыре новых вектора, содержащих по одному входному значению в нужных позициях.
4. Сформированный вектор квадратов входных значений загружается в рабочую матрицу, повторяется операция взвешенного суммирования с весовыми коэффициентами второго уровня.
5. Результат обрабатывается активационной функцией. На рис. 3 приведена обобщенная схема этого алгоритма.
Рис. 3. Схема вычисления взвешенных сумм нейрона второго порядка
Таблица 3
Замеры скорости для разных архитектур нейронных сетей
Значение |
Число эквивалентных операций умножения элементов |
Время выполнения в тактах процессора |
Время выполнения в миллисекундах |
512-NN |
12288 |
13150 |
0,33 мс |
1024-NN |
24576 |
25800 |
0,65 мс |
CNN |
2526308 |
2703526 |
67,84 мс |
CNN^2 1 слой |
5911908 |
6326627 |
156,36 мс |
CNN^2 2 слоя |
6995300 |
7486015 |
187,86 мс |
Таблица 4
Сравнение
Процессор |
NM |
Ускорение |
|
1 проход |
0,075 с |
0,067 с |
0,008 с |
1000 проходов |
75 с |
67 с |
8 с |
Полное обучение |
240 мин |
214,5 мин |
25,6 мин |
NORB |
5832 мин |
5209 мин |
622 мин |
При использовании сравнительно небольшой выборки размером 24 000 обучающих примеров и 8-ми эпох обучения, только на прямые проходы сети потребуется
24 000∙8∙0,068 = 13056 секунд = 217,6 минут = 3,63 часов.
Если же нейронная сеть обучается на выборке NORB, содержащей 291 600 снятых с двух камер примеров, то время обработки возрастает до
291 600∙8∙2∙0,068 = 317260,8 секунд = 5287,68 минут = 88,128 часов.
Для стандартной сети ускорение прямого прохода за счет использования векторной архитектуры составляет примерно 6 %, для сверточной – 12 % [1].
В табл. 3 замеры скорости работы для полносвязных сетей с 512 и 1024 нейронами в скрытом слое, классической сверточной нейронной сети, сверточных сетей высокого порядка.
В табл. 4 приведены результаты сравнения быстродействия с процессором Intel Core i3-2130, CPU = 3,50 GHz. В зависимости от размеров выборки выигрыш в скорости может достигать 600 минут и более (для выборки NORB) и в среднем равен 11,8 %.
Выводы
1. Разработана улучшенная модель R-CNN, работающая в режиме, приближенном к реальному времени, без существенных потерь качества распознавания.
2. Разработан оптимизированный алгоритм селективного поиска объектов на изображении, работающий с ускорением до 150 % за счет уменьшения количества генерируемых гипотез.
3. Разработана и протестирована модель сверточной нейронной сети второго порядка с сумматорами высоких порядков на определенных слоях сети, улучшающая качество распознавания на 10 %.
4. Разработан способ ускорения сверточных нейронных сетей второго порядка на 11,9 % с использованием векторно-матричных процессоров.
Рецензенты:
Лубенцов В.Ф., д.т.н., профессор кафедры «Информационные системы, электропривод и автоматика», Невинномысский технологический институт, ФГАОУ ВПО «Северо-Кавказский федеральный университет», г. Невинномысск;
Тебуева Ф.Б., д.ф.-м.н., доцент, заведующая кафедрой прикладной математики и компьютерной безопасности, Институт информационных технологий и телекоммуникаций, ФГАОУ ВПО «Северо-Кавказский федеральный университет», г. Ставрополь.
Библиографическая ссылка
Лагунов Н.А. ВЫДЕЛЕНИЕ И РАСПОЗНАВАНИЕ ОБЪЕКТОВ С ИСПОЛЬЗОВАНИЕМ ОПТИМИЗИРОВАННОГО АЛГОРИТМА СЕЛЕКТИВНОГО ПОИСКА И СВЕРТОЧНОЙ НЕЙРОННОЙ СЕТИ ВЫСОКОГО ПОРЯДКА // Фундаментальные исследования. – 2015. – № 5-3. – С. 511-516;URL: https://fundamental-research.ru/ru/article/view?id=38291 (дата обращения: 16.08.2024).