用微软Custom Version识别水果:三分钟开发人工智能小应用

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

作者:张子豪(同济大学微软学生俱乐部)

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

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

发布于2018-11-8

[TOC]

美剧《硅谷》中的热狗识别app

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

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

热狗识别app
Not Hotdog

微软开源机器视觉开发平台Custom Vision

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

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

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

Custom Vision

第一步:新建模型项目

Custom Vision官网

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

工作流程
新建项目

第二步:上传训练图片并打标签

上传图片并打标签

注意事项:

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

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

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

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

第三步:训练模型

点击右上角绿色的"Train"按钮

训练模型

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

模型评估参数

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

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

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

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

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

Precision与Recall

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

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

再打个比方,医疗诊断用的试剂有假阳性和假阴性,假阳性指的是一个正常人被测出有癌症,假阴性指的是一个癌症病人测出来没有癌症,这和Precision和Recall的道理也是一样的。

第四步:测试模型

点击右上角的Quick Test,进入测试界面,既可以上传图片文件,也可以上传图片的URL地址,模型就能正确识别出图片属于哪一类标签。

快速测试
快速测试

第五步:扩展开发—使用API编写Python脚本程序

Custom Vision提供了API接口,你可以将训练模型部署在网站、手机移动端、微信小程序中,从而开发自己的用户界面,并大批量识别图片。

在Performance栏中,选择Prediction URL,打开API界面。

Predicton URL
API

利用Python的requests库,构造post请求,Python脚本代码如下:

将body栏里的Url链接更换成你要识别的图片链接。

# 同济大学张子豪于2018年11月2日编写 
# 微信公众号:人工智能小技巧
import requests

def getHTMLText(url):
    try:
        headers = \
        {
            "Prediction-Key": "7e1469b8051b45329814ef7f2275a3ff",
            "Content-Type": "application/json",
        }
        body = \
        {
            "Url": "https://ss0.bdstatic.com/70cFvHSh_Q1YnxGkpoWK1HF6hhy/it/u=684871772,3282663100&fm=27&gp=0.jpg",
        }
    # Set Prediction-Key Header to : 7e1469b8051b45329814ef7f2275a3ff
    # Set Content-Type Header to : application/json
    # Set Body to : {"Url": "https://example.com/image.png"}
        r = requests.post(url,timeout=30,headers=headers,json=body)
        r.raise_for_status()  #如果状态不是200,引发HTTPError异常
        r.encoding = r.apparent_encoding
        return r.text
    except:
        return '产生异常'

if __name__ == "__main__":
    url = "https://southcentralus.api.cognitive.microsoft.com/customvision/v2.0/Prediction/7c9b4755-271f-4d32-82c5-3c93ba34df8b/url?iterationId=c4927c90-b28a-4c22-9957-3e0b4f2ce99e"
    print(getHTMLText(url))


例如,用下列测试图片做测试,运行Python脚本,结果如下:是香蕉的概率为100%。通过这个程序,你可以将这个图像分类模型部署在自己的云服务器上,搭建自己的网站、手机APP、微信小程序,向用户提供图像分类服务。

测试图片
运行结果

微软开源人工智能工具和深度学习框架

微软开源人工智能工具和深度学习框架介绍

关注微信公众号 人工智能小技巧 回复 微软 即可看到这篇文章。

本文介绍了微软在人工智能领域的领先成果、产品线,开源人工智能框架和工具。读者可以运用这些工具快速开发机器视觉、语音处理、视频检索等丰富的人工智能应用。

微软AI产品
微软Cognitive Service
微软开源人工智能框架CNTK

同济大学微软学生俱乐部

同济大学微软学生俱乐部

参考文献与扩展阅读

Custom Vision

【YOLO学习】召回率(Recall),精确率(Precision),平均正确率(Average_precision(AP) ),交除并(Intersection-over-Union(IoU))

用Microsoft Custom Vision技术识别点东西吧

学堂在线慕课:微软人工智能-深度学习框架和工具

用Microsoft Custom Vision技术识别点东西吧

科普文:大白话讲解卷积神经网络工作原理

B站视频:不用写代码,三分钟做一个人工智能小应用

视频:三分钟走进卷积神经网络

视频:大白话讲解卷积神经网络工作原理

微软亚洲研究院

微软亚洲研究院20年20人

作者介绍:

张子豪,同济大学在读研究生。微信公众号人工智能小技巧运营者。致力于用人类能听懂的语言向大众科普人工智能前沿科技。目前正在制作《说人话的人工智能视频教程》、《零基础入门树莓派趣味编程》等视频教程。西南地区人工智能爱好者高校联盟联合创始人,重庆大学人工智能协会联合创始人。充满好奇的终身学习者、崇尚自由的开源社区贡献者、乐于向零基础分享经验的引路人、口才还不错的程序员。

说人话的零基础深度学习、数据科学视频教程、树莓派趣味开发视频教程等你来看!

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

Github代码仓库:TommyZihao

个人主页:www.python666.org

同济大学开源软件协会
同济大学微软学生俱乐部
西南人工智能爱好者联盟
重庆大学人工智能协会

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 202,529评论 5 475
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,015评论 2 379
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 149,409评论 0 335
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,385评论 1 273
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,387评论 5 364
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,466评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,880评论 3 395
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,528评论 0 256
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,727评论 1 295
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,528评论 2 319
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,602评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,302评论 4 318
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,873评论 3 306
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,890评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,132评论 1 259
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 42,777评论 2 349
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,310评论 2 342

推荐阅读更多精彩内容