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