labview车牌识别教学视频(车牌识别)

OCR从本质上可看作是目标分类和识别的一种实际应用,因此它也包括训练和分类过程。

大家好,又见面了,我是你们的朋友全栈君。

目录

1、字符数据集训练

2、识别与验证


在学习本章之前,推荐先学习系列专栏文章:LabVIEW目标对象分类识别(理论篇—5)

OCR(光学字符识别)是指机器自动从图像中识别文本字符的过程,OCR机器视觉系统可用于对被测件的识别和分类。常见的识别应用包括:药品包装标签识别、IC芯片编码读取、冲压零件上的字符识别、汽车零件编码读取以及车牌识别等。

OCR从本质上可看作是目标分类和识别的一种实际应用,因此它也包括训练和分类过程。

OCR训练过程主要从图像中提取用于字符识别的特征向量,并对各字符图像赋予准确的字符值。具有相同字符值的字符样本图像构成一个字符类(Character Class),该类可以用其中一个最能代表该类字符的样本图像来代表,称为参考字符(Reference Character)。字符训练完成后,就可得到一个用于对字符进行识别的字符集(Character Set)。

OCR对图像中的文本进行读取时,会先将图像中的各个字符图像分割开来,并将字符的特征向量与字符集中保存的特征向量进行对比,选取满足条件的最佳匹配向量所对应的字符值作为读取识别结果。若有必要,也可以通过字符验证过程对OCR的识别质量进行验证。

下图对OCR应用及OCR的关键技术点进行汇总:

labview车牌识别教学视频(车牌识别)

1、字符数据集训练

和目标分类过程类似,要能使OCR过程正确读取或验证文本,就需要先使用字符样本对分类器进行训练。训练过程一方面从字符样本图像中提取字符特征,另一方面将不同字符特征与字符值(相当于类标识)进行关联映射。训练结束后,字符特征及对应的字符值连同其他与字符识别相关的信息被一并保存在字符集文件中,用于后续的文本识别过程。从分类识别的角度来看,训练得到的字符集文件就相当于分类器。

字符的属性参数决定了OCR训练和文本读取验证过程以何种方式分割字符。

常用的字符属性包括字符的边界长和宽,字符间距、字符占像素的多少(又称为字符大小)等。字符间距若设置得太大,则OCR过程可能会将多个字符当成一个字符。点阵或字段类字符可认为是由多个元素(Element)构成。这种情况下,各元素之间的横向或纵向间隔是较为重要的字符属性之一。元素间的间隔若设置过大,则字符图像可能会包含多余的图像颗粒;而若元素间的间隔设置过小,则字符图像可能并不完全。无论哪种情况,都会造成要识别的字符与其对应图像不能匹配。

Nl Vision提供了两种OCR字符集训练方法,一是使用NI OCR训练器应用程序离线完成字符集训练,二是使用程序代码在运行时完成字符集训练。

下图显示了NI OCR训练器(位于:National Instruments\Vision\Utility\OCR Training Interface\OCR Training.exe)用来设置字符属性的界面,以及两种OCR无法正确识别字符的示例。由于示例中字符元素横向间隔设置过小,因此点阵字符O和R无法被完整识别。而由于字符间隔设置过大,OCR 3个字符被当成了一个字符。

labview车牌识别教学视频(车牌识别)

也可以在程序代码中使用位于LabVIEW的视觉与运动→Machine Vision→OCR函数选板的IMAQ OCR Property读取或配置OCR的各种字符属性信息或形态学处理参数,如下所示:

labview车牌识别教学视频(车牌识别)

函数说明及使用可参见帮助手册: 

labview车牌识别教学视频(车牌识别)

2、识别与验证

在OCR应用中,文字识别或验证过程实际上就是基于训练得到的字符集信息对字符分类的过程。OCR的字符集既可由Nl OCR训练器应用程序离线训练得到,也可由程序代码在运行时训练获得。从图像中识别文字时,OCR程序先分割出各字符,并将其特征与字符集中的字符特征进行对比,返回与之最接近的字符所在类的字符值。

通过一个车牌识别实例了解OCR的应用方法,程序设计思路如下所示:

  • 程序先使用IMAQOCR Read Character Set File读取事先由NI OCR训练器训练得到的字符集文件TO-LlC.abc中的字符信息,然后由While循环逐一识别文件夹中的车牌图像,从中识别车牌号码;
  • 在While循环中,程序将图像读入内存后,先删除所有图像中的叠加图层,然后由IMAQ OCR Read Text 3从设定的ROI中识别车牌;
  • IMAQ Overlay ROI可以根据识别到字符的边界矩形,在图像中用红色矩形框出各字符;
  • 当退出按钮被按下时,程序退出While循环,并在释放内存空间、丢弃OCR会话后结束程序。

程序实现如下所示:

labview车牌识别教学视频(车牌识别)

程序运行效果如下所示:

项目资源下载:https://download.csdn.net/download/m0_38106923/20670402

在实际车牌识别应用程序中,通常首先要从车辆图像中定位到车牌区域。常见的车牌定位方法有以下几种:

  • 根据车牌与其周围图像的差异,由纵横方向上的车牌边缘来确定车牌区域;
  • 通过匹配车牌的几何轮廓或预先保存的各种车牌模板确定其位置;
  • 通过车牌字符的纹理确定车牌位置;
  • 通过车牌的颜色确定车牌位置;
  • 通过车牌字符特征确定车牌位置。
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/129310.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 手机端自适应布局(自适应布局如何实现)

    移动前端自适应解决方案和比较

    2022年4月16日
    141
  • win10笔记本电脑双系统 安装黑苹果系统macOS 小白黑苹果乐园下载资源简便安装黑苹果方式,非常详细,还有资源![通俗易懂]

    win10笔记本电脑双系统 安装黑苹果系统macOS 小白黑苹果乐园下载资源简便安装黑苹果方式,非常详细,还有资源![通俗易懂]马上就要考研咯,今天还是作死研究安装了下黑苹果,罪恶感啊言归正传,接下来将献上我的黑苹果教程首先呢第一步下载你所需要的macOS系统,地址如下https://imac.hk/category/macos/这里也有我的几个保存在百度网盘里的黑苹果乐园的系统(1)macOSHighSierra10.13.6(17G65)Clover2.4kr4596黑苹果原…

    2022年6月7日
    41
  • numpy tile方法_python中的numpy模块

    numpy tile方法_python中的numpy模块numpy中tile的用法

    2022年4月21日
    52
  • Canvas之translate、scale、rotate、skew方法讲解!「建议收藏」

    Canvas之translate、scale、rotate、skew方法讲解!「建议收藏」前面说Canvas大致可以分为三类:1.save、restore等与层的保存和回滚相关的方法;2.scale、rotate、clipXXX等对画布进行操作的方法;3.drawXXX等一系列绘画相关的方法;前面主要讲了drawBitmap方法,并举了一个星球浮动的栗子,在那个例子中,星球有大有小,需要移动,有时候可能需求上还需要旋转或错切,有了这些需求,我们就需要使用到与Canvas相关的translate、scale、rotate、skew这几个方法,平移、缩放、旋转、错切,这四个词听起

    2025年8月6日
    2
  • url传递参数_url encode

    url传递参数_url encodeWerkzeug之URL路由原文链接http://werkzeug.pocoo.org/docs/0.12/routing/当需要组合控制器和视图函数时,我们需要一个调度器来实现。一个简单的实现方式是采用正则表达式匹测试路由信息,调用回调函数并返回结果。Werkzeug提供了一个类似Route[1]的强大功能.下文提到的所有对象都是从werkzeug.routing导入而不是

    2022年10月6日
    2
  • mysql5.7安装及配置超详细教程_mysql安装教程 linux

    mysql5.7安装及配置超详细教程_mysql安装教程 linuxMySQL5.7.35安装教程下载工具官网下载下载在下图中选择你自己需要的版本即可第二种下载方式如下图所示下载下载完成后对工具包进行解压,我解压的在D盘解压好过后在里面新建my.ini文件(如果你不知道怎么创建my.ini文件请看)右击新建文本文档创建文本文档过后进行重命名讲文本文档的后缀名改为ini如图操作再将新建的文本文档改名为my.ini编辑my.ini文件将下面的代码复制进去记得更改里面【basedir】【datadir】的路径为你自己的安装路径[mysqld]#

    2022年8月22日
    13

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号