(Мисюрёв А. В.)
Рассматривается задача распознавания символов в анкетах, заполняемых от руки печатными буквами. Фрагмент такой анкеты приведен на Рис. 1.
Искусственные нейронные сети достаточно широко используются при распознавании символов (см., например, 1-3,6-9). Алгоритмы, использующие нейронные сети для распознавания символов, часто строятся следующим образом. Поступающее на распознавание изображение символа (растр) приводится к некоторому стандартному размеру. Как правило, используется растр размером 16х16 пикселов. Примеры таких нормализованных растров показаны на Рис. 2.
Значения яркости в узлах нормализованного растра используются в качестве входных параметров нейронной сети. Число выходных параметров нейронной сети равняется числу распознаваемых символов. Результатом распознавания является символ, которому соответствует наибольшее из значений выходного вектора нейронной сети (см. Рис 3, показана только часть связей и узлов растра). Повышение надежности таких алгоритмов связано, как правило, либо с поиском более информативных входных признаков, либо с усложнением структуры нейронной сети.
Надежность распознавания и потребность программы в вычислительных ресурсах во многом зависят от выбора структуры и параметров нейронной сети. Нейронная сеть, разработанная для распознавания цифровых почтовых кодов (кодов) описывается в (1). Изображения цифр приводятся к единому размеру (16х16 пикселов). Полученное изображение подается на вход нейронной сети, имеющей три внутренних уровня и 10 узлов в верхнем уровне. Нижние слои сети не являются полносвязанными. Узлы низшего уровня совместно используют общий набор весов. Все это, по замыслу разработчиков, должно повысить способность низших уровней сети к выделению первичных признаков в изображениях. Полученная таким образом нейронная сеть имеет 1256 узлов и 9760 независимых параметров. Для увеличения способности сети к обобщению и уменьшению объема необходимых вычислений и памяти проведено удаление слабо используемых весов. В результате число независимых параметров уменьшается в четыре раза. Обучение нейронной сети проведено на наборе из 7300 символов, тестирование на наборе из 2000 символов. Ошибки распознавания составляют приблизительно 1% на обучающем наборе и 5% на проверочном.
В качестве входных параметров нейронной сети вместо значений яркости в узлах нормализованного растра могут использоваться значения, характеризующие перепад яркости. Такие входные параметры позволяют лучше выделять края буквы. Система распознавания рукопечатных цифр, использующие такие входные параметры, описывается в (2). Поступающие на распознавание изображения приводятся к размеру 16х16 пикселов. После этого они подвергаются дополнительной обработке с целью выделения участков с наибольшими перепадами в яркости. Используемая нейронная сеть имеет только один внутренний уровень, но применяется совместно с другими алгоритмами. Обучение и тестирование проведено на символах, взятых из трех независимых баз данных. Из каждой базы данных используется от 4000 до 6000 символов на обучение и от 2000 до 4000 символов на тестирование. Процент ошибок существенно меняется в зависимости от базы данных, на которых проводится тестирование и составляет 0.60%-2.2%.
Одним из широко используемых методов повышения точности распознавания является одновременное использование нескольких различных распознающих модулей и последующее объединение полученных результатов (например, путем голосования). При этом очень важно, чтобы алгоритмы, используемые этими модулями, были как можно более независимы. Это может достигаться как за счет использования распознающих модулей, использующих принципиально различные алгоритмы распознавания, так и специальным подбором обучающих данных.
Один из таких методов был предложен несколько лет назад и основан на использовании трех распознающих модулей (машин) (4,5). Первая машина обучается обычным образом. Вторая машина обучается на символах, которые были отфильтрованы первой машиной таким образом, что вторая машина видит смесь символов, 50% из которых были распознаны первой машиной верно и 50% неверно. Наконец, третья машина обучается на символах, на которых результаты распознавания 1-ой и 2-ой машин различны. При тестировании распознаваемые символы подаются на вход всем трем машинам. Оценки, получаемые на выходе всех трех машин складываются. Символ, получивший наибольшую суммарную оценку выдается в качестве результата распознавания.
Разработанный алгоритм распознавания основан на выделении из растра с изображением буквы первичных признаков и последующем использовании искусственной нейронной сети для оценки близости входного изображения с символами из заданного набора букв. Результатом работы является набор оценок, отражающих степень близости распознаваемого символа с символами из заданного набора символов. Набор распознаваемых символов может включать заглавные буквы и цифры, см. Рис. 1. Поступающие на распознавание изображения символов преобразуются к единому размеру 16х16 пикселов.
Отличительной чертой реализованного алгоритма является использование нейронной сети с достаточно большим числом входных признаков. Из исходного изображения выделяются 2312 первичных признака, характеризующих перепады яркости в узлах растра. Кроме того, используются признаки, вычисляемые по всему растру и характеризующие форму распознаваемого символа. В набор распознаваемых символов входят буквы русского алфавита и цифры (всего 43 символа). Нейронная сеть имеет один внутренний уровень, содержащий 100 узлов и является полносвязанной, т.е. каждый узел внутреннего уровня соединен со всеми входными узлами, а каждый узел верхнего уровня соединен со всеми узлами внутреннего уровня. Таким образом, нейронная сеть имеет более 200 тысяч весов. Для уменьшения объема вычислений при распознавании для каждого распознаваемого изображения символа используются не все входные признаки, а только часть, т.е. вектор входных параметров нейронной сети является сильно разреженным.
Обучение нейронной сети происходит обычным образом, т.е. используется алгоритм обратного распространения ошибки. Программа обучения получает на вход файл с изображениями символов. При обучении символы из этой базы перебираются циклически. Для каждого изображения из базы выделяются первичные признаки, после чего выполняются прямой и обратный проходы по сети. Модификация весов сети при обучении производится после каждого символа. Шаг изменения весов сети постоянный.
Для ускорения и улучшения обучения плохо распознаваемые символы просматриваются чаще других. Для этого используется кэш, в котором хранятся трудно распознаваемые изображения. Растры для обучения выбираются как из входного файла, так и из кэша. Выбор символа из кэша происходит с учетом качества его распознавания, т.е. плохо распознаваемые символы выбираются чаще.
Кроме того, при обучении сети используется регуляризация весов сети, т.е. вводится их экспоненциальное затухание.
Качество распознавания зависит не только от алгоритмов, используемыми программами распознавания и обучения нейронной сети, но и от того, как обучалась нейронная сеть. На качество обучения нейронной сети влияют следующие факторы.
Параметры обучения взаимозависимы и должны выбираться согласованно. Так, например, при небольшом размере обучающей базы использование искажений символов может приводить к улучшению качества обучения, а при увеличении размера базы приводит к его ухудшению. Использование кэша плохих символов в самом начале обучения особого смысла не имеет. Наоборот, после нескольких проходов по базе с обучающими символами большая часть символов из базы распознается с очень большой надежностью. Изменение весов сети происходит главным образом за счет растров, содержащихся в кэше плохих символов.
Регуляризация (т.е. введение экспоненциального затухания весов при обучении) приводит к некоторому ухудшению качества распознавания. Однако использование очень небольшого коэффициента затухания позволяет повысить устойчивость сети без заметных потерь в качестве распознавания.
Для определения наилучшего момента остановки сети можно периодически тестировать качество распознавания на небольшой независимой базе данных.
Сравнение качества различных алгоритмов распознавания символов затруднено тем, что относительное значение числа правильно распознанных символов существенно зависит от конкретной базы данных, на которой проводится тестирование. На качество распознавания также существенно влияют объем набора распознаваемых символов, технология обучения нейронной сети, методика и алгоритмы выделения первичных признаков, технология подготовки обучающей базы данных и другие факторы. Имеющиеся в литературе численные оценки эффективности различных алгоритмов относятся, главным образом, к распознаванию цифр.
Проведено обучение нейронной сети на базе из 166500 цифр и тестирование на базе данных из 16650 цифр. Число правильно распознанных символов составляет 99.61%. Дальнейшее развитие алгоритма может быть связано с поиском более адекватного представления структурных признаков распознаваемых символов. Использование большей обучающей базы данных и увеличение памяти нейронной сети также может дать некоторое улучшение качества распознавания.
Литература.
1) Y. LeCun, O.Matan, B.Boser, J.S.Denker, D.Henderson, R.E.Howard, W.Hubbard, L.D.Jackel, H.S.Baird. “Handwritten Zipcode Recognition With Multilayer Networks,” Proc. of International Conference on Pattern Recognition, Atlantic City, 1990.
2) A. Krzyzak, W. Dai, C.Y.Suen. “Unconstrained Handwritten Character Classification Using Modified Backpropagation Model,” Proc. 1st Int. Workshop on Frontiers in Handwriting Recognition, Montreal, Canada, Стр.155-166, 1990.
3) Seong-Wang Lee, Young Joon Kim. “Off-line Recognition of Totally Unconstrained Handwritten Numerals Using Multilayer Cluster Neural Network.” Proc. Of the 12th IAPR International Conference on Pattern Recognition. Jerusalem, Israel. 1994. Стр. 507-509.
4) R. Schapire, “The Strength of Weak Learnability,” Machine Learning. 5 197-227 (1990).
5) H.Drucker, R.Schapire, P.Simard. “Boosting Performance in Neural Networks.” International Journal of Pattern Recognition and Artificial Intelligence. 7 705-720 (1993).
6) Fukushima, K. (1988). Neocognition: a hierarchical neural network capable of visual pattern recognition. Neural Networks 1 (2), Стр. 119-130.
7) Knerr, S., Personnaz, L. & Dreyfus, G. (1992) Handwritten digit recognition by neural networks with single-layer training. IEEE Transactions on Neural Networks 3, 962-968.
8) Lee, Y. (1991) Handwritten digit recognition using K neares-neighbor, radial-basis function, and back-propagation neural networks. Neural Computation 3, 440-449.
9) Martin, G.L. & Pitman, J. A. (1991) Recognizing hand-printed letters and digits using backpropagation learning. Neural Computation 3, 258-267.
http://ocrai.narod.ru E-Mail: ocrai@narod.ru последнее обновление: 26;11;2000