Halcon图像的 OCR 识别&训练字符
  Uxc9ApR8SClW 2023年11月02日 35 0

2.1识别 OCR 的流程和方法

处理图像使得数字或是字母为白底黑字->创建字符识别句柄->识别->清除句柄

       算子:read_ocr_class_mlp( : : FileName : OCRHandle)

示例:read_ocr_class_mlp ('Document_0-9A-Z_NoRej.omc', OCRHandle)

'Document_0-9A-Z_NoRej.omc'(输入控制参数):输入识别类型

OCRHandle(输出控制参数): 输出识别句柄

 

      

算子:do_ocr_multi_class_mlp(Character, Image : : OCRHandle : Class, Confidence)

示例:do_ocr_multi_class_mlp (ObjectSelected, ImageInvert, OCRHandle, Class, Confidence)

ObjectSelected(输入对象):输入识别区域

ImageInvert(输入对象):输入识别图像

OCRHandle(输入参数):输入句柄

Class(输入对象):输出识别的字符

Confidence(输出参数):输出识别的相似度

算子:comment( : : Comment : )

示例:clear_ocr_class_mlp (OCRHandle)

OCRHandle(输入控制参数):输入识别句柄


2.2训练字符识别库文件流程和方法

1.提取图像中的字符->

2.将每个字符加到训练文件中(append_ocr_trainf)->

3.除重(uniq)->

4.创建一个使用 多层感知器(create_ocr_class_mlp)->

5.利用多层感知器创建一个新的OCR分级器(trainf_ocr_class_mlp)->

6.将OCR分级器的OCRHandle写入文件的FileName(文件名)(write_ocr_class_mlp)->

7.训练字符文件->

8.读取训练后的文件 生成识别的分类器句柄read_ocr_class_mlp ->

9.识别字符:识别单个字符(do_ocr_single_class_mlp),识别多个字符(do_ocr_multi_class_mlp)->

10.关闭分类器句柄(clear_ocr_class_mlp)


**************************详细步骤**********************


2.将每个字符加到训练文件中(append_ocr_trainf)

算子:append_ocr_trainf(Character, Image : : Class, TrainingFile : )

示例:append_ocr_trainf (ObjectSelected, ImageReduced, tuple[Index], 'train_ocr'+'.trf')  

ObjectSelected(输入对象1):字符Regio

ImageReduced(输入对象2):字符Image

Tuple(输入控制参数1):字符文本

'train_ocr'+'.trf'(输入控制参数2):OCR训练的.trf文件路径

示例:chans:=uniq(sort(tuple))

Tuple(输入控制参数):字符集数组


3.除重(uniq)

示例:chans:=uniq(sort(tuple))

Tuple(输入控制参数):字符集数组


4.创建一个使用 多层感知器(create_ocr_class_mlp)

算子:create_ocr_class_mlp( : : WidthCharacter, HeightCharacter, Interpolation, Features, Characters, NumHidden, Preprocessing, NumComponents, RandSeed :OCRHandle)

示例:create_ocr_class_mlp (8, 10, 'constant', 'default', chans, 80, 'none', 10, 42, OCRHandle)

8(输入控制参数1):字符的宽度(默认)

10(输入控制参数2):字符的宽度(默认)

'constant'(输入控制参数3):字符缩放样式(默认)

'default'(输入控制参数4): 用于分类的特征(默认)

Chans(输入控制参数5):要读取的字符集的所有字符

80(输入控制参数6):对MLP隐藏单元数(默认)

‘none'(输入控制参数7):用于转换特征向量的预处理类型(默认)

10(输入控制参数8):预处理参数:变换特征的个数(默认)

42(输入控制参数9):随机数生成器的种子值,用于初始化具有随机值的MLP。(默认)

OCRHandle(输出控制参数):输出OCR分类器的句柄


5.利用多层感知器创建一个新的OCR分级器(trainf_ocr_class_mlp)

算子:trainf_ocr_class_mlp( : : OCRHandle, TrainingFile, MaxIterations, WeightTolerance, ErrorTolerance : Error, ErrorLog)

示例:trainf_ocr_class_mlp (OCRHandle, 'train_ocr.trf', 200, 1, 0.01, Error, ErrorLog)

OCRHandle(输入控制参数1):OCR分类器的句柄

'train_ocr.trf'(输入控制参数2),:训练文件名称

200(输入控制参数3):优化算法的最大迭代次数(默认)

1(输入控制参数4):优化算法两次迭代中MLP权重差的阈值(默认)

0.01(输入控制参数5):优化算法两次迭代训练数据上MLP平均误差的阈值。(默认)

Error(输入控制参数6):训练数据中MLP的平均误差(默认)

ErrorLog(输入控制参数7):训练数据上的MLP的平均误差作为优化算法迭代次数的函数。(默认)


6.将OCR分级器的OCRHandle写入文件的FileName(文件名)

算子:write_ocr_class_mlp( : : OCRHandle, FileName : )

示例:write_ocr_class_mlp (OCRHandle, 'train_ocr')

OCRHandle(输入控制参数1):OCR分类器的句柄

'train_ocr'(输入控制参数2):保存OCR的的.omc分类器到文件


7.训练字符文件


Halcon图像的 OCR 识别&训练字符_迭代

Halcon图像的 OCR 识别&训练字符_ide_02

Halcon图像的 OCR 识别&训练字符_迭代_03


Halcon图像的 OCR 识别&训练字符_ide_04

Halcon图像的 OCR 识别&训练字符_ide_05

8.读取训练后的文件 生成识别的分类器句柄read_ocr_class_mlp

算子:read_ocr_class_mlp( : : FileName : OCRHandle)

示例:read_ocr_class_mlp('C:/Users/Administrator/Desktop/学习文件夹/练习/练习11/train_ocr.omc', OCRHandle1)

       'C:/Users/Administrator/Desktop/学习文件夹/练习/练习11/train_ocr.omc'(输入控制参数):输入训练好的文件地址

       OCRHandle1(输出控制参数):输出OCR分类器的句柄


9.识别字符:识别单个字符(do_ocr_single_class_mlp),识别多个字符(do_ocr_multi_class_mlp)

识别单个

算子:do_ocr_single_class_mlp(Character, Image : : OCRHandle, Num : Class, Confidence)

示例:do_ocr_single_class_mlp(SortedRegions1, ImageScaled2, OCRHandle1, 1, Class1, Confidence1)

SortedRegions1(输入对象1):输入要识别的字符区域

ImageScaled2(输入对象2):输入需要识别的图像

OCRHandle1(输入控制参数1):输入OCR 分类器的句柄

1(输入控制参数2):输入要确定的最佳类别的数量(默认)

Class1(输入控制参数3):输出使用 MLP 对字符进行分类的结果(默认)

Confidence1(输入控制参数4):输出字符识别得分(默认)


识别多个:

算子:do_ocr_multi_class_mlp(Character, Image : : OCRHandle : Class, Confidence)

示例:do_ocr_multi_class_mlp(ObjectSelected1, ImageScaled2, OCRHandle1, Class, Confidence)

ObjectSelected1(输入对象1):输入要识别的字符区域

ImageScaled2(输入对象2):输入需要识别的图像

OCRHandle1(输入控制参数1):输入OCR 分类器的句柄

Class(输入控制参数2):输出MLP 对字符进行分类的结果(默认)

Confidence(输入控制参数3):输出字符识别得分(默认)


10.关闭分类器句柄(clear_ocr_class_mlp)

算子:clear_ocr_class_mlp( : : OCRHandle : )

示例:clear_ocr_class_mlp(OCRHandle1)

OCRHandle1(输入控制参数):分类器句柄

【版权声明】本文内容来自摩杜云社区用户原创、第三方投稿、转载,内容版权归原作者所有。本网站的目的在于传递更多信息,不拥有版权,亦不承担相应法律责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@moduyun.com

  1. 分享:
最后一次编辑于 2023年11月08日 0

暂无评论

推荐阅读
  b1UHV4WKBb2S   2023年11月13日   39   0   0 ide抗锯齿
  b1UHV4WKBb2S   2023年11月13日   33   0   0 裁剪ideflutter
  zSWNgACtCQuP   2023年11月13日   29   0   0 ide
Uxc9ApR8SClW