Распознавание зашумленных текстовых символов с помощью обучаемой нейронной сети
А.В. Красновидов, А.С. Алексеев Петербургский государственный университет путей сообщения Императора Александра I
Санкт-Петербург, Россия alexkrasnovidow@mail.ru, affectum@hotmail.com
Аннотация. Системы компьютерного зрения и распознавания образов применяются при решении широкого спектра задач управления, оповещения, в военных и медицинских целях. Такие системы выполняют преобразование исходных многомерных данных (цветных растровых изображений) в набор обобщенных выходных данных (классов объектов, гипотез, функций принадлежности). На начальных этапах такого преобразования часто требуется найти графические примитивы - окружности, эллипсы, прямоугольники, кривые, прямые и пр. - на сложном зашумленном изображении и построить карту графических примитивов.
В статье рассматриваются различные способы выделения таких примитивов, анализируются их достоинства и недостатки. Показаны преимущества использования обучаемых нейронных сетей для решения задач выделения графических примитивов. С помощью системы МаЙаЪ построена модель нейронной сети для распознавания 26 символов латинского алфавита. Проверена работоспособность построенной модели.
Ключевые слова: нейронные сети, модель графических примитивов, МаЙаЪ, №игаШе^огкТоо1Ъох.
Введение
В повседневной практике часто возникает задача распознавания различных изображений, таких как фотографии - для идентификации личности, номеров автомобилей или вагонов и т. п. В силу различных причин эти изображения могут подвергаться воздействию мешающих факторов (помех), что ведет к их искажениям. Например, номера вагонов могут иметь следующие искажения: затертые сверху (рис. 1, а); вторая половина букв залита краской (рис. 1, б) неровно нанесены [1].
в)
¿5967242
Рис. 1. Искаженные изображения номеров вагонов
В основу методологии распознавания изображений положен следующий принцип: изображение состоит из набора взаимосвязанных элементов. Каждый из элементов в свою очередь состоит из набора взаимосвязанных подэле-ментов, те также делятся на подэлементы нового уровня и так далее. На самом нижнем уровне изображение состоит из набора графических примитивов - простейших элементов, неделимых и легко распознаваемых. В качестве примитивов, как правило, выступают линии, отрезки дуг, кривые различной формы. В зависимости от конкретной задачи для упрощения и ускорения распознавания применяются также более сложные примитивы, например углы, образуемые пересечением линий, Т-образные конструкции, круги, стрелки и другие. Таким образом, процесс распознавания изображений можно разделить на три основных этапа:
• предварительная обработка изображения;
• векторизация и выделение примитивов;
• анализ изображения.
Отсюда следует, что в основе задачи распознавания изображений лежит выделение примитивов.
Анализ способов выделения графических примитивов
В настоящее время существует ряд продуктов, решающих задачу выделения графических примитивов. Для решения этой задачи они используют различные алгоритмы. Наиболее распространенными в настоящее время являются:
• преобразование Хафа;
• преобразование Радона;
• нейронная сеть.
Преобразование Хафа позволяет находить на монохромном изображении плоские кривые, заданные параметрически, например: прямые, окружности, эллипсы и т. д. Монохромным изображением считается изображение, состоящее из точек двух типов: фоновых точек и точек интереса. Задача преобразования Хафа состоит в выделении кривых, образованных точками интереса [2].
Преобразование Радона используется в компьютерной рентгеновской томографии и радиоастрономии для восстановления изображений по некоторому набору их проекций, являющихся прямыми линиями. Преобразование
Родона обладает свойством подавления шумов, поскольку вдоль этих прямых производится интегрирование. За счет этого отношение сигнал/шум в пространстве параметров выше, чем на исходном изображении, и обнаружение прямых обладает большей достоверностью [3].
Нейронная сеть является обучаемой математической моделью. Тип и структура такой сети выбирается и синтезируется для решения определенного типа задач. Обучение нейронной сети производится на основе информации о решении задачи экспертом или данных о решении задач в прошлом. Таким образом, для обучения сети нужно подобрать представительные данные и запустить алгоритм обучения, автоматически воспринимающий структуру введенных данных [4]. Результаты анализа разных способов выделения графических примитивов приведены в таблице 1.
ТАБЛИЦА 1. Способы выделения графических примитивов
Подход Преимущества Недостатки
Преобразование Хафа Полное покрытие возможных состояний и положения объекта (за счет полного перебора в стандартном алгоритме). Модифицируемость алгоритма, что позволяет сократить время полного перебора без потери существенной информации Предназначен для поиска прямых и окружностей
Преобразование Радона Инвариантность по отношению к качеству изображения. Применяемый математический аппарат позволяет легко переходить к другим видам преобразований (аффинным, Фурье) Предназначен для поиска прямых и окружностей. Сложность реализации
Нейронная сеть Возможность выделения графических примитивов сложной структуры Необходимость большого числа обучений сети и наличия представительной выборки данных. Ориентация на выделение заранее определенного класса изображений
Анализ таблицы 1 показывает, что нейронные сети могут распознавать примитивы более сложной структуры по сравнению с примитивами, распознаваемыми с помощью преобразований Хафа и Радона. Это может значительно упростить последующий анализ всего изображения в целом. С другой стороны, преобразования Хафа и Радона обладают большей универсальностью, так как выделяют элементарные (атомарные) примитивы, на которые может быть разложено изображение любой сложности.
На практике системы распознавания образов, как правило, ориентированы на распознавание какого-то определенного класса изображений. В этом случае использование нейронных сетей представляется более предпочтительным [5]. Примером такой задачи может служить задача распознавания текстов, состоящих из отдельных символов.
В нашей статье рассматривается нейронная сеть распознавания 26 символов латинского алфавита.
Нейронная сеть для распознавания символов
Контролируемые нейронные сети, или обучение с учителем, поддерживают три типа сетей: прямого распространения, радиально-базисные и динамические. Неконтролируемые сети, или обучающиеся без учителя, включают в себя такие сети, как конкурентные слои и самоорганизующиеся карты. Для распознавания символов подходят сети прямого распространения, потому что они включают в себя двухслойные сети с прямой связью, у которых диапазон выходных сигналов определен от 0 до 1 [6; 7].
Neural Network Tolbox (NNT) включает в себя функции командной строки и приложения для создания, обучения и моделирования нейронных сетей [8]. NNT поддерживает различные архитектуры контролируемых и неконтролируемых нейронных сетей. В настоящей статье исследование нейронной сети выполнено с помощью системы MATLAB (Matrix Laboratory), которая применяется для решения задач математических вычислений, моделирования сложных систем. Она имеет в своем составе одноимённый язык программирования [9].
В анализе использовался графический интерфейс Neu-ralNetworkToolbox, который позволяет, не обращаясь к командному окну системы MATLAB, выполнять создание, обучение, моделирование, а также импорт и экспорт нейронных сетей и данных, используя только инструментальные возможности GUI-интерфейса. Вызов GUI-интерфейса NNTool возможен либо командой nntool из командной строки, либо из окна запуска приложений Launch Pad с помощью опции NNTool из раздела Neural Network Toolbox. После вызова на экране терминала появляется окно Network/Data Manager, где есть возможность управлять сетью и данными (рис. 2) [10].
Рис. 2. GUI-интерфейс NNTool
Программа, разработанная в среде МаИаЪ, иллюстрирует, как распознавание символов может быть реализовано в сети с обратным распространением. В качестве примера рассматривалась нейронная сеть для распознавания 26 символов латинского алфавита.
В качестве датчика используется система распознавания, которая выполняет оцифровку каждого символа в поле зрения. В результате каждый символ представлен шаблоном размера 5x7. Например, символ А может быть представлен, как это показано на рис. 3, а и б.
б)
0 0 1 0 0
0 1 0 1 0
0 1 0 1 0
1 0 0 0 1
1 1 1 1 1
1 0 0 0 1
1 0 0 0 1
дальными функциями активации в каждом слое. Такая функция активации выбрана потому, что диапазон выходных сигналов для этой функции определен от 0 до 1, и этого достаточно, чтобы сформировать значения выходного вектора. Структурная схема такой нейронной сети показана на рис. 5 [11].
Рис. 3. Представление символа А
На рис. 4 показано искаженное по перечисленным выше причинам представление символа А.
Рис. 4. Искаженный символ А
Проектируемая нейронная сеть должна точно распознавать идеальные векторы входа и с максимальной точностью воспроизводить зашумленные векторы. На вход сети поступает вектор входа с 35 элементами; вектор выхода содержит 26 элементов, только один из которых равен 1, а остальные - 0. Правильно функционирующая сеть должна ответить вектором со значением 1 для элемента, соответствующего номеру символа в алфавите.
Кроме того, сеть должна быть способной распознавать символы в условиях действия шума. Предполагается, что шум - это случайная величина со средним значением 0 и стандартным отклонением, меньшим или равным 0,2. Для работы нейронной сети требуется 35 входов и 26 нейронов в выходном слое. Для решения задачи использовалась двухслойная нейронная сеть с логарифмическими сигмои-
: togsig (IW L,p +b'J а ' = logsig(LVt-J
Рис. 5. Структурная схема нейронной сети
Скрытый слой имеет 10 нейронов. Если при обучении сети возникнут затруднения, то можно увеличить количество нейронов этого уровня. Сеть обучается так, чтобы сформировать единицу в единственном элементе вектора выхода, позиция которого соответствует номеру символа, и заполнить остальную часть вектора нулями.
Наличие шумов может приводить к тому, что сеть не будет формировать вектора выхода, состоящего точно из единиц и нулей. Поэтому по завершении этапа обучения выходной сигнал обрабатывается М-функцией compet, которая присваивает значение 1 единственному элементу вектора выхода, а всем остальным - значение 0. В результате формируется массив векторов входа для алфавита размером 35x26 с шаблонами символов алфавита и массив целых векторов. Двухслойная нейронная сеть создается с помощью команды newff, как это показано ниже [12]:
S1 = 10;
net = newff(minmax(alphabet),[S1 S2],{'logsig' 'log-sig'},'traingdx');
net.LW{2,1} = net.LW{2,1}*0.01; net.b{2} = net.b{2}*0.01;
Полученная в результате выполнения команды нейронная сеть имеет структуру, показанную на рисунке 6.
Рис. 6. Структура нейронной сети
Чтобы создать нейронную сеть, которая может обрабатывать зашумленные векторы входа, выполнено обучение сети на идеальных и на зашумленных векторах. Сеть первоначально обучается в отсутствие шума с максимальным числом циклов обучения 5000 либо до достижения допустимой средней квадратичной погрешности, равной 0,1 (рис. 7).
также увеличить размер векторов, чтобы пользоваться шаблоном с более мелкой сеткой, например 10x14 точек вместо 5x7.
В качестве примера работы нейронной сети рассмотрено распознавание символа I. Для этого формируется за-шумленный вектор входа для символа I (рис. 9). Ниже показан пример формирования зашумленного вектора входа:
noisyJ = alphabet(:,9) + randn(35,1)*0.2; plotchar(noisyl);
Рис. 7. Обучение сети в отсутствие шума
Для проектирования нейронной сети, не чувствительной к воздействию шума, необходимо обучить сеть с применением двух идеальных и двух зашумленных копий векторов алфавита. Целевые векторы состоят из четырех копий векторов. Зашумленные векторы имеют шум со средним значением 0,1 и 0,2. Это обучает нейрон правильно распознавать зашумленные символы и в то же время хорошо распознавать идеальные векторы. При обучении с шумом максимальное число циклов обучения необходимо сократить до 300, а допустимую погрешность увеличить до 0,6 (рис. 8).
Рис. 9. Зашумленный символ I
Далее символ I восстанавливается по данному зашум-ленному образу (рис. 10). Фрагмент программы, восстанавливающий символ I, показан ниже:
A2 = sim(net,noisyJ);
A2 = compet(A2);
answer = find(compet(A2) == 1)
answer = 10
plotchar(alphabet(:, answer));
Рис. 8. Обучение сети при наличии шума
Поскольку нейронная сеть обучалась при наличии шума, то имеет смысл повторить ее обучение без шума для гарантии того, что идеальные векторы входа классифицируются правильно и избежать погрешности при отображение искомой буквы. Если необходима более высокая точность распознавания, сеть может быть обучена либо в течение более длительного времени, либо с использованием большего количества нейронов в скрытом слое. Можно
Рис. 10. Восстановленный символ I
Таким образом, нейронная сеть выделила 9 правильных элементов и восстановила символ I без ошибок, что подтверждает работоспособность предлагаемого метода.
Заключение
1. Нейронная сеть может быть использована для выделения графических примитивов, имеющих более сложную структуру, чем элементарные графические примитивы (точка, окружность и т. п.).
2. Возможность обучения нейронной сети позволяет строить модели, нечувствительные к воздействию шумов и искажений. Применение различных наборов зашумленных векторов позволило обучить сеть работать с изображениями, искаженными шумами, что характерно для реальной практики.
3. Использование пакета расширения Neural Network Toolbox дает возможность выполнять создание, обучение, моделирование, а также импорт и экспорт нейронных сетей и данных, используя только инструментальные возможности GUI-интерфейса.
4. Программная реализация процесса распознавания графических элементов с помощью системы Matlab не является сложной.
ЛИТЕРАТУРА
1. Фрактальный метод обнаружения групповых объектов транспортной инфраструктуры на изображениях / Е.П. Марков, А. С. Андрусенко, Е.И. Шабаков // Интеллектуальные технологии на транспорте. - 2016. - № 4(8). - С. 10-15.
2. Roushdy M. Detecting Coins with Different Radii based on Hough Transform in Noisy and Deformed Image / M. Roushdy // GVIP Journal, 2007, Vol. 7, No1. P. 1-5.
3. Хелгасон С. Преобразование Радона. - М. : Мир, 1983. - 152 с.
4. Смелянский Р. Л. Компьютерные сети. В 2 т. Том 2. Сети ЭВМ. - М. : Академия, 2011. - 240 с.
5. Epshtein B., Ofek E., Wexler Y. Detecting text in natural scenes with stroke width transform. In: CVPR '10: Proc. of the 2010 Conference on Computer Vision and Pattern Recognition (2010).
6. Principe J.C., Euliano N.R., Lefebvre W.C. Neural and Adaptive Systems. Fundamentals Through Simulations. - New York. John Wiley & Sons Inc. - 2000.
7. Luo F-L., Unbehauen R. Applied Neural Networks for Signal Processing. Cambridge University Press. - 2008.
8. Demuth H., Beale M. Neural Network Toolbox. For Use with MATLAB. The MathWorks Inc. 1992-2000.
9. Баженов Р.И. Интеллектуальные информационные технологии. - Биробиджан : ПГУ им. Шолом-Алейхема, 2013. - 176 с.
10. Иванников В., Ланнэ А. Matlab для DSP. Нейронные сети: графический интерфейс пользователя [Электронный ресурс]. - URL: http://www.chipinfo.ru/ literature/chipnews/ 200108/1.html#lanne8.
11. Миронов И.С., Скурлаев С.В. Распознавание образов при помощи нейронной сети [Электронный ресурс]. - URL: http://confonline.susu.ru/index.php?option=com_content&view= article&id=57:2011-05-06-04-36-21&catid=16:-2—&Itemid=18.
12. Шеремет А.И., Перепелица В.В., Денисова А.М. Проектирование нейронной сети для распознавания символов в программной среде MATLAB [Электронный ресурс]. - URL: http://nauka.zinet.info/13/sheremet.php.
Identification of Images Using Neural Network
rri • •
Training
A. V. Krasnovidov, A. S. Alekseev Emperor Alexander I St. Petersburg State Transport University St.-Petersburg, Russia alexkrasnovidow@mail.ru, affectum@hotmail.com
Abstract. Computer vision and pattern recognition systems are used to solve a wide range of management, alert, military and medical purposes. Such systems perform the transformation of the original multidimensional data (color raster images) into a set of generalized output data (object classes, hypotheses, membership functions.). At the initial stages of this transformation, you often need to find graphics tools - circles, ellipses, rectangles, curves, lines, etc. - on a complex noisy image and build a map of graphic primitives. In the article various ways of allocation of such expectations are considered, their advantages and disadvantages are analyzed. The advantages of using trained neural networks for solving graphic primitive allocation problems are shown. With the help of the Matlab system, a model of the neural network is constructed to recognize the 26th Latin alphabet. The working capacity of the constructed model was checked.
Keywords: Neural networks, model of graphic primitives, Matlab, NeuralNetworkToolbox.
References
1. Fractal method of detecting group objects of transport infrastructure on images [Fraktal'nyy metod obnaruzheniya gruppovykh ob''ektov transportnoy infrastruktury na izobra-zheniyakh] / E.P. Markov, A.S. Andrusenko, E.I. Shabakov // Intellectual Technologies on Transport [Intellektual'nye tekhnologii na transporte], 2016. - No 4 (8). - Pp. 10-15.
2. M. Roushdy. Detecting Coins with Different Radii based on Hough Transform in Noisy and Deformed Image / M. Roushdy // GVIP Journal, 2007, Vol. 7, No 1. - P. 1-5.
3. Helgason S. Transformation of Radon [Preobrazovanie Radona]. - Moscow : Mir, 1983, 152 p.
4. Smelyansky RL Computer networks [Komp'yuternye seti]. In 2 volumes. Volume 2. Computer networks; Academy -Moscow, 2011. - 240 c.
5. Epshtein, B., Ofek, E., Wexler, Y.: Detecting text in natural scenes with stroke width transform. In: CVPR '10: Proc. of the 2010 Conference on Computer Vision and Pattern Recognition. (2010)
6. Principe J.C., Euliano N.R., Lefebvre W.C. Neural and Adaptive Systems. Fundamentals Through Simulations. New York. John Wiley & Sons Inc. 2000.
7. Luo F-L., Unbehauen R. Applied Neural Networks for Signal Processing. Cambridge University Press. - 2008.
8. Demuth H., Beale M. Neural Network Toolbox. For Use with MATLAB. The MathWorks Inc. 1992-2000.
9. Bazhenov R.I. Intellectual information technologies [Intellektual'nye informatsionnye tekhnologii]. Birobidzhan: PSU them. Sholom-Aleikhema, 2013. - 176 p.
10. Ivannikov V., Lanne A. Matlab for the DSP. Neural networks: graphical user interface [Matlab dlya DSP. Neyron-nye seti: graficheskiy interfeys pol'zovatelya]. Available at: http://www.chipinfo.com/literature/chipnews/200108/1.html#l anne8 (accessed 25 May 2018).
11. Mironov I.S, Skurlaev S.V. Identification of images using a neural network [Raspoznavanie obrazov pri pomoshchi neyronnoy seti]. Available at: http://confonline.susu.ru/index.php? option=com_content&view=article&id=57:2011-05-06-04-36-21&catid=16:-2—&Itemid=18 (accessed 25 May 2018).
12. Sheremet AI, Perepelitsa VV, Denisova A.M. Designing a neural network for character recognition in the MATLAB software environment [Proektirovanie neyronnoy seti dlya raspoznavaniya simvolov v programmnoy srede MATLAB]. Available at:http://nauka.zinet.info/13/sheremet.php (accessed 25 May 2018).
HHmmneKmyanbHbie техноnогии Ha mpaHcnopme. 2018. № 2
33