Тренируй свои собственные тессдаты
Это, безусловно, самый важный урок, полученный из моего опыта работы с тессерактом. Из коробки тессеракт действительно хорошо работает с распознаванием отсканированного текста книги и газеты, но при попытке использовать его со шрифтом, который не похож на стандартные книжные и газетные шрифты (такие как Times New Roman), в моем опыте точность значительно снижается. Обучение раньше было намного сложнее, но в настоящее время tesstrain.sh делает его легким. Вам нужно будет собрать шрифты видеоигр (или, по крайней мере, похожие на них) и предоставить их в качестве входных данных для учебного сценария. Даже если ваши шрифты сильно различаются, tesseract сможет выбрать правильный шрифт для предоставленного изображения во время выполнения с поразительной точностью. Кроме того, я знаю, что это утомительно, но было бы полезно предоставить учебный сценарий список всех слов, встречающихся в видеоиграх. Тренировка tesseract с вашими собственными шрифтами и вашим собственным списком слов даст вам почти идеальную точность, не делая ничего больше.
Предварительная обработка изображения для распознавания
Не полагайтесь на анализ компоновки Тессеракта
Если вы можете, сделайте свой собственный анализ макета и обрежьте изображение до частей, содержащих текст. В Teseract встроен механизм сегментации страниц, но он должен охватывать настолько широкий спектр вариантов использования, что, скорее всего, он не будет работать для ваших конкретных потребностей. Кроме того, по моему опыту, это также помогает с точностью, если вы разделяете изображение на отдельные строки текста и используете режим сегментации 7 (Рассматривайте изображение как одну текстовую строку).
Увеличение x-высоты входного текста
Это помогает, если вы увеличите высоту x входного текста до той же высоты, которую вы использовали для обучения тессеракта (в моем случае это было 70 пикселей).
Увеличение DPI входного текста
Тессеракт очень нравится 300 DPI . Обратите внимание, что изменение DPI изображения не означает изменение его размера. (например, с ImageMagick вы бы использовали параметр -density для изменения DPI изображения).
Переменные конфигурации Tesseract для использования
По моему опыту, настройка различных «штрафных» настроек, связанных с соответствием словарным словам, оказала наибольшее влияние на повышение точности. Настройки, которые у меня работали:
language_model_penalty_non_dict_word 0.975
language_model_penalty_non_freq_dict_word 0.575
segment_penalty_dict_case_bad 1.3125
segment_penalty_dict_case_ok 1.1
segment_penalty_dict_nonword 10.25
Но вы, очевидно, должны сделать свою собственную настройку. Кроме того, я обнаружил, что настройки x-height были очень полезны во время выполнения: textord_min_xheight
и min_sane_x_ht_pixels
.
Мне не известны какие-либо ограничения по размеру памяти для tesseract. Возможно, вы используете tesseract через оболочку, которая имеет свои ограничения?
Примечание: в этом ответе предполагается, что вы используете последнюю стабильную сборку tesseract, которая будет tesseract 3.05. Если вы используете tesseract 4.0, вы все равно примените свое собственное обучение и сегментацию, но другие разделы ответа могут быть OBE.