В последнее время я много разбираюсь в этом. Ваше лучшее - просто Тессеракт. Если вам нужен анализ макета поверх OCR, тогда используйте Ocropus (который в свою очередь использует Tesseract для выполнения OCR). Анализ компоновки относится к способности определять положение текста на изображении и выполнять такие операции, как сегментация линий, сегментация блоков и т. Д.
В ходе экспериментов с Tesseract я нашел несколько действительно хороших советов, которыми стоит поделиться. В основном я должен был сделать большую предварительную обработку для изображения.
- Увеличение / уменьшение входного изображения до 300 точек на дюйм.
- Удалить цвет с изображения. Серая шкала это хорошо. Я фактически использовал порог дизеринга и сделал свой ввод черно-белым.
- Вырежьте ненужный мусор из вашего изображения.
Для всех трех вышеперечисленных я использовал netbpm (набор инструментов для работы с изображениями для Unix), чтобы достичь точки, где я получал почти 100-процентную точность для того, что мне было нужно.
Если у вас сильно настроенный шрифт и вы используете только тессеракт, вам нужно «обучить» систему - в основном вам нужно предоставить кучу обучающих данных. Это хорошо задокументировано на сайте tesseract-ocr. По сути, вы создаете новый «язык» для своего шрифта и передаете его с параметром -l.
Другой механизм обучения, который я обнаружил, был с Ocropus, использующим тренировку nueral net (bpnet). Для построения хорошей статистической модели требуется много входных данных.
С точки зрения вызова Tesseract / Ocropus оба являются C ++. Это будет не так просто, как ReadLines (Image), но есть API, который вы можете проверить. Вы также можете вызвать из командной строки.