《Windows Azure Platform 系列文章目录

  

  在上一节内容中,笔者介绍了微软认知服务的概览。

  在本节中,笔者将详细介绍微软认知服务中的一种:计算机视觉 (Computer Vision) API

  我的一个客户有需求,他们需要消费者与自己的产品合照,然后上传到服务器并转发到朋友圈。

  但是为了防止恶意用户上传不健康的照片,需要对图像进行筛查。

  计算机视觉API的分析图像功能,正好有Adult参数,可以检测图像是否是色情的,正好满足客户的需求。

  

  请注意:

  -  本文使用的是国内由世纪互联运维的Azure China计算机视觉服务,API参考:

    https://dev.cognitive.azure.cn/docs/services/56f91f2d778daf23d8ec6739/operations/56f91f2e778daf14a499e1fa

  -  如果是使用的是海外的Azure China计算机视觉服务,API参考:

    https://westus.dev.cognitive.microsoft.com/docs/services/56f91f2d778daf23d8ec6739/operations/56f91f2e778daf14a499e1fa

 

  计算机视觉解决的问题:

  1.分析图像

  检查图像中发现的视觉内容,分析是否有不健康内容。

  2.生成缩略图

  裁剪和生成缩略图

  3.读取图片中的文字

  4.识别名人

  关键步骤主要有:

  1.创建计算机视觉API,并获得API Key

  2.了解API参数

  3.使用API测试控制台调试API,并设置调试API的参数

  接下来我们进入Demo时间,在开始之前,请先准备Azure China账户

  

  第一部分:创建计算机视觉API,并获得API Key

  1.我们找到需要分析的图片URL,我这里准备了一张人脸的照片:https://leizhangstorage.blob.core.chinacloudapi.cn/azureblog/analyzeimagesample.jpg

  2.我们登录Azure China管理界面:https://portal.azure.cn

  3.点击下图的认知服务账户

  

  4.点击 创建认知服务账户。如下图:

  

  5.定价层,我们选择免费。因为是Demo环境,我们就用免费,如果是生产环境建议选择标准。

  

  6.创建完认知服务以后,我们点击密钥,获得访问这个计算机视觉API的Access Key。请保留好这个Key,下面还要继续使用。

  第二部分:了解API参数

  1.Request URL: https://api.cognitive.azure.cn/vision/v1.0/analyze[?visualFeatures][&details][&language]

  2.Request参数

  (1)visualFeatures参数

    我们可以设置visualFeatures为:

    A.Categories:对图像内容进行分类

    B.Tags:对图像进行标记

    C.Description:用完整的英文句子描述图像内容

    D.Faces:检测脸部是否存在。 如果存在,生成坐标,性别和年龄

    E.ImageType:检测图像是剪贴还是直线绘图

    F.Color:确定重音颜色,主色,以及图像是否为黑白

    G.Adult:检测图像是否是色情的(描绘裸露或性行为)。 还会检测到性暗示内容。

  (2)details:

    如果设置Celebrities,则可以识别名人

  (3)language:

    默认是en,英文

    可以设置为zh,简体中文

  3.Request headers

  (1)Content-Type

  (2)Ocp-Apim-Subscription-Key:上面的API Access Key

  4.Request body

  (1)支持的图像为JPEG, PNG, GIF和BMP

  (2)图像的尺寸必须小于4MB

  (3)图像的分辨率至少为50 X 50

  第三部分:使用API测试控制台调试API,并设置调试API的参数

  我们拿到上面的API Key,就可以写代码开发了。不过Azure认知服务提供了非常好的控制台,可以方便我们进行API调试

  1.我们点击:https://dev.cognitive.azure.cn/docs/services/56f91f2d778daf23d8ec6739/operations/56f91f2e778daf14a499e1fa,选择打开API测试控制台

  2.在API控制台,修改以下内容:

  Query Parameters

  (1)visualFeatures,我们输入:Categories,Tags,Description,Faces,ImageType,Color,Adult

  这样识别多个元素。

  (2)details,我们不输入信息

  (3)language,使用默认的en

  

  Headers:

  (1)Content-Type,我们使用默认值

  (2)Ocp-Apim-Subscription-Key,我们输入步骤一的API Access Key

  

  Request body:

  (1)我们修改为:{"url":"https://leizhangstorage.blob.core.chinacloudapi.cn/azureblog/analyzeimagesample.jpg"}

  所有参数的修改内容如下图:

  

  Request URL为:https://api.cognitive.azure.cn/vision/v1.0/analyze?visualFeatures=Categories,Tags,Description,Faces,ImageType,Color,Adult&language=en

  然后我们点击API测试控制台的Send。显示识别结果。

  下面的结果我就不一一说明了,主要的显示结果有:

  1.faces,识别出图像中的人脸坐标,性别和年龄

  2.adultScore,识别出检测图像是否是色情的,分数越高,则图像色情的可能性越大

  1. Pragma: no-cache
  2. apim-request-id: 8a9e6b8c-3a20-42a0-91e0-52d6fbdc5f9e
  3. Strict-Transport-Security: max-age=31536000; includeSubDomains; preload
  4. x-content-type-options: nosniff
  5. Cache-Control: no-cache
  6. Date: Thu, 15 Jun 2017 09:06:16 GMT
  7. X-AspNet-Version: 4.0.30319
  8. X-Powered-By: ASP.NET
  9. Content-Length: 1595
  10. Content-Type: application/json; charset=utf-8
  11. Expires: -1
  12.  
  13. {
  14. "categories": [
  15. {
  16. "name": "people_group",
  17. "score": 0.9765625
  18. }
  19. ],
  20. "adult": {
  21. "isAdultContent": false,
  22. "isRacyContent": false,
  23. "adultScore": 0.01091344840824604,
  24. "racyScore": 0.055492393672466278
  25. },
  26. "tags": [
  27. {
  28. "name": "outdoor",
  29. "confidence": 0.99716836214065552
  30. },
  31. {
  32. "name": "person",
  33. "confidence": 0.99493598937988281
  34. },
  35. {
  36. "name": "posing",
  37. "confidence": 0.95204299688339233
  38. },
  39. {
  40. "name": "group",
  41. "confidence": 0.82954329252243042
  42. },
  43. {
  44. "name": "people",
  45. "confidence": 0.583439290523529
  46. },
  47. {
  48. "name": "crowd",
  49. "confidence": 0.019400959834456444
  50. }
  51. ],
  52. "description": {
  53. "tags": [
  54. "outdoor",
  55. "person",
  56. "posing",
  57. "photo",
  58. "grass",
  59. "group",
  60. "standing",
  61. "people",
  62. "man",
  63. "woman",
  64. "young",
  65. "holding",
  66. "dress",
  67. "white",
  68. "court"
  69. ],
  70. "captions": [
  71. {
  72. "text": "a group of people posing for a picture",
  73. "confidence": 0.94583615520612
  74. }
  75. ]
  76. },
  77. "requestId": "8a9e6b8c-3a20-42a0-91e0-52d6fbdc5f9e",
  78. "metadata": {
  79. "width": 600,
  80. "height": 463,
  81. "format": "Jpeg"
  82. },
  83. "faces": [
  84. {
  85. "age": 42,
  86. "gender": "Male",
  87. "faceRectangle": {
  88. "left": 117,
  89. "top": 159,
  90. "width": 95,
  91. "height": 95
  92. }
  93. },
  94. {
  95. "age": 54,
  96. "gender": "Male",
  97. "faceRectangle": {
  98. "left": 490,
  99. "top": 111,
  100. "width": 90,
  101. "height": 90
  102. }
  103. },
  104. {
  105. "age": 61,
  106. "gender": "Female",
  107. "faceRectangle": {
  108. "left": 17,
  109. "top": 153,
  110. "width": 85,
  111. "height": 85
  112. }
  113. },
  114. {
  115. "age": 33,
  116. "gender": "Female",
  117. "faceRectangle": {
  118. "left": 386,
  119. "top": 166,
  120. "width": 81,
  121. "height": 81
  122. }
  123. },
  124. {
  125. "age": 15,
  126. "gender": "Female",
  127. "faceRectangle": {
  128. "left": 235,
  129. "top": 159,
  130. "width": 77,
  131. "height": 77
  132. }
  133. },
  134. {
  135. "age": 6,
  136. "gender": "Female",
  137. "faceRectangle": {
  138. "left": 323,
  139. "top": 163,
  140. "width": 67,
  141. "height": 67
  142. }
  143. }
  144. ],
  145. "color": {
  146. "dominantColorForeground": "White",
  147. "dominantColorBackground": "White",
  148. "dominantColors": [
  149. "White",
  150. "Brown"
  151. ],
  152. "accentColor": "4E5D1A",
  153. "isBWImg": false
  154. },
  155. "imageType": {
  156. "clipArtType": 0,
  157. "lineDrawingType": 0
  158. }
  159. }

 

  

Azure 认知服务 (2) 计算机视觉API - 分析图像的更多相关文章

  1. Azure 认知服务 (3) 计算机视觉API - 分析图像,使用C#代码

    <Windows Azure Platform 系列文章目录> 在上一节中Azure 认知服务 (2) 计算机视觉API - 分析图像,笔者介绍了如何使用API测试控制台进行调试. 本章将 ...

  2. Azure 认知服务 (5) 计算机视觉API - 使用C#代码实现读取图片中的文字(OCR)功能

    <Windows Azure Platform 系列文章目录> 在笔者之前的文章:Azure 认知服务 (4) 计算机视觉API - 读取图片中的文字 (OCR) 介绍了使用用户界面,在海 ...

  3. Azure 认知服务 (4) 计算机视觉API - 读取图片中的文字 (OCR)

    <Windows Azure Platform 系列文章目录> 微软Azure认知服务的计算机视觉API,还提供读取图片中的文字功能 在海外的Windows Azure认知服务的读取图片功 ...

  4. Azure认知服务之Face API上手体验

    Azure认知服务:Face API Face API是Azure认知服务之一,Face API有两个主要功能: 人脸检测 Face API可在图像中以高精度人脸位置检测多达64个人脸.图像可以通过文 ...

  5. Azure 认知服务--计算机视觉 API - 分析图像

    在本节中,笔者将详细介绍 Azure 认知服务中的一种:计算机视觉 (Computer Vision) API. 我的一个客户有需求,他们需要消费者与自己的产品合照,然后上传到服务器并转发到朋友圈. ...

  6. Azure认知服务的实际应用-资讯采集推送

    Azure认知服务的实际应用-资讯采集推送 演示 实现的是通过使用各种azure服务,每天自动获取资讯.博客,定时推送到公众号的功能! 微信公众号搜索TechViews,或直接扫描二维码关注,每天推送 ...

  7. Azure 认知服务概述

    背景知识 近些年随着机器学习.深度学习等技术的不断发展,人工智能在越来越多的场景得到了应用,如人脸识别.图像识别.语音识别.语音生成.自然语言处理.决策分析等等,让机器拥有了听.说.看和思考的能力,很 ...

  8. 技术博客:Azure 认知服务

    Azure 认知服务 1.概述 ​ 微软认知服务(Microsoft Cognitive Services)集合了多种智能API以及知识API,使每个开发人员无需具备机器学习的专业知识就能接触到 AI ...

  9. Azure认知服务之表格识别器

    认知服务 Azure 认知服务的目标是帮助开发人员创建可以看.听.说.理解甚至开始推理的应用程序. Azure 认知服务中的服务目录可分为五大主要支柱类别:视觉.语音.语言.Web 搜索和决策.开发人 ...

随机推荐

  1. 腾讯云无法绑定公网IP问题解释与解决方案。

    http://blog.csdn.net/chenggong2dm/article/details/51475222 解释:公网IP并不直接配置在服务器上,而是在服务器外部的路由上,通过某种映射连接. ...

  2. 看我如何从一个APK到最终拿下域管理权限

    本文我将向大家介绍在企业网络中使用个人智能手机,会给我们企业网络造成怎样的潜在威胁?事实证明,想要欺骗一位企业内部的员工并让其安装恶意应用程序,其实并不困难.一旦成功,攻击者就可以突破企业内网的防护机 ...

  3. [ext4]01 磁盘布局 - block分析

    ext4文件系统最基本的分配单元是"block"(块). block是由一组连续的sectors来组成,其大小介于1k~4K之间,当然不可能是任意值,只能是2的整数次幂个secto ...

  4. tomcat 下部署单框架cas时,报出org.apache.jasper.JasperException异常的解决办法

    在tomcat中部署好cas server(设置好https,将cas.war拷贝到了webapps下部署完成),启动tomcat后,访问http://localhost:8443/cas/login ...

  5. react native 升级到0.31.0的相关问题 mac xcode开发环境

    cmd + D和cmd + R快捷键没有反应 0.31.0版本换了一种加载方式,通过修改userDefaults达到debug目的 [userDefaults setObject:@"127 ...

  6. java局部/成员/静态/实例变量

    局部变量和成员变量主要是他们作用域的区别成员变量个是类内部:局部变量是定义其的方法体内部(或者方法体内部的某一程序块内——大括号,主要看定义的位置).另外,成员变量可以不显式初始化,它们可以由系统设定 ...

  7. tail命令

    tail命令用来取文件后几行,默认显示后10行.有多个FILE,每个都带有一个头文件名称. 语法: tail [OPTION]... [FILE]... 选项: -n#:取文件后#行,n可省略: -c ...

  8. ASP.NET MVC, Url长度过长问题解决,404.15问题

    最近在处理一个问题的时候,发现他们存在一个大量数据放在URL中传递的过程,当数据达到一定数量的时候就会报出404.15问题. 运行环境是在IIS8,经过查询之后发现,URL此时最大长度为2048,肯定 ...

  9. jQuery选择器---层次选择器总结

    今天要分享的是jQuery层次选择器,层次选择器的分类如图: 接下来就开始了 要不先养养眼精神一下: 开始1.祖先选择器: 案例: <form> <label>Name:< ...

  10. 用 Entity Framework结合Oracle数据库来开发项目

    项目需要,要使用Oracle 11g数据库.作为不想写SQL的程序员,所以...... 原先想当然的是使用EF+MSSQL的方式来进行配置.吃了哑巴亏.然后谷歌出了一篇好文,沿着这篇文章进行了搭建,I ...