Я пытаюсь использовать Tesseract Open Source OCR Engine для обнаружения текста кодов интермодальных (транспортных) контейнеров в формате BI C. Кстати, я использую tesseract через pytesseract, и я предварительно обрабатываю входные фотографии с помощью нескольких стандартных фильтров opencv (огромное изменение масштаба / размытие / шумоподавление / бинаризация).
Я настроил tesseract (версия: tesseract 5.0.0-alpha-647 -g4a00) таким образом:
config = (
# only a set of characters
' -c tessedit_char_whitelist=0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ' +
# no language model
' -c load_system_dawg=0' +
' -c load_freq_dawg=0' +
' -c enable_new_segsearch=1' +
' -c language_model_penalty_non_freq_dict_word=1' +
' -c language_model_penalty_non_dict_word=1' +
# select segmentation mode
' --psm 11'
)
Я получил обнадеживающие результаты, когда коды выровнены по горизонтали, как в этом случае:
, но у меня есть проблемы с вертикальным текстом, как в примере, показанном на фотографии:
В последнем случае tesseract не производит полезный результат. Почему тессеракт не выполняет событие, если входное изображение кажется "хорошим"? Есть предложения о том, как улучшить распознавание движка?