jerryxjr1220 发表于 2017-4-7 10:14:18

python小练习(087):基于keras快速搭建神经网络(实战篇)之数字校验码自动识别

本帖最后由 jerryxjr1220 于 2017-4-7 10:35 编辑

之前的python小练习中已经完整介绍了基于keras如何快速搭建神经网络,今天就让我们运用学到的知识进行实战--自动识别数字校验码。

现在很多网站为了防止爬虫推出了很多各式各样的校验码,有数字、字母、文字等等不同组合,今天我们先从简单的开始,自动识别数字校验码。

我从某个网站下载了所有的数字校验码(我会放在附件中供大家下载测试,我已经分类完毕,并生成了对应的标签方便训练数据),形式如下:


可以看到校验码都是比较简单的数字(原始图片是彩色的,我进行了灰度处理成黑白的),由于数字的角度是随机的左右旋转,这就需要用机器学习来让python自动识别。(如果是不旋转的图片,则可以直接按照像素点读取并直接转换,也就不需要机器学习了)

先来看最后的训练及测试结果吧。

训练数据:
Epoch 1/2
4500/4500 [==============================] - 1s - loss: 0.2086 - acc: 0.9631   
Epoch 2/2
4500/4500 [==============================] - 2s - loss: 0.0014 - acc: 1.0000   

测试结果:
500/500 [==============================] - 0s
loss误差(有的翻译叫“成本”):0.000107079518784    accuracy准确率:1.0

可以看到,我用4500组数据进行训练,然后用剩下的500组数据进行测试,结果达到惊人的100%!{:5_98:}

源代码及详细注解:
**** Hidden Message *****

有兴趣的可以下载原始数字识别码进行测试,下载地址:

jerryxjr1220 发表于 2017-4-7 10:26:23

本帖最后由 jerryxjr1220 于 2017-4-7 10:36 编辑

有人可能会问“你上面的程序就搭了一个自动识别的模型,怎么做到真正的自动识别呢?”
其实,这个问题很简单,因为model模块还有一个预测的函数,只要把图片的像素值输入进去,就能直接输出预测结果,这个函数的格式如下:
output = model.predict(input_data)
就这么简单{:5_97:}

zmcds4 发表于 2017-4-8 15:49:27

厉害了

大补的小甲鱼粉 发表于 2017-4-8 18:01:18

厉害啊{:10_256:}

woshixjy 发表于 2017-4-12 02:48:35

学习

大补的小甲鱼粉 发表于 2017-4-24 23:51:12

楼主你好,其实我有一个小建议,就是楼主可以把你关于神经网络的这些期做成视频,因为好多新手往往被卡在入门上,懂了里面的原理,并且熟悉了几个实例后,在理解其他的知识可能会快一些,望采纳{:10_266:}

jerryxjr1220 发表于 2017-4-25 06:55:00

大补的小甲鱼粉 发表于 2017-4-24 23:51
楼主你好,其实我有一个小建议,就是楼主可以把你关于神经网络的这些期做成视频,因为好多新手往往被卡在入 ...

入门视频的话,其实网上已经有不少了,可以去优酷搜一下keras。
而且神经网络的搭建过程其实有点像一个玩黑箱子,就算做成视频也展现不出什么东西,能看到的也就是我在敲代码。
真正要理解神经网络其实要具备很多数学知识,比如线性代数,概率论,矩阵运算等等,这个才是卡在很多新手面前的难题,而这些靠视频是看不出的。

黄修添 发表于 2017-5-1 11:31:11

学习咯

小馨缘 发表于 2017-5-30 15:24:49

数学不行看来是玩不了神经网络了{:5_102:}

V587 发表于 2017-6-12 16:06:23

感谢分享 鱼C有你更精彩

Py小学生 发表于 2017-6-26 10:47:56

nx

phjly110 发表于 2017-8-25 14:18:45

学习学习

lizm2017 发表于 2017-9-6 17:33:42

好东西

三道杠 发表于 2017-11-17 16:01:41

学习学习

liny1983 发表于 2017-12-18 21:44:40

看看,学习一下。

新手·ing 发表于 2017-12-24 09:29:59

看看

forever1qazz 发表于 2017-12-26 17:20:09

看看源码

kuanglu 发表于 2018-1-17 10:06:42

学习学习

shmzfeng 发表于 2018-2-23 22:00:23

{:10_257:}观摩观摩

daoyuantech 发表于 2018-5-29 15:44:16

学习学习
页: [1] 2
查看完整版本: python小练习(087):基于keras快速搭建神经网络(实战篇)之数字校验码自动识别