如何用python和苹果Turicreate学习框架来识别图像?

  大多数人听到深度学习,都会望而却步,因为会觉得很难,在这个人工智能飞速进步的时代,我也来抓一下时代的尾巴~

  两周前,我开始接触到python和Turicreate框架,经过不懈的努力,终于有所收获,特在此总结一下经验,如有不妥,欢迎指正。

  如何让机器来识别图像?感觉好难是吗,想想人是怎么识别一条猫和一条狗的呢?我们看到了它们有不同的特征对吧,如果机器要区分它们,也要来获取特征,这就需要图像的特征提取,这里需要数字图像处理的一点知识,图片都是由像素组成的,我们一般的彩色图片都是RGB图片,它的每一个是由R,G,B三个分量组成,数值范围是0~255。我们需要提取所有像素值吗?显然不需要,这样内存消耗巨大。那我们需要对这些像素如何处理才好呢?接下来就是大名鼎鼎的CNN登场了,很多人都听过它吧,卷积神经网络,原理啥的就不说了,有兴趣可以网上搜搜。告诉你一个好消息,我们的Turicreate已经封装好了它的算法,我们直接拿来用就好了。接下来,我们需要用大量的数据来训练,最后训练后的结果保存成一个model,然后你随便找图片来它都可以识别,当然你训练的图片都是猫的话,它也只能识别你拿来的图像是不是猫。[泪]

  接下里说说过程吧,首先你需要选择一个系统,当然Turicreate是apple的,选择MacOS是最好的,没有苹果装备的话,那就和我一样在Linux下来操作吧。我们需要安装python的集成环境Anaconda,中文名蟒蛇,好霸气。当然还有其他的集成环境,建议选择这个,可以网上了解一下几个的优劣。多说一句,python选择2.7版本的,3.0以上的会出错,原因你懂的?,然后你需要配置环境变量,不然一些操作权限问题很烦,然后用conda命令创建一个虚拟环境就叫turi,激活它,使用pip安装turicreate,然后配置这个包的环境变量。打开自带的笔记本(太简陋了,建议安装一款IDE)。

  写代码的时刻到了。在里面新建一个python2的笔记本,首先import 这个turicreate包,如果你没有配环境变量的话,它就会告诉你找不到这个包,?,然后我们读入你需要训练的图片,有很多类的话放在不同的文件夹下,给这些不同文件夹里的图片添加标签,标签的意义在于机器识别的图像反馈给你的结果是猫或狗,而不是一个文件夹。然后就可以开始训练了,这里应该是最难的,然而Turicreate已经封装好了,你只需要调用对应的函数就可以了?,当然,需要多说一句的是,训练对电脑配置要求很高,我的渣渣笔记本跑崩溃了好几次。我训练结果准确率高达98%,训练后的结果保存成一个model,以后你就可以直接用这个model,而不需要再去训练了。接下来你可以测试你的数据,我测试了几次准确率蛮高的,哈哈哈。

  有可能你觉得这太没意思了,接下来我们加点难度,我们如何用这个model来处理实时拍摄的视频,当然也需要实时反馈识别的信息,该怎么做呢?

  是不是需要把拍摄的视频传送到我们电脑上,这个我们使用一款软件叫做IP摄像头,还要借用opencv库,这里安装opencv库只需要和安装turicreate一样,pip就可以了,库名称是opencv-python,然后用python写几行代码定义一下用户名和IP地址就行了,监控器大概就是这么做的吧?。传过来的视频我们该如何处理呢,要知道我们识别的是图像,而不是视频,我们都知道视频是一帧一帧的图像,所以我们只需要间隔保存一帧的图像就可以了,没必要每帧都去识别,保存有两种方法,一种是设置定时器,每隔一段时间保存一张图片,另一种方法就是设置间隔值,每隔多少帧保存一张图片,值得注意的是,前一种方法使用的是进程的函数,所以容易陷入进程关不掉的局面【血的教训】。当然我们不能一直都在保存图片,我们可以在识别完成之后自动删除图片,这样就不会占用大量内存了。这样我们就可以便拍摄视频,机器实时识别图像了,如果你觉得还不过瘾,请关注后续更新,或者你有更好的玩法,欢迎下方留言。

  感谢阅读?!

转载于:https://www.cnblogs.com/chenzhibin/p/8544665.html

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值