最近参加一个比赛,需要车牌识别,目的是测试一个文件夹里的所有文件,将结果和测试文件名写入到excel文件。
我使用了HyperLPR开源车牌识别框架 github地址

HyperLPR利用深度学习实现中文车牌识别,设计流程如下:

step1. 使用opencv 的 HAAR Cascade 检测车牌大致位置
step2. Extend 检测到的大致位置的矩形区域
step3. 使用类似于MSER的方式的 多级二值化 + RANSAC 拟合车牌的上下边界
step4. 使用CNN Regression回归车牌左右边界
step5. 使用基于纹理场的算法进行车牌校正倾斜
step6. 使用CNN滑动窗切割字符
step7. 使用CNN识别字符

提供了win系统下python,C++,PHP代码,Linux系统下C++代码,还有Android系统下代码,准确度对于一般的使用够用了,其中python3的程序可以识别多种中文车牌包括白牌,新能源车牌,使馆车牌,教练车牌,武警车牌等。可惜我python刚学,对于各种库的使用还不熟悉,所以我用的是Windows系统下的C++代码,依赖OpenCV3.3

VS2015

我电脑上是visual studio2015社区版,可以到官网免费下载,选择Visual Studio Community 2015:地址
安装要好一会儿

OpenCV3.3
然后下载OpenCV3.3,地址:https://sourceforge.net/projects/opencvlibrary/

配置

接下来配置,可以参考这篇文章:https://blog.csdn.net/llb_bll/article/details/77071001?locationNum=10&fps=1

运行HyperLPR

将下载好的HyperLPR-master.zip解压,打开Prj-Win目录下的Prj-Win.sln工程。
注意,一定要配置好环境,VS2015中打开 视图->其他窗口->属性管理器,双击Debug|×64,在包含目录下,加入所需要的头文件目录,我的是E:\HyperLPR-master\Prj-Win\lpr\include

还要注意:!这一切的前提是先把OpenCV配置好。

然后运行test_pipeline.cpp,结果就可以出来了。

修改
要批量处理一个文件夹下的所有图片,我要先生成此文件下所有图片名称的txt文件:
打开CMD窗口,cd转到图片文件路径下,然后输入dir\b>txt文件名.txt,回车即可

接下来我对test_pipeline.cpp做了一些修改,while循环通过判断txt文件中每行是否读完,来执行每个图片的操作,for循环用于找出最大置信度所对应的识别结果,最后将结果写入到.csv文件中,csv文件可以用excel打开,主要代码如下:

 string ImgName;string ImgName1;//测试集文件下的txt文件路径ifstream fin("img_test\\功能评测图像库\\省市简称变化子库\\“川”牌\\云.txt");//打开要输出的.csv文件ofstream oFile;oFile.open("川.csv", ios::out | ios::trunc);  //先写入表格标题oFile << "车牌号" << "," << "测试文件名" << endl;//判断是否读完txtwhile (getline(fin, ImgName)) {cout << "Handle" << ImgName << endl;ImgName1 = "img_test\\功能评测图像库\\省市简称变化子库\\“川”牌" + ImgName;//image = imread(ImgName); cv::Mat image = cv::imread(ImgName1);if (!image.empty()) {//使用端到端模型模型进行识别,识别结果将会保存在res里面std::vector<pr::PlateInfo> res = prc.RunPiplineAsImage(image);float maxconf = 0.5; //初始最大置信度string finaln;for (auto st : res) {//判断最大置信度下的识别结果     if (st.confidence > maxconf) {//std::cout << st.getPlateName() << " " << st.confidence << std::endl;maxconf = st.confidence;finaln = st.getPlateName();}}//将结果写入到.csv文件中oFile << finaln << "," << ImgName1 << endl;cout << "Done" << endl;}}oFile.close();cvWaitKey(0);

有了以上的改进后,就可以顺利的批量识别文件夹下的所有车牌图片,并将结果写入excel文件了。

中文车牌识别开源项目C++版使用笔记相关推荐

  1. HyperLPR 高性能开源中文车牌识别框架

    概要 HyperLRP是一个开源的.基于深度学习高性能中文车牌识别库,由北京智云视图科技有限公司开发,支持PHP.C/C++.Python语言,Windows/Mac/Linux/Android/IO ...

  2. 基于Opencv的开源的中文车牌识别系统

    真正的大师,永远都怀着一颗学徒的心! 一.项目简介 基于Opencv的开源的中文车牌识别系统. 二.实现功能 车牌定位 车牌判断 车牌监测 字符分割 字符鉴别 字符识别 车牌识别 车牌抽象 训练车牌识 ...

  3. C++中文车牌识别检测系统源码

    下载地址:C++中文车牌识别检测系统源码 其目标是成为一个简单.高效.准确的非限制场景(unconstrained situation)下的车牌识别库. 相比于其他的车牌识别系统,EasyPR有如下特 ...

  4. NVIDIA中文车牌识别系列-1” 在Jetson上用DeepStream识别中文车牌

    前言 这是NVIDIA在2021年初公布的一个开源项目,用NVIDA Jetson设备上的DeepStream视频分析套件实现"车牌识别"的功能,这是个实用性非常高的应用,能应用在 ...

  5. EasyPR中文车牌识别系统开发

    EasyPR中文车牌识别系统开发,我主要介绍如何使用开源的EasyPR中文车牌识别系统,我会介绍训练机器学习 SVM 支持向量机和 ANN 人工神经网络模型在车牌识别的应用,并公开训练数据. 目录: ...

  6. Python3 HyperLPR 中文车牌识别

    HyperLPR 高性能开源中文车牌识别框架 github地址: https://github.com/szad670401/HyperLPR 在使用的过程中真的踩了好多坑,GitHub中项目文件很多 ...

  7. HyperLPR3车牌识别-五分钟搞定: 中文车牌识别光速部署与使用

    简介 HyperLPR在2023年初已经更新到了v3的版本,该版本与先前的版本一样都是用于识别中文车牌的开源图像算法项目,最新的版本的源码可从github中提取:https://github.com/ ...

  8. 基于深度学习的中文车牌识别与管理系统(含UI界面,Python代码)

    摘要:本文详细介绍基于深度学习的中文车牌识别与管理系统,在介绍算法原理的同时,给出Python的实现代码以及PyQt的UI界面.在界面中既可以选择需要识别的车牌视频.图片文件.批量图片进行检测识别,也 ...

  9. matlab车牌识别代码项目

    由于车牌识别涉及到计算机视觉和图像处理等领域,因此需要涉及到一些专业知识和技能.以下是一些基本步骤和参考代码: 步骤: 读取图像文件并进行预处理(如调整图像大小.灰度化.二值化等). 提取车牌区域,即 ...

  10. 【车牌识别和动态称重系统】(二)基于树莓派+HyperLPR的中文车牌识别

    引言 HyperLRP是一个开源的.基于深度学习高性能中文车牌识别库,由北京智云视图科技有限公司开发,支持PHP.C/C++.Python语言,Windows/Mac/Linux/Android/IO ...

最新文章

  1. 解决Mask RCNN训练时GPU内存溢出问题
  2. js目标时间与当前时间差转换年月日天数
  3. inotifywait实现目录监控
  4. undefined reference to `jpeg_std_error(jpeg_error_mgr*)
  5. RESTful测试工具RESTClient
  6. hystrix 页面_SpringCloud微服务架构篇5:微服务熔断机制-Hystrix
  7. 信贷风控必知必会:逾期相关的知识点总结
  8. Java 对用户密码加密(Jeecg 登录密码加密方式)MD5andDES方式
  9. Bailian2750 鸡兔同笼【入门】
  10. c语言time函数详解,C语言Time函数
  11. Hexo + GitHub搭建个人博客 --- Standard Edition
  12. Python自学的好方法
  13. java雪崩_了解java架构之微服务架构—雪崩效应
  14. 轮回 第二章 冷傲天
  15. 干货 | SQL 外部联接 Outer Join
  16. java中的全限定类名和非限定类名是什么意思?
  17. python的非法变量名_Statsmodels(Patsy)非法变量名/“Series”对象不可调用E
  18. 基于Mysql 的SQL应用---2021(ZSD版)
  19. 使用线性光耦合器的模拟隔离
  20. 详谈为什么要写测试用例

热门文章

  1. 【面向对象】UML类图、用例图、顺序图、活动图、状态图、通信图、构件图、部署图
  2. Hadoop文章收集汇总 - 如禁止转载,请及时联系本人 收集学习互联网各位前辈分享的文章
  3. Ubuntu系统文件被上锁了怎么编辑:Ubuntu系统获得读写权限
  4. win10安装打印机驱动的方法,电脑打印机驱动安装教程
  5. 计算机初始《wps表格》教案,wps教案
  6. 利用EnableQ服务政府民意调查
  7. netmeeting的使用(详解)
  8. 计算机逻辑门电路图,三态门逻辑电路图大全(三款三态门逻辑电路图)
  9. pandas入门(3)
  10. hsqldb mysql_HSQLDB的研究与性能测试(与Mysql对比)