汽车后市场新说
新浪微博
微信
当前位置:汽车后市场新说网 » 风云

计算机的火眼金睛是怎么炼成的—手把手教你猫狗大战

计算机视觉(Computer Vision,CV),一句话来说就是让计算机具有“视觉识别”能力。


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


图片来自 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模型及学习框架