您好,
会员登录 快速注册
退出 ( 条未读消息)
关于本站 意见反馈 首页

公告:小宅博客网可以开发票了,需要发票的,去群里找群主哈!!
全部文章分类
  • 人工智能 >

  • 编程语言 >

  • WPF系列 >

  • ASP.NET系列 >

  • Linux >

  • 数据库 >

  • 嵌入式 >

  • WEB技术 >

  • PLC系列 >

  • 微服务与框架 >

  • 小宅DIY >

  • 学习资料 >

OpenCv基础 ANN车牌识别 yolov5车牌识别 指针式仪表识别 ROS系列 YOLO Halcon Detectron2 昇腾AI ChatGPT在线体验 英伟达JETSON ChatGLM ChatTTS FunASR 地平线 ByteTrack 魔搭社区 LangChain
C C# C++ Python Java Go
WPF
ASP.NET小功能 GPS定位系统-MVC GPS定位系统-VUE ASP.NET WebRTC
Linux Linux内核 Shell MakeFile
MySql SqlServer Oracle
STM8 STM32 51单片机
VUE入门 HTML JavaScript CSS layui镜像网站 ElementUi中文官网 element-plus 图标
三菱 欧姆龙 西门子 施耐德 松下 台达
IOTSharp IOTGateway ABP FRAMEWORK Docker
亚克力音响 编程仙途:智驭万法
面试题与技巧 Python入门技能树 微软C#教程
首页 编程之美 工具下载 全国就业 流量地图 文心一言
ANN车牌识别
车牌识别源码下载页 【车牌识别1】OpenCv ANN神经网络训练原理 【车牌识别2】如何制作ANN神经网络训练模板 【车牌识别3】ANN神经网络车牌识别
【车牌识别1】OpenCv ANN神经网络训练原理
【车牌识别3】ANN神经网络车牌识别
激萌の小宅 小宅博客网 ANN车牌识别

文章作者:激萌の小宅

促销:¥0

价格:¥0

配送方式: 购买后立即生效(如购买异常,请联系站长)
付款之后一定要等待自动跳转结束,否则购买可能会失败
  • 0 天

    有效期

  • 0

    总销量

  • 0

    累计评价

如何制作ANN神经网络训练模板 - (车牌识别2)


本章节视频讲解如下:



        注意:由于本章节只是讲解如何制作ANN神经网络训练图片,并不是最终完整版的车牌识别代码,所以这里只提供C#版本的训练图片生成原理的原代码。完整的车牌识别工程将在下一节章节中提供。


        在上一节中,给大家演示了如何利用ANN神经网络进行数字和字母的训练以及识别。

        在本章节中,再给大家讲解一下如何制作神经网络训练用的模板图片,为了后面的车牌识别功能实现,这里以制作汉字训练模板为例子。在上一节的训练过程中,我们会发现,我们训练用的图片是下面这样的一堆黑白图片。


        而识别原理则是将我们需要识别的数字或字母提取并转换成和训练图片同样规格的图片,然后进行识别,其实这就有种类似于模板匹配,而且这种识别算法还需要人工将识别的字母或数字提取并转换成和训练样式规格一样的图片才能进行识别,在某些复杂环境下,其实是不怎么适用的。

        制作训练图片的原理其实也很简单,博主用手机在楼下拍了一些车牌的图片,图片如下(图片在工程源码里面):

QQ截图20220508194243.jpg

        在本章节中,我们的目的是为了提取车牌中的汉字,并用来训练。提取方法一般有两种:一种是直接使用PS,将汉字部分裁剪出来,然后按黑白图的方式进行保存;另一种方式是采用代码的方法将汉字提取出来,这样在进行车牌识别时,采用的识别程序和汉字提取程序可以是一样的了。

        在这里,为了保证车牌识别的准确性,博主采用程序的方式,将车牌的汉字部分提取出来,用于神经网络训练。提取大致流程如下:

        1、打开一张图片:

QQ截图20220508195002.jpg

        

        2、采用颜色识别算法,将车牌的颜色提取出来,提取结果如下:

QQ截图20220508195052.jpg


        3、利用轮廓查找,并对查找结果的轮廓面积和长宽比进行过滤,将最后符合车牌尺寸的轮廓提取出来,提取结果如下:

QQ截图20220508195133.jpg


        4、利用查找到的轮廓,将车牌裁剪出来(下面第一张图);接着对裁剪出来的车牌进行滤波和去四边干扰,去干扰的方式也很简单,就是在四边画上足够宽的线条,将干扰覆盖掉(下面第二张图);最后就是对车牌进行自动二值化,最后转换结果就如下面的第三张图一样。

        到这一步,是不是已经很接近训练图片的样子了。。。

        剩下的就是如何将二值图中的汉字“闽”给单独提取出来,并保存成jpg图片,并用于神经网络训练。

QQ截图20220508195526.jpg


        5、汉字的提取方式也很简单粗暴,直接按等宽度分割,将车牌分割成7个部分,第一个就是我们需要的汉字部分了。分割效果如下:

QQ截图20220508200535.jpg


        6、对分割区间进行单独的裁剪,由于我们这边只需要汉字部分,所以我们只裁剪第一个,裁剪结果如下:

QQ截图20220508200701.jpg


        7、重复以上操作,并将裁剪结果进行保存,最终我们会得到如下图片:

QQ截图20220508200834.jpg

        由于样本数量的有限,我们目前的车牌汉字只有四个:闽、川、渝、贵。

        从结果上来看,还是有那么几张的裁剪效果不是很好,所以我们需要把效果不好的图片删了,并对图片进行进行分类,同时将图片进行复制到训练用的50张。


        删除不好的图片,最后保留的图片如下:

QQ截图20220508201514.jpg


    最后分类如下,这里一定要确保每个文件夹下的图片个数为50张,个数不够直接复制粘贴来凑数:

QQ截图20220508201741.jpg


    训练测试结果如下,全部都识别成功,基本都是99%以上的识别率:

QQ截图20220508212027.jpg


由于只有4个汉字,所以训练参数修改如下:

QQ截图20220508212110.jpg


这里要注意一下,我们保存的训练图片尺寸不是固定的,所以训练时,我们一定要统一尺寸,而且尺寸还不能太大,否则训练时间会很长,越小越好。


结束语

        到这里,训练图片就算是制作完成了,然后大家就可以直接按照第一讲的训练方法对汉字进行训练了。


问题与优化方案

       在当前的识别提取原理中,有时也会遇到如下这种角度不是很正的图片:

QQ截图20220508202940.jpg


        如果遇到这种情况,还是进行强制分割的话,分割结果其实并不是很正,而且最终也是很难识别到车牌的,这里提供一种解决思路:就是将裁剪后的车牌进行仿射变换,将车牌角度纠正,然后再进行强制分割,这样,就算角度不是很正的车牌,也能实现车牌识别了。


最后附上工程下载链接:

车牌识别源码下载页

【车牌识别1】OpenCv ANN神经网络训练原理
【车牌识别3】ANN神经网络车牌识别

友情链接: CSDN激萌の小宅 95知识库 自考题库 罗分明个人网络博客 精益编程leanboot

小宅博客  www.bilibili996.com All Rights Reserved. 备案号: 闽ICP备2024034575号

网站经营许可证  福建省福州市 Copyright©2021-2025 版权所有

小宅博客
首页 智能家居 地图定位
公告:小宅博客网可以开发票了,需要发票的,去群里找群主哈!!

文章作者:激萌の小宅

促销:¥0

价格:¥0

配送方式: 购买后立即生效(如购买异常,请联系站长)
付款之后一定要等待自动跳转结束,否则购买可能会失败
  • 0 天

    有效期

  • 0

    总销量

  • 0

    累计评价

如何制作ANN神经网络训练模板 - (车牌识别2)


本章节视频讲解如下:



        注意:由于本章节只是讲解如何制作ANN神经网络训练图片,并不是最终完整版的车牌识别代码,所以这里只提供C#版本的训练图片生成原理的原代码。完整的车牌识别工程将在下一节章节中提供。


        在上一节中,给大家演示了如何利用ANN神经网络进行数字和字母的训练以及识别。

        在本章节中,再给大家讲解一下如何制作神经网络训练用的模板图片,为了后面的车牌识别功能实现,这里以制作汉字训练模板为例子。在上一节的训练过程中,我们会发现,我们训练用的图片是下面这样的一堆黑白图片。


        而识别原理则是将我们需要识别的数字或字母提取并转换成和训练图片同样规格的图片,然后进行识别,其实这就有种类似于模板匹配,而且这种识别算法还需要人工将识别的字母或数字提取并转换成和训练样式规格一样的图片才能进行识别,在某些复杂环境下,其实是不怎么适用的。

        制作训练图片的原理其实也很简单,博主用手机在楼下拍了一些车牌的图片,图片如下(图片在工程源码里面):

QQ截图20220508194243.jpg

        在本章节中,我们的目的是为了提取车牌中的汉字,并用来训练。提取方法一般有两种:一种是直接使用PS,将汉字部分裁剪出来,然后按黑白图的方式进行保存;另一种方式是采用代码的方法将汉字提取出来,这样在进行车牌识别时,采用的识别程序和汉字提取程序可以是一样的了。

        在这里,为了保证车牌识别的准确性,博主采用程序的方式,将车牌的汉字部分提取出来,用于神经网络训练。提取大致流程如下:

        1、打开一张图片:

QQ截图20220508195002.jpg

        

        2、采用颜色识别算法,将车牌的颜色提取出来,提取结果如下:

QQ截图20220508195052.jpg


        3、利用轮廓查找,并对查找结果的轮廓面积和长宽比进行过滤,将最后符合车牌尺寸的轮廓提取出来,提取结果如下:

QQ截图20220508195133.jpg


        4、利用查找到的轮廓,将车牌裁剪出来(下面第一张图);接着对裁剪出来的车牌进行滤波和去四边干扰,去干扰的方式也很简单,就是在四边画上足够宽的线条,将干扰覆盖掉(下面第二张图);最后就是对车牌进行自动二值化,最后转换结果就如下面的第三张图一样。

        到这一步,是不是已经很接近训练图片的样子了。。。

        剩下的就是如何将二值图中的汉字“闽”给单独提取出来,并保存成jpg图片,并用于神经网络训练。

QQ截图20220508195526.jpg


        5、汉字的提取方式也很简单粗暴,直接按等宽度分割,将车牌分割成7个部分,第一个就是我们需要的汉字部分了。分割效果如下:

QQ截图20220508200535.jpg


        6、对分割区间进行单独的裁剪,由于我们这边只需要汉字部分,所以我们只裁剪第一个,裁剪结果如下:

QQ截图20220508200701.jpg


        7、重复以上操作,并将裁剪结果进行保存,最终我们会得到如下图片:

QQ截图20220508200834.jpg

        由于样本数量的有限,我们目前的车牌汉字只有四个:闽、川、渝、贵。

        从结果上来看,还是有那么几张的裁剪效果不是很好,所以我们需要把效果不好的图片删了,并对图片进行进行分类,同时将图片进行复制到训练用的50张。


        删除不好的图片,最后保留的图片如下:

QQ截图20220508201514.jpg


    最后分类如下,这里一定要确保每个文件夹下的图片个数为50张,个数不够直接复制粘贴来凑数:

QQ截图20220508201741.jpg


    训练测试结果如下,全部都识别成功,基本都是99%以上的识别率:

QQ截图20220508212027.jpg


由于只有4个汉字,所以训练参数修改如下:

QQ截图20220508212110.jpg


这里要注意一下,我们保存的训练图片尺寸不是固定的,所以训练时,我们一定要统一尺寸,而且尺寸还不能太大,否则训练时间会很长,越小越好。


结束语

        到这里,训练图片就算是制作完成了,然后大家就可以直接按照第一讲的训练方法对汉字进行训练了。


问题与优化方案

       在当前的识别提取原理中,有时也会遇到如下这种角度不是很正的图片:

QQ截图20220508202940.jpg


        如果遇到这种情况,还是进行强制分割的话,分割结果其实并不是很正,而且最终也是很难识别到车牌的,这里提供一种解决思路:就是将裁剪后的车牌进行仿射变换,将车牌角度纠正,然后再进行强制分割,这样,就算角度不是很正的车牌,也能实现车牌识别了。


最后附上工程下载链接:

车牌识别源码下载页