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

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

  • 编程语言 >

  • 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中文官网
三菱 欧姆龙 西门子 施耐德 松下 台达
IOTSharp IOTGateway ABP FRAMEWORK Docker
亚克力音响 编程仙途:智驭万法
面试题与技巧 Python入门技能树 微软C#教程
首页 编程之美 工具下载 全国就业 流量地图 文心一言
ANN车牌识别
车牌识别源码下载页 【车牌识别1】OpenCv ANN神经网络训练原理 【车牌识别2】如何制作ANN神经网络训练模板 【车牌识别3】ANN神经网络车牌识别
车牌识别源码下载页
【车牌识别2】如何制作ANN神经网络训练模板
激萌の小宅 小宅博客网 ANN车牌识别

文章作者:激萌の小宅

促销:¥0

价格:¥0

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

    有效期

  • 0

    总销量

  • 1

    累计评价

OpenCv ANN神经网络训练原理 - (车牌识别1)


本章节视频讲解如下:



人工神经网络的演示(识别数字):


ANN卷积神经网络可视化原理:


       本章节给大家讲讲如何利用OpenCv进行神经网络的训练,考虑到训练时间会很长,我这里训练样本不会弄太多,训练的内容为英文字符、数字、以及部分简易的汉字,该训练为后面做OpenCv的车牌识别做准备。

       同样的,我这里会提供C#、C++、Python三个版本的训练方法,以及三种版本的训练时长对比、识别成功率对比的参考数据。方便大家对C#、C++、Python在神经网络的处理性能方面有个初步的认识。

       我们的调试平台为:VS2019 windows10 64位,各个语言的OpenCv版本信息如下:

语言
OpenCv版本
C#OpenCvSharp4 (4.5.3.20210817)
C++OpenCv-3.4.0、OpenCv-4.5.5
Pythonopencv-python (3.4.2.16)、opencv-python (4.5.5)

        在开始训练之前,我们首先需要准备一些训练用的图片,图片如下,目前训练的图片中没有汉字,所以我们目前只做数字和英文的识别,后面进行车牌识别时,我会以汉字为例子,教大家如何制作训练图片。

       训练库下载:车牌识别源码下载页

大家可以看到,在上图中,英文字符只有24个,少了“O”和“I”两个字母,因为这两个字母和数字“0”、“1”非常像,所以需要剔除,车牌里面好像也没有这两个字母。

       考虑到训练的时间特别长,我这里每组图片只制作了50张训练样本,理论上,训练样本数越多,识别的成功率就越高。


       不同电脑,训练时间可能会有些差异,估计也不会差太多,下面是我的电脑配置:


C#版本,训练与测试代码如下:

       由于OpenCvSharp3-AnyCPU找不到关于ANN_MLP的应用接口,所有改成OpenCvSharp4了。

       使用OpenCvSharp4需要安装两个库:OpenCvSharp4和OpenCvSharp4.runtime.win

       C#版本的训练结果如下:

从测试数据上看,C#版本的训练耗时时间为:

开始训练时间:2021/12/28 20:38:29

训练完成时间:2021/12/28 20:41:41

总耗时大约3分钟,这速度,比C++的42分钟,真的不是只快了一点点,不知道是不是C#的OpenCvSharp4在算法上做了优化。

        对训练结果进行识别测试,测试结果如下,有7张图片识别错误,成功率为:7/(34*50)*100%= 99.6%,和C++版本的基本一致。

        从测试结果上看,有7张图片未识别成功,7张图片如下:


C#版本完整代码如下:

车牌识别源码下载页


C++版本, 训练与测试


       C++版本的代码目前只测试过在OpenCv-3.4.0和OpenCv-4.5.5两个版本中运行过,识别成功率基本没太大差异。

       在C++版本中,我们首先需要先调用ANN_Drill函数来训练出我们的xml文件,当然了,这个训练只需要训练一次就够了,后面做车牌识别时,只需要调用xml文件即可,识别速度还是相当的快的。

训练过程如下。

训练过程中中间会卡在“./Image/Z/9_0.9727...”位置,此时就是漫长的等待了....

训练耗时如下。

开始时间:2021-12-07 20:59:45

完成时间:2021-12-07 21:43:24

总耗时大概42分钟。


训练的EnglishAndNumber.xml文件张这个样子


最后调用TestXml函数的测试结果如下:


从结果中可以看到,还是有一些图片识别失败了,一共有7张,如下:

从失败的图片中可以看出,这个训练图片用的好像也不是特别好,正常训练图片用的好,基本上能达到100%的识别成功率。


完整代码如下:

车牌识别源码下载页


Python版本, 训练与测试代码如下:

       Python版本相对前面C#和C++版本,数字+英文字母的识别成功率太低了,只有26%,如果只是单纯的识别数字,成功率能达到83%,但是如果采用C++的xml文件进行识别,成功率基本和C#的一致,这种情况,如果不是训练方法问题,那估计就是opencv的版本问题了,之前在调试时也出现过这种情况,某些版本的opencv神经网络识别成功率就非常低,如果是训练方法有问题,没理由数字识别能达到83%,加上英文字母后,就只剩下26%了。所以,我还是怀疑是opencv的版本问题,改天换个高版本的再试试。


Opencv3.4.2的训练过程如下:


Opencv4.5.5的训练过程如下:

QQ截图20220203135013.jpg


从结果上看,Python的训练时间也挺快的,Opencv3.4.2版本大概也只用了17秒的时候,Opencv4.5.5版本用了159秒左右,两个版本都比C++和C#都快了好几倍了,但是识别的成功率是真的不行。识别错误的图片如下,总共也才34*50=1700张图片,就有Opencv3.4.2版本有1256张识别失败,而Opencv4.5.5版本有1219张识别失败,Opencv4也就比Opencv3好了那么一点点。。。坑!


Opencv3.4.2和Opencv4.5.5通用完整代码如下

车牌识别源码下载页

车牌识别源码下载页
【车牌识别2】如何制作ANN神经网络训练模板

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

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

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

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

文章作者:激萌の小宅

促销:¥0

价格:¥0

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

    有效期

  • 0

    总销量

  • 1

    累计评价

OpenCv ANN神经网络训练原理 - (车牌识别1)


本章节视频讲解如下:



人工神经网络的演示(识别数字):


ANN卷积神经网络可视化原理:


       本章节给大家讲讲如何利用OpenCv进行神经网络的训练,考虑到训练时间会很长,我这里训练样本不会弄太多,训练的内容为英文字符、数字、以及部分简易的汉字,该训练为后面做OpenCv的车牌识别做准备。

       同样的,我这里会提供C#、C++、Python三个版本的训练方法,以及三种版本的训练时长对比、识别成功率对比的参考数据。方便大家对C#、C++、Python在神经网络的处理性能方面有个初步的认识。

       我们的调试平台为:VS2019 windows10 64位,各个语言的OpenCv版本信息如下:

语言
OpenCv版本
C#OpenCvSharp4 (4.5.3.20210817)
C++OpenCv-3.4.0、OpenCv-4.5.5
Pythonopencv-python (3.4.2.16)、opencv-python (4.5.5)

        在开始训练之前,我们首先需要准备一些训练用的图片,图片如下,目前训练的图片中没有汉字,所以我们目前只做数字和英文的识别,后面进行车牌识别时,我会以汉字为例子,教大家如何制作训练图片。

       训练库下载:车牌识别源码下载页

大家可以看到,在上图中,英文字符只有24个,少了“O”和“I”两个字母,因为这两个字母和数字“0”、“1”非常像,所以需要剔除,车牌里面好像也没有这两个字母。

       考虑到训练的时间特别长,我这里每组图片只制作了50张训练样本,理论上,训练样本数越多,识别的成功率就越高。


       不同电脑,训练时间可能会有些差异,估计也不会差太多,下面是我的电脑配置:


C#版本,训练与测试代码如下:

       由于OpenCvSharp3-AnyCPU找不到关于ANN_MLP的应用接口,所有改成OpenCvSharp4了。

       使用OpenCvSharp4需要安装两个库:OpenCvSharp4和OpenCvSharp4.runtime.win

       C#版本的训练结果如下:

从测试数据上看,C#版本的训练耗时时间为:

开始训练时间:2021/12/28 20:38:29

训练完成时间:2021/12/28 20:41:41

总耗时大约3分钟,这速度,比C++的42分钟,真的不是只快了一点点,不知道是不是C#的OpenCvSharp4在算法上做了优化。

        对训练结果进行识别测试,测试结果如下,有7张图片识别错误,成功率为:7/(34*50)*100%= 99.6%,和C++版本的基本一致。

        从测试结果上看,有7张图片未识别成功,7张图片如下:


C#版本完整代码如下:

车牌识别源码下载页


C++版本, 训练与测试


       C++版本的代码目前只测试过在OpenCv-3.4.0和OpenCv-4.5.5两个版本中运行过,识别成功率基本没太大差异。

       在C++版本中,我们首先需要先调用ANN_Drill函数来训练出我们的xml文件,当然了,这个训练只需要训练一次就够了,后面做车牌识别时,只需要调用xml文件即可,识别速度还是相当的快的。

训练过程如下。

训练过程中中间会卡在“./Image/Z/9_0.9727...”位置,此时就是漫长的等待了....

训练耗时如下。

开始时间:2021-12-07 20:59:45

完成时间:2021-12-07 21:43:24

总耗时大概42分钟。


训练的EnglishAndNumber.xml文件张这个样子


最后调用TestXml函数的测试结果如下:


从结果中可以看到,还是有一些图片识别失败了,一共有7张,如下:

从失败的图片中可以看出,这个训练图片用的好像也不是特别好,正常训练图片用的好,基本上能达到100%的识别成功率。


完整代码如下:

车牌识别源码下载页


Python版本, 训练与测试代码如下:

       Python版本相对前面C#和C++版本,数字+英文字母的识别成功率太低了,只有26%,如果只是单纯的识别数字,成功率能达到83%,但是如果采用C++的xml文件进行识别,成功率基本和C#的一致,这种情况,如果不是训练方法问题,那估计就是opencv的版本问题了,之前在调试时也出现过这种情况,某些版本的opencv神经网络识别成功率就非常低,如果是训练方法有问题,没理由数字识别能达到83%,加上英文字母后,就只剩下26%了。所以,我还是怀疑是opencv的版本问题,改天换个高版本的再试试。


Opencv3.4.2的训练过程如下:


Opencv4.5.5的训练过程如下:

QQ截图20220203135013.jpg


从结果上看,Python的训练时间也挺快的,Opencv3.4.2版本大概也只用了17秒的时候,Opencv4.5.5版本用了159秒左右,两个版本都比C++和C#都快了好几倍了,但是识别的成功率是真的不行。识别错误的图片如下,总共也才34*50=1700张图片,就有Opencv3.4.2版本有1256张识别失败,而Opencv4.5.5版本有1219张识别失败,Opencv4也就比Opencv3好了那么一点点。。。坑!


Opencv3.4.2和Opencv4.5.5通用完整代码如下

车牌识别源码下载页