Azure 认知服务--计算机视觉 API - 分析图像
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Azure 认知服务--计算机视觉 API - 分析图像相关的知识,希望对你有一定的参考价值。
在本节中,笔者将详细介绍 Azure 认知服务中的一种:计算机视觉 (Computer Vision) API。
我的一个客户有需求,他们需要消费者与自己的产品合照,然后上传到服务器并转发到朋友圈。
但是为了防止恶意用户上传不健康的照片,需要对图像进行筛查。
计算机视觉 API 的分析图像功能,正好有 Adult 参数,可以检测图像是否是色情的,正好满足客户的需求。
请注意:
本文使用的是国内由世纪互联运维的 Azure China 计算机视觉服务,API 参考。
如果是使用的是海外的 Azure China 计算机视觉服务,API参考。
计算机视觉解决的问题:
1. 分析图像
检查图像中发现的视觉内容,分析是否有不健康内容。
2. 生成缩略图
裁剪和生成缩略图。
3. 读取图片中的文字
4. 识别名人
关键步骤主要有:
接下来我们进入 Demo 时间,在开始之前,请先准备 Azure China 账户。
第一部分:创建计算机视觉 API,并获得 API Key
1. 我们找到需要分析的图片 URL,我这里准备了一张人脸的照片。
2. 我们登录 Azure China 管理界面。
3. 点击下图的认知服务账户
4. 点击 创建认知服务账户。如下图:
5. 定价层,我们选择免费。因为是 Demo 环境,我们就用免费,如果是生产环境建议选择标准。
6. 创建完认知服务以后,我们点击密钥,获得访问这个计算机视觉 API 的 Access Key。请保留好这个 Key,下面还要继续使用。
第二部分:了解 API 参数
1. Request URL:
2. Reques t 参数:
(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. 选择打开 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"}
所有参数的修改内容如下图:
然后我们点击 API 测试控制台的 Send。显示识别结果。
下面的结果我就不一一说明了,主要的显示结果有:
1. faces,识别出图像中的人脸坐标,性别和年龄
2. adultScore,识别出检测图像是否是色情的,分数越高,则图像色情的可能性越大
Pragma: no-cache apim-request-id: 8a9e6b8c-3a20-42a0-91e0-52d6fbdc5f9e Strict-Transport-Security: max-age=31536000; includeSubDomains; preload x-content-type-options: nosniff Cache-Control: no-cache Date: Thu, 15 Jun 2017 09:06:16 GMT X-AspNet-Version: 4.0.30319 X-Powered-By: ASP.NET Content-Length: 1595 Content-Type: application/json; charset=utf-8 Expires: -1 { "categories": [ { "name": "people_group", "score": 0.9765625 } ], "adult": { "isAdultContent": false, "isRacyContent": false, "adultScore": 0.01091344840824604, "racyScore": 0.055492393672466278 }, "tags": [ { "name": "outdoor", "confidence": 0.99716836214065552 }, { "name": "person", "confidence": 0.99493598937988281 }, { "name": "posing", "confidence": 0.95204299688339233 }, { "name": "group", "confidence": 0.82954329252243042 }, { "name": "people", "confidence": 0.583439290523529 }, { "name": "crowd", "confidence": 0.019400959834456444 } ], "description": { "tags": [ "outdoor", "person", "posing", "photo", "grass", "group", "standing", "people", "man", "woman", "young", "holding", "dress", "white", "court" ], "captions": [ { "text": "a group of people posing for a picture", "confidence": 0.94583615520612 } ] }, "requestId": "8a9e6b8c-3a20-42a0-91e0-52d6fbdc5f9e", "metadata": { "width": 600, "height": 463, "format": "Jpeg" }, "faces": [ { "age": 42, "gender": "Male", "faceRectangle": { "left": 117, "top": 159, "width": 95, "height": 95 } }, { "age": 54, "gender": "Male", "faceRectangle": { "left": 490, "top": 111, "width": 90, "height": 90 } }, { "age": 61, "gender": "Female", "faceRectangle": { "left": 17, "top": 153, "width": 85, "height": 85 } }, { "age": 33, "gender": "Female", "faceRectangle": { "left": 386, "top": 166, "width": 81, "height": 81 } }, { "age": 15, "gender": "Female", "faceRectangle": { "left": 235, "top": 159, "width": 77, "height": 77 } }, { "age": 6, "gender": "Female", "faceRectangle": { "left": 323, "top": 163, "width": 67, "height": 67 } } ], "color": { "dominantColorForeground": "White", "dominantColorBackground": "White", "dominantColors": [ "White", "Brown" ], "accentColor": "4E5D1A", "isBWImg": false }, "imageType": { "clipArtType": 0, "lineDrawingType": 0 } }
欢迎有兴趣的朋友多多交流
A究院研究生 [email protected]
以上是关于Azure 认知服务--计算机视觉 API - 分析图像的主要内容,如果未能解决你的问题,请参考以下文章
Azure 认知服务 - 计算机视觉 - OCR 不适用于手写