Постановка задачи 5
Глава 1. Теоретическая часть 6
1.1 Метод Виолы-Джонса 6
1.2 Свёрточные нейронные сети 10
1.2.1 Архитектура 12
1.2.2 Обучение сети 13
1.2.3 Функция активации 15
Глава 2. Практическая часть 20
2.1 Локализация дорожных знаков 20
2.1.1 Формирование базы дорожных знаков 20
2.1.2 Обучение каскада классификаторов 22
2.1.3 Результаты 23
2.2 Классификация дорожных знаков 24
2.2.1 Подготовка данных для обучения 24
2.2.2 Обучение нейронной сети 26
2.2.3 Результаты 28
2.3 Реализация на платформе Android 29
2.3.1 Этап локализации 29
2.3.2 Этап классификации 31
2.3.3 Результаты 32
Выводы 34
Заключение 36
Список литературы
В современном мире обязательным атрибутом в организации дорожного движения являются дорожные знаки. Они информируют водителей об опасных участках дороги, указывают направление движения, запрещают или дают право проезда, обязывают снизить скорость, а также выполняют множество других полезных задач.
С каждым годом число водителей постоянно увеличивается. Так по данным аналитики компании “Автостат Инфо” [1] количество легковых автомобилей в нашей стране по состоянию на 1 января 2016 года достигло 40 млн 629,2 тыс. Относительно 1 января 2015 года емкость автопарка выросла на 1 млн 279,9 тыс. В связи с этим необходимо, чтобы дорожное движение стало более безопасным. Для этой цели разрабатываются продвинутые системы помощи водителю “Advanced Driving Assistance Systems” (ADAS), которые постепенно встраиваются в некоторые современные высокотехнологичные серии автомобилей.
Система автоматического распознавания дорожных знаков является важнейшей частью ADAS. Она призвана уведомлять водителя о наличии дорожных знаков на дороге. Система может помочь водителю придерживаться установленного на участке дороги скоростного ограничения, соблюдать ограничения на проезд, обгон и т.д. Подобные системы впервые появились в конце 2008 года в автомобилях BMW 7-Series, а спустя год и в Mercedes-Benz S-Class. Эти системы умели распознавать только знаки ограничения скорости. Позже их встроили в такие серии как Volkswagen Phaeton и Opel Astra с дополнительной функцией распознавания знака “обгон запрещен” [2]. В общем, все ведущие мировые производители автомобилей стараются встроить подобные технологии в свои продукты. Однако большинство людей не может позволить себе цену подобных автомобилей и, как следствие, не может воспользоваться данной технологией. С другой стороны, на сегодняшний день практически у каждого есть смартфон с камерой. К тому же вычислительные мощности телефонов с каждым днем увеличиваются и уже приближаются к компьютерным. Поэтому наличие системы автоматического распознавания дорожных знаков в телефоне может решить эту проблему.
Задачей работы является осуществление идеи по разработке системы автоматического распознавания запрещающих и предупреждающих дорожных знаков и знака “Пешеходный переход”, способной работать на платформе Android в режиме реального времени. Были выбраны эти знаки, потому что именно они обозначают наиболее важную информацию для водителя, и их нарушение приводит к наиболее опасным ситуациям на дороге.
Система автоматического распознавания дорожных знаков представляет собой систему, как правило, состоящую из двух основных этапов:
1. Локализация дорожных знаков.
2. Классификация дорожного знака.
1. На первом этапе подготовлена база дорожных знаков и решена задача локализации знаков методом Виолы-Джонса. Полученное решение показало достаточно высокую точность локализации.
2. На втором этапе обучена свёрточная нейронная сеть для решения задачи классификации выделенных дорожных знаков. Подобрана архитектура сети с высоким показателем точности и скорости классификации.
3. На третьем этапе представлена реализация системы на платформе Android и приведены приемы, увеличивающие скорость работы системы. Используемые в работе алгоритмы носят общий характер и поэтому могут быть легко перенесены и на другие платформы.
Реализацию системы, каскадные классификаторы и обученную нейронную сеть можно увидеть в приложении [20].
1. Емкость парка легковых автомобилей в России на 2016 год. http://avtostat-info. com/News/2174
2. Traffic sign recognition on Wikipedia.
https://en.wikipedia.org/wiki/Traffic_sign_recognition
3. Viola P.A., Jones M.J. Robust real-time face detection // International journal of computer vision, 2004. Vol. 57, No 2, P 137-154.
4. LeCun Y., Bengio Y. Word-level training of a handwritten word recognizer based on convolutional neural networks // Proceedings of the International Conference on Pattern Recognition, Jerusalem, Israel, 1994. Vol. 2, P 88-92.
5. Lawrence S., Giles C.L., Tsoi A.C., Back A.D. Face recognition: a convolutional neural network approach // IEEE Transactions on Neural Networks, 1997. Vol. 8, No 1, P 98-113.
6. Хайкин С. Нейронные сети: полный курс, 2 изд. М.: Вильямс, 2008. 1103 с.
7. Осовский С. Нейронные сети для обработки информации. М.: Финансы и статистика, 2002. 344 с.
8. Must know tips/tricks in deep neural networks. http://lamda.nju.edu.cn/weixs/project/CNNTricks/CNNTricks.html
9. Krizhevsky A., Sutskever I., Hinton G.E. Imagenet classification with deep convolutional neural networks // Advances in neural information processing systems 25, 2012. P 1097-1105.
10. The german traffic sign recognition benchmark (GTSRB) dataset. http://benchmark.ini.rub.de/?section=gtsrb&subsection=dataset
11. Image Processing Toolbox: управление яркостью палитры. http ://matlab. exponenta.ru/imageprocess/book3 /10/brighten.php
12. Image Processing Toolbox: create predefined 2-D filter. http://www.mathworks.com/help/images/ref/fspecial.html
13. Image Processing Toolbox: добавление шума.
http ://matlab. exponenta.ru/imageprocess/book3 /10/ imnoise .php
14. The german traffic sign detection benchmark (GTSDB) dataset. http://benchmark.ini.rub.de/?section=gtsdb&subsection=dataset
15. Бикубическая интерполяция. http://ru.wikipedia.org/?oldid=68800582
16. Contrastlimited adaptive histogram equalization (CLAHE). http://www.mathworks.com/help/images/ref/adapthisteq.html
17. Caffe. http://caffe.berkeleyvision.org
18. Stochastic gradient descent in Caffe.
http: / / caffe.berkeleyvi sion. org/tutorial/solver.html
19. Интерфейс библиотеки Caffe для Android. https:// github. com/sh 1 r0/caffe-android-lib
20. Реализация системы автоматического распознавания знаков на платформе Android.
https://github.com/Nazukin-Dmitry/TrafficSignsRecognition