Пояснительная записка королёв (1206313), страница 7
Текст из файла (страница 7)
w – Параметрический вектор;
y – выход сети;
Благодаря использованию общих синаптических весовых коэффициентов в плоскостях сверточных нейронных сетей достигается уменьшение количества настраиваемых параметров. СНС содержит 13377 нейронов и 1530 синаптических коэффициентов. В таблице 2.1 представлена конфигурация сверточной нейронной сети.
Таблица 2.1 – Конфигурация сверточной нейронной сети
Слой | 1 | 2 | 3 | 4 | 5 | 6 | 7 |
Число плоскостей | 1 | 5 | 5 | 20 | 20 | - | - |
Размер плоскостей | 28*52 | 24*46 | 12*23 | 10*20 | 5*10 | - | - |
Количество нейронов в слое | 1456 | 5520 | 1380 | 4000 | 1000 | 20 | 1 |
Размер локального рецептивного поля | - | 5*7 | 2*2 | 3*4 | 2*2 | - | - |
Количество синаптических коэффициентов | - | 180 | 10 | 260 | 40 | 1020 | 20 |
При использовании классических нейронных сетей каждый участок изображения рассчитывается отдельно от всех остальных участков, это приводит к большим объемам вычислений и снижению скорости работы системы. В сверточных нейронных сетях данный недостаток устраняется использованием общих синаптических коэффициентов и так называемого метода общих вычислений. Локальные рецептивные поля сверточных слоев частично наслаиваются друг на друга и имеют общие значения нейронов. Поэтому можно не вычислять значения всех нейронов локального рецептивного поля, а использовать значения, вычисленные на предыдущих итерациях. Использование этого метода позволяет значительно снизить время и объем вычислений.
2.6 Выводы по 2 главе
Произведен полный анализ структуры, предложенной сверточной нейронной сети. Предложен метод распознавания дорожных знаков основанный на комбинированном использование метода опорных векторов и сверточной нейронной сети. Данный метод за счет поочередной идентификации, обеспечивает необходимую надежность и высокую степень инвариантности к различным шумовым и проекционным искажениям. На основе данного метода будет разработано программное средство распознавания дорожных знаков на изображении.
3 Программное обеспечения для распознавания дорожных знаков на изображении
В данной главе представлено описание программной реализации разработанных алгоритмов. Представлен обзор инструментальных библиотек по компьютерному зрению и обработке изображений и приведено обоснование выбора средств для программной реализации алгоритмов. Представлено описание программы, краткое руководство пользователя. Так же будут наглядно продемонстрированы преимущества программы для распознавания дорожных знаков на большом расстоянии, в повернутом состоянии и распознавание нескольких знаков одновременно.
3.1 Общие требования к разрабатываемому программному обеспечению
Исходя из современных требований к качеству программного обеспечения, разрабатываемая программная система должна обладать следующими характеристиками:
-
корректная работа программной системы в решении поставленных задач.
-
устойчивость программной системы к различным ошибкам, сбоям и действиям, выходящим за рамки ее функционального предназначения.
-
небольшая вычислительная сложность используемых алгоритмов.
-
возможность расширять, изменять и дополнять функциональность разработанных библиотек. для обеспечения этого пункта необходимо следовать принципам простоты построения программы и децентрализации.
-
программная система должна обладать модульной архитектурой, где каждый модуль предназначен для решения определенных задач.
-
не противоречивость программных модулей. заключается в том, что все модули программной системы должны работать в едином слаженном режиме и не противоречить друг другу.
-
возможность повторного использования программных модулей. Обеспечивает сокращение времени разработки программной системы и сокращение размера программного кода.
В соответствии с поставленными задачами к разрабатываемой программной системе предъявляются следующие функциональные требования:
-
выполнение предварительной обработки цифровых изображений для осуществления последующих операций с ними;
-
возможность настройки классификаторов, на основе обучающих данных, которые хранятся во внешних файлах;
-
детектирование области расположения изображений дорожных знаков;
-
осуществление нормализации изображений символов;
-
распознавание символов на изображениях;
3.2 Выбор средств для разработки программного обеспечения
Наиболее часто используемым инструментом для создания нейронных сетей считается пакет прикладных программ для решения задач технических вычислений Matlab Neural Network Toolbox. Для данного пакета программ существует несколько библиотек, направленных на реализацию сверточных нейронных сетей. Но разработка нейронных сетей в Matlab имеет ряд недостатков, которые заключаются в громоздкой реализации и крайне низкой скорости работы. Так же существует несколько библиотек для реализации СНС и алгоритмов их обучения, большинство из которых написаны на языке Python. В процессе анализа и тестирования некоторых библиотек было выявлено, что они не всегда корректно устанавливаются и работают. В итоге для решения поставленной задачи был сделан выбор в пользу программной реализации СНС, а также алгоритмов их обучения. На сегодняшний день существует множество языков программирования, как с общей, так и с научной направленностью. Один из наиболее востребованных и удобных языков для решения широкого диапазона задач является язык программирования C#. Удобство использования данного языка программирования заключается в наличии большого количества различных библиотек и оптимизируемых алгоритмов. Так же данный язык программирования обеспечивает следующие достоинства при разработке нейронных сетей:
-
Возможность реализации модульной иерархической структуры нейронной сети;
-
Возможность создания гибкой и легко перестраиваемой модели нейронной сети;
-
Предоставляет наиболее прозрачную реализацию нейронной сети Исходя из этого, в качестве языка программирования был выбран язык программирования С#, в качестве среды программирования было выбрано программное обеспечение Microsoft Visual Studio 2016.
Так же для решения задач в области компьютерного зрения и обработки изображений широко используются специализированные библиотеки. Наиболее популярной и распространенной является открытая библиотека OpenCV (Open Source Computer Vision Library). Библиотека содержит алгоритмы интерпретации изображений, устранения оптических искажений, анализа перемещения объектов, сегментации изображений и других численных алгоритмов общего назначения с открытым кодом. Данная библиотека реализована на языках C#, C++, также разрабатывается для Python, Java, Matlab и других языков.
Библиотека содержит следующие модули:
-
CXCORE – базовые структуры. Содержит: алгоритмы работы с памятью; алгоритмы преобразования типов данных; алгоритмы работы с матрицами; алгоритмы работы с 2D объектами.
-
CV – модуль, предназначенный для обработки изображений. Содержит: алгоритмы для обработки и анализа изображений; алгоритмы слежения за объектами; алгоритмы распознания объектов; алгоритмы, предназначенные для калибровки камер.
-
ML – модуль, предназначенный для машинного обучения. Содержит: алгоритмы, предназначенные для классификации и анализа данных.
-
HighGUI – модуль, предназначенный для создания пользовательского интерфейса. Поддерживает: создание окон, вывод изображений, захват видео.
-
CVAUX – модуль, предназначенный для описания пространственного зрения. Содержит: алгоритмы описания черт лица, описания текстур.
-
CVCAM – модуль, предназначенный для захвата видео с цифровых камер.
Чтобы достичь максимальных результатов от обучения сети для обучающей выборки был выбран пакет данных German Traffic Sign Recognition Benchmark (GTSRB), состоящий из около 51 839 изображений, с разными размерами от 15х15 до 250х250 пикселей. Все они содержат один из 43 видов немецких дорожных знаков. Изображения уже разделены в соотношении 1:3 на тестовые и тренировочные данные соответственно. Тренировочные данные уже отсортированы на основе класса, изображенных на них дорожных знаков, и находятся в 43 папках [46].
GTSRB заключает в себе огромное множество образцов знаков одного вида, которые отличаются друг от друга размерами, интенсивностью цвета, наклоном и углом поворота знака на изображении. Продемонстрированные в GTSRB изображения относятся к так называемым положительным прецедентам, это значит, что они содержат изображения дорожного знака, а отрицательными прецедентами они будут являться если они не содержат изображений с дорожными знаками. В GTSRB существуют кадры, которые не содержат дорожные знаки, при чем они отобраны так, что есть шанс принять их за искомый дорожный знак. Их используют с целью, различия положительных от отрицательных прецедентов [28].
3.3 Интерфейс программного обеспечения
При запуске программной системы открывается форма главного интерфейса, на рисунке 3.1 показан снимок экрана с главным окном программы
Рисунок 3.1 – Главное меню системы распознавания дорожных знаков
В правом верхнем углу окна программы находятся стандартные кнопки для каждого программного продукта:
-
свернуть;
-
развернуть в полное окно;
-
закрыть программу.
Так же есть кнопка «вернуться на главную страницу» программы (рис.3.2).
Рисунок 3.2 – Кнопка программы, возвращающая на основную страницу «главная»
Кнопка «запуск» открывает окно импорта тестовых изображений для проверки работоспособности программы. На рисунке 3.3 показана тестовая выборка изображений
Рисунок 3.3 – Импорт изображений в программы
Кнопка «обучение» позволит выбрать обученную сеть или обучить новую.
Кнопка «загрузить модель» поможет загрузить уже сохраненные модели. Пример на рисунке 3.4.
Рисунок 3.4 – Окно выбора сохраненных моделей
У нас имеются уже обученные модели дорожных знаков, которые можно увидеть на рисунке 3.5.
Рисунок 3.5 – Доступные обученные модели дорожных знаков
Так же после обучения можно сохранить модель, с помощью кнопки сохранить модель, пример показан на рисунке 3.6.
Рисунок 3.6 – Кнопка сохранить модель
После нажатия кнопки «запуск» и выбора тестовых изображений появляется такое окно (рис. 3.7).