石鑫华视觉 手机微信QQ:13450001061 / 18038383457

图像编程

LabVIEW调用Halcon实现深度学习之DeepOCR

文章来源:石鑫华视觉网时间:2024-08-26 12:31:34 点击:117

LabVIEW调用Halcon实现深度学习之DeepOCR

下载.png

视频号

B

LabVIEW2018版中,NI引入了深度学习功能,官方也提供了一个深度学习的例子——目标缺陷检测:

Deep Learning Object Detection

       范例中虽然可以调用深度学习模型(OpenVINOxml格式或TensorFlowpb格式),但是也仅仅只是调用模型罢了,也就是能用深度学习的方法,来实现推理过程。但是模型的的训练,则完全无法实现,即没有提供标注工具,也没有提供相应的范例。哪怕是将一些第三方模型转换为LabVIEW中能支持的xmlpb模型的转换工具也没有。所以,实际上LabVIEW官方的深度学习的功能是很鸡肋的。只能用官方的模型看看运行效果,确实可以检测到目标的缺陷。至于验证一下其他项目,那就抱歉了,实现不了。要训练模型,就得换到Python等环境中去。话说回来,如果我能在Python中进行训练了,那我为什么不直接在Python中推理吗?又何必再换到LabVIEW中来实现呢,简直多此一举。而要在Python中训练,那学习成本相对来说就比较高了,需要学习OpenVINO/TensorFlow等库,还至少需要学习一门文编程语言,如Python之类的。当然了,如果预算允许,那也可以买一些LabVIEW的第三方工具包,现在也有一些第三方的开发了一些工具包,可以训练推理,比NI官方的效果要好,不过好像都是收费工具包。

       深度学习经过了这么多年发展,石鑫华视觉也只是看个热闹,没有怎么研究过。这次在更新教程LabVIEW HALCON图像处理入门教程(2024Q3)》时,主要就是更新了一下深度学习方面的知识点。因为没有太多的时间精力再去学习OpenVINO/TensorFlow/Python等,就没有沿着NI官方的路线研究深度学习。这里的LabVIEW深度学习的实现,则是通过调用Halcon来实现的。在之前的LabVIEW HALCON图像处理入门教程》LabVIEW HALCON图像处理入门教程(第二版)》等教程中,对于LabVIEW调用Halcon已经驾轻就熟了,所以这里再引入深度学习的功能,则要变得简单很多。通过研究学习,确实也是这样。LabVIEW HALCON图像处理入门教程(2024Q3)》增加了一个基于深度学习的Deep OCR的例子,从开始创作到任务基本完成,中间断断续续的前后花了一个多月时间,这个是完全从01的过程。相对来说,学习任务还是要轻松很多。

使用官方模型自动识别官方图片中的字符效果1

识别效果2

识别效果3

识别效果4

识别效果5

识别效果6

       Halcon官方预训练了一个字母数字的模型,效果还是非常不错的。对于大部分的英文、英文标点、数字等识别,基本上都可以轻松实现,只要图像质量不是非常差,识别都是准确的,当然,对于一些非常小且又模糊的,即使人眼看,都看不太清楚的,那就无能为力了,这种情况应该无论是谁都无法精准的识别的。

使用自己训练的模型检测+识别中文字符

中文模型识别字符(高分辨率图像)

中文模型识别字符(低分辨率图像)

       Halcon环境中可以使用DLT来进行标注,训练则是使用Halcon中自带的例子在HDevelop中进行处理的(为了偷懒,没有在LabVIEW中实现)。训练的模型效果就没有Halcon官方训练的模型效果好了。训练模型和数据集的大小有关系,数据集中的数据越多,训练的效果就越好,教程中也只是为了实现训练这个过程,数据相对比较少,仅使用了15幅图像进行标注训练,效果也就是上面那样的了。大部分的能够识别,少部分无法识别或识别错误。中文模型仅使用了识别训练,未处理检测训练,所以对于检测或自动的模型时,部分内容无法检测到。

DLT中标注

HDevelop中进行训练


首页
84162741QQ
联系