微软认知服务 图像自定义分类器

                                                           微软认知服务 图像自定义分类器

在这一篇中将大致介绍Custom Vision这个类别提供的功能,且通过创建一个字母图像识别器来说明Custom Vision 如何使用。

Custom Vision Service

功能

简单来说该服务可以为用户自定义数据快速地构建分类器,根据生成的分类器,可以预测新数据是某个分类的概率。比如:如果我们需要在图片中找出一条白色毛,穿红色宠物服的狗。那么我们可以上传带有这两个特征图像集,并且将其设置为WhiteDog_RedClothes,则该服务根据上传的图像集构建一个模型,这个模型可以对于新上传的图像判断出图片为WhiteDog_RedClothes的概率。

当然,判断的结果很有可能不理想,那么则需要对输入数据进行调整,具体见下一篇文章(自定义预测模型的优化)。

服务提供方式

该服务提供多种语言(c#,python,java,javascript)版本的SDK和可视化的网页接口,可以当独使用其中任意一种,也可以两者结合使用。比如通过在在网页端上传数据训练模型,然后在应用程序中通过SDK  API使用训练好的模型。

图像分类过程可以看作是由三个阶段组成的流水线,

首先是输入阶段,在这个阶段时,使用训练集手动分类为我们希望模型识别的每个类别;

然后是学习阶段,使用这些训练集来学习类别的独特特征。这也是模型训练过程(training the model)。

最后是评估模型,查看其正确程度是否达到可以使用的水平。用的是另一些与training set中不同的数据(但是数量少一些,一般是training set 的25%),并且也进行了手动分类(分类器与输入阶段的一样)在2.0版本中,会自动将数据分为training set和evaluation set。

通过提供完善的数据,根据以上步骤培训出符合要求的模型后,就根据可以这个模型进行预测。

与Compute Vision Service的区别

Computer Vision Service: 由使用较通用的模型,由微软持续编译,维护和改善。使用该预编译的模型可以进行一些较通用的图像分类,文本识别,智能生成缩略图。如果目标是在应用程序中提供常规图像分类服务,则Computer Vision服务可能是最好的选择,因为它不需要对图像进行分类,标记和构建和测试模型的工作。比如:在图片找出一条狗。

创建字母识别器

同所有azure资源一样,使用一个资源总是从定阅开始。如果之前定阅过cognitive service的话,那么对于这个service也可以使用之前cognitive service的定阅Key。如果没有,请参考以下定阅步骤。

定阅Custom Vision

打开https://portal.azure.com/,  进入以下页面(无法进入该页面的,请参考入门篇),在搜索框中输入custom vision, 如下

选中,弹出如下界面

点击 create

参数说明:

Resources group, 为所创建的资源选一个group,可以加到已存在的group中,也可以新创建一个。

Training pricing tier,选择一个免费的。

但是免费选项在使用上是有限制的,每个subscription只能有一个(服务),在这个里面,使用的训练数据和transaction次数也是有限的。使用付费版本时,需要为每千次transaction支付一定的费用,并且还需要支付数据的存储费用。

费用详情在此

https://azure.microsoft.com/en-us/pricing/details/cognitive-services/custom-vision-service/

 

点击 “Next:Tag” button,为资源设置一个tag,貌似不能缺省

Tag 设置完成后,会到以下确认界面。

确定之后,进入 环境配置等待页面中,配置完成后,会出现以下面界面

这里会自动多创建一个带Prediction后缀名的资源 ,点击右上角的settting按钮进入,可以看到这是一个service/project下面的两种不同的资源类型。

前面 “服务提供方式”的章节中,我们可以看到该服务提供构建自定义分类器的功能,也提供预测功能。并且这两部分都可以分开使用的,所以当我们创建了该资源时,会自动生成用于预测的资源。

打开刚才创建的资源 “CustomVisionForStudy”,在弹出的窗口中点击 custom vision portal

此时,若还没创建项目时,会弹出 “Terms of Service”的确认框,点击 “I agree”

Loading 完成后,可以创建项目

所有在这里提交的参数信息都可以后面根据具体的需求修改。(需要修改时,在此页面,打开已创建的project,点击右上角的setting)

创建好之后,就可以直接上传用于作模型训练的数据,以下例子中使用的数据上传在此

https://download.csdn.net/download/mochounv/12323370

实现字母识别

数据输入

点击 “Add Images” ,可以上传数据,并且对于上传数据给一个Tag,这个Tag就相当于自定义类别的标识符。因为在本例中是为了识别字母,所以我上传了所有“a” 字母的图片,给的tag都是”a“,

所有”b”字母图片,给”b”…部分测试数据集上传在此。

模型训练

上传好数据,并做好标签后,直接点击右上角的train按钮,服务器就会自动为我们创建好模型并且评估模型。

完成后,我们将为模型的迭代1提供一些统计信息。每次我们训练模型时,我们都会保存一个新的迭代。修改输入,改变迭代的输出结果,提供模型的精确度。

模型评估

Precision 与recall

假如总输入是6张图片,3张为A类,3张为B类,如果模型预测2张A类的图片为A类图片,2张B类图片也为A类图片,那么,precision为50%; recall 为2/3 =67%。

预测功能

点击右上角的 “Predictions” 上传任意新数据,比如我上传了一个大小不一样的”a”图片。得到以下结果,这个结果主要原因是我的数据集中有部分图片不清晰造成,下一节将讨论尝试提高预测的精确度。

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值