Как сделать программу OCR?

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

Итак, какие методы используются для этого, и кто-нибудь знает о каких-либо исследовательских работах, которые обсуждают, как это сделать? Спасибо

2 ответов


базовый подход-сделать гистограмму черных точек. Во-первых: проецируйте все пиксели на линию. Глубокие долины в гистограмме указывают на разделение между линиями (попробуйте разные углы, если бумага может быть наклонена). Затем, в строке (или в разделе Если вы знаете шрифт моноширинный) проект пиксели на горизонтальной гистограммы. Это даст вам четкое представление о межсимвольных пространствах. Как минимум, это дает вам значение средней высоты и ширины символа, которое поможет вам в следующих шагах.

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

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


Это не похоже на искусственный интеллект, похоже, вы говорите об OCR:

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

см. google tesseract

http://code.google.com/p/tesseract-ocr/

редактировать