Другие журналы

научное издание МГТУ им. Н.Э. Баумана

НАУКА и ОБРАЗОВАНИЕ

Издатель ФГБОУ ВПО "МГТУ им. Н.Э. Баумана". Эл № ФС 77 - 48211.  ISSN 1994-0408

О реализации нейросетевого алгоритма распознавания лиц на графических процессорах

# 12, декабрь 2013
DOI: 10.7463/1213.0659387
Файл статьи: Terehov_P.pdf (191.83Кб)
автор: Терехов В. И.

УДК 004.032.26; 004.272.2; 004.8

Россия, МГТУ им. Н.Э. Баумана

terekchow@bmstu.ru

 

1        Введение

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

Одним из основных подходов к распознаванию является использование нейросетевых алгоритмов [1-3]. Такие алгоритмы хорошо распараллеливаются, что делает возможной их эффективную реализацию на графических процессорах [46710]. Графические процессоры в настоящее время активно используются для разнообразных вычислений в задачах математического моделирования. В ряде работ [5891112] рассматривалось их применение для моделирования искусственных нейронных сетей. Однако для распознавания лиц они еще не были использованы.

В настоящей работе описывается реализация нейросетевых алгоритмов распознавания лиц, и приводятся данные о точности распознавания и быстродействии.

2        Методика

Для экспериментов мы использовали фотографии лиц 50 студентов. Для каждого студента были использованы фотографии, сделанные под разными углами. Студентов просили придать лицам различные выражения. Всего для каждого испытуемого было получено около 100 фотографий. Все изображения имели размер 128x128 пикселей и представляли собой растровые фотографии в градациях серого.

Для распознавания образов использовались классические нейронные сети. В качестве алгоритма обучения был выбран алгоритм обратного распространения ошибок [1-3].

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

                                    

 

Количество скрытых нейронов было выбрано равным 1024.

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

Входом нейронной сети являлось изображение. Входом каждого нейрона входного слоя являлся один пиксел. Значение яркости каждого пиксела было представлено в виде действительного числа из диапазона .

Выходом нейронной сети является переменная, принимающая значения из диапазона . В том случае, если выходное значение превышало 0.85, делался вывод о том, что поданное на вход изображение принимается, а в случае,  если выходное значение было меньше 0.15 – отвергается.

3        Реализация

В качестве платформы для реализации был выбран стандарт OpenCL. Эксперименты проводились на графическом адаптере AMDRadeonHD7790. При этом для функционирования каждого нейрона использовался отдельный поток.

В качестве реализации сравнения использовалась реализация для CPU, которая была запущена на процессоре IntelCore 7 3770. Эта реализация использовала восемь потоков.

Программы были разработаны на языке C++ и скомпилированы с помощью компилятора, входящего в среду MicrosoftVisualStudio 2012.

4        Результаты

Полученный в результате экспериментов график зависимости частоты ошибок распознавания от числа шагов обучения приведен на рис. 1. Задавшись уровнем ошибок в 1%, исходя из этого графика, выберем число шагов обучения равным 30.

 

Рис. 1 – зависимость частоты ошибок от числа шагов обучения

 

В ходе эксперимента было произведено сравнение времени обучения при 30 шагах обучения. Полученные результаты приведены на рис. 2. Из него видно, что реализация на GPUимеет приблизительно в 7 раз большую производительность, по сравнению с реализацией на CPU.

 

Рис. 2 – Время обучения.

 

5        Заключение

Таким образом, в работе показано, что с помощью графических процессоров можно произвести значительное (приблизительно в семь раз) ускорение работы нейросетевых алгоритмов распознавания. Этот результат указывает на перспективность реализации нейросетевых алгоритмов на графических процессорах.

 

Список литературы

1.       Дулесов А.С. Нейронные сети и нейрокомпьютеры в интеллектуальных информационных системах : учеб. пособие. Абакан: Изд-во Хакас. гос. ун-та им. Н. Ф. Катанова, 2005. 113 с.

2.       Круг П.Г. Нейронные сети и нейрокомпьютеры : учеб. пособие по курсу "Микропроцессоры" для студентов, обучающихся по направлению "Информатика и вычислительная техника". М.: Изд-во МЭИ, 2002. 176 с.

3.       Лисс А.А., Степанов М.В. Нейронные сети и нейрокомпьютеры : учеб. пособие. СПб.: СПб. гос. электротехн. ун-т, 1997. 61 с.

4.       Gaster B. Heterogeneous computing with OpenCL. Waltham, MA: Morgan Kaufmann, 2013. 291 p.

5.       Jang H., Park A., Jung K. Neural network implementation using CUDA and OpenMP // 2008 Digital Image Computing: Techniques and Applications (DICTA). IEEE Conference Publications, 2008. P. 155-161. DOI: 10.1109/DICTA.2008.82

6.       Kowalik J.S., Puźniakowski T. Advances in parallel computing. Using OpenCL : programming massively parallel computers. Amsterdam; Washington, DC: IOS Press, 2012. 295 p.

7.       Munshi A. OpenCL programming guide. Upper Saddle River, NJ: Addison-Wesley, 2012. 603 p.

8.       Nageswaran J.M., Dutt N., Krichmar J.L., Nicolau A., Veidenbaum A.V. A configurable simulation environment for the efficient simulation of large-scale spiking neural networks on graphics processors // Neural Networks. 2009. Vol. 22, no. 5. P. 791-800.

9.       Oh K.-S., Jung K. GPU implementation of neural networks // Pattern Recognition. 2004. Vol. 37, no. 6. P. 1311-1314.

10.     Scarpino M. OpenCL in action : how to accelerate graphics and computation. Shelter Island, NY: Manning, 2012. 434 p.

11.     Seiffert U. Artificial neural networks on massively parallel computer hardware // Neurocomputing. 2004. Vol. 57. P. 135-150.

12.     Sierra-Canto X., Madera-Ramirez F., Uc-Cetina V. Parallel training of a back-propagation neural network using CUDA // 2010 Ninth International Conference on Machine Learning and Applications (ICMLA). IEEE Conference Publications, 2010. P. 307-312. DOI: 10.1109/ICMLA.2010.52

Поделиться:
 
ПОИСК
 
elibrary crossref ulrichsweb neicon rusycon
 
ЮБИЛЕИ
ФОТОРЕПОРТАЖИ
 
СОБЫТИЯ
 
НОВОСТНАЯ ЛЕНТА



Авторы
Пресс-релизы
Библиотека
Конференции
Выставки
О проекте
Rambler's Top100
Телефон: +7 (915) 336-07-65 (строго: среда; пятница c 11-00 до 17-00)
  RSS
© 2003-2020 «Наука и образование»
Перепечатка материалов журнала без согласования с редакцией запрещена
 Тел.: +7 (915) 336-07-65 (строго: среда; пятница c 11-00 до 17-00)