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 获取新浪微博的最新公共微博实例分享
Jul 03 Python
Python编程修改MP3文件名称的方法
Apr 19 Python
Python基于numpy灵活定义神经网络结构的方法
Aug 19 Python
Python排序搜索基本算法之选择排序实例分析
Dec 09 Python
Python3.6.x中内置函数总结及讲解
Feb 22 Python
Python面向对象程序设计类的封装与继承用法示例
Apr 12 Python
Python Pandas 获取列匹配特定值的行的索引问题
Jul 01 Python
Python3常见函数range()用法详解
Dec 30 Python
flask框架url与重定向操作实例详解
Jan 25 Python
在PyCharm中实现添加快捷模块
Feb 12 Python
Pycharm+Python工程,引用子模块的实现
Mar 09 Python
python 爬取天气网卫星图片
Jun 07 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
了解咖啡雨林联盟认证 什么是雨林认证 雨林认证是什么意思
2021/03/05 新手入门
综合图片计数器
2006/10/09 PHP
destoon后台网站设置变成空白的解决方法
2014/06/21 PHP
YII2 实现多语言配置的方法分享
2017/01/11 PHP
php微信公众号开发之秒杀
2018/10/20 PHP
Stop SQL Server
2007/06/21 Javascript
兼容IE与firefox火狐的回车事件(js与jquery)
2010/10/20 Javascript
jquery 插件开发 extjs中的extend用法小结
2013/01/04 Javascript
JQuery $.each遍历JavaScript数组对象实例
2014/09/01 Javascript
删除Javascript Object中间的key
2014/11/18 Javascript
js基础知识(公有方法、私有方法、特权方法)
2015/11/06 Javascript
JS操作JSON方法总结(推荐)
2016/06/14 Javascript
微信小程序如何再次获取用户授权的方法
2019/05/10 Javascript
谈谈JavaScript中的垃圾回收机制
2020/09/17 Javascript
vue中利用three.js实现全景图的完整示例
2020/12/07 Vue.js
python使用Berkeley DB数据库实例
2014/09/26 Python
Python中的数据对象持久化存储模块pickle的使用示例
2016/03/03 Python
Python3中的列表,元组,字典,字符串相关知识小结
2017/11/10 Python
python 两个一样的字符串用==结果为false问题的解决
2020/03/12 Python
Python实现Kerberos用户的增删改查操作
2020/12/14 Python
CSS3教程(6):创建网站多列
2009/04/02 HTML / CSS
关于box-sizing的全面理解
2016/07/28 HTML / CSS
小学教师自我鉴定
2013/11/07 职场文书
初中生学习的自我评价
2013/11/14 职场文书
仓库理货员岗位职责
2013/12/18 职场文书
超级搞笑检讨书
2014/01/15 职场文书
大学生学习2014年全国两会心得体会
2014/03/12 职场文书
法定代表人资格证明书
2014/09/11 职场文书
地方白酒代理协议书
2014/10/25 职场文书
2015年大班保育员工作总结
2015/05/18 职场文书
党支部考察意见范文
2015/06/02 职场文书
2015大学迎新晚会主持词
2015/07/16 职场文书
小学英语教师2015年度个人工作总结
2015/10/14 职场文书
从结婚开始的恋爱故事。小说《我的美好婚事》TV动画化决定
2022/04/07 日漫
python游戏开发Pygame框架
2022/04/22 Python
Redis实现订单过期删除的方法步骤
2022/06/05 Redis