Как создать файл обученных данных для Tesseract 4.1.0

#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, чтобы распознать, вероятно, номерной знак, содержащий в основном слова.