tesseract-ocr / tesstrain

Train Tesseract LSTM with make
Apache License 2.0
625 stars 180 forks source link

Training Persian/Arabic script with my own data set images #149

Closed sam-kurdi closed 4 years ago

sam-kurdi commented 4 years ago

Hello, I have my own data set, which is image lines with ground truth transcription in Persian Arabic script there are 3 files in foo-ground-truth directory all-gt all-lstmf-unicharset I put gt files and image lines in /Desktop/ocrd/data/foo-ground-truth after I run this command terminal in ocrsd sudo make training

i received find data/foo-ground-truth -name '*.gt.txt' | xargs cat | sort | uniq > "data/foo/all-gt" unicharset_extractor --output_unicharset "data/foo/unicharset" --norm_mode 2 "data/foo/all-gt" Bad box coordinates in boxfile string! بانگ بکرێت بۆ داد بینی وه بڕیار ده‌ربکرێت به‌ په‌سه‌ندکردنی طلاقی ده‌ره‌کی نێوان بریکاردارم داوالێکراوده‌کات که داوالێکراوی سه‌ره‌وه‌ ناچار بکرێت به‌ گه‌ڕاندنه‌وه‌ی که‌ل و په‌له‌کان یان نرخه‌که‌یان که‌ به‌های Extracting unicharset from plain text file data/foo/all-gt Word started with a combiner:0x200c Normalization failed for string 'بریکارم هاوبه‌شی مولکی ژماره (ه له‌گه‌ل داوالێکراو و ماوه‌ی چه‌ند ساله کۆیوه‌ پاشه‌کی (په‌نجا مسقال زێر) و له رێکه‌وتی (2015/11/15)بریکاردارمی ته‌لاقداوه به پێیبانگی دادبینی بکرێت وبریار بدرێت له‌سه‌ری به پابه‌ند کردنی به‌ ده‌ست هه‌لگرتن له‌سه‌ر به‌شهبه‌شێوه‌یه‌کن که‌ ناتوانم چیتر له‌گه‌ل داوا لێکراو به‌رده‌وام بم له‌ژیانی هاوسه‌ری بۆیه داوا له دادگامسقال زێر ) وه له‌سه‌ر سه‌رینی هاوسه‌ری سێ مندالیان هه‌یه‌ داوالێکراوی سه‌ره‌وه‌ به‌رده‌وام زه‌ره‌ر به‌ من که له دادگای باریی که‌سی سۆران ده‌رچووه له‌سه‌ر ماره‌یی پێشه‌کی (نۆزده مسقال زێر)ومافی بریکاردارم ده‌پارێزم به‌ داوایه‌کی تێهه‌لکێش یان سه‌ربه‌خۆ.که‌ل و په‌لی ماڵی هاوسه‌ری داگرتووه‌ که بۆ بریکارده‌رم ده‌گه‌ڕێته‌وه تاوه‌کو ئێستا نه‌ که‌ل و په‌له‌که‌و نهبانگی دادبینی بکرێت و بڕیار بدرێت له‌سه‌ری به‌ دانی بری پاره‌ی (٩٠٠٠$ نۆ هه‌زار دۆلاریده‌که‌م که داوا لێکراو بانگ بکرێت بۆ دادبینی وه‌ بڕیار ده‌ربکڕیت به جیابوونه‌وه‌ له‌ نێوان من و داوالێکراوله‌ سه‌ر بنه‌مای زه‌ره‌ر (التفریق للضرر) پالپشت به‌ مادده‌ی (40) له‌ یاسای باری که‌سی عێراقی وه‌ ته‌واویئه‌مریکی) که‌ ده‌کاته‌ (١٠٨٠٠٠٠٠ ده‌ ملیۆن و هه‌شت سه‌د هه‌زار دیناری عێراقی) بۆ هه‌ر سێ سالینرخه‌که‌ی بۆ بریکاردارم نه‌گه‌ڕاندۆته‌وه‌ سه‌ره‌ڕای چه‌ندین جار داواکردن بۆیه بریکاردارم داوا له‌ دادگاریکاردارمی له‌و کرێیه‌ نه‌داوه‌تێ، بۆیه‌ بریکاردارم داوا له‌ دادگا ده‌کات که‌وا داوالێکراوی سه‌ره‌وهوه‌ته‌واوی خه‌رجی داوا و ماندووبوونی پارێزه‌ریه ‌تی بخرێته ئه‌ستۆی داوالێکراوده‌گه‌ینێت به‌ جنێو دان و له‌که دارکردنی ئابڕووم وه‌ سه‌ره‌رای ئه‌وه‌ش به‌رده‌وام جگه‌ره‌ ده‌کێشێت وئه‌م مولکه له لایه‌ن داوالێکراو به‌ کرێ دراوه‌ته‌وه به‌لام له‌ سالی ٢٠١٦ تاوه‌کو ئێستا داوالێکراو پشکیبریکارده‌رم ده‌پارێزم به‌ داوایه‌کی سه‌ربه‌خۆ یان تێهه‌لکێش و ته‌واوی خه‌رجی داواو ماندووبوونیدادگای باریی که‌سی سۆران ده‌رچووه له‌سه‌ر ماره‌یی پێشه‌کی (3000سێ هه‌زار دینار) وه پاشه‌کی (19داگرتووه و چووه‌ته ناو خانووه‌که‌ی وتاوه‌کو ئێستاش له ناویدا نیشته‌جێیه وئاماده نیه چۆلی بکات)بریکاردارمی له‌ ده‌ره‌وه‌ی دادگا طلاق داوه‌ بۆیه‌ بۆیه داوا له دادگا ده‌که‌م که داوا لێکراوداوالێکراوی سه‌ره‌وه‌ مێردی بریکارده‌رم بوه به‌ پێ ی گرێبه‌ستی ماره‌بڕینی ژماره‌ده‌خه‌ملێنم به (160000) سه‌دو شه‌ست هه‌زار دینار که‌ نرخی (یه‌ک سۆپای سۆلان سپی)و مافی(٢٠١٦ و ٢٠١٧ و ٢٠١٨)، و ته‌واوی خه‌رجی داواو و ماندووبوونی پارێزی‌رایه‌تی بخرێته‌ ئه‌ستۆی وسه‌ر‌‌ه‌تا(160500000شازده ملیۆن و په‌ نجا هه‌زار دینار و به‌ مه‌به‌ستی دانی ڕه‌سمی یاسایی داوای بریکارده‌رمپارێزه‌رییه‌تی ده‌خه‌مه ئه‌ستۆی داوالێکراو.خه‌رجی داوا و ماندوبوونی پارێزه‌ریه‌تی بخرێته ئه‌ستۆی داوالێکراوله‌گه‌ل رێزمانداداوالیکراوی سه‌ره‌وه‌ ژنی منه‌ به‌ پێ ی گرێبه‌ستی ماره‌بڕینی ژمارهبریاری ژماره له‌ دادگای باری که‌سی سۆران ده‌رچووه داوالێکراوی سه‌ره‌وه‌ ده‌ستی به‌سه‌رکه له که له دادگای باری که‌سی سۆران ده‌رچووه له‌سه‌ر ماره‌ییله‌گه‌ل رێزماندا ........له‌گه‌ل رێزماندابخرێته ئه‌ستۆی، وبه‌مه‌به‌ستی دانی ره‌سمی یاسایی سودی مانگانه‌ی مولکه‌که به‌ بری (٢٣٠٠٠٠ هه‌زارپشکێک له‌ مولکی ژماره ( به‌ ناوی بریکاردارمه که پێکهاته‌که‌ی خانووه،نه‌خۆشیه‌کی ده‌روونی بوه وه‌شه‌و له‌ مال راده‌کات منداڵه‌کانی به‌ ته‌نیا به‌جێ ده‌هێلێت وه ئه‌و زه‌ره‌رانهدیناری عئراقی) ده‌خه‌ملێنم.به‌‌مه‌به‌ستی دانی ره‌سمی یاسایی داواکه به‌ بری (٣٠٠٠٠٠ سێ سه‌د هه‌زار دیناری عێراقی ) ده‌خه‌ملێنمپێشه‌کی (67شه‌ست وحه‌فت مسقال زێر) وه‌ پاشه‌کی(19 نۆزده مسقال زێر ) داوالێکراو له‌ رێککه‌وتیمولکی بریکاردارم وگه‌راندنه‌وه‌ی بۆی به‌ به‌تالی، وته‌واوی خه‌رجی داوا وماندووبوونی پارێزه‌رایه‌تیداوالێکراوی سه‌ره‌وه‌هاوسه‌ری بریکاردارمه‌ و بریکاردارمی گواستۆته‌وه به‌ پێ ی گرێبه‌ستی ماره‌بڕینی ژمارهبه‌لام داوالێکراوی سه‌ره‌وه له رێکه‌وتی( ده‌ستی به‌سه‌ر ئه‌و به‌شه مولکه‌ی بریکاردارموبیداته‌وه بریکاردارم، بۆ ئه‌م مه‌به‌سته بریکاردارم داوا له دادگا ده‌کات که‌وا داوالێکراوی سه‌ره‌وهله‌گه‌ل رێزماندا....له‌گه‌ل رێزماندا له‌منداله‌کانم ده‌دات و وه‌ جارێک خۆ' سوتاندوه‌و چه‌ندین جاری تر هه‌ولی خۆکوشتنی داوه‌و وه‌ توشی Wrote unicharset file data/foo/unicharset make: *** No rule to make target 'data/foo-ground-truth/5.1.lstmf', needed by 'data/foo/all-lstmf'. Stop. what i have to do with this make: *** No rule to make target 'data/foo-ground-truth/5.1.lstmf', needed by 'data/foo/all-lstmf'. Stop.

wrznr commented 4 years ago

This is most likely an RTL issue. The error message is right in the beginning of your output:

Extracting unicharset from plain text file data/foo/all-gt Word started with a combiner:0x200c Normalization failed for string

Words may not start with a combining symbol.

sam-kurdi commented 4 years ago

This is most likely an RTL issue. The error message is right in the beginning of your output:

Extracting unicharset from plain text file data/foo/all-gt Word started with a combiner:0x200c Normalization failed for string

Words may not start with a combining symbol.

yes, this is right to left script any solution?

wrznr commented 4 years ago

You have to use the RTL invocation of tesstrain: https://github.com/tesseract-ocr/tesstrain/blob/6f740599da736d849521dce8d1936c5a5f34f704/Makefile#L70

sam-kurdi commented 4 years ago

I added this part to make file

# Normalization mode - 2, 1 - for unicharset_extractor and Pass through Recoder for combine_lang_model ifeq ($(LANG_TYPE),Indic) NORM_MODE =2 RECODER =--pass_through_recoder GENERATE_BOX_SCRIPT =generate_wordstr_box.py else ifeq ($(LANG_TYPE),RTL) NORM_MODE =3 RECODER =--pass_through_recoder --lang_is_rtl GENERATE_BOX_SCRIPT =generate_wordstr_box.py else NORM_MODE =2 RECODER= GENERATE_BOX_SCRIPT =generate_line_box.py endif endif

when I try to run make training again this error shows up

make: *** No rule to make target 'trainig'. Stop.

wrznr commented 4 years ago

Pls. do not edit the Makefile. Simply use environment variables to set the different variables. Otherwise, it may well be possible that you have a syntax or whitespace problem in your Makefile. make is quite picky in this regards.

sam-kurdi commented 4 years ago

I installed again to be sure the installation is clean open terminal make leptonica tesseract i noticed this error

Makefile:307: recipe for target 'tesseract.built' failed make: *** [tesseract.built] Error 2

do you think this causes the issues?

wrznr commented 4 years ago

Of course it is possible. It is really hard to tell from a distance. In general, you should have a working tesseract.

sam-kurdi commented 4 years ago

The problem solved no need to build twice. if tesseract installed successfully dont build it again. but during the training i face this error

Warning: LSTMTrainer deserialized an LSTMRecognizer! At iteration 9459/10000/10000, Mean rms=7.74%, delta=46.861%, char train=88.198%, word train=93.891%, skip ratio=0%, New worst char error = 88.198At iteration 1000, stage 0, Eval Char error rate=100, Word error rate=100 wrote checkpoint. Finished! Error rate = 88.158 num_docs > 0:Error:Assert failed:in file imagedata.cpp, line 651 Makefile:266: recipe for target 'data/ck_kr/checkpoints/ck_kr_checkpoint' failed make: [data/ck_kr/checkpoints/ck_kr_checkpoint] Segmentation fault (core dumped) make: Deleting file 'data/ck_kr/checkpoints/ck_kr_checkpoint'