转自 :https://www.wukong.com/answer/6583135560443887876/?iid=39055545733&app=news_article&share_ansid=6583135560443887876&app_id=13&tt_from=mobile_qq&utm_source=mobile_qq&utm_medium=toutiao_ios&utm_campaign=client_share

谢邀,我给个简单的例子吧,互联网有很多猫的照片,我也很喜欢猫,许多人可以很容易地识别猫,但是我们可以训练计算机这样做吗?答案是显而易见的,可以。

我们在Tensorflow框架上使用了高级Keras API。Keras项目是一个高级Python神经网络API。 它设计为用户友好和模块化,支持多个后端。 默认的Keras后端是Tensorflow,一个符号数学库,广泛用于机器学习和神经网络任务。 我们将训练我们的Keras / Tensorflow设置来对CIFAR-10图像数据集进行分类,这是10%的猫图片。

建立Model

要使用Tensorflow运行Keras,我们将转换一个带有Tensorflow编译安装的环境,并使用conda添加Python HDF5软件包以及Keras可用于可视化模型的几个图形软件包,以及用于保存历史记录的dill。 然后我们将用pip安装Keras。

CIFAR-10数据集是10个类中的60,000个彩色32x32像素图像的集合,其中10,000个是测试批次。 Keras可以自动下载数据集,但我们可以通过将其下载到/ results来节省时间,并在需要时将该文件复制到正确的位置。

我们将运行128个图像批次并设置两个训练批次运行:一个长的500个批次的运行来完成主要工作,以及一个简短的5个批次的运行作为一个例子。

加载数据并使其成为合理的shape。 还设置了一个函数来查找文件,另一个用于查看我们正在分析的图像,最后设置为进行实时输入数据扩充。

让我们随意选择一些训练图像,如下图所示:

训练模型

我们将使用一个简单的卷积网络模型(仍处于开发阶段),增加了上面定义的数据扩充,以及一个检查点编写回调函数,它可以显著提高准确性。

最后,让我们看看我们的模型,包括文本summary和流程图。

训练上述模型,训练过程中的打印信息及图片识别如下所示:

那么只要保存模型这个图片识别就成功了,希望对你有帮助~

翻出我曾经写的一篇文章来介绍这个问题。

为大家带来一篇 初步使用Keras深度学习破解验证码 的文章。 当然我们这里识别的是普通验证码,是Laravel常用的验证码库

Captcha for Laravel 5

如下图,又5个数字字母所组成的验证码。我用PHP一共生成了5万个验证码。后面也会提供给大家

导入所需的库

这里我们还是使用Keras,底层使用Tensorflow做为底层库。

本次使用的模型是简单的卷积神经网络模型,后面也会使用更加复杂的模型

卷积神经网络(Convolutional Neural Network,CNN)是一种前馈神经网络,它的人工神经元可以响应一部分覆盖范围内的周围单元,对于大型图像处理有出色表现。它包括卷积层(alternating convolutional layer)和池层(pooling layer)。

一般地,CNN的基本结构包括两层,其一为特征提取层,每个神经元的输入与前一层的局部接受域相连,并提取该局部的特征。一旦该局部特征被提取后,它与其它特征间的位置关系也随之确定下来;其二是特征映射层,网络的每个计算层由多个特征映射组成,每个特征映射是一个平面,平面上所有神经元的权值相等。特征映射结构采用影响函数核小的sigmoid函数作为卷积网络的激活函数,使得特征映射具有位移不变性。此外,由于一个映射面上的神经元共享权值,因而减少了网络自由参数的个数。卷积神经网络中的每一个卷积层都紧跟着一个用来求局部平均与二次提取的计算层,这种特有的两次特征提取结构减小了特征分辨率。

配置参数

加载数据

训练模型的时候,我们可以选择两种方式来生成我们的训练数据,一种是直接全部载入内存,然后开始训练,一种是定义一个数据生成器,然后利用 fit_generator 分批加载数据来训练。

因为样本是5万张,但是只有200多M,可以一次性载入内存。

最后会生成pickle文件。python的pickle模块实现了基本的数据序列和反序列化。通过pickle模块的序列化操作我们能够将程序中运行的对象信息保存到文件中去,永久存储;通过pickle模块的反序列化操作,我们能够从文件中创建上一次程序保存的对象。

如果使用我保存好的pickle文件,可以不用执行下列步骤

加载数据,读取pickle文件

创建模型

开始训练模型

训练完成,进行验证

改进

对于这种按顺序的文字验证码,还有一种更好方法可以使用,那就是循环神经网络来识别序列。 我会在后面继续介绍如何用循环神经网络构建模型。

代码地址:https://github.com/szpnygo/keras-cnn-captcha

Pickle地址:https://pan.baidu.com/s/1i4JiZOT

Python如何图像识别?相关推荐

  1. python图像识别步骤_利用百度智能云结合Python体验图像识别(转载来自qylruirui)

    利用百度智能云结合Python体验图像识别 只要注册了百度账号就可以轻松体验百度智能云中图像识别功能的魅力! 1. 所需要的工具 一个百度账号(大家都有哈) 一个可以运行python代码的编译器(Py ...

  2. python编写图像识别_python实现识别相似图片小结

    文章简介 在网上看到python做图像识别的相关文章后,真心感觉python的功能实在太强大,因此将这些文章总结一下,建立一下自己的知识体系. 当然了,图像识别这个话题作为计算机科学的一个分支,不可能 ...

  3. python 菜品识别_利用百度智能云结合Python体验图像识别(来自qylruirui)

    利用百度智能云结合Python体验图像识别 只要注册了百度账号就可以轻松体验百度智能云中图像识别功能的魅力! 1. 所需要的工具 一个百度账号(大家都有哈) 一个可以运行python代码的编译器(Py ...

  4. 使用python解决图像识别中常见的问题

    这篇博客记录我第一次使用python完成图像识别作业时遇到的各种问题. 新手向 一.各种project包版本问题 问题描述:在我们完成自己程序的时候,往往需要学习前辈们的代码.一般来讲,新的Pytho ...

  5. 基于python及图像识别的围棋棋盘棋子识别4——源码及使用说明

    最近在做一个围棋棋盘棋子识别项目,这是该项目第四篇,系列文章如下: 1.基于python及图像识别的围棋棋盘棋子识别1--定位棋盘位置 2.基于python及图像识别的围棋棋盘棋子识别2--定位棋子位 ...

  6. python垃圾分类图像识别算法_用算法帮上海大妈垃圾分类,扔错罚款!长点心吧你...

    从7月1日起,上海市将正式实施<上海市生活垃圾管理条例>.条例规定,个人混合投放垃圾今后可最高罚200元,单位混装混运,最高可罚至5万元,而且违规还将会列入征信,堪称"史上最严垃 ...

  7. python实现图像识别水果_使用Python实现基于图像识别的iOS自动化测试

    相对于Android来讲,iOS比较封闭.这一点,在设计和评估自动化测试方案的时候感受尤为强烈.iOS平台上没有特别好用的自动化测试工具.苹果针对iOS提供了UI Automation的Instrum ...

  8. python图像识别实现流程_利用Python实现图像识别工具

    一.概述 这里通过 python + PyQt5 + 百度AI 实现简单的图片识别工具. 二.流程 设计图片识别工具界面 选择识别类型 通用物体 菜品 车辆 选择要识别的图片 显示识别结果 三.开发工 ...

  9. Python(TensorFlow框架)实现手写数字识别系统python人工智能-图像识别

    一.安装库 首先我们需要安装PIL和pytesseract库. PIL:(Python Imaging Library)是Python平台上的图像处理标准库,功能非常强大. pytesseract:图 ...

  10. python做图像识别该学什么专业,郑大自动化学生来达内培训学Python技术,获1.2万月薪担任AI图像识别...

    由于人工智能时代的来临,加之数据分析的广泛应用,Python语言火爆全球.相比于其他语言,Python开发效率更高.运行速度更快.功能更强大!有人说:Python可能是所有语言里最符合成为人类对编程期 ...

最新文章

  1. python 排列组合_python解决排列组合
  2. Linux redhat下安装jdk-6u45-linux-x64.bin
  3. 数据结构---递归实现十进制装换为任意进制
  4. 华为消息推送 有透传通道吗_求解在推送用透传消息-使用厂商通道(我用的是基座测试) 用手机测试出现了“clientId离线”问题...
  5. 《Linux Shell脚本攻略》读书笔记第三章 以文件之名
  6. python求解按等级分配糖果问题
  7. 从中报危机看创业板:谁在兜售“上市经济”?
  8. 开关电源设计入门到精通系列--序
  9. 如何安装.nupkg文件
  10. Java扫码点餐小程序源码 智慧点餐系统源码 点餐APP SaaS模式
  11. 2015计算机一级试题及答案,2015年全国计算机等级考试一级试题及答案【精编直接打印版】.doc...
  12. Demo示例——Bundle打包和加载
  13. 用大白话聊聊JavaSE
  14. 缺失值处理,你真的会了吗?
  15. 【暗时间】摘录 - 为什么你应该从现在开始就写博客
  16. strncpy和strcpy和memcpy
  17. 如何解决cmd找不到路径问题
  18. Python字典添加元素的几种方法
  19. 离散行业和流程行业的区别
  20. python获取视频缩略图_python接收图片变成缩略图

热门文章

  1. 分布式事务2PC论文翻译(Concurrency Control and Recovery in Database Systems )
  2. (按位取反)运算的理解
  3. Android:访问存储失败.FileNotFoundException open failed: XXXXXXX EPERM (Operation not permitted)
  4. 今天又get到一个小技能,collect_set函数
  5. excel文件被写保护怎么解除_excel撤销写保护的教程
  6. 为什么在太阳能应用中使用气象站
  7. 【工程应用五】 opencv中linemod模板匹配算法诸多疑惑和自我解读。
  8. Hello New World 写在 Conflux 网络 Tethys 上线之际
  9. 写给后端开发看的安卓入门
  10. 计算机联锁验证实训报告心得,计算机实训心得体会(通用5篇)