Анализ и исправление рукописных символов (английские буквы, кандзи и т. Д.) - PullRequest
2 голосов
/ 21 февраля 2012

Я хотел бы знать, насколько практичным было бы создание программы, которая принимает рукописные символы в той или иной форме, анализирует их и предлагает пользователю исправления.Вдохновение для этой идеи состоит в том, чтобы ученики начальной школы в других странах или студенты университетов в Америке учились писать на таких языках, как японский или китайский, где много символов, и даже малейшая ошибка может иметь большое значение.

Я не уверен, как программа будет анализировать персонажа.Моя текущая идея состоит в том, чтобы получить линию шириной в один пиксель для представления обводки, сравнить расстояние каждого пикселя от соответствующего пикселя в примере символа, загруженного из базы данных, и вывести, какая область требует наибольшей работы.О конечных точках также будет полезно знать.Я также хотел бы сказать пользователю, может ли его символ интерпретироваться как другой символ, похожий на тот, который он хотел написать.

Я думаю, мне понадобится какая-то библиотека для завершения этого проекта в любом виде.своевременно, но я не смог найти тот, который соответствует стандартам, которые мне понадобятся для программы.Я посмотрел в OpenCV, но, похоже, он предназначен для зрения, а не для обработки изображений.Я также был бы признателен, чтобы библиотека / модуль были на Python или Java, но я могу выучить новый язык, если это абсолютно необходимо.

Спасибо за любую помощь в этом проекте.

Ответы [ 3 ]

2 голосов
/ 21 февраля 2012

Распознавание символов обычно осуществляется с использованием искусственных нейронных сетей ( ANNs ).Это непростая задача - увидеть, что разные люди пишут один и тот же символ.

В нейронных сетях хорошо то, что их можно обучать.Таким образом, для перехода с одного языка на другой все, что вам нужно изменить - это вес между нейронами и оставить вашу сеть нетронутой.Нейронные сети также способны в определенной степени обобщать, поэтому они обычно способны справляться с незначительными отклонениями одной и той же буквы.

Tesseract - это OCR с открытым исходным кодом, который был разработан всередина 90-х годов.Возможно, вы захотите прочитать об этом, чтобы получить некоторые советы.

1 голос
/ 23 февраля 2012

Вы можете перейти по ссылкам компании из этой статьи в Википедии:

http://en.wikipedia.org/wiki/Intelligent_character_recognition

Я бы не рекомендовал вам пытаться реализовать решение самостоятельно, особенно если вы хотите выполнить задачу вменее года или двух на полный рабочий день.Было бы прискорбно, если бы неполное решение дало плохое руководство для студентов.

Предупреждение: некоторые компании, которые предлагают коммерческие библиотеки ICR, могут не захотеть поддерживать вас и / или могут не предоставить цитату.Это их право.Однако, если вам неудобно работать с конкретным поставщиком, либо попросите другого контактного лица по продажам и / или сначала попробуйте другого поставщика.

Моя текущая идея - получить одноголиния ширины пикселя для представления обводки, сравните расстояние каждого пикселя от соответствующего пикселя в примере символа, загруженного из базы данных, и выведите, какая область требует наибольшей работы.

Начальный шаг полученияПредставление обводки шириной всего в один пиксель намного сложнее, чем вы думаете.Хотя существуют простые алгоритмы (например, Стентифорд и Чжан-Суен) для выполнения прореживания, пересечения штрихов и неровные края представляют серьезные проблемы.Это классическая (и нерешенная) проблема.Прореживание работает большую часть времени, но когда оно терпит неудачу, оно может терпеть неудачу.

Вы можете работать с библиотекой с открытым исходным кодом, и хотя это поможет вам изучить алгоритмы и их использование, чтобы разработать хорошее решение, которое выПочти наверняка придется копаться в самих алгоритмах и понимать, как они работают.Это требует немного изучения.

Вот несколько книг, которые полезны в качестве вводных учебников:

  • Цифровая обработка изображений Гонсалеса и Вудса
  • Системы распознавания символов от Cheriet, Kharma, Siu и Suen
  • Чтение в мозгу от Станислава Дехаина

ГонсалесВудс - стандартный учебник по обработке изображений.Без каких-либо базовых знаний в области обработки изображений вам будет трудно добиться прогресса.

Книга Cheriet и др. Затрагивает современное состояние оптического распознавания символов (OCR), а также охватывает почеркпризнание.Чем раньше вы прочтете эту книгу, тем быстрее вы сможете узнать о методах, которые уже были опробованы.

Книга Дехина - это читаемое представление о ментальных процессах, связанных с человеческим чтением, и может вдохновить на разработку интересных новых алгоритмов.

1 голос
/ 21 февраля 2012

Вы видели http://www.skritter.com? Они делают это в сочетании с распределенным расписанием распознавания.

Полагаю, вы хотите классифицировать объекты, такие как кривые в штрихах (http://en.wikipedia.org/wiki/CJK_strokes),, затем как следующий слой).определить компоненты, а затем оценить наиболее вероятный символ. При этом статистически взвешивая наиболее вероятный символ. При наличии двух вероятных совпадений вы захотите показать, что они могут быть сбиты с толку. Вам также необходимо создать базу данных с вероятностью от 3000 до5000 символов или до 10000 для амбициозных.

См. Также http://www.tegaki.org/ для программы с открытым исходным кодом, чтобы сделать это.

...