#ocr #tesseract #python-tesseract #openalpr #alpr
#распознавание текста #tesseract #python-tesseract #openalpr #автоматическое распознавание номерных знаков
Вопрос:
Я хочу распознавать символы номерного знака. Как обучить tesseract-ocr для соответствующей номерной таблички в Ubuntu 16.04. Поскольку я не знаком с обучением. Пожалуйста, помогите мне создать файл ‘traineddata’ для распознавания номерного знака.
У меня есть 1000 изображений номерного знака.
Пожалуйста, ознакомьтесь с ним. Буду признателен за любую помощь.
Итак, я попробовал следующие команды
tesseract [langname].[fontname].[expN].[file-extension] [langname].[fontname].[expN] batch.nochop makebox
tesseract eng.arial.plate3655.png eng.arial.plate3655 batch.nochop makebox
Но это выдает ошибку.
Tesseract Open Source OCR Engine v4.1.0-rc1-56-g7fbd with Leptonica
Error, cannot read input file eng.arial.plate3655.png: No such file or directory
Error during processing.
после этого я попытался
tesseract plate4.png eng.arial.plate4 batch.nochop makebox
это работает, но в некоторых версиях.
Теперь перейдем к шагу 2. Я получаю сообщение об ошибке.
Скриншот прилагается.
Изображение пластины 4 для обучения
Шаг 1 и Ste p2 отображаются в терминале
Файл, созданный после шагов 1 и 2
Содержимое файла, созданного после шагов 1 и 2
Ответ №1:
Создание .traineddata для Tesseract 4
{* Примечание: После установки tesseract откройте cmd и выполните следующие действия.}
Шаг 1: Создайте файлы box для изображений, которые мы хотим обучить
Синтаксис:
tesseract [langname].[fontname].[expN].[file-extension] [langname].[fontname].[expN] batch.nochop makebox
Например:
tesseract own.arial.exp0.jpg own.arial.exp0 batch.nochop makebox
{* Примечание: После создания файлов box нам приходится изменять ошибочно идентифицированные символы в файлах box.}
Шаг 2: Создайте файл .tr (объединяющий файл изображения и файл коробки)
Синтаксис:
tesseract [langname].[fontname].[expN].[file-extension] [langname].[fontname].[expN] box.train
Например:
tesseract own.arial.exp0.jpg собственный.arial.exp0 box.train
шаг 3: Извлеките кодировку из файлов box (выводом для этой команды является файл unicharset).
Синтаксис:
unicharset_extractor [langname].[fontname].[expN].box
Например:
unicharset_extractor own.arial.exp0.box
шаг 4:
Создайте файл font_properties на основе наших потребностей.
Синтаксис:
echo "[fontname] [italic (0 or 1)] [bold (0 or 1)] [monospace (0 or 1)] [serif (0 or 1)] [fraktur (0 or 1)]" > font_properties
Например:
echo "arial 0 0 1 0 0" > font_properties
Шаг 5:
Обучение данных.
Синтаксис:
mftraining -F font_properties -U unicharset -O [langname].unicharset [langname].[fontname].[expN].tr
Например:
mftraining -F font_properties -U unicharset -O own.unicharset own.arial.exp0.tr
Шаг 6:
Синтаксис:
cntraining [langname].[fontname].[expN].tr
Например:
cntraining own.arial.exp0.tr
{* Примечание: После шагов 5 и 6 было создано четыре файла.(shapetable,inttemp, pffmtable,normproto) }
Шаг 7: Переименуйте четыре файла (shapetable,inttemp, pffmtable,normproto) в ([langname].shapetable,[langname].inttemp, [langname].pffmtable,[langname].normproto)
Синтаксис:
rename filename1 filename2
Например:
rename shapetable own.shapetable
rename inttemp own.inttemp
rename pffmtable own.pffmtable
rename normproto own.normproto
Шаг 8:
Создайте файл .traineddata
Синтаксис:
combine_tessdata [langname].
Например:
combine_tessdata own.
{ * Примечание: Я буду использовать только одно изображение exp0 для создания traineddata. если вы хотите обучить более одного изображения, вы можете обучить, например exp1, exp2 ..expn }
Комментарии:
1. Пожалуйста, предоставьте объяснение с вашим ответом.
2. Для создания файла *.traineddata вам следует выполнить вышеупомянутые шаги. после этого скопируйте *.traineddata и вставьте его в /path/Tesseract-OCR/tessdata. При запуске tesseract введите команду «tesseract inputimage outputfile -на вашем языке». если вы создаете файл traineddata как «own.traineddata» , замените «yourlang» на «own».
3. Для распознавания номерных знаков вы должны как можно больше обучать изображения номерных знаков. Также вы можете использовать опцию —use-words, чтобы распознать, вероятно, номерной знак, содержащий в основном слова.