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

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

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

Ответ 1

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

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

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