OCR文本训练

read_image(Image, 'D:/图片/视觉检测图片/16.jpg')
get_image_size(Image, Width, Height)
dev_close_window()
dev_open_window(0, 0, Width/2, Height/2, 'black', WindowHandle)

dev_display(Image)
*按灰度值开运算矩形
gray_opening_rect(Image, ImageOpening, 11,10)
threshold(ImageOpening, Region, 140, 255)

fill_up(Region, RegionFillUp)

connection(RegionFillUp, ConnectedRegions)

select_shape(ConnectedRegions, SelectedRegions, 'area', 'and', 150000, 999999)

erosion_circle(SelectedRegions, RegionErosion, 3.5)

reduce_domain(ImageOpening, RegionErosion, ImageReduced)
binary_threshold(ImageReduced, Region1, 'max_separability', 'dark', UsedThreshold)

dev_display(Image)
dev_display(Region1)
*按矩形扩张
dilation_rectangle1(Region1, RegionDilation, 40, 11)
closing_circle(RegionDilation, RegionClosing, 1.5)
connection(RegionClosing, ConnectedRegions1)
select_shape(ConnectedRegions1, SelectedRegions1, 'area', 'and', 25000, 99999)
closing_circle(SelectedRegions1, RegionClosing1, 13.5)

count_obj(SelectedRegions1, Number)
select_obj(RegionClosing1, ObjectSelected, 1)
intersection(ObjectSelected, Region1, RegionIntersection)


smallest_rectangle1(RegionIntersection, Row1, Column1, Row2, Column2)
gen_rectangle1(Rectangle, Row1, Column1, Row2, Column2)
*将矩形分成6段,末点剪起始点
partition_rectangle(Rectangle, Partitioned, (Column2 - Column1) / 6, Row2-Row1)

dev_display(Image)
dev_set_draw('margin')
dev_display(Partitioned)

intersection(Partitioned, Region1, RegionIntersection1)

dev_display(Image)
dev_set_draw('margin')
dev_display(RegionIntersection1)
*排序,最后一个参数是按列排序
sort_region(RegionIntersection1, SortedRegions, 'first_point', 'true', 'column')
*输入训练文本
TrainingNames:=['5','9','7','6','0','8']
*训练的文件名
TrainingFileName:='OCR1.trf'
area_center(SortedRegions, Area, Row, Column)
*取平均6个ROW
MeanRow :=mean(Row)

for i:=0 to |TrainingNames| -1 by 1 
    *选择排序中的字符
    select_obj(SortedRegions, ObjectSelected1, i+1)
    *将OCR训练放到训练文件中
    append_ocr_trainf(ObjectSelected1, Image, TrainingNames[i], TrainingFileName)
    set_tposition(WindowHandle, MeanRow- 80, Column[i]-20)
    write_string(WindowHandle, TrainingNames[i])
endfor

create_ocr_class_mlp(8, 10, 'constant', 'default', TrainingNames, 80, 'none', 10, 42, OCRHandle)
trainf_ocr_class_mlp(OCRHandle, TrainingFileName, 200, 1, 0.01, Error, ErrorLog)

write_ocr_class_mlp(OCRHandle, 'OCRTrain')

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
ChineseOCR是用于文字识别的一个开源项目,它基于深度学习技术,可以将图片中的文字转化为可编辑的电子文本。为了让ChineseOCR具备识别准确率高和泛化能力强的特点,需要进行训练。 首先,ChineseOCR训练需要大量的标注数据,这些数据包括文字图片和对应的文字注释。这些数据可以从各种渠道获取,如公开的文字数据集、网络爬取数据等。 其次,在训练之前需要对数据进行预处理,包括图像增强、灰度化、二值化等操作。这样可以提高图像的质量,提供更好的输入数据。 接下来,使用深度学习算法进行模型的构建和训练。常用的算法包括卷积神经网络(CNN)、循环神经网络(RNN)等。这些算法可以对文字的结构和语义信息进行学习,提取特征并进行分类。 训练过程中,需要设置合适的超参数和优化算法,以提高模型的性能。常用的超参数有学习率、批大小、迭代次数等,而常用的优化算法有梯度下降法、Adam优化算法等。 最后,对训练得到的模型进行评估和调优。可以使用一些评估指标,如准确率、召回率、F1值等,来评估模型的性能。如果模型表现不佳,可以尝试调整算法、增加数据量或修改网络结构等方法进行改进。 综上所述,ChineseOCR训练过程包括数据收集、数据预处理、模型构建和训练、模型评估和调优等步骤。通过这些步骤,可以使ChineseOCR具备更高的识别准确率和泛化能力,更好地满足用户的需求。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小兴-

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值