На сегодняшний день возможности создания, хранения, передачи изображений довольно широки и легкодоступны. Каждый день создаются, копируются, выставляются в сеть миллионы фотографий. К тому же во всем мире все больше и больше уделяется внимание безопасности в общественных местах, например, в транспорте, в офисных помещениях и многих других. Такие устройства как фото-регистрация позволяют в режиме реального времени логировать события в виде фотографий. Благодаря этому мы располагаем огромным объемом данных, который непрерывно пополняется [1]. В связи с этим существует необходимость обработки огромного массива изображений, а также распознавания различных образов, а в частности признаков человека.
Определение антропологических признаков человека, таких как возраст, пол, национальность, раса, очевидны для человека, но для компьютера идентификация таких признаков — очень сложная задача, ведь это требует огромной вычислительной мощности. Благодаря вышеописанным факторам идентификация черт человека по лицу, приобрела важное значение.
Данное направление не стоит на месте и успешно развивается. На данный момент в этом направлении важное место занимает машинное обучение. На практике машинное обучение одно из самых успешных, конструктивных, универсальных и оптимальных методов для распознавания объектов и признаков на изображении. Одним из инструментов машинного обучения является нейронная сеть, которая показывает одни из самых высоких показателей точности в указанных задачах[9].
Цель работы - построение такой нейронной сети, которая смогла бы определять заданные признаки человека по изображению. То есть нейронная сеть должна:
1) решать задачи классификации признаков пола и расы;
2) решать задачу регрессии для возраста.
Для этого были поставлены следующие задачи:
1) изучить принципы работы нейронных сетей;
2) изучить виды и особенности архитектур;
3) реализовать наиболее подходящую архитектуру;
4) обучить модель нейронной сети.
На сегодняшний день мы располагаем огромным объемом данных, который непрерывно пополняется. В связи с этим существует необходимость обработки изображений, для самых разнообразных целей, в том числе в сфере безопасности. Распознавание различных образов, а в частности признаков человека, является сложной задачей для компьютера.
Мощным инструментом компьютерного зрения являются сверточные сети. Данное направление постоянно развивается. Растет мощность вычислительных машин, растет объем данных, а вместе с ним обучающая выборка, совершенствуются алгоритмы, а также разрабатываются разнообразные архитектуры, специализированные на конкретных задачах, а значит, дающие высокую точность [1].
Была поставлена цель создать архитектуру и обучить модель нейронной сети, которая смогла бы определять заданные признаки человека по изображению: классификация пола и расы, регрессия для возраста. В ходе работы были проведены эксперименты с различными гиперпараметрами нейронной сети.
Полученные результаты показывают, что модель хорошо решает задачу определения пола, достигая точности свыше 90%, однако имеет своеобразные трудности в задаче определения расы, точность которой 70%, и возраста, средняя ошибка которой 8 лет.
При определении возраста, модель уверенно предсказывает изображен ли на фото человек зрелого или пожилого возраста, при этом модель часто ошибается на возрастах от 25 до 40 лет. Можно сделать небольшую скидку на то, что даже человек с трудом может точно определить узкую расу или точный возраст человека, а ошибка в несколько лет считается нормальной.
Большое влияние на результат оказывает содержание датасета. Чаще в обучающей выборке представлены представители классов White и Asian. И модель гораздо быстрее и увереннее предсказывает принадлежность классу white, нежели чем классу Hispanic. Данная проблема частично решается формированием сбаласированных батчей.
Так как модель показала неплохие результаты, на классах содержащих большое количество представителей этих классов, логично предположить, что модель удачна и хорошо обучается. Для лучших результатов возможно необходимо наличие в датасете больше представителей узких рас. Потенциально можно увеличить количество классов для классификатора, добавить более узкие расы, однако для этого необходимо подкрепить модель достаточным количеством обучаемых данных.
1. Fei-Fei Li Stanford University C231n, Spring 2019 [Электронный ресурс]. URL: http://cs231n.stanford.edu/ (дата обращения 31.03.2019).
2. Коллективный блог ХабрХабр. Константин Лахман. Самое главное о нейросетях. Лекции Яндекса2019 [Электронный ресурс]. URL: https://habr.com/ru/company/yandex/blog/307260/. (дата обращения
31.03.2019) .
3. Открытый ресурс RusBase.Сергей Николенко. 26 апреля 2018. Как мы научили нейронку распознавать пол и возраст. 2019 [Электронный ресурс]. URL:https://rb.ru/opinion/big-brother-is-studying-you/ (дата обращения 31.03.2019).
4. Коллективный блог ХабрХабр. Сверточная нейронная сеть, часть 1: структура, топология, функции активации и обучающее множество [Электронный ресурс]. URL: https://habr.com/ru/post/348000/ (дата обращения 31.03.2019).
5. Jefkine Kafunah. DeepGrid blog. Backpropogation in CNN.
[Электронный ресурс].
URL: https://www.j efkine.com/general/2016/09/05/backpropagation-in-
convolutional-neural-networks/ (дата обращения 31.03.2019).
6. Диарова Д.М. Отчет по практике по получению первичных профессиональных умений и навыков, 2019 - 11 с.
7. Сикорский, О.С. Обзор свёрточных нейронных сетей для задачи классификации изображений, МГТУ им. Н.Э. Баумана. Новые информационные технологии в автоматизированных системах. - 2017. - №20/ - с. 37-42.
8. Коллективный блог ХабрХабр. Аугментация (augmentation, “раздутие”)
данных для обучения нейронной сети на примере печатных символов [Электронный ресурс].
URL:https://habr.com/en/company/smartengines/blog/264677/ (дата
обращения 25.03.2019).
9. Диарова Д.М. Отчет по производственной практике, 2019 - 11 с.
10. Блог о последних исследованиях в области нейронных сетей. TensorFlow туториал. Часть 4: глубокое обучение [Электронный ресурс]. URL: https://neurohive.io/ru/tutorial/tensorflow-tutorial-chast-4- glubokoe-obuchenie/ (дата обращения 10.05.2019).
11. Xavier Glorot, Yoshua Bengio. Understanding the difficulty of training deep feedforward neural networks [Электронный ресурс]. URL: http://proceedings.mlr.press/v9/glorot10a/glorot10a.pdf. (дата обращения
10.05.2019) .
12. TensorBoard: Visualizing Learning [Электронный ресурс]. URL:
https://www.tensorflow.org/guide/summaries_and_tensorboard - (дата обращения: 12.05.2019).
13. Multi-task learning in tensorflow (part 1) [Электронный ресурс]. URL: https://jg8610.github.io/Multi-Task/ (дата посещения: 16.05.2019).
14. Википедия — свободная энциклопедия. Регуляризация (математика)
[Электронный ресурс]
URL: https://ru.wikipedia.org/wiki/%D0%A0%D0%B5%D0%B3%D 1 %83 %D0%BB%D 1 %8F%D 1 %80%D0%B8%D0%B7%D0%B0%D 1 %86%D0 %B8%D 1 %8F_(%D0%BC%D0%B0%D 1 %82%D0%B5%D0%BC%D0%B 0%D 1 %82%D0%B8%D0%BA%D0%B0) (дата обращения: 15.05.2019).
15. Коллективный блог ХабрХабр. Глубокое обучение для новичков: тонкая настройка нейронной сети [Электронный ресурс]. URL: https://habr.com/ru/company/wunderfund/blog/315476/ (дата обращения:
11.05.2019) .
16. Блог проект «Портал искусственного интеллекта». Функции активации в нейронных сетях [Электронный ресурс]. URL: http://www.aiportal.ru/articles/neural-networks/activation-function.html (дата обращения: 15.05.2019).