最近看到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)的更多相关文章

  1. 【深度学习系列】用PaddlePaddle进行车牌识别(一)

    小伙伴们,终于到了实战部分了!今天给大家带来的项目是用PaddlePaddle进行车牌识别.车牌识别其实属于比较常见的图像识别的项目了,目前也属于比较成熟的应用,大多数老牌厂家能做到准确率99%+.传 ...

  2. 车牌识别1:License Plate Detection and Recognition in Unconstrained Scenarios阅读笔记

    一.WHAT 论文下载地址:License Plate Detection and Recognition in Unconstrained Scenarios [pdf] github 的项目地址: ...

  3. EasyPR--一个开源的中文车牌识别系统

    我正在做一个开源的中文车牌识别系统,Git地址为:https://github.com/liuruoze/EasyPR. 我给它取的名字为EasyPR,也就是Easy to do Plate Reco ...

  4. 车牌识别LPR(一)-- 研究背景

    在年尾用了几天的时间将2014年的所有工作都总结了一遍,将之前的文档综合了下. 以下是LPR系统,车牌识别的一些总结资料. 第一篇:LPR研究背景 汽车的出现改变了以往出行徒步和以马代步的时代,极大地 ...

  5. 《Mastering Opencv ...读书笔记系列》车牌识别(II)

    http://blog.csdn.net/jinshengtao/article/details/17954427   <Mastering Opencv ...读书笔记系列>车牌识别(I ...

  6. 《Mastering Opencv ...读书笔记系列》车牌识别(I)

    http://blog.csdn.net/jinshengtao/article/details/17883075/  <Mastering Opencv ...读书笔记系列>车牌识别(I ...

  7. 基于opencv的车牌识别系统

    前言 学习了很长一段时间了,需要沉淀下,而最好的办法就是做一个东西来应用学习的东西,同时也是一个学习的过程. 概述     OpenCV的全称是:Open Source Computer Vision ...

  8. 车牌识别OCR—易泊时代智慧城市解决方案模块

    牌识别(License Plate Recognition,LPR) 是视频图像识别技术在智能交通领域中的一个模块.车牌识别运用OCR技术,将视频流或图片中的汽车牌照从复杂的应用场景中提取并识别出来, ...

  9. 【深度学习】用PaddlePaddle进行车牌识别(二)

    上节我们讲了第一部分,如何用生成简易的车牌,这节课中我们会用PaddlePaddle来识别生成的车牌. 数据读取 在上一节生成车牌时,我们可以分别生成训练数据和测试数据,方法如下(完整代码在这里): ...

随机推荐

  1. node函数buf.readDoubleBE详解

    offset {Number} 0 noAssert {Boolean} 默认:false 返回:{Number} 从该 Buffer 指定的带有特定尾数格式(readDoubleBE() 返回一个较 ...

  2. ★Java面向对象(一)——————————基本概念

    package boll; /* 用Java语言对现实生活中的事物进行描述. 通过类的形式来体现, 怎么描述呢? 对于事物的描述通常只有两个方面,一个是属性,一个是行为. 只要明确该事物的行为和属性并 ...

  3. asp.net ajax 简单案例

    第一步先引用 scriptManager <asp:UpdatePanel ID="UpdatePanelGuanZhu" runat="server"& ...

  4. Haar、pico、npd、dlib等多种人脸检测特征及算法结果比较

    原文:opencv.pico.npd.dlib.face++等多种人脸检测算法结果比较 NDP检测结果: 结果分析: Pico(Pixel Intensity Comparison-based Obj ...

  5. 一键安装本地yum仓库脚本

    #!/bin/bash#By:zhaocheng#Date:2019-01-18#Version v1 [ -d /media/cdrom ] || mkdir /media/cdrom[ -d /m ...

  6. 【转载】java文件路径问题及getResource和getClassLoader().getResource的区别

    版权声明:本文为博主原创文章,未经博主允许不得转载. https://blog.csdn.net/u012572955/article/details/52880520我们经常在java的io操作中读 ...

  7. Spring Cloud Alibaba、Spring Boot、Spring Cloud对应版本关系

    Spring Boot Spring Cloud Spring Cloud Alibaba 2.1.x Greenwich 0.9.x 2.0.x Finchley 0.2.x 1.5.x Edgwa ...

  8. lucene多条件查询”搜索—BooleanQuery

    /** * “多条件查询”搜索—BooleanQuery * BooleanQuery也是实际开发过程中经常使用的一种Query. * 它其实是一个组合的Query,在使用时可以把各种Query对象添 ...

  9. 什么是Capability

    desired capability的功能是配置Appium会话.他们告诉Appium服务器您想要自动化的平台和应用程序. Desired Capabilities是一组设置的键值对的集合,其中键对应 ...

  10. 【剑指Offer】60、把二叉树打印成多行

      题目描述:   从上到下按层打印二叉树,同一层结点从左至右输出.每一层输出一行.   解题思路:   本题可类比第22题:从上往下打印二叉树,这两道题实际上是一回事,只不过这里我们多了一个分行打印 ...