Записки сисадмина
Алексей Никипольский
Четверг, 21.11.2024, 16:10
 
Меню
Настройка windows XP [38]
тонкости настройки, скрытые возможности
Программирование [8]
Нюансы, примеры, мои наработки и прочая полезная информация
Защита [28]
Компьютера, данных, интернет соединений и прочая полезная информация по защите
Обзор новинок [15]
Новинки ПО и железа
Обмен опытом [20]
Заработок в сети [9]
Все виды заработка в сети интернет, обзор, анализ, рекомендации
Распознование [10]
Все о методах и способах распознавания графической информации. Взлом капчи, методы и способы анализа...
Электронные книги [4]
По PHP CSS SQL PERL программированию Всё что есть в свободном доступе в интернете на разных ресурсах.
WEB программирование [9]
Всё о программировании WEB PHP Java PERL HTTP HTML и т.п.
Взлом [6]
методика взлома, примеры взлома, способы защиты от взлома
Онлайн сервисы [2]
Полезные сервисы онлайн
Администрирование [27]
Опыт системного администрирования
Статистика
Календарь
«  Март 2011  »
ПнВтСрЧтПтСбВс
 123456
78910111213
14151617181920
21222324252627
28293031
Главная » 2011 » Март » 8 » Использование искусственных нейронных сетей для распознавания рукопечатных символов
15:12
Использование искусственных нейронных сетей для распознавания рукопечатных символов

Рассматривается задача распознавания символов в анкетах, заполняемых от руки печатными буквами. Фрагмент такой анкеты приведен на Рис. 1.

 

 

Рис. 1.

 

Искусственные нейронные сети достаточно широко используются при распознавании символов (см., например, 1-3,6-9). Алгоритмы, использующие нейронные сети для распознавания символов, часто строятся следующим образом. Поступающее на распознавание изображение символа (растр) приводится к некоторому стандартному размеру. Как правило, используется растр размером 16х16 пикселов. Примеры таких нормализованных растров показаны на Рис. 2.

  

Рис. 2.

 

Значения яркости в узлах нормализованного растра используются в качестве входных параметров нейронной сети. Число выходных параметров нейронной сети равняется числу распознаваемых символов. Результатом распознавания является символ, которому соответствует наибольшее из значений выходного вектора нейронной сети (см. Рис 3, показана только часть связей и узлов растра). Повышение надежности таких алгоритмов связано, как правило, либо с поиском более информативных входных признаков, либо с усложнением структуры нейронной сети.

Надежность распознавания и потребность программы в вычислительных ресурсах во многом зависят от выбора структуры и параметров нейронной сети. Нейронная сеть, разработанная для распознавания цифровых почтовых кодов (ZIP-кодов) описывается в (1). Изображения цифр приводятся к единому размеру (16х16 пикселов). Полученное изображение подается на вход нейронной сети, имеющей три внутренних уровня и 10 узлов в верхнем уровне. Нижние слои сети не являются полносвязанными. Узлы низшего уровня совместно используют общий набор весов. Все это, по замыслу разработчиков, должно повысить способность низших уровней сети к выделению первичных признаков в изображениях. Полученная таким образом нейронная сеть имеет 1256 узлов и 9760 независимых параметров. Для увеличения способности сети к обобщению и уменьшению объема необходимых вычислений и памяти проведено удаление слабо используемых весов. В результате число независимых параметров уменьшается в четыре раза. Обучение нейронной сети проведено на наборе из 7300 символов, тестирование на наборе из 2000 символов. Ошибки распознавания составляют приблизительно 1% на обучающем наборе и 5% на проверочном.

 

Рис 3. 

В качестве входных параметров нейронной сети вместо значений яркости в узлах нормализованного растра могут использоваться значения, характеризующие перепад яркости. Такие входные параметры позволяют лучше выделять края буквы. Система распознавания рукопечатных цифр, использующие такие входные параметры, описывается в (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%. Дальнейшее развитие алгоритма может быть связано с поиском более адекватного представления структурных признаков распознаваемых символов. Использование большей обучающей базы данных и увеличение памяти нейронной сети также может дать некоторое улучшение качества распознавания.


Рекомендую Вам также почитать:


  • Перенаправление ICMP и «бомбы» перенаправления
  • Алгоритмы выделения контуров на примере алгоритма "жука"
  • разблокировать Диспетчер задач
  • Странная история IMESSAGE для ANDROID
  • Удаляем свои личные данные из интернета
  • Как заработать в Интернете
  • Что такое уязвимая точка и как ее избежать
  • Технологии распознавания (краткий обзор)
  • Получение прямой ссылки на видео с my.mail.ru
  • Список операторов Ucoz

  • Загрузить, скачать Распознование, Использование искусственных нейронных сетей для распознавания рукопечатных символов бесплатно.
    Скачать Использование искусственных нейронных сетей для распознавания рукопечатных символов бесплатно
    Использование искусственных нейронных сетей для распознавания рукопечатных символов бесплатно и без регистрации.

    При копировании материала указывайте источник

    Использование искусственных нейронных сетей для распознавания рукопечатных символов download free


    Категория: Распознование | Просмотров: 3879 | Добавил: Никипольский-Алексей | Теги: Использование искусственных нейронн | Рейтинг: 0.0/0
    Всего комментариев: 0
    avatar
    Мои услуги на Kwork
    Like It


    Copyright Алексей Никипольский © 2009 - 2024