如何用Python和深度神经网络识别图像?

只需要10几行Python代码,你就能自己构建机器视觉模型,对图片做出准确辨识和分类。快来试试吧!


视觉


进化的作用,让人类对图像的处理非常高效。


这里,我给你展示一张照片。


0?wx_fmt=jpeg


如果我这样问你:


你能否分辨出图片中哪个是猫,哪个是狗?


你可能立即会觉得自己遭受到了莫大的侮辱。并且大声质问我:你觉得我智商有问题吗?!


息怒。


换一个问法:


你能否把自己分辨猫狗图片的方法,描述成严格的规则,教给计算机,以便让它替我们人类分辨成千上万张图片呢?


对大多数人来说,此时感受到的,就不是羞辱,而是压力了。


如果你是个有毅力的人,可能会尝试各种判别标准:图片某个位置的像素颜色、某个局部的边缘形状、某个水平位置的连续颜色长度……


你把这些描述告诉计算机,它果然就可以判断出左边的猫和右边的狗了。


问题是,计算机真的会分辨猫狗图片了吗?


我又拿出一张照片给你。


0?wx_fmt=jpeg


你会发现,几乎所有的规则定义,都需要改写。


当机器好不容易可以用近似投机取巧的方法正确分辨了这两张图片里面的动物时,我又拿出来一张新图片……


0?wx_fmt=png


几个小时以后,你决定放弃。


别气馁。


你遭遇到的,并不是新问题。就连大法官,也有过同样的烦恼。


0?wx_fmt=jpeg


1964年,美国最高法院的大法官Potter Stewart在“Jacobellis v. Ohio”一案中,曾经就某部电影中出现的某种具体图像分类问题,说过一句名言“我不准备就其概念给出简短而明确的定义……但是,我看见的时候自然会知道”(I know it when I see it)。


原文如下:


I shall not today attempt further to define the kinds of material I understand to be embraced within that shorthand description (“hard-core pornography”), and perhaps I could never succeed in intelligibly doing so. But I know it when I see it, and the motion picture involved in this case is not that.


考虑到精神文明建设的需要,这一段就不翻译了。


人类没法把图片分辨的规则详细、具体而准确地描述给计算机,是不是意味着计算机不能辨识图片呢?


当然不是。


2017年12月份的《科学美国人》杂志,就把“视觉人工智能”(AI that sees like humans)定义为2017年新兴技术之一。


0?wx_fmt=jpeg


你早已听说过自动驾驶汽车的神奇吧?没有机器对图像的辨识,能做到吗?


你的好友可能(不止一次)给你演示如何用新买的iPhone X做面部识别解锁了吧?没有机器对图像的辨识,能做到吗?


0?wx_fmt=jpeg


医学领域里,计算机对于科学影像(如X光片)的分析能力,已经超过有多年从业经验的医生了。没有机器对图像的辨识,能做到吗?


0?wx_fmt=png


你可能一下子觉得有些迷茫了——这难道是奇迹?


不是。


计算机所做的,是学习。


通过学习足够数量的样本,机器可以从数据中自己构建模型。其中,可能涉及大量的判断准则。但是,人类不需要告诉机器任何一条。它是完全自己领悟和掌握的。


你可能会觉得很兴奋。


那么,下面我来告诉你一个更令你兴奋的消息——你自己也能很轻易地构建图片分类系统!


不信?请跟着我下面的介绍,来试试看。


数据


咱们就不辨识猫和狗了,这个问题有点不够新鲜。


咱们来分辨机器猫,好不好?


对,我说的就是哆啦a梦。


0?wx_fmt=png


把它和谁进行区分呢?


一开始我想找霸王龙,后来觉得这样简直是作弊,因为他俩长得实在差别太大。


0?wx_fmt=png


既然哆啦a梦是机器人,咱们就另外找个机器人来区分吧。


一提到机器人,我立刻就想起来了它。


0?wx_fmt=png


对,机器人瓦力(WALLE)。


我给你准备好了119张哆啦a梦的照片,和80张瓦力的照片。图片已经上传到了这个Github项目(https://github.com/wshuyi/demo-python-image-classification)。


请点击这个链接(https://link.jianshu.com/?t=https%3A%2F%2Fgithub.com%2Fwshuyi%2Fdemo-python-image-classification%2Farchive%2Fmaster.zip),下载压缩包。然后在本地解压。作为咱们的演示目录。


解压后,你会看到目录下有个image文件夹,其中包含两个子目录,分别是doraemon和walle。


0?wx_fmt=png


打开其中doraemon的目录,我们看看都有哪些图片。


0?wx_fmt=png


可以看到,哆啦a梦的图片真是五花八门。各种场景、背景颜色、表情、动作、角度……不一而足。


这些图片,大小不一,长宽比例也各不相同。


我们再来看看瓦力,也是类似的状况。


0?wx_fmt=png


数据已经有了,下面我们来准备一下环境配置。


环境


我们使用Python集成运行环境Anaconda。


请到这个网址(https://www.anaconda.com/downloads)下载最新版的Anaconda。下拉页面,找到下载位置。根据你目前使用的系统,网站会自动推荐给你适合的版本下载。我使用的是macOS,下载文件格式为pkg。


0?wx_fmt=png


下载页面区左侧是Python 3.6版,右侧是2.7版。请选择2.7版本。


双击下载后的pkg文件,根据中文提示一步步安装即可。


0?wx_fmt=png


安装好Anaconda后,我们需要安装TuriCreate。


请到你的“终端”(Linux, macOS)或者“命令提示符”(Windows)下面,进入咱们刚刚下载解压后的样例目录。


执行以下命令,我们来创建一个Anaconda虚拟环境,名字叫做turi。


conda create -n turi python=2.7 anaconda


然后,我们激活turi虚拟环境。


source activate turi


在这个环境中,我们安装最新版的TuriCreate。


pip install -U turicreate



转自:http://blog.csdn.net/nkwshuyi/article/details/78956890


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值