ВВЕДЕНИЕ 6
1 ТЕХНОЛОГИЯ УПРАВЛЕНИЯ БЕСПИЛОТНЫМИ ТРАНСПОРТНЫМИ СРЕДСТВАМИ 9
1.1 МАШИННОЕ ЗРЕНИЕ В БЕСПИЛОТНОМ УПРАВЛЕНИИ ТРАНСПОРТНЫМИ СРЕДСТВАМИ 11
1.2 БИБЛИОТЕКА OPENCV 14
1.3 СРАВНИТЕЛЬНЫЙ АНАЛИЗ СУЩЕСТВУЮЩИХ ПОДХОДОВ К РАСПОЗНАВАНИЮ ДОРОЖНЫХ ЗНАКОВ 19
2 РАЗРАБОТКА ПРОГРАММЫ И ОБУЧЕНИЕ НЕЙРОННОЙ СЕТИ ДЛЯ РАСПОЗНОВАНИЯ
ДОРОЖЫХ ЗНАКОВ 35
2.1 ПОДГОТОВКА ИЗОБРАЖЕНИЯ 38
2.2 РАЗМЕТКА ИЗОБРАЖЕНИЙ 39
2.3 ОБУЧЕНИЕ НЕЙРОННОЙ СЕТИ 40
2.4 РАЗРАБОТКА ПРОГРАММЫ 42
3 АНАЛИЗ ЭФФЕКТИВНОСТИ РАБОТЫ РАЗРАБОТАННОЙ ПРОГРАММЫ 44
4 ЗАКЛЮЧЕНИЕ 50
5 СПИСОК ИСПОЛЬЗОВАННЫХ ИСТОЧНИКОВ
Последнее время активно развивается направление искусственного интеллекта для вождения машин. Одной из важнейших частей автомобильного автопилота является получение информации об окружении: об объектах, таких как другие автомобили на дороге, пешеходы, велосипедисты, препятствия вроде бетонных блоков или упавшего на дорогу дерева, о параметрах системы, скорости и направлении движения, качества сцепления с дорожным покрытием, качестве самого дорожного покрытия (несомненно, эти параметры взаимосвязаны, но из одного нельзя вывести другой в общем случае), погодные условия, которые влияют как на сам автомобиль с автопилотом, так и на окружающие его объекты, что необходимо учитывать для предсказания их поведения и подготовки собственной реакции. Также не стоит забывать и о том, что можно назвать мета параметрами: различные правила дорожного движения. Эти правила могут меняться в зависимости от места нахождения автомобиля, от окружающих его условий: времени суток, погоды и многого другого. Важным объектом для определения текущих правил являются дорожные знаки. Вообще, дорожные знаки - это стационарные объекты и часто можно встретить мнение, что распознавать их с помощью компьютерного зрения нет необходимости. Действительно, такое распознавание - это достаточно трудоемкая задача, которая, вдобавок ко всему, еще и не решается со 100% точностью в общем случае. При этом критики данного подхода достаточно разумно заявляют, что автопилот все равно имеет доступ к системе навигации и, так как местоположение знаков меняется не часто, то можно просто запомнить, где какой знак стоит. Либо же поместить на каждый дорожный знак радиометку, которая будет точно сообщать какой знак здесь стоит. Радиометка не требует продвинутого алгоритма распознавания: она будет точно сообщать нужную информацию, более того, радиосигнал принять зачастую проще, чем видео: ему не помешают кусты или ветви деревьев, да и просто другие автомобили. Чем же плохи эти варианты? Особая метка на знаках плоха сразу по нескольким параметрам: для нее нужно гарантировать надежность источника, иначе кто угодно
сможет управлять действиями автопилота, что вряд ли закончится хорошо. Также такую метку нужно установить, причем на все дорожные знаки хотя бы там, где предполагается использование автопилота. И за работой этих меток придется следить постоянно, ведь если автопилот управляет автомобилем на основании данных от таких меток, то, в случае отсутствия сигнала он не сможет определить: это метка сломалась или здесь знака действительно нет. Да, все эти вопросы можно решить. Но будет ли это надежнее системы компьютерного зрения? Однозначно можно сказать, что это не будет дешевле. Что же насчет заранее созданной базы дорожных знаков? Эта идея весьма неплоха, но и у нее есть свои недостатки. Во - первых, эту базу должен кто-то создавать и обновлять. Если у автопилота не будет средств визуального распознавания знаков, то придется рассчитывать либо на добровольцев людей, либо на специально нанятых сотрудников. Первый способ крайне ненадежен как по срокам, так и по точности: действительно, полагаться на сообщение только одного водителя нельзя, нужно набирать некоторое их количество. При достаточной мотивации количество водителей — это не проблема для крупных и оживленных трасс, но что делать с остальными? Нанимать же специальных сотрудников крайне дорого, да и скорость обновления будет крайне низкой. Можно было бы попытаться собирать информацию о знаках у официальных служб, но это также весьма непросто и скорость никто не гарантирует. Во-вторых, автомобиль - это средство повышенной опасности и полагаться только на одну систему все равно нельзя. Таким образом, даже если проблемы с базой и ее обновлением можно решить, то все равно нужна какая-то страховка на случай, если система геолокации вдруг даст сбой. Хотя это гораздо более актуально для, собственно, вождения, но, раз уж для него у автопилота будут системы визуального распознавания объектов, то естественно добавить туда и распознавание знаков. А такая система однозначно будет, даже если точность и надежность систем геолокации кардинально улучшаться: мы ведь не можем повесить датчик на каждого человека, который может оказаться на дороге или рядом с ней, на каждое дерево возле дороги, на каждый камень на обочине. Подведем итог: аналоги визуальной системы распознавания знаков не могут заменить ее полностью, как по причине собственных проблем, как инженерных, так и экономических, так и по причине необходимости подстраховки, на случай если что-то пойдет не так. Система визуального распознавания дорожных знаков - это частный случай давно известной задачи распознавания образов, которая в свою очередь является одной из центральных задач технологии компьютерного зрения, родившейся еще в 60-х годах прошлого века. Естественно, что различных решений для этой задачи существует множество. На данный момент не существует однозначно выигрывающего решения этой задачи, более того, для различных частных случаев лучшими являются различные решения. Усугубляет проблему то, что в большинстве этих решений есть большое количество параметров, напрямую влияющих на основные параметры работы системы: на точность, скорость работы, скорость обучения (там, где оно нужно) и объем занимаемой памяти. Таким образом, было принято решение перед разработкой непосредственно системы распознавания, разработать прототип для изучения подходов. Такой прототип имеет значительно более мягкие требования к вычислительным мощностям, скорости работы и может занимать гораздо больше памяти, чем итоговая система, которая сильно ограничена параметрами автомобиля, в который она устанавливается. Благодаря этому появляется возможность относительно быстро разработать систему для изучения различных алгоритмов на языке высокого уровня.
Цель работы - разработка программы для распознавания дорожных знаков в режиме реального времени с помощью нейронной сети.
Задачи:
• Сравнительный анализ существующих методов распознавании объектов на изображении.
• Разработка программы для распознавания дорожных знаков и обучение нейронной сети
• Анализ эффективности работы разработанной программы на видеоизображениях и в режиме реального времени.
ТРАНСПОРТНЫМИ СРЕДСТВАМИ
В настоящее время автомобильная индустрия претерпевает существенные изменения: ввиду развития техники и прогресса в сфере информационных технологий одной из наиболее актуальных задач является создание беспилотных транспортных средств, в том числе беспилотных автомобилей. Одной из ключевых систем беспилотного транспортного средства является автопилот - программноаппаратный комплекс, позволяющий осуществлять перемещение транспортного средства по заданной траектории. Наиболее часто автопилот применяется в летательных аппаратах, поскольку в воздушном пространстве количество препятствий на пути транспортного средства незначительно; также подобные технологии применяются в управлении транспортными средствами, движущимися по рельсам [1].
Классификация автоматизации автомобилей, разработанная Сообществом автомобильных инженеров (SAE - Society of Automotive Engineers), определяет шесть уровней автоматизации. Нулевой уровень допускает наличие различного рода уведомлений в автомобиле, однако управление транспортным средством осуществляет исключительно водитель. В автомобилях первого уровня автоматизации могут присутствовать такие автоматизированные системы, как адаптивный круиз-контроль (ACC - Adaptive Cruise Control) - система, поддерживающая переменную скорость автомобиля с соблюдением дистанции до движущегося впереди транспортного средства, автоматическая парковочная система и система предупреждения о сходе с полосы второго типа (LKS - lane keeping system) - механизм, предупреждающий водителя о перемещении из своей полосы при выключенном поворотнике и автоматически удерживающая транспортное средство в на нужной полосе при бездействии водителя. Водитель транспортного средства, оборудованного системой первого уровня автоматизации, должен быть готов в любой момент взять управление на себя. Система второго уровня автоматизации управляет ускорением, торможением и рулением, участие водителя
9
необходимо в случаях, когда система не смогла справиться самостоятельно. Такую систему водитель может отключить в любое время. Система третьего уровня позволяет не контролировать транспортное средство на дорогах с предсказуемым движением, но водитель все еще должен быть готовым взять управление на себя. Напротив, система четвертого уровня автоматизации не требует внимания водителя. Система пятого уровня не требует от человека никаких действий, кроме включения и указания пункта назначения. Транспортное средство должно доехать до любого пункта назначения, если это возможно, без участия водителя [2].
Применение технологий автоматического управления автомобилем ставит перед разработчиками ряд дополнительных задач, что существенно усложняет создание и введение в эксплуатацию подобных транспортных средств.
Несмотря на большое количество различных компаний, занимающихся исследованиями в данной сфере, общие принципы работы беспилотного автомобиля являются неизменными. Транспортное средство оборудуется множеством различных датчиков и видеокамерой. Это необходимо для решения следующих задач:
1 построение 3D карты местности;
2 определение положения автомобиля на карте;
3 определение характера движения автомобиля;
4 анализ ситуации на дороге: поиск препятствий в виде других транспортных средств, пешеходов, велосипедистов;
5 определение расстояния до объектов;
6 анализ разметки и дорожных знаков.
Построение высокоточных карт местности позволит уменьшить количество вычислений. Так, информация о структуре дорог, разметке, дорожных знаках может содержаться в карте. Таким образом, задачей вычислительной системы будет проверка достоверности информации и поиск изменений, таких как появление препятствий на дороге, других автомобилей, пешеходов, изменений в разметке и составе дорожных знаков.
Использование беспилотных автомобилей имеет ряд преимуществ. Во-первых, отсутствие необходимости участия человека в управлении транспортным средством позволяет осуществлять грузоперевозки в местах, опасных для жизни и здоровья человека, а также во время военных действий и природных и техногенных катастроф. Также это повлечет снижение себестоимости товара за счет снижения затрат на оплату труда рабочих и уменьшения расхода топлива. Кроме этого, беспилотное управление транспортным средством позволяет исключить возможность совершения человеком непреднамеренных ошибочных действий, обусловленных его физическим и психологическим состоянием, что позволяет снизить вероятность возникновения аварийных ситуаций.
Переход от ручного управления транспортным средством к автоматическому позволит также создать единую информационную сеть, что позволит использовать технологии Интернета вещей для обмена информацией между транспортными средствами, создания и корректировки карт.
Целью выпускной квалификационной работы являлась разработка программы для распознавания дорожных знаков в режиме реального времени с помощью нейронной сети.
Для достижения поставленной цели были решены следующие задачи:
• Сравнительный анализ существующих методов распознавании объектов на изображении.
• Разработка программы для распознавания дорожных знаков и обучение нейронной сети
• Анализ эффективности работы разработанной программы на видеоизображениях и в режиме реального времени.
Тестирования программы на видеозаписях показывает, что знак стоп определяется с расстояния 20 метров, что является хорошим результатом. Водитель останавливается перед самим знаком, убедившись, что он не мешает другим участникам движения, он продолжает движение.
Обнаружение знака «Ограничение скорости 20 км/ч» происходит с расстояния больше 20 метров. Автомобиль двигается со скоростью 18 км/ч. Следует заметить, что присутствует и другие дорожные знаки. Ложные срабатывания на другие знаки отсутствуют.
Обнаружение знака «Пешеходный переход». Автомобиль двигается со скоростью 15 км/ч. На дороге одновременно с двух сторон дороги присутствует 2 знака «Пешеходный переход». Перед искусственной неровностью автомобиль резко тормозит и скорость автомобиля уменьшается до 5 км/ч. При такой скорости точность обнаружения очень высокая. Оба знака с противоположной стороны дороги были обнаружены.
По итогам анализа эффективности работы программы для распознавания дорожных знаков в режиме реального времени с помощью нейронной сети можно сказать, что программа работает на отлично, и с высокой точностью определяет нужные нам дорожные знаки. Стоит отметить, что ложных срабатываний отсутствуют. Разработанная программа может использоваться в дальнейшем при разработке беспилотных автомобилей.
В ходе написания выпускной квалификационной работы была изучена необходимая литература, решены все поставленные задачи. Цель, определенная в начале работы была достигнута.
1. Хайкин С. Нейронные сети: полный курс, 2 изд. М.: Вильямс,
2008. 1103 с.
2. 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.
3. A Convolutional Neural Network Cascade for Face Detection / Haoxiang Li, Zhe Lin, Xiaohui Shen et al. // The IEEE Conference on Computer Vision and Pattern Recognition (CVPR).— 2015.—June.
4. Форсайт Д. А., Понс Ж. Компьютерное зрение. Современный подход. - Издательский дом «Вильямс», 2004. - 209 с.
5. OpenCV. Documentation index = Перечень документации. - http://docs.opencv.org/ (дата обращения 20.02.2018).
6. Лаборатория компьютерной графики и мультимедиа. Российская база изображений автодорожных знаков. - https://graphics.cs.msu.ru/node/1325 (дата обращения 13.03.2018).
7. Machine Learning. Алгоритм Левенберга-Марквардта. - http://www■machineleaming■ru/wiki/index■php?title=Алгоритм ЛевенбергаМаркв ардта (дата обращения 14.01.2018).
8. Якимов, П.Ю. Предварительная обработка цифровых изображений в системах локализации и распознавания дорожных знаков // Компьютерная оптика. -
2013. - Т. 37, № 3. - С. 401-405.
9. Фурсов, В.А. Локализация контуров объектов на изображениях при вариациях масштаба с использованием преобразования Хафа / С.А. Бибиков, В.А. Фурсов, П.Ю. Якимов // Компьютерная оптика. - 2013. - Т. 37, № 4. - С. 496502.
10. Ruta, A. Detection, Tracking and Recognition of Traffic Signs from Video Input / A. Ruta, Y. Li, X. Liu // Proceedings of the 11th International IEEE Conference on Intelligent Transportation Systems, Beijing, China. - 2008. - P. 55-60.
11. Mogelmose, A. Vision-Based Traffic Sign Detection and Analysis for Intelligent Driver Assistance Systems: Perspectives and Survey / A. Mogelmose, M.M. Trivedi, T.B. Moeslund // Intelligent Transportation Systems, IEEE Transactions on. - 2012. - Vol. 13(4). - P. 1484-1497.
12. Bishop C.M. Neural Networks for Pattern Recognition // Oxford University Press, 1995. - 498 p.
13. LeCun, Y. Traffic Sign Recognition with Multi-Scale Convolutional Networks / Yan LeCun, Pierre Sermanet // Proceedings of International Joint Conference on Neural Networks (IJCNN'11). - 2011.
14. Архипов А.Е. Система технического зрения для распознавания текста (символов) // Распознавание опти-ческих изображений. / Под общей ред. Ю.С. Сагдулаева, B.C. Титова. - Ташкент: ТЭИС, 2000. - 313 с.
15. Консультант Плюс. Правила дорожного движения Российской Федерации. - http://www.consultant.ru/document/cons doc LAW 2709/824c911000b36266 74abf3ad6e38a6f04b8a7428/ (дата обращения 12.02.2018)
16. Методы компьютерной обработки изображений / Под ред. В.А. Сойфера. - М.: Физматлит. - 2001. - 784 с.