车牌识别(end-to-end-for-chinese-plate-recognition)项目搭建基于Mxnet(Python 3.5)
最近看到geihub上有个车牌识别的项目,感觉很有意思,从上面fork了一下弄到本地自己跑了下。在安装过程中遇到了一些问题,记录如下。
项目github连接:https://github.com/szad670401/end-to-end-for-chinese-plate-recognition ,本机环境Win8 64bit
该项目是基于Python做的,所以首先安装python,本着用最新版本的原则,选择了Python3.5.2(开始用的32位版本,中间不能加载libmxnet.dll,后改为用64bit)
1.Python下载连接:https://www.python.org/downloads/release/python-352/ 依据操作系统进行选择,我选择的是如下版本
2.安装Python,并配置好环境变量
3.安装vs2015,由于mxnet中使用了vs2015的库,所以需要提前安装vs2015,不然后报"error: Setup script exited with error: Unable to find vcvarsall.bat” 下载地址:http://103.254.64.34:9999/download.microsoft.com/download/5/f/7/5f7acaeb-8363-451f-9425-68a90f98b238/visualcppbuildtools_full.exe。
4.下载Mxnet ,地址:https://github.com/dmlc/mxnet/releases 我下载的是20160531_win10_x64_cpu.7z
5.安装Mxnet ,解压上面的压缩包后进入mxnet目录,执行setupenv.cmd 然后进入该目录下的python目录,执行python setup.py install 命令进行安装
6.下载opencv,下载地址:http://www.lfd.uci.edu/~gohlke/pythonlibs/#opencv 我选择的是:opencv_python-3.1.0+contrib_opencl-cp35-cp35m-win_amd64.whl
7.安装opencv ,在python安装目录执行 pip install opencv_python-3.1.0+contrib_opencl-cp35-cp35m-win_amd64.whl
8.下载Pillow,由于官方目前PIL没有3.5版本,故采用非官方的Pillow替代,下载地址:http://www.lfd.uci.edu/~gohlke/pythonlibs/#pillow 版本:Pillow-3.3.1-cp34-cp34m-win_amd64.whl
9.安装Pillow,在python安装目录执行 pip install Pillow-3.3.1-cp34-cp34m-win_amd64.whl
到此安装过程完毕,用IDEA打开执行,但是报了如下错误,并附上解决办法;
错误1.
error: (-215) ssize.area() > 0 in function cv::resize 传入文件为空 错误原因:genplate.py的generate函数中
L163 len(text) == 9改为len(text) == 7
错误2
L164 text.decode(encoding="utf-8")改为text.encode('utf-8').decode(encoding="utf-8") (python3.5特性)
错误3.
找不到xrange
原因:使用3.5内置的range替代2.7的xrange 修改方法:xrange--range
range内除法操作如range(self.count / self.batch_size)需改为 range((int)(self.count / self.batch_size))
不然有 “'float' object cannot be interpreted as an integer”错误
修改后的代码github连接:https://github.com/ibyte2011/end-to-end-for-chinese-plate-recognition
安装好后开始训练;一个2.5Ghz的 CPU
实验一:训练了4个小时,训练数据3w准确率约为 60%

开始测试:

由于训练时间过短,检测全部错误。等花一天训练后再试。
实验二:
训练数据12.5W,时间17hours,准确率70%

测试:

从测试结果看这次好于实验一,有一个字母识别错误,不过在多次测试过程中,清楚字体如下图情况下识别完全正确:

在字体模糊或者变形严重情况下识别会出现错误比较大,7个只对了1个。

故加大实验数据进行实验三。
实验三:调整了准确率计算函数参数,将train.py L135行
pred.shape[0] / 4 改为 pred.shape[0] / 7 训练12.5 hours 准确率为94%

测试:

模糊测试:


从测试结果看明显好于实验二。
简单记录,希望对此项目感兴趣的同学有帮助。
车牌识别(end-to-end-for-chinese-plate-recognition)项目搭建基于Mxnet(Python 3.5)的更多相关文章
- 【深度学习系列】用PaddlePaddle进行车牌识别(一)
小伙伴们,终于到了实战部分了!今天给大家带来的项目是用PaddlePaddle进行车牌识别.车牌识别其实属于比较常见的图像识别的项目了,目前也属于比较成熟的应用,大多数老牌厂家能做到准确率99%+.传 ...
- 车牌识别1:License Plate Detection and Recognition in Unconstrained Scenarios阅读笔记
一.WHAT 论文下载地址:License Plate Detection and Recognition in Unconstrained Scenarios [pdf] github 的项目地址: ...
- EasyPR--一个开源的中文车牌识别系统
我正在做一个开源的中文车牌识别系统,Git地址为:https://github.com/liuruoze/EasyPR. 我给它取的名字为EasyPR,也就是Easy to do Plate Reco ...
- 车牌识别LPR(一)-- 研究背景
在年尾用了几天的时间将2014年的所有工作都总结了一遍,将之前的文档综合了下. 以下是LPR系统,车牌识别的一些总结资料. 第一篇:LPR研究背景 汽车的出现改变了以往出行徒步和以马代步的时代,极大地 ...
- 《Mastering Opencv ...读书笔记系列》车牌识别(II)
http://blog.csdn.net/jinshengtao/article/details/17954427 <Mastering Opencv ...读书笔记系列>车牌识别(I ...
- 《Mastering Opencv ...读书笔记系列》车牌识别(I)
http://blog.csdn.net/jinshengtao/article/details/17883075/ <Mastering Opencv ...读书笔记系列>车牌识别(I ...
- 基于opencv的车牌识别系统
前言 学习了很长一段时间了,需要沉淀下,而最好的办法就是做一个东西来应用学习的东西,同时也是一个学习的过程. 概述 OpenCV的全称是:Open Source Computer Vision ...
- 车牌识别OCR—易泊时代智慧城市解决方案模块
牌识别(License Plate Recognition,LPR) 是视频图像识别技术在智能交通领域中的一个模块.车牌识别运用OCR技术,将视频流或图片中的汽车牌照从复杂的应用场景中提取并识别出来, ...
- 【深度学习】用PaddlePaddle进行车牌识别(二)
上节我们讲了第一部分,如何用生成简易的车牌,这节课中我们会用PaddlePaddle来识别生成的车牌. 数据读取 在上一节生成车牌时,我们可以分别生成训练数据和测试数据,方法如下(完整代码在这里): ...
随机推荐
- angular js 球星
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF ...
- 省市区县的sql语句——省
/*SQLyog v10.2 MySQL - 5.5.48 : Database - 省市县****************************************************** ...
- SQL Server 检测到基于一致性的逻辑 I/O 错误 pageid 不正确(应为 1:1772,但实际为 0:0)。在文件 'D:\Program Files\Microsoft SQL Ser
SQL Server 检测到基于一致性的逻辑 I/O 错误 pageid 不正确(应为 1:1772,但实际为 0:0).在文件 'D:\Program Files\Microsoft SQL Ser ...
- std::string格式化输入输出
在C语言中: C函数有sprintf函数, 比较方便, 但是需要知道所需要的内存空间是多少. 在C++的框架MFC中: 在MFC中CString 有Format函数来格式化字符串. 很方便. 难过的是 ...
- ANN:DNN结构演进History—RNN
前言: CNN在图像处理领域的极大成功源于CNN的二维递进映射结构,通过训练多层卷积核来进行特征提取函数训练,在二维图像的稀疏表达和语义关联分析方面有天生的结构优势.而涉及时序问题的逻辑序列分析-边长 ...
- 【sqli-labs】 less3 GET - Error based - Single quotes with twist string (基于错误的GET单引号变形字符型注入)
实质上和less1没有多大区别,看懂了一样走流程 提交参数 加单引号 http://localhost/sqli/Less-3/?id=1' 观察报错,看near 和 at 的引号之间内容 '1'') ...
- c# 验证码实现代码
using System; using System.Collections.Generic; using System.Drawing; using System.Drawing.Drawing2D ...
- cocos ios Label组件问题
软件:cocos creator v1.9.0 开发的过程中,一直在web上预览,Label组件显示一直没问题.在打包到ios上时,出现问题了: Label组件: 当我们缩小字体,发现没问题了,当我们 ...
- day001 Python 计算机基础(2019年5月16日)
      作为一名程序员或者即将踏入IT行业的准程序员,学习任何一门编程语言,都需要有基本的计算机基础 ...
- struts 2 action result类型
最近在管理公司老项目的时候发现如下代码: <bean name="detailPlayer" class="PlayAction" method=&quo ...