Проблема для обучения tesseract-OCR 4 — таблицы формы Empy

#ocr #tesseract

#ocr #тессеракт

Вопрос:

Я пытаюсь обучить Tesseract 4 определенным изображениям (для считывания мультиметров с 7 сегментами),

пожалуйста, обратите внимание, что я знаю о уже подготовленных данных от Артура Аугусто на https://github.com/arturaugusto/display_ocr но мне нужно обучить Тессеракта на основе моих собственных данных.

Чтобы обучить tess, я следовал различным руководствам (как https://robipritrznik.medium.com/recognizing-vehicle-license-plates-on-images-using-tesseract-4-ocr-with-custom-trained-models-4ba9861595e7 или https://pretius.com/how-to-prepare-training-files-for-tesseract-ocr-and-improve-characters-recognition/)

но я всегда сталкиваюсь с проблемой при запуске команды shapeclustering с моими собственными данными

(С примерами данных в виде https://github.com/tesseract-ocr/tesseract/issues/1174#issuecomment-338448972 , все работает нормально)

Действительно, когда я пытаюсь выполнить команду shapeclusturing, у нее есть этот скриншот вывода, тогда моя таблица shape_table пуста, и обучение не может быть эффективным…

С примерами данных он работает нормально, и таблица shape_table хорошо заполнена

Я предполагаю, что у меня проблема с созданием файла box, вот мой процесс создания файла box :

Я использую

 tesseract imageFileName.tif imageFileName  batch.nochop makebox
 

команда для создания файла box, а затем я редактирую его с помощью jTessBoxEditor.

Поэтому я не вижу, где я ошибаюсь с моей парой данных .box / .tif.

Хорошего дня и спасибо за помощь мне, Адриан

Вот мой полный пакетный скрипт для обучения после создания и редактирования файлов box.

 set name=sev7.exp0
set shortName=sev7

echo Run Tesseract for Training.. 
tesseract.exe %name%.tif %name% nobatch box.train 
 
echo Compute the Character Set.. 
unicharset_extractor.exe %name%.box 

shapeclustering -F font_properties -U unicharset -O %shortName%.unicharset %name%.tr
mftraining -F font_properties -U unicharset -O %shortName%.unicharset %name%.tr
echo Clustering.. 
cntraining.exe %name%.tr
echo Rename Files.. 
rename normproto %shortName%.normproto 
rename inttemp %shortName%.inttemp 
rename pffmtable %shortName%.pffmtable 
rename shapetable %shortName%.shapetable
echo Create Tessdata.. 
combine_tessdata.exe %shortName%.
echo. amp; pause
 

Ответ №1:

Хорошо, наконец, я добился обучения tesseract.

Решение состоит в том, чтобы добавить --psm параметр при использовании команды

 tesseract.exe %name%.tif %name% nobatch box.train
 

как

 tesseract.exe %name%.%typeFile% %name%  --psm %psm% nobatch box.train
 

обратите внимание, что все значения psm :

 REM pagesegmode values are:

REM   0 = Orientation and script detection (OSD) only.
REM   1 = Automatic page segmentation with OSD.
REM   2 = Automatic page segmentation, but no OSD, or OCR
REM   3 = Fully automatic page segmentation, but no OSD. (Default)
REM   4 = Assume a single column of text of variable sizes.
REM   5 = Assume a single uniform block of vertically aligned text.
REM   6 = Assume a single uniform block of text.
REM   7 = Treat the image as a single text line.
REM   8 = Treat the image as a single word.
REM   9 = Treat the image as a single word in a circle.
REM   10 = Treat the image as a single character.
REM   11 = Sparse text. Find as much text as possible in no particular order.
REM   12    Sparse text with OSD.
REM   13    Raw line. Treat the image as a single text line bypassing hacks that are Tesseract-specific.
 

основана на https://github.com/tesseract-ocr/tesseract/issues/434