首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何为Tesseract 4.1.0创建Traineddata文件

如何为Tesseract 4.1.0创建Traineddata文件
EN

Stack Overflow用户
提问于 2019-03-07 13:26:04
回答 1查看 9.6K关注 0票数 5

我想要识别NumberPlate的角色。如何在ubuntu 16.04中训练相应车牌的tesseract-ocr。因为我不熟悉训练。请帮我创建一个用来识别车牌的'traineddata‘文件。

我有1000张车牌的图片。

请查一查。任何帮助都将不胜感激。

因此,我尝试了以下命令

代码语言:javascript
复制
tesseract [langname].[fontname].[expN].[file-extension] [langname].[fontname].[expN] batch.nochop makebox

tesseract eng.arial.plate3655.png eng.arial.plate3655 batch.nochop makebox

但它会产生错误。

代码语言:javascript
复制
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.

在那之后我试过了

代码语言:javascript
复制
tesseract plate4.png eng.arial.plate4 batch.nochop makebox

它是有效的,但在一些盘子里。现在在第2步中,我得到了错误。

截图附在附件中。

图4用于训练的图像

步骤1和Ste p2在终端中显示

步骤1和步骤2后生成的文件

步骤1、步骤2后生成的文件内容

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-03-09 00:45:04

为Tesseract 4创建.traineddata

{*注意:安装tesseract后,打开cmd并执行以下操作。}

步骤1:为我们想要训练的图像制作盒子文件

语法:

代码语言:javascript
复制
tesseract [langname].[fontname].[expN].[file-extension] [langname].[fontname].[expN] batch.nochop makebox

例如:

代码语言:javascript
复制
tesseract own.arial.exp0.jpg own.arial.exp0 batch.nochop makebox

{*注意:制作box文件后,我们必须更改或修改box文件中识别错误的字符。}

步骤2:创建.tr文件(合成图像文件和盒子文件)

语法:

代码语言:javascript
复制
tesseract [langname].[fontname].[expN].[file-extension] [langname].[fontname].[expN] box.train

例如: tesseract own.arial.exp0.jpg own.arial.exp0 box.train

步骤3:从box文件中提取字符集(此命令的输出为unicharset文件)

语法:

代码语言:javascript
复制
unicharset_extractor [langname].[fontname].[expN].box 

例如:

代码语言:javascript
复制
unicharset_extractor  own.arial.exp0.box

步骤4:根据需要创建一个font_properties文件。

语法:

代码语言:javascript
复制
echo "[fontname] [italic (0 or 1)] [bold (0 or 1)] [monospace (0 or 1)] [serif (0 or 1)] [fraktur (0 or 1)]" > font_properties 

例如:

代码语言:javascript
复制
echo "arial 0 0 1 0 0" > font_properties

步骤5:训练数据。

语法:

代码语言:javascript
复制
mftraining -F font_properties -U unicharset -O [langname].unicharset [langname].[fontname].[expN].tr

例如:

代码语言:javascript
复制
mftraining -F font_properties -U unicharset -O own.unicharset own.arial.exp0.tr

步骤6:

语法:

代码语言:javascript
复制
cntraining [langname].[fontname].[expN].tr

例如:

代码语言:javascript
复制
cntraining own.arial.exp0.tr

{*注意:在第5步和第6步之后,创建了四个文件。(shapetable,inttemp,pffmtable,normproto) }

步骤7:将四个文件(shapetable,inttemp,pffmtable,langname.normproto)重命名为(langname.shapetable,langname.inttemp,langname.pffmtable,langname.normproto)

语法:

代码语言:javascript
复制
rename filename1 filename2

例如:

代码语言:javascript
复制
    rename shapetable own.shapetable
    rename inttemp own.inttemp
    rename pffmtable own.pffmtable
    rename normproto own.normproto

步骤8:创建.traineddata文件

语法:

代码语言:javascript
复制
combine_tessdata [langname].

例如:

代码语言:javascript
复制
combine_tessdata own.

{*注意:我将只使用一个镜像exp0来创建traineddata.if你想训练多个你可以训练的镜像,即exp1,exp2..expn }

Reference

票数 11
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/55036633

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档