澳门在线威尼斯官方 > 澳门在线威尼斯官方 > Version识别水果

原标题:Version识别水果

浏览次数:136 时间:2019-12-01

概述

微软Custom Vision提供了成熟开源的计算机视觉开发框架,你只需要上传十张训练图片,即可一键训练图像分类模型(比如识别不同的水果、花卉、地标、人脸)。不需要具备任何深度学习算法知识,小学生都能快速上手。Custom Vision提供了API接口,你还可以将模型部署在网站、手机移动端、微信小程序中。

微信公众号:人工智能小技巧

本文配套B站视频:用微软Custom Version识别水果—不用写代码,三分钟做一个人工智能小应用

发布于2018-11-8

前面一篇 Microsoft AI - Custom Vision 中,我们介绍了 Azure 认知服务中的自定义影像服务:Custom Vision,也介绍了如果通过这个在线服务,可视化的完成项目创建、数据集上传和标注、模型训练、模型评估和测试。我们也提到,除了可以使用可视化在线操作的方式,Custom Vision 也提供了 SDK 来完成整个机器学习过程,两种语言供选择:C# 和 Python,今天我们针对 C# 版本来做一次实际开发操作。

[TOC]

开发过程

在美剧《硅谷》中,程序员Jian-Yang开发了一款识别图片中物体是不是热狗的app,虽然听名字就知道,功能十分鸡肋弱智,但由于搭上了人工智能和虚拟现实的快车,这个app迅速获得了硅谷风投公司的青睐并大捞一笔。这部剧深刻讽刺了人工智能浪潮下的经济泡沫以及硅谷投资人的盲目冲动。难怪十九大报告中提出要将”人工智能与实体经济深度融合“。

准备工作

其实,你也可以用不到三分钟时间轻松开发一款类似的应用,也许下一个硅谷弄潮儿就是你!

C# Custom Vision SDK 在 GitHub 开源:Microsoft/Cognitive-CustomVision-Windows,这个 SDK 主要分为两部分:Prediction 和 Training,如果不想下载 SourceCode 自己去编译,也可以直接在 VS 中通过 Package Management 安装这两部分的 Nuget package:

图片 1热狗识别app图片 2Not Hotdog

  • Microsoft.Cognitive.CustomVision.Prediction  Install-Package Microsoft.Cognitive.CustomVision.Prediction -Version 1.2.0
  • Microsoft.Cognitive.CustomVision.Training     Install-Package Microsoft.Cognitive.CustomVision.Training -Version 1.2.0

微软Custom Vision提供了成熟开源的计算机视觉开发框架,你只需要上传十张训练图片,即可一键生成图像分类app。你不需要具备任何深度学习、图像处理的算法知识,小学生都能快速上手。Custom Vision提供了API接口,你还可以将模型部署在网站、手机移动端、微信小程序中。

      图片 3

本文配套B站视频:用微软Custom Version识别水果—不用写代码,三分钟做一个人工智能小应用

实际开发

关注微信公众号 人工智能小技巧 回复 苹果 即可看到这个视频。

接下来我们创建一个 WPF 工程来实际操作整个 Custom Vision SDK 使用过程:

图片 4Custom Vision

  1. 通过 Nuget Package Management 的安装方式,安装 Prediction 和 Training 两个包,地址如上面准备工作中所示;来看一下包里的 namespace 组成:

Custom Vision官网

图片 5

点击进入后免费注册微软账号,即可新建模型项目。

除此之外,还需要安装 Microsoft.Rest.ClientRuntime 的 Nuget,因为 Custom Vision SDK 依赖于它,地址:Install-Package Microsoft.Rest.ClientRuntime -Version 2.3.11

图片 6工作流程图片 7新建项目图片 8上传图片并打标签

  1. Nuget 包安装完成后,在代码中引入以下 Namespace:

    using Microsoft.Cognitive.CustomVision.Training; using Microsoft.Cognitive.CustomVision.Prediction; using Microsoft.Cognitive.CustomVision.Training.Models;

  2. 创建一个 Custom Vision Project:

注意事项:

1、不能只上传一个标签的图片,否则模型无法通过交叉验证的方式对照学习。也就是说,不能只上传苹果的图片,而是至少上传苹果和香蕉两种水果的图片并分别打标签。

2、上传的训练图片要包含对象整体,而非局部。

3、上传不同背景、角度、大小的照片。

4、每个标签上传十几张图片就够了。

其中 ApiKey 需要替换为开发者在 CustomVision.ai 网站获取的 Training Key;另外 CreateProject 创建时,名字是必填的,描述和域都是选填的;域的类型是 GUID,我翻看了 SDK Doc 和源代码,没有发现对域的 GUID 取值的任何描述,后来在 CustomVision.ai 通过网页调试方法找到了 Domains 字段对应的 GUID,在这里也分享给大家;来看一下代码实现和实现的结果吧:

图片 9训练模型

TrainingApi trainingApi = new TrainingApi() { ApiKey = "replace with your api key" };
Project demoProject = trainingApi.CreateProject(
    "CsharpDemoProject01", 
    "It's description of our demo project.", 
    new System.Guid("0732100f-1a38-4e49-a514-c9b44c697ab5"));

等待几秒钟之后,模型就训练完成了。

项目类型 GUID
 General    ee85a74c-405e-4adc-bb47-ffa8ca0c9f31
 Food    c151d5b5-dd07-472a-acc8-15d29dea8518
 Landmarks   ca455789-012d-4b50-9fec-5bb63841c793
 Retail     b30a91ae-e3c1-4f73-a81e-c270bff27c39
 Adult    45badf75-3591-4f26-a705-45678d3e9f5f
 General(compact)  0732100f-1a38-4e49-a514-c9b44c697ab5
 Landmarks(compact)  b5cfd229-2ac7-4b2b-8d0a-2b0661344894
 Retail(compact)  6b4faeda-8396-481b-9f8b-177b9fa3097f

窗口中显示的Precision和Recall是用于评价我们训练的分类模型分类效果的两个参数。

 

Precision:被预测为苹果的结果中有多少真实就是苹果。

 

Recall:真实为苹果的样本中有多少被预测正确了。

 

简单来说,Precision就是宁可放过不可杀错,Recall就是宁可杀错不可放过。

 

在机器学习领域,通常使用F-measure参数将这两个参数综合起来。

 

图片 10Precision与Recall

 

Precision和Recall随着分类阈值的变化而此消彼长,使用Precision-recall曲线,来显示出分类器在Precision与Recall之间的权衡。

 

打个比方,如果有个人号称是地震预测的专家,如果他每天都说第二天不会发生大地震,那么他有相当大的概率能够预测成功,也就是说Precision很大。但我们不能说这就是一个好的模型,因为当地震真来临的时候他能够预测成功的概率是0,也就是Recall很低。综合起来的F-measure也很低,所以这是一个失败的分类器。

本文由澳门在线威尼斯官方发布于澳门在线威尼斯官方,转载请注明出处:Version识别水果

关键词:

上一篇:没有了

下一篇:没有了