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实用技巧两则
Aug 29 Python
python监控文件或目录变化
Jun 07 Python
解决出现Incorrect integer value: '' for column 'id' at row 1的问题
Oct 29 Python
可能是最全面的 Python 字符串拼接总结【收藏】
Jul 09 Python
Python实现的列表排序、反转操作示例
Mar 13 Python
python 列表转为字典的两个小方法(小结)
Jun 28 Python
详解Python3定时器任务代码
Sep 23 Python
windows、linux下打包Python3程序详细方法
Mar 17 Python
python对XML文件的操作实现代码
Mar 27 Python
细说NumPy数组的四种乘法的使用
Dec 18 Python
在Ubuntu中安装并配置Pycharm教程的实现方法
Jan 06 Python
Python实现视频中添加音频工具详解
Dec 06 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
PHP中用hash实现的数组
2011/07/17 PHP
is_uploaded_file函数引发的不能上传文件问题
2013/10/29 PHP
jQuery1.6 使用方法二
2011/11/23 Javascript
jQuery 阴影插件代码分享
2012/01/09 Javascript
jquery删除提示框弹出是否删除对话框
2014/01/07 Javascript
JS的参数传递示例介绍
2014/02/08 Javascript
JQuery获取表格数据示例代码
2014/05/26 Javascript
使用JS获取当前地理位置方法汇总
2014/12/18 Javascript
javascript实现客户端兼容各浏览器创建csv并下载的方法
2015/03/23 Javascript
javascript数组去重的方法汇总
2015/04/14 Javascript
JavaScript实现同一页面内两个表单互相传值的方法
2015/08/12 Javascript
javascript日期验证之输入日期大于等于当前日期
2015/12/13 Javascript
javascript中select下拉框的用法总结
2016/01/07 Javascript
JavaScript基础知识点归纳(推荐)
2016/07/09 Javascript
JS中的算法与数据结构之栈(Stack)实例详解
2019/08/20 Javascript
Layui数据表格 前后端json数据接收的方法
2019/09/19 Javascript
js原生map实现的方法总结
2020/01/19 Javascript
vue从零实现一个消息通知组件的方法详解
2020/03/16 Javascript
[01:04:39]OG vs Mineski 2018国际邀请赛小组赛BO2 第二场 8.17
2018/08/18 DOTA
python用于url解码和中文解析的小脚本(python url decoder)
2013/08/11 Python
python多线程http下载实现示例
2013/12/30 Python
小结Python用fork来创建子进程注意事项
2014/07/03 Python
Python入门篇之列表和元组
2014/10/17 Python
pandas系列之DataFrame 行列数据筛选实例
2018/04/12 Python
用python求一重积分和二重积分的例子
2019/12/06 Python
Django生成数据库及添加用户报错解决方案
2020/10/09 Python
Window10上Tensorflow的安装(CPU和GPU版本)
2020/12/15 Python
python 生成正态分布数据,并绘图和解析
2020/12/21 Python
HTML5 新标签全部总汇(推荐)
2016/06/13 HTML / CSS
美国最大点评网站:Yelp
2018/02/14 全球购物
教育科学研究生自荐信
2013/10/09 职场文书
自主招生推荐信格式模板
2015/03/24 职场文书
写给女朋友的保证书
2015/05/09 职场文书
萤火虫之墓观后感
2015/06/05 职场文书
新店开张宣传语
2015/07/13 职场文书
Python+腾讯云服务器实现每日自动健康打卡
2021/12/06 Python