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脚本
Feb 10 Python
浅谈python中scipy.misc.logsumexp函数的运用场景
Jun 23 Python
Python利用BeautifulSoup解析Html的方法示例
Jul 30 Python
DataFrame 将某列数据转为数组的方法
Apr 13 Python
Django添加feeds功能的示例
Aug 07 Python
Python分析彩票记录并预测中奖号码过程详解
Jul 09 Python
python性能测量工具cProfile使用解析
Sep 26 Python
python双端队列原理、实现与使用方法分析
Nov 27 Python
更新升级python和pip版本后不生效的问题解决
Apr 17 Python
jupyter notebook 写代码自动补全的实现
Nov 02 Python
PyTorch device与cuda.device用法
Apr 03 Python
python三子棋游戏
May 04 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
DC《小丑》11项提名领跑奥斯卡 Netflix成第92届奥斯卡提名最大赢家
2020/04/09 欧美动漫
PHP XML操作类DOMDocument
2009/12/16 PHP
解析mysql left( right ) join使用on与where筛选的差异
2013/06/18 PHP
php常用字符串比较函数实例汇总
2014/11/24 PHP
JavaScript 创建对象和构造类实现代码
2009/07/30 Javascript
jQuery输入城市查看地图使用介绍
2013/05/08 Javascript
jQuery select表单提交省市区城市三级联动核心代码
2014/06/09 Javascript
详解JavaScript中循环控制语句的用法
2015/06/03 Javascript
学习JavaScript设计模式之迭代器模式
2016/01/19 Javascript
jQuery ajax时间差导致的变量赋值问题分析
2016/01/22 Javascript
AngularJS中实现动画效果的方法
2016/07/28 Javascript
BootStrapValidator初使用教程详解
2017/02/10 Javascript
Javascript 链式作用域详细介绍
2017/02/23 Javascript
基于JSON数据格式详解
2017/08/31 Javascript
基于vue组件实现猜数字游戏
2020/05/28 Javascript
JS交互点击WKWebView中的图片实现预览效果
2018/01/05 Javascript
Vue render深入开发讲解
2018/04/13 Javascript
Vue $emit $refs子父组件间方法的调用实例
2018/09/12 Javascript
如何基于JS截获动态代码
2019/12/25 Javascript
JavaScript实现京东快递单号查询
2020/11/30 Javascript
python正则分组的应用
2013/11/10 Python
Python3 字典dictionary入门基础附实例
2020/02/10 Python
python计算导数并绘图的实例
2020/02/29 Python
python opencv pytesseract 验证码识别的实现
2020/08/28 Python
在终端启动Python时报错的解决方案
2020/11/20 Python
阿迪达斯墨西哥官方网站:adidas墨西哥
2017/11/03 全球购物
美国购买隐形眼镜网站:Lenses For Less
2020/07/05 全球购物
CHRONEXT英国:您的首选奢华腕表目的地
2020/03/30 全球购物
班主任新年寄语
2014/04/04 职场文书
实习生辞职信范文
2015/03/02 职场文书
专家推荐信范文
2015/03/26 职场文书
社会主义核心价值观主题教育活动总结
2015/05/07 职场文书
使用 Apache Superset 可视化 ClickHouse 数据的两种方法
2021/07/07 Servers
详解Vue router路由
2021/11/20 Vue.js
Innodb存储引擎中的后台线程详解
2022/04/03 MySQL
苹果可能正在打击不进行更新的 App
2022/04/24 数码科技