Halcon OCR识别

本文详细介绍了字符识别的基本流程,包括深度学习和机器学习方法,如CNN、MLP等。讨论了预处理步骤、分类器的选择及过拟合处理,并提供了训练集的划分和函数示例。点状字符、环形字符识别、局部光照不均匀情况下的处理方法也被提及,同时涵盖了汉字自训练流程、文本模型与OCR助手的使用,以及应对斜体字和复杂背景的策略。此外,还分享了OCV和Halcon的相关代码资源。

1. 字符识别的基本流程

1.1 分类:

  • 深度学习(海量数据驱动)
  • 机器学习(传统)mlp,svm,gmm,knn
  • CNN 卷积神经网络

1.2 流程:

  • 读入图像
  • 预处理
    • 拉开对比度
    • 几何变换(转正)
    • 去噪
    • ROI
  • 字符分割(让每个字符都是一个独立的区域)
  • 识别(mlp:多层神经感知) 全神经网络
  • tensorFlow 游乐场

1.3 分类器:(线性/非线性)

1.3.1 过拟合/欠拟合

1.3.2 集合

  • 训练集
    -. 验证集
    -. 测试集

1.3.3 解决过拟合方法

  • 正则化:衰减权重系数
  • Dropout:舍弃神经元

1.3.4 训练集:

  • .NoRej:非拒绝 .
  • .Rej:拒绝
  • 拒绝要求更高。

1.3.5 函数

  • read_ocr_class_mlp
  • do_ocr_multi_class_mlp
  • . halcon字符识别训练集是白底黑字。
  • 如果字母 I 被识别成数字 1 ,可以考虑使用字母训练集识别字母,数字训练集识别数字。

2. 点状字符识别

(halcon例程:dotprt

  • 切分法,核心函数
    • partition_rectangle
    • Intersection

3. 投影变换

  • 参见前面一维码,二维码识别。

4. 环形字符(极坐标变换)

  • 应用场景
    • 内壁或外壁360°环形镜头的图像也需要拉直;
    • 环形物料上面的字符识别。
  • 步骤
    • 求内外园半径和圆心;
    • 极坐标变换。
    • 识别

5. 局部光照不均匀

  • 动态阈值分割:dyn_threshold
  • 光照均衡化:illuminate
  • 直方图均衡化:equ_histo_image

6. 自训练(汉字识别)

6.1 流程

  • 采集图像;
  • 预处理;
  • 分割;
  • 训练:
    • 创建神经网络
    • 形成trf文件
    • 训练(本质是优化参数,沿着梯度最小的方向)
  • 训练文件的读和写
  • 核心算子:
    write_ocr_trainf 写入trf文件
    read_ocr_trainf_names 读取trf文件
    create_ocr_class_mlp 创建ocr分类器
    trainf_ocr_class_mlp 训练ocr分类器
    write_ocr_class_mlp 写入ocr分类器
    read_ocr_class_mlp 读取ocr分类器

7. text模型与ocr助手

  • (例子bottle.hdev

7.1 文本模型

  • get_text_model_parm 设置文本模型参数
  • create_text_model_reader
  • set_text_model_param
  • find_text
  • get_text_object
  • get_text_result

8. 凹凸

  • 打光(同轴光)
  • 预处理
  • 三维扫描(低精度成本只需要600元)
  • 深度学习
  • 光度立体

9. 圆柱曲面

  • 和一维码、二维码一样
  • 线扫相机
  • 360°镜头
  • 投影变换

10. 复杂背景

  • 背景模糊 (差分高斯)
    在这里插入图片描述

  • diff_of_gauss 平滑 + 边缘留下 可以处理模糊图像
    在这里插入图片描述

  • gray_range_rect 灰度预处理
    或者使用
    秩序滤波 rank_rect 自己选择保留暗还是亮像素

  • 图像的差分(减法) + 区域连接(根据灰度值)(案例:ocrcolor.hdev)

    • add_image
    • sub_image
    • mult_image
    • div_image
    • 根据灰度值特征进行区域拓展连接
      expand_gray_ref
      在这里插入图片描述

11. 斜体字(错切变换)(案例:text_line_slant)

  • text_line_slant 求倾斜字符的角度
  • hom_mat2d_slant
    在这里插入图片描述

12. OCV (光学字符检测)(案例:print_quality)

  • create_ocv_proj
  • traind_ocv_proj
  • ==do_ocv_simple ==
    在这里插入图片描述

13. halcon代码下载地址

链接:https://pan.baidu.com/s/1iNRQVMegUw1kM8FJYEEdFw
提取码:1fzw

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

MechMaster

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

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

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

打赏作者

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

抵扣说明:

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

余额充值