Распознавание рукописных символов в Android



В связи с развитием технологий все большей популярностью стали пользоваться планшетные ПК, телефоны с сенсорным экраном и такое развитие технологий ставит нас перед проблемой безклавиатурного ввода данных. Основным средством ввода информации на данных устройствах является сенсорная панель. Мы рассмотрим метод распознавания рукописных символов с помощью искусственной нейронной сети.

Теория

 Задача распознавания текста состоит из трех основных этапов:
1.      Этап предварительной обработки данных. Отбираем основные признаки и приводим их в форму удобную для классификации, такую как вектор в пространстве. Нам известен путь пера в виде определенной последовательности точек. Для упрощения классификатора уменьшим количество точек до определенного числа n. С помощью такой выборки мы сделаем расстояния между точками одинаковыми – это позволит нам не учитывать размер символа при распознавании. Для инвариантности символа относительно его положения на изображении, преобразуем входную последовательность в вектор синусов и косинусов углов между осями координат и прямой, соединяющей две соседние точки. В результате получаем вектор размерностью 2*(n -1).
2.      Этап классификации. Разделим пространство входных векторов на отдельные участки, в качестве классификатора используем нейронную сеть. Исследована двухслойная нейронная сеть обратного распространения с логарифмической сигмоидной функцией активации нейронов. Количество входов - 2*(n -1), количество выходов равно количеству символов. Такая нейронная сеть позволяет получать на выходе оценку соответствия исследуемого образа с первоначальными.
Параметры исследования:
n=10,
количество входных нейронов - 18,
количество исследуемых символов - 4,
количество выходных нейронов - 4.


Рисунок 1 - Схема нейронной сети



Рисунок 2 - График тренировки нейронной сети

Рисунок 3 - Изображения обучающих символов. Линией обозначены выбранные точки, окружностями – введенные

Рисунок 4 - Изображение тестового символа. Линией обозначены выбранные точки, окружностями - введенные
Таблица 1. Выход нейронной сети для тестового символа.
№ выхода нейронной сети
Выход нейронной сети
Название обучающего символа, соответствующего данному выходу
1
0.9996
Символ «а»
2
0.0000
Символ «б»
3
0.0000
Символ «в»
4
0.0001
Символ «г»
3. Этап принятия решения. Сделав выводы основываясь на какой из обучающих символов наиболее похож на тестовый символ. Для этого выберем символ, которому соответствует наибольшее значение выхода нейронной сети. Одним из основных условий распознавания символа является 2 фактора: максимальное значение не должно превышать определенное пороговое значение; несколько выходов не должны иметь близкие значения. Если эти два параметра выполняются то система выдаст результат «введен неверный символ»

А что на практике

На основе данного метода распознавания рукописного текста создавались программы которые могут облегчить ввод текста на Android устройствах, примером таких программ являются MyScript Stylus, MyScript Calculator.
MyScript Stylus - проект, целью которого является заменить привычные нам виртуальные клавиатуры с набором клавиш на простую панель для рукописного ввода. Программа производит моментальный перевод рукописного текста в печатный, распознает практически любой почерк и манеру письма. Распознавание текста производиться на 54 языках. Особенности программы позволяют избавиться от проблемы опечаток при наборе различного текста на вашем устройстве, и упрощает создание заметок на ходу в ситуации когда нужно быстро что то записать.
 



MyScript Calculator программа от того же разработчика что и MyScript Stylus. Основной задачей программы является упрощение ввода числовых данных и математических формул на сенсорных устройствах. Программа обладает обширным функционалом, интуитивно понятным интерфейсом.









 Виталий Федоренко
http://efsol.ru/solutions/data-protection.html

Комментариев нет:

Отправить комментарий