C ++ Библиотека для распознавания изображений: изображения, содержащие слова в строку
-
19-08-2019 - |
Вопрос
Кто-нибудь знает библиотеку c ++ для съемки и распознавания изображений, чтобы она могла находить буквы на основе заданного шрифта и / или высоты шрифта? Даже тот, который не позволяет вам выбрать шрифт, подойдет (например, readLetters (Image image).
Решение
В последнее время я много разбираюсь в этом. Ваше лучшее - просто Тессеракт. Если вам нужен анализ макета поверх OCR, тогда используйте Ocropus (который в свою очередь использует Tesseract для выполнения OCR). Анализ макета относится к способности определять положение текста на изображении и выполнять такие операции, как сегментация линий, сегментация блоков и т. Д.
В процессе экспериментов с Tesseract я нашел несколько действительно полезных советов, которыми стоит поделиться. В основном я должен был сделать большую предварительную обработку изображения.
<Ол>Если у вас сильно настроенный шрифт и вы используете только tesseract, вам нужно " Train " система - в основном вы должны предоставить кучу тренировочных данных. Это хорошо задокументировано на сайте tesseract-ocr. По сути, вы создаете новый & Quot; language & Quot; для вашего шрифта и передать его с параметром -l. Р>
Другой механизм обучения, который я нашел, был с Ocropus, использующим тренировку nueral net (bpnet). Для построения хорошей статистической модели требуется много входных данных.
С точки зрения вызова Tesseract / Ocropus оба являются C ++. Это будет не так просто, как ReadLines (Image), но есть API, который вы можете проверить. Вы также можете вызвать через командную строку.
Другие советы
Хотя я не могу рекомендовать какой-то конкретный термин, вы ищете термин OCR (оптическое распознавание символов).
Существует tesseract-ocr , которая является профессиональной библиотекой для этого. р>
Оттуда веб-сайт
Двигатель Tesseract OCR был одним из трех лучших в тесте точности UNLV 1995 года. Между 1995 и 2006 годами над ней мало что было сделано, но, возможно, это один из самых точных механизмов распознавания текста с открытым исходным кодом.
Я думаю, что вы хотите гипотеза . Раньше был проектом libgocr. Я не использовал его несколько лет, но он был очень надежным, если вы установили ключ. Р>
Библиотека Tesseract OCR дает довольно точные результаты, это библиотеки C и C ++. Мои начальные результаты были примерно на 80% точными, но с применением предварительной обработки изображений перед подачей для распознавания, результаты были примерно на 95% точными. Что такое предварительная обработка:
1) Бинаризовать растровое изображение (B & у меня работало лучше). Как это можно сделать
2) Передискретизируйте изображение до 300 dpi
3) Сохраните изображение в формате без потерь, например, LZW TIFF или CCITT Group 4 TIFF.