最近看到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%

测试:

模糊测试:

从测试结果看明显好于实验二。

简单记录,希望对此项目感兴趣的同学有帮助。

最新文章

  1. [MySQL+PHP] 触发器及存储过程等MySQL功能在PHP中实现的坑
  2. 实验一 认识DOS
  3. iis6|iis7|配置URLRewriter|64位操作系统下|.net2.0|.net4.0|配置URLRewriter|Web.config配置详情
  4. 2017/1/7 学习笔记 jar包,maven
  5. Fragment开发计划
  6. Bugtags 与其它产品的区别
  7. drupal 2016-11-3
  8. url中的scheme
  9. 首页视频播放jquery
  10. 海康、大华IpCamera RTSP地址和格式
  11. 错误代码: 1005 Can't create table 'hibernate.bill' (errno: 150)
  12. Laravel_1 安装
  13. codeforces C. Cd and pwd commands 执行命令行
  14. Hibernate3.0中的session.find()问题
  15. Css清除浮动最优方式之一
  16. 双端链表--Java实现
  17. node之fs模块
  18. Web前端2019面试总结
  19. 【Java】「深入理解Java虚拟机」学习笔记(5)- 类加载
  20. Charles手机抓包常见问题(各种常见坑)

热门文章

  1. c++ 虚函数,纯虚函数的本质区别
  2. tp实现多语言支持测试
  3. OpenCV:OpenCV目标检测Hog+SWindow源代码分析
  4. Android进度条控件ProgressBar使用
  5. In Swift, typedef is called typealias:
  6. Jquery隐藏和显示Div的控制
  7. Tomcat Eclipse Debug出现异常
  8. python tips:迭代器与可迭代对象
  9. Python【每日一问】35
  10. eas之f7