Как мне создать программу OCR? - PullRequest
11 голосов
/ 01 июля 2011

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

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

Ответы [ 2 ]

9 голосов
/ 07 июля 2011

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

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

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

2 голосов
/ 01 июля 2011

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

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

См. Google Tesseract

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

РЕДАКТИРОВАТЬ Неотредактированный вопрос задавался об искусственном интеллекте.

...