用计算机视觉云吸猫

2019 年 1 月 16 日 计算机视觉life

计算机视觉,一句话来说就是用人工智能的手段,让计算机具有“识别”能力。


这种技术应用广泛,比如人脸识别支付,让你的支付如丝般顺滑;比如天眼视频监控,让警察叔叔从此摆脱人眼识车牌的恐惧。


图片来自 Joseph Redmon 

他使用计算机视觉的一种检测系统yolo来定位他家的猫狗


再比如……这种技术可以让我边写代码,边吸猫,快乐学习。我准备搭建一套深度学习神经网络用于猫狗识别,识别我家两位主子。先介绍下我的两只猫吧:


1号主子:二傻。

我经常怀疑他是一只有橘猫皮肤的狗,爱吃爱玩人来疯,经常出没于盒子、桌面、高台间,爱摆很多怪异动作。



2号主子:小黑。

一只典型的胆小体宽的黑猫,如果他在暗环境里不睁眼,我根本找不到他在哪。


如果大家想操作一把猫狗识别,我特别推荐数据团计算机视觉7天免费课程,放在文末,从Python语法基础开始,到猫狗识别结束,22节视频课程,保证零基础、零成本、可实用。

 

好了,下面进入正题。


寻找一个合适的深度学习模型


为了不花费大量时间和经历搭建和训练神经网络,我们找一个半成品模型,用于二次开发。


我们这次使用由谷歌出品,屡次斩获图像识别大赛冠军的深度学习模型——Inception。它当初是被设计用于对1000种不同类型的图片进行分类。

可下滑查看完整模型描述,模型下载见文末


大家不要被图的长度吓到,这只是为了让我们的学习更有逼格的模型解释。


我们的重点是把模型最后一层全连接层根据我们的要求重新训练,对此官网提供了一套成熟的框架:


文件解释:

Bottleneck:用于存放训练图片信息,模型运行前,文件内为空。

Data:用于存放训练样本:

Images:存放用于测试效果的图片。

Inception_model:inception模型,无需修改。

retain.bat/retain.sh:分别为在windows和苹果系统中启动运行的脚本。

retrain.py:训练用的框架脚本,基于tensorflow,无需修改(所以在运行前请安装python环境和tensorflow)。

predict.py:用于对训练好的模型进行投入使用,预测。可以不修改,也可以稍作修改,针对不同的输出需求。

 

 

用自己的图片数据训练模型


我们要做的第一步:

给计算机看一组猫狗照片,从而学习猫和狗的特征区别。

分别在上述data文件夹里建立两个文件夹,并在文件夹里放置对应的猫狗图片。


样本取自Kaggle,12500张猫,12500张狗,共25000张。下载方式见文末

 

我们要做的第二步:

让计算机利用上述的inception模型,开始学习猫狗特征区别。

右键编辑retrain.bat,在记事本里调整正确的参数,设置完毕,保存:


参数解释:

bottleneck_dir:bottleneck文件夹的路径,这里刚才演示,我们的bottleneck就在根目录,并且没有更改文件夹的名称,所以,不用修改。

Model_dir:模型存放路径。

output_graph:二次训练后新模型的路径和名称。

output_labels:二次训练后模型标签的路径和名称。

how_many_training_steps:训练模型的周期,模型需要反复训练才能达到较高的准确率,但是训练次数越多,时间越长,我们的猫狗识别模型,一般训练在200+轮就已经效果非常好了,我这里设置了1000次,反正用不了多久。


开始我们的第三步:

让计算机训练自己。

 点击retrain.bat,程序会开始运行,自动提取训练集里的图片,提取后数据都会保存在刚才的bottleneck文件夹下,这一步用时根据样本大小不同而不同,25000张图片大概20分钟。


如果你的电脑没有安装过Python机器学习框架TensorFlow,需要先行安装,强烈推荐安装tensorflow_gpu,这是tensorflow的GPU版本,相比CPU,效率更高,运行速度更快,如果对话框里显示显卡名称和显存大小,就说明你配置成功。TensorFlow安装方法见文末体验课。


图片提取完毕后,计算机会开始训练模型,可以看到训练集的准确率和测试集的准确率,效果不错,都在90%以上。几秒后,模型就训练完了,最终准确率是99.2%。



这时,我们可以看到文件夹内多出了两个新文件,而.pb文件就是我们新训练好的最终模型。



只需要在Python环境下运行predict.py,加载模型,即可开始测试猫狗识别。


利用这个方法,我们有其他图片分类需求,不管是二分类还是多分类,都可以按以上方法训练出一套针对具体场景的模型。

 

喜闻乐见的吸猫环节


来看看大家期待已久的鉴猫……哦不测试环节的表现:


无论是二傻摆出了奇特姿势的照片:


还是小黑带上了帽子的照片:


或是两只猫在一起相亲相爱的照片:


甚至是我一眼难以看出这是一坨什么物体的照片:

 

计算机现在都能完美识别,我们的模型准确率达到了喜闻乐见、史无前例的100% 今天的吸猫任务完成!


看到这里,我知道你想问了:这样的操作是每个人都可以学会的吗?加入网易云课堂和城市数据团共同推出免费的计算机视觉体验营就可以!现在加入限时送出以下四大免费福利:


Part.1

免费直播课



Part.2

免费7天计算机视觉体验课



Part.3

文中的模型及数据


1.25000张猫狗图片数据

2.猫狗识别代码及训练后的模型

3.文中涉及的Inception模型及学习框架


Part.4

7.6 G不可错过的AI入行秘籍


1. 6G Python入门资料

AI学习的必备帮手

2. 120+篇最新最全的AI报告

遍布政府、证券、咨询、IT等相关行业

3. 6门行业权威亲自授课的在线免费课程

160+篇涉及深度学习、计算机视觉各方向的论文(中英兼备,既泛且精

4. 20+部从小白到高手都能获益的人工智能PDF资料

含人工智能和机器学习领域国际权威学者吴恩达手稿


Part.5

领取方式


扫码加入QQ群

群号:929246020

席位有限,先到先得~


点击【阅读原文】,免费领取福利

登录查看更多
2

相关内容

计算机视觉是一门研究如何使机器“看”的科学,更进一步的说,就是是指用摄影机和电脑代替人眼对目标进行识别、跟踪和测量等机器视觉,并进一步做图形处理,使电脑处理成为更适合人眼观察或传送给仪器检测的图像。作为一个科学学科,计算机视觉研究相关的理论和技术,试图建立能够从图像或者多维数据中获取‘信息’的人工智能系统。

知识荟萃

精品入门和进阶教程、论文和代码整理等

更多

查看相关VIP内容、论文、资讯等
【中科院自动化所】视觉对抗样本生成技术概述
专知会员服务
35+阅读 · 2020年4月15日
深度神经网络实时物联网图像处理,241页pdf
专知会员服务
75+阅读 · 2020年3月15日
Mask-RCNN模型的实现自定义对象(无人机)检测
计算机视觉life
17+阅读 · 2019年8月12日
计算机视觉方向简介 | 基于单目视觉的三维重建算法
计算机视觉life
30+阅读 · 2019年4月9日
干货实践 | 计算机视觉花卉识别模型(代码分享)
计算机视觉战队
10+阅读 · 2019年3月13日
深度学习与计算机视觉任务应用综述
深度学习与NLP
49+阅读 · 2018年12月18日
开发、调试计算机视觉代码有哪些技巧?
AI研习社
3+阅读 · 2018年7月9日
计算机视觉与深度学习实战
炼数成金订阅号
8+阅读 · 2018年2月9日
深度学习之CNN简介
Python技术博文
20+阅读 · 2018年1月10日
计算机视觉近一年进展综述
机器学习研究会
8+阅读 · 2017年11月25日
MATLAB计算机视觉与深度学习实战
炼数成金订阅号
18+阅读 · 2017年8月4日
Arxiv
99+阅读 · 2020年3月4日
VIP会员
相关资讯
Mask-RCNN模型的实现自定义对象(无人机)检测
计算机视觉life
17+阅读 · 2019年8月12日
计算机视觉方向简介 | 基于单目视觉的三维重建算法
计算机视觉life
30+阅读 · 2019年4月9日
干货实践 | 计算机视觉花卉识别模型(代码分享)
计算机视觉战队
10+阅读 · 2019年3月13日
深度学习与计算机视觉任务应用综述
深度学习与NLP
49+阅读 · 2018年12月18日
开发、调试计算机视觉代码有哪些技巧?
AI研习社
3+阅读 · 2018年7月9日
计算机视觉与深度学习实战
炼数成金订阅号
8+阅读 · 2018年2月9日
深度学习之CNN简介
Python技术博文
20+阅读 · 2018年1月10日
计算机视觉近一年进展综述
机器学习研究会
8+阅读 · 2017年11月25日
MATLAB计算机视觉与深度学习实战
炼数成金订阅号
18+阅读 · 2017年8月4日
Top
微信扫码咨询专知VIP会员