Ограничить количество символов, которые ищет Тессеракт
Вопрос
Можно ли ограничить набор символов, которые тессеракт ищет (напр.искать только буквы a-z)?Это значительно улучшило бы мои результаты.
Решение
Создайте файл конфигурации (например, «буквы») в каталоге tessdata/configs — обычно /usr/share/tesseract/tessdata/configs
или
/usr/share/tesseract-ocr/tessdata/configs
И добавьте эту строку в файл конфигурации:
tessedit_char_whitelist abcdefghijklmnopqrstuvwxyz
...или, может быть, [a-z] подойдет..Не знаю :-)
Затем вызовите тессеракт примерно так:
tesseract input.tif output nobatch letters
Это ограничит тессеракт распознаванием только нужных символов.
Другие советы
Чтобы использовать белый список в файле конфигурации или с помощью -c tessedit_char_whitelist=...
Переключатель командной строки, в новейшей версии 4.0 вам нужно будет установить режим OCR Engine на «Только исходный Tesseract».Это связано с тем, что новый режим «Нейронные сети LSTM» не учитывает настройку белого списка.Пример правильной командной строки для версии 4.0:
tesseract input_file output_file --oem 0 -c tagentit_char_whitelist = abc123
ОБНОВЛЯТЬ:В более новых версиях (4.0) повреждены eng.traineddata
файл, установленный по умолчанию Windows и некоторыми установщиками Linux.Временное решение — замена. tessdata\eng.traineddata
файл с файлом из более старой версии.Этот файл должен иметь размер около 30 МБ.В противном случае вы получите ошибку:"Tesseract не мог загрузить языки!" или похожие.
Помимо файла конфигурации, есть -c
флаг:
tesseract stdin stdout -c tessedit_char_whitelist=abcdefghijklmnopqrstuvwxyz -psm 6
Просто добавьте это для всех, кто использует tesseract на Android.В вашей функции readOCR, где вы устанавливаете язык и т.д.добавьте следующую строку;
tesseract.setVariable("tessedit_char_whitelist","ABCDEFGHIJKLMNOPQRSTUVWXYZ");
вы также можете создать черный список для исключенных персонажей.
В Tesseract версии 4.00 это сделать невозможно.Вы можете только точно настроить свою модель или использовать регулярное выражение, чтобы удалить лишние символы из прогноза.