看图识熊(四)

概述

人工智能已经快要进入应用的高峰期了,但并不需要每个人都学习算法、建模。对于程序员来说,应该先从自己会的方向入手,学习如何应用AI来解决问题,开发应用。

本文将带着大家动手,从头做一个看图识熊的应用,输入一张熊的照片,程序输出这是什么熊。这里不会讲到AI的算法、模型,但会对涉及到的应用有关的概念做些介绍。

文中,我们将使用微软认知服务的必应图像搜索准备训练数据,然后用微软认知服务的定制化视觉服务训练模型,导出模型,最后将模型集成到应用中。

准备数据

机器学习总是离不开数据,没有数据就无法进行训练。

微软认知服务中除了提供了语音、视觉类的服务,还提供了搜索服务,其中就有必应图像搜索服务。

必应图像搜索的在线体验地址是 Bing Image Search API | Microsoft Bing

输入要搜索图片的关键字,指定需要的图片的参数,右侧就可以预览搜索结果。还可以切换到JSON显示,可以看到返回值是结构化的数据,很容易得到每张图的链接地址。

如果需要大量的数据,可以申请一个密钥,写个简单程序调用必应图片搜索,然后下载图片即可。

本文计划让我们的程序可以识别出棕熊、黑熊、北极熊、熊猫这四种熊,所以需要分别搜索这四种熊的图片,每种熊需要的训练数据不多,5张图片就够了,大家可以手动下载图片。另外,为了防止随便给一张图片就被分类成某种熊,我们还需要一些负例,可以找5张其它动物的图片,作为负例。

这里需要注意一下,在选择训练数据的时候,要注意数据的泛化性。也就是说,选出来的图要尽可能的不一样。比如,不能只选草地上的,也不能只选走路的熊,还得选站着的熊。不然,可能模型会把草地认成熊。

最好是按照文件夹把熊都分好类,这样一会儿训练的时候就比较容易。这个用文件夹分类的过程,其实就是标记数据的过程。我们这次要解决的问题是分类问题,所以,标记起来是非常快的。有些应用标记起来就没那么容易了。比如图片中的目标检测,要对每个目标画一个框,而且要尽量画准。再比如音频的标记,要听录音,然后把文字打出来,甚至需要每个字都写上在什么时候开始、什么时候结束。所以,有了数据、再把人类知识应用到数据上,有时会是很大的工作量。

获取模型

在机器学习应用中,任何情况下都需要一个或大或小的模型。而怎么得到这个模型,往往是其中最复杂的部分。有的时候,在缺少强大计算资源与高性能算法的情况下,我们不一定需要自己从零开始训练模型。我们需要用的一些轮子,已经有人给我们造好了。比如微软提供的定制化视觉服务。

定制化视觉服务简介

定制化视觉服务,相当于在云端提供了一个生成模型的方法,把模型相关的复杂的算法都简化了。同时,它能够让用户自己管理训练数据,定义自己的分类问题。这样在易用、强大之间找到了一个平衡点。

从适用的范围上讲,如果要分类的项在图像中比较突出,则定制化视觉服务可发挥比较好的效果。但是,定制化视觉服务并不适合用于检测细微的差异。例如,检测质量发现产品中的细微裂纹或凹陷。另外,因为这个世界纷繁复杂,能进入人眼的物体和它们的排布、表现方式的组合,几乎是无穷无尽的。定制化视觉服务后面的模型也不能解决所有领域的问题,这样会影响精确性。所以定制化视觉服务既提供了通用模型,又提供了几个特定的领域模型。如果对识别性能要求很高,则需要定制化视觉服务后面的领域模型非常强大才行。

从训练速度上讲,传统的训练模型需要数小时的时间,而定制化视觉服务采用了迁移学习的方法,这种方法可以在已有的预训练模型的基础上,只有需要少量的训练图片和很短的训练时间,就可以训练出针对特定问题的新的模型。有点类似四五岁的小孩子学习新的动物,已经用了四五年的时间对动物的各种特征有了初步了解,也会基本的认知分类,然后再给他一种新的动物的几张图片,他瞬间就能学会如何成功的区分新的动物。

体验定制化视觉服务

下面我们一起动手在线体验一下定制化视觉服务,试着训练模型并导出。

登录定制化视觉服务

定制化视觉服务的官方地址是 Custom Vision - Home,打开网站后,点击SIGN 在。使用该服务需要准备微软账号,也可以直接在定制化视觉服务官方地址上创建。

登录后,界面会提示要求同意一些条约。条约的大致内容就是,个人必须在微软要求的规则下使用微软提供的这项服务。请勾选I 同意

此时,界面会提示注册Azure,因为定制化视觉服务实际上是Azure提供的一项云服务,正式使用这项服务需要有Azure订阅。

不过我们现在只是免费试用,所以选择Continue with trial,如果在根据本文流程做完了一个小应用之后,你觉得确实需要使用这项服务,那么你可以去注册Azure账号,获取Azure订阅。

创建定制化视觉服务项目

点击NEW PROJECT,填写项目信息。填写好Name和Description,这里Name不妨填写为BearClassification。随后选择Classification和General(compact),点击Create。

项目类型一栏,定制化视觉服务提供了分类和目标检测两种服务,这里选择分类项目。

分类 Types一栏,这里使用的图片中,每张图片只有一种熊,这里选择每张图片一个标签的模式。

Domains一栏,可以看到服务提供了多种预定义的场景,可以对特定领域的分类给出更好的结果。但是这里没有专门针对动物的,所以使用通用领域。另外还可以看到有的领域区分带compact标记和不带标记的,本文使用带标记的,即General(compact)领域。

带有compact标记,表明训练后的结果是一个压缩模型。压缩模型,顾名思义,模型占用的空间更少,运行更快,甚至可以放到手机这种移动设备里。当然,会有一个小问题就是精确度会受影响。但是压缩模型也有好处,导出模型后,模型文件的使用是没有任何限制的,而其余的几种场景只能通过调用API来进行预测,当前属于免费试用,有10000次调用上限。

添加数据

点击Add images,选择前面事先准备好的5张黑熊的照片,然后在弹出的Image upload页面中,设置My Tags的值为black bear,然后点击Upload 5 files。

注意,My Tags值不能使用中文,否则后续识别的结果会乱码。

重复以上步骤,依次添加灰熊、北极熊和大熊猫的训练数据,对应的标签是棕熊、北极熊和giant panda。

最后,上传不是熊的图片做为负例,对应的标签可以直接选择Negative。

训练

在添加了所有的数据集和标签之后,点击网页上方的Train,开始训练模型。

大约十秒钟以后,训练就完成了,页面会自动跳转到Performance页面,并显示本次训练的结果。如图所示,这里只训练了一次,左侧只有一个Iteration1,如果有多次训练就会出现多个Iteration,右侧是本次训练得到的模型的一些指标。

Precision准确率和Recall召回率,是两个评估模型好坏的主要指标。简单来说,两个数都是越大越好。但是这两个数据其实很难两全,提高其中一个,必然会降低另一个。

举个例子,欧美的法律很讲证据,是无罪推定。即,不能证明某人有罪,那就判他无罪。所以,被判刑的人,都是证据确凿的。这时,我们说罪犯中实际犯罪的人的比例非常高,但是很多罪犯可能并没被抓起来,所以召回率很低。而电视里看到的特务经常会说,宁可错杀一千,不可放过一个。这是有罪推定。只要有疑点,就抓起来。我们假设这里说的都是真正的罪犯。这时,我们说,罪犯中实际犯罪的人比例可能不高,有不少都是被冤枉的,所以准确率很低。但可以认为罪犯基本上都被抓住了,所以召回率比较高。

在这个项目中,以brown bear为例:Precision准确率,表示在所有被识别为棕熊的图片中真正有棕熊的图片所占的比例;而Recall召回率则是测试结果中正确识别为棕熊的图片占测试集中所有棕熊图片的比例。

测试

定制化视觉服务支持快速的在线测试,点击页面顶部的Predictions进入预测页面,然后点击Quick Test,打开测试页面。输入一张网络图片的地址或上传一张本地图片就可以看到预测结果。

这里,我们上传一张棕熊的图片(图片来源),可以看到这个棕熊能够被正确的识别出来。

   在线教程

有需要的小伙伴,可以点击下方链接免费领取或者V扫描下方二维码免费领取🆓

请添加图片描述

人工智能书籍

第一阶段:零基础入门(3-6个月)

新手应首先通过少而精的学习,看到全景图,建立大局观。 通过完成小实验,建立信心,才能避免“从入门到放弃”的尴尬。因此,第一阶段只推荐4本最必要的书(而且这些书到了第二、三阶段也能继续用),入门以后,在后续学习中再“哪里不会补哪里”即可。

第二阶段:基础进阶(3-6个月)

熟读《机器学习算法的数学解析与Python实现》并动手实践后,你已经对机器学习有了基本的了解,不再是小白了。这时可以开始触类旁通,学习热门技术,加强实践水平。在深入学习的同时,也可以探索自己感兴趣的方向,为求职面试打好基础。

第三阶段:工作应用

这一阶段你已经不再需要引导,只需要一些推荐书目。如果你从入门时就确认了未来的工作方向,可以在第二阶段就提前阅读相关入门书籍(对应“商业落地五大方向”中的前两本),然后再“哪里不会补哪里”。

 有需要的小伙伴,可以点击下方链接免费领取或者V扫描下方二维码免费领取🆓

在这里插入图片描述

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值