1、append_ocr_trainf

append_ocr_trainf(Character, // 选中当前目标Image, // 目标对应图片Class, // 字符的类别(名称) TrainingFile) // 培训文件的名称
  • 定义:向训练文件中添加字符

  • 说明

  • 操作符append_ocr_trainf用于使用操作符trainf_ocr_class_mlp或trainf_ocr_class_svm准备训练

  • 因此,表示字符的区域,包括其灰度值(区域和像素)和相应的类名将被写入文件。在一个映像中支持任意数量的区域。对于“字符”中的每个字符(区域),必须在“类”中指定相应的类名。灰度值通过参数Image传递

  • 与操作符write_ocr_trainf不同的是,字符被附加到使用与该文件相同的训练文件格式的现有文件中。如果文件不存在,则生成一个新文件

  • 在这种情况下,可以通过操作符set_system的参数'ocr_trainf_version'来选择文件格式。如果在TrainingFile中没有指定文件扩展名,则扩展名'。Trf '被加在名字后面

  • 如果参数正确,操作符append_ocr_trainf返回值TRUE,否则将引发异常

2、read_ocr_trainf_names

read_ocr_trainf_names(TrainingFile, // 训练文件名称CharacterNames, // 训练字体的名称CharacterCount) // 训练字体样本的个数
  • 定义:查询训练文件中存储的字符

  • 说明:提取指定训练文件中所有字符的名称和频率

3、create_ocr_class_mlp

create_ocr_class_mlp(WidthCharacter, HeightCharacter, // 识别字符宽度、高度Interpolation, // 插值算法Features, // 特征值 (区域特征、灰度值特征   包含曲度、紧密度、凸性等等)Characters, // 训练样本的名称NumHidden, // 隐藏层中的单元数Preprocessing, // 预处理NumComponents, // 特征变换的数量(特征未规划前的向量数一般为默认值)RandSeed, // 随机种子点数一般都写42 ,这个是神经网络迭代的过程OCRHandle) // 句柄
  • 定义:创建一个使用多层感知器(MLP)的OCR分类器,得到OCR分类器的句柄

  • 说明

  • create_ocr_class_mlp创建一个OutputFunction = 'softmax'的MLP。MLP的特征向量(create_class_mlp中的NumInput)的长度由用于OCR的特性决定,这些特性在features中传递

  • MLP的输出变量的数量由OCR中要使用的字符的名称确定,在characters中传递

  • 使用参数Preprocessing和NumComponents来指定数据(即特征向量)的预处理

  • 预处理通常可以设置为“none”

  • 要分类的字符被转换为标准大小,由WidthCharacter和HeightCharacter决定

  • 用于变换的插值由插值确定,对于大多数应用程序,应该使用Interpolation = 'constant'

  • 应用

  • 创建分类器后,使用trainf_ocr_class_mlp对其进行训练

  • 在此之后,可以使用write_ocr_class_mlp保存分类器,或者可以在训练后立即使用分类器使用do_ocr_single_class_mlp或do_ocr_multi_class_mlp对字符进行分类

  • MLP和支持向量机(SVM)的比较(参见create_ocr_class_svm)通常表明,支持向量机在训练时通常更快,特别是对于庞大的训练集,并且获得比MLP稍好的识别率。MLP在分类上更快,因此在时间关键的应用中应该是首选

4、trainf_ocr_class_mlp

trainf_ocr_class_mlp(OCRHandle, // 句柄TrainingFile, // trf文件,ocr.trfMaxIterations, // 优化算法最大迭代次数 200 WeightTolerance, // 砝码公差 优化算法两次迭代MLP权值差的阈值 1.0 ErrorTolerance, // 错误公差 两次迭代平均误差阈值 0.01Error, // 训练数据平均误差ErrorLog) // 算法在训练数据上的平均错误
  • 定义:使用TrainingFile提供的OCR训练文件中存储的训练字符训练OCR分类器OCRHandle,输出平均误差与错误

  • 说明

  • 训练文件必须已经创建

  • 在训练过程中会考虑OCR分类器的正规化和正规化参数的自动确定(参见set_regularization_params_ocr_class_mlp),如果使用set_rejection_params_ocr_class_mlp指定了拒绝类,则在实际训练之前生成拒绝类的样本

  • 注意:在分类器OCRHandle中没有对应类的训练字符将被丢弃

5、write_ocr_class_mlp

write_ocr_class_mlp(OCRHandle, // 需要保存的句柄FileName) // 路径地址
  • 定义:将OCR分类器OCRHandle写入FileName指定的文件

  • 说明

  • 如果在FileName中没有指定文件扩展名,则默认扩展名'.omc'被附加到FileName

  • Write_ocr_class_mlp通常在使用trainf_ocr_class_mlp训练分类器之后调用,可以使用read_ocr_class_mlp读取分类器

6、clear_ocr_class_mlp

clear_ocr_class_mlp( : : OCRHandle : )
  • 定义:清除由create_ocr_class_mlp创建的OCRHandle提供的OCR分类器,并释放分类器所需的所有内存

  • 说明:调用clear_ocr_class_mlp之后,分类器就不能再使用了,句柄OCRHandle变得无效

Halcon学习---光学字符训练、识别(OCR)算子相关推荐

  1. Halcon学习---光学字符识别(OCR)

    1. text_line_orientation text_line_orientation(Region, // 输入文本行所在区域Image, // 输入图像CharHeight, Orienta ...

  2. Halcon学习笔记(八)——OCR初步创建并训练OCR分类器

    第一讲 OCR:(Optical Character Recognition,光学字符识别)是指电子设备(例如扫描仪或数码相机)检查纸上打印的字符,通过检测暗.亮的模式确定其形状,然后用字符识别方法将 ...

  3. 表单识别(四)-基于深度学习的表单识别)-OCR

    (论文研读后,感觉有用的一些笔记,主要是给自己记录) 论文:熊雨点,基于深度学习的表单识别系统的研究与实现 基于深度学习的表单识别 前言: 文档检测方法: 基于扩张卷积残差网络的表单文档定位方法: 扩 ...

  4. halcon学习拓展系列—修改图片分辨率算子modify_image_size(尺度不缩放)

    前面做过两个涉及图像分表率调整的专题 1)<halcon学习拓展系列-根据分辨率调整点云图像分辨率算子adjust_image_size_base_resolution>(尺度缩放) 2) ...

  5. Halcon学习笔记(九)——OCR实战练习 倾斜日期检测、倒着的字符检测

    第四-八讲 OCR实战练习 在基于之前的例程分析之上,这里做具体应用,比如,食品包装袋上倾斜的日期识别,温度计上倒着的字符识别等. 倾斜日期识别 首先,对于这样一幅图片,怎样实现对日期的提取? 法一: ...

  6. python+tensorflow LeNet---深度学习MINST手写体训练识别

    数据样本 1.首先我们要有手写体的数据集文件 下载地址MINST手写体数据 2.训练集:共60000个,其中55000个用于训练,另外5000个用于验证   测试集:共10000个  训练集:和机器学 ...

  7. halcon学习笔记-车牌号识别

    1.读取图像 快捷键:ctrl+r,以这张车牌为例: 2.图像三通道分割 由于图像中颜色区分明显,尤其是车牌号与背景之间的色差较大,用颜色特征进行分割比较合适.通过三通道分割,将RGB图分成三层独立的 ...

  8. halcon学习-二维码识别过程中对参数的选择以及对畸变的处理学习日志及遇到的问题

    写在前面: 本日志内容参考资料如下: 1.set_data_code_2d_param参数的选择 https://blog.csdn.net/cherish_now_forever/article/d ...

  9. 基于Halcon学习的一维码识别【八】barcode.param_meas_thresh_abs.hdev

    使用条形码参数'meas_thresh_abs'的示例程序:该参数可用于在查找我们希望具有高对比度的条形码符号区域时减少误报的数量.为了人工证明这一点,我们试图找到条形码类型的药典,它没有检查字符,因 ...

最新文章

  1. 大数据:Hive和Hbase的区别于优势
  2. 转:在eclipse中搭建maven工程(第二种方法)
  3. ACM/ICPC 集:
  4. android各版本的sdk区别
  5. CentOS 7下基于bitnami的Redmine结合Subversion的设置
  6. 贪心 赛码 1001 Movie
  7. java代码定义窗口_代码窗口九种方式实现 javascripts 弹出对话框窗口代码
  8. Android性能测试
  9. Linux下使用nmap扫描端口
  10. 嵌入式软件设计之设计模式
  11. PHP语言之表单基础
  12. 三、字符串拼接和占位符
  13. Android Gradle manifestPlaceholders 的妙用
  14. 自定义滚动条文档(mCustomScrollbar使用文档)
  15. dvi线支持多少分辨率_dvi接口有哪几种_dvi支持最大分辨率
  16. swoole并没有你说的那么好,@韩天峰
  17. dos的几种打开方式
  18. css实现垂直方向上的居中方式
  19. 步行速度快慢测试软件,超准!风靡跑圈的5公里跑步测试,进来看看你是哪个等级!...
  20. 一键装机linux_linux系统学习第十八天《搭建一键装机平台》终结篇-阿里云开发者社区...

热门文章

  1. Conflux CIP 机制启动
  2. (iOS) IPTools.h/m - 获取ip地址(ipv4/ipv6)
  3. 关于计算机图形学的3d数学
  4. 模糊pid算法实现一般步骤
  5. 安卓手机与蓝牙模块联合调试(二)—— 单片机蓝牙控制LED灯亮灭(上)
  6. Python向列表中插入元素(列表)
  7. SSM分布式项目之淘淘商城-第十一天(IDEA)
  8. 低压低速引射器的计算(二)(观点)
  9. Java实现归并排序-有图有真相
  10. 以太坊之后,为何V神不想再次成为掌舵人