TensorFlow基于MNIST数据集实现车牌识别(初步演示版)


Posted in Python onAugust 05, 2019

在前几天写的一篇博文《如何从TensorFlow的mnist数据集导出手写体数字图片》中,我们介绍了如何通过TensorFlow将mnist手写体数字集导出到本地保存为bmp文件。

车牌识别在当今社会中广泛存在,其应用场景包括各类交通监控和停车场出入口收费系统,在自动驾驶中也得到一定应用,其原理也不难理解,故很适合作为图像处理+机器学习的入门案例。

现在我们不妨酝酿一个大胆的想法:在TensorFlow中通过卷积神经网络+mnist数字集实现车牌识别。

实际上车牌字符除了数字0-9,还有字母A-Z,以及各省份的简称。只包含数字0-9的mnist是不足以识别车牌的。故本文所做实验仅出于演示目的。

由于车牌数字是正体,而mnist是手写体,为提高识别率,需要从mnist图片集中挑选出形状比较规则工整的图片作为训练图片,否则识别率不高。作为参考,下图是我挑选出来的一部分较工整数字:

TensorFlow基于MNIST数据集实现车牌识别(初步演示版)

(如果你需要我挑选出来的图片,可以评论或私信我留下邮箱)

出于演示目的,我们从网上找到下面这张图片:

TensorFlow基于MNIST数据集实现车牌识别(初步演示版)

现在我们假设该车牌号为闽0-16720(实际上是闽O-1672Q),暂不识别省份简称,只识别0-16720。

上图经过opencv定位分割处理后,得到以下几张车牌字符。

TensorFlow基于MNIST数据集实现车牌识别(初步演示版)

现在我们通过如下代码,将这几张字符图片输入到上一篇博文《如何用TensorFlow训练和识别/分类自定义图片》中构建的网络:

license_num = []
 for n in range(2,8):
  path = "result/%s.bmp" % (n)
  img = Image.open(path)
  width = img.size[0]
  height = img.size[1]
 
  img_data = [[0]*784 for i in range(1)]
  for h in range(0, height):
   for w in range(0, width):
    if img.getpixel((w, h)) < 190:
     img_data[0][w+h*width] = 0
    else:
     img_data[0][w+h*width] = 1
 
  # 获取softmax结果前三位的index和概率值
  soft_max = tf.nn.softmax(tf.matmul(h_fc1_drop, W_fc2) + b_fc2)
  result = sess.run(soft_max, feed_dict = {x: np.array(img_data), keep_prob: 1.0})
  max1 = 0
  max2 = 0
  max3 = 0
  max1_index = 0
  max2_index = 0
  max3_index = 0
  for j in range(10):
   if result[0][j] > max1:
    max1 = result[0][j]
    max1_index = j
    continue
   if (result[0][j]>max2) and (result[0][j]<=max1):
    max2 = result[0][j]
    max2_index = j
    continue
   if (result[0][j]>max3) and (result[0][j]<=max2):
    max3 = result[0][j]
    max3_index = j
    continue
  license_num.append(max1_index)
 
  print ("softmax结果前三位概率:%s: %.2f%% %s: %.2f%% %s: %.2f%%"
    % (max1_index,max1*100, max2_index,max2*100, max3_index,max3*100))
 print ("车牌号为: %s" % license_num)

然后运行程序,结果如下:

TensorFlow基于MNIST数据集实现车牌识别(初步演示版)

可以看出,分类结果为016720,是正确的,而softmax计算结果可信度也是可以接受的。

后续将给出包含省份简称和字母A-Z的完整例子。

最后附上本文程序的完整代码(运行之前需要确保你的数据集和待识别图片的位深度都是8,也就是一个像素的颜色值用一个字节(8bits)表示,不然会出错):

PS:支持省份简称和字母的车牌识别程序详见《TensorFlow车牌识别完整版(含车牌数据集)》

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Python 相关文章推荐
在 Python 应用中使用 MongoDB的方法
Jan 05 Python
用pickle存储Python的原生对象方法
Apr 28 Python
python leetcode 字符串相乘实例详解
Sep 03 Python
浅谈python脚本设置运行参数的方法
Dec 03 Python
在pycharm 中添加运行参数的操作方法
Jan 19 Python
情人节快乐! python绘制漂亮玫瑰
Aug 18 Python
python async with和async for的使用
Jun 20 Python
tensorflow estimator 使用hook实现finetune方式
Jan 21 Python
python 装饰器功能与用法案例详解
Mar 06 Python
Jupyter notebook如何修改平台字体
May 13 Python
Python字符串对齐、删除字符串不需要的内容以及格式化打印字符
Jan 23 Python
matplotlib部件之套索Lasso的使用
Feb 24 Python
Django应用程序入口WSGIHandler源码解析
Aug 05 #Python
详解如何用TensorFlow训练和识别/分类自定义图片
Aug 05 #Python
详解如何从TensorFlow的mnist数据集导出手写体数字图片
Aug 05 #Python
Python获取时间范围内日期列表和周列表的函数
Aug 05 #Python
Django ORM 查询管理器源码解析
Aug 05 #Python
python实现车牌识别的示例代码
Aug 05 #Python
使用python实现滑动验证码功能
Aug 05 #Python
You might like
我的论坛源代码(三)
2006/10/09 PHP
php 什么是PEAR?
2009/03/19 PHP
解析phpstorm + xdebug 远程断点调试
2013/06/20 PHP
php中的静态变量的基本用法
2014/03/20 PHP
PHP实现支付宝即时到账功能
2016/12/21 PHP
PHP实现求两个字符串最长公共子串的方法示例
2017/11/17 PHP
Js判断CSS文件加载完毕的具体实现
2014/01/17 Javascript
js 针对html DOM元素操作等经验累积
2014/03/11 Javascript
用jquery修复在iframe下的页面锚点失效问题
2014/08/22 Javascript
jquery图片滚动放大代码分享(2)
2015/08/28 Javascript
jquery实现百叶窗效果
2017/01/12 Javascript
jquery hover 不停闪动问题的解决方法(亦为stop()的使用)
2017/02/10 Javascript
详解用Webpack与Babel配置ES6开发环境
2019/03/12 Javascript
Vue动态创建注册component的实例代码
2019/06/14 Javascript
javascript异常处理实现原理详解
2020/02/17 Javascript
前端开发基础javaScript的六大作用
2020/08/06 Javascript
在vue项目中封装echarts的步骤
2020/12/25 Vue.js
JavaScript实现点击自制菜单效果
2021/02/02 Javascript
python完成FizzBuzzWhizz问题(拉勾网面试题)示例
2014/05/05 Python
python爬虫实现教程转换成 PDF 电子书
2017/02/19 Python
使用python实现BLAST
2018/02/12 Python
python 常用的基础函数
2018/07/10 Python
如何理解Python中包的引入
2020/05/29 Python
python 实现IP子网计算
2021/02/18 Python
俄罗斯设计师家具购物网站:The Furnish
2019/12/01 全球购物
银行办理业务介绍信
2014/01/18 职场文书
管理专员自荐信
2014/01/26 职场文书
大学班级干部的自我评价分享
2014/02/10 职场文书
厂办主管岗位职责范本
2014/02/28 职场文书
医药销售自荐书
2014/05/29 职场文书
单方离婚协议书范本2014
2014/10/28 职场文书
2014年社区工会工作总结
2014/12/18 职场文书
学习保证书100字
2015/02/26 职场文书
停发工资证明范本
2015/06/12 职场文书
单位同意报考证明
2015/06/17 职场文书
使用redis生成唯一编号及原理示例详解
2021/09/15 Redis