#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