Я пишу приложение для сканирования номеров с изображения.
Числа используют шрифт OCR-B и могут также содержать +
и >
символов.
Это мое исходное изображение:
Сканы с использованием Tesseract не очень хороши, даже при ограничивании символа, установленного указанным символам. Поскольку я не нашел никаких учебных файлов OCRB для Tesseract, я решил тренировать его сам.
Я создал Это тренировочное изображение и сделало файл коробки из него. Файл коробки правильный, все буквы соответствуют правильно.
Тогда я сделал все шаги , описанный здесь , чтобы создать другие необходимые файлы.
Используя этот недавно обученный OCR-B TessData-Set, я получаю довольно хорошие результаты на исходном изображении, с одной маленькой ошибкой: все 1
s ошибаются для 8
и наоборот. Команда, используемая для обработки изображения
$ tesseract esr2c.tif ocrb-esr2c -l ocrb
, а вывод для исходного изображения был
0800000001456> 8 00000195731208 8 01050008 023+ 08 0301226> 20
Если вы поменяете все 1
и 8
S и сравните его с исходным изображением, вывод будет правильным (за исключением последних двух букв, которые я могу игнорировать).
Как это могло случиться? Я сделал некоторую ошибку в процессе обучения? Как я могу это исправить?