微软认知服务 Computer Vision

                                                                       微软认知服务 Computer Vision

在这一篇中将大致介绍Compute Vision这个类别提供的功能,以及如何在应用程序中使用这些功能。

 

Compute Vision 功能

在入门篇中提到微软认知服务通过五个大类来提供服务。其中Vision是五大类之一,用于分析图像和视频。到我写这篇博文为止, vision之下有这几个大类别

(截图来自 https://docs.microsoft.com/en-us/azure/cognitive-services/):

Compute Vision 以Azure 服务的形式为以上列举的功能提供图像处理的高级算法。开发者订阅该服务后,可以通过REST API或者SDK的方式来调用这些服务,以达到轻松管理图像,分析图像的功能。

Compute Vision可以分析符合以下要求的图像:

图像必须以 JPEG、PNG、GIF 或 BMP 格式显示

图像的文件大小必须不到 4 兆字节 (MB)

图像的尺寸必须大于 50 x 50 像素

对于读取 API,图像的尺寸必须介于 50 x 50 和 10000 x 10000 像素之间。

 

通过分析图像检测其视觉特征

这一块包含非常多的内容,具体可以参考这里的介绍

https://docs.microsoft.com/en-us/azure/cognitive-services/computer-vision/home

https://docs.microsoft.com/zh-cn/azure/cognitive-services/computer-vision/home

简单来讲,可以检测和识别图像的中包含的物件包括人脸识别,品牌log识别,生成定制的缩略图,检测图像属性如是否为线框(素描)/剪贴图,主题颜色, 基于父/子继承的标识分类描述(微软定义了86个标识来描述一些分类,86个标识定义在此 https://docs.microsoft.com/zh-cn/azure/cognitive-services/computer-vision/category-taxonomy)。

此外,还有使用自然语言描述图像内容(在通过REST API章节中提供示例 )。

从图像中提取文本

在含有文字的图片中提取出计算机可识别的字符流(支持25种语言),对于英语和西班牙语还支持手写文本图片,并达到比较高的准确率。

管理图像的内容

检测图像中的成人内容,并返回不同分类的置信度分数。 且通过API提供的阀值设置项,可以根据需要返回检测内容。

如何使用

Compute Vision API提供各种编程语言的SDK, 比如JavaScript, C#, Java和Python。

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

定阅compute vision,获得使用的Key

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

选中 “compute vision”,进入以下页面

点击create,进入以下页面

点击下面的蓝色按钮后,进入初始化页面,初始化结束后,

点击 “Go to resource”进入, 在quick start tab 页可以看到该资源服务的使用key

API console及testing console

点击 API console,可以看到compute vision服务提供的所有 API。

前面截图中提到过,POST API 的内容包含Location信息,在该页面根据创建定阅的信息时选择的location来选择对应的选项可以进入API测试平台。

进入测试控制台后,在Ocp-Apim-Subscription-Key 右边输入创建定阅所得的Key

在visualFeatures 右边的下拉框中选择需要分析的参数,就能快速得到request API 如下

如果在Input requirements下输入一张有效合法的图片链接,点击”send”button,便能在Response content看到图像分析的结果。

通过REST API 调用 Compute Vision Service

构建request:

Rest API是基于URL工作的。可以参考cURL(http://www.ruanyifeng.com/blog/2019/09/curl-reference.html) 的工作方式来探讨 URL的形式和组成。

一般cURL的请求会有:URL,Header ,“{body}“

 compute vison REST API中URL是这样的:

红色部分为参数,根据需要分析的内容而改变。

compute vison REST API中headers:

一般包括两个,一是用来指定Ocp-Apim-Subscription-Key,一个用来指定content-Type, 如,json, octet-stream等。

compute vison REST API中{body}:

指需要上传的图片数据,可以用能够访问到图片的url,也可以使用byte 流。

基于以上分析,在c#中可以通过以下程序构建图像分析请求

完整代码提供在此, https://download.csdn.net/download/mochounv/12309700

需要替换自己的key和Location api.

通过SDK本地调用 Compute Vision Service

在程序中使用compute vision SDK,需要使用创建定阅时的KEY和EndPoint (前面REST API 使用的是Location_API).

在.net中应用程序中(.netcore和.Net Framework.sdk 都可以)通过NUGET 添加Microsoft.Azure.CognitiveServices.Vision.ComputerVision 作为reference, 就可以使用service中的API.

在这个SDK中主要的API对象有:

ComputerVisionClient, 是所有compute vision功能的入口,通过定阅信息进行初始化。

ComputerVisionClientExtensions, 包含每一个具体功能的API,比如以下将举的例子文本识别,

就使用该extentsion 中的API RecognizeTextInStreamAsync

可能因为该服务的功能是不断发展变化的,所以微软将功能都放在这样的一个extensions中,以满足后续的不断扩展。

以下例子就通过以上SDK API实现文本识别

  1. 创建ComputeVisionClient 对象

 

    protected static ApiKeyServiceClientCredentials Credentials

        {

            get

            {

                return new ApiKeyServiceClientCredentials(API_Key);

            }

  }

var client = new ComputerVisionClient(Credentials) { Endpoint = Endpoint }

2 调用文本识别API

3 得到分析结果

作为输入的文本图片:

分析的结果效果

 

完整的程序代码在此https://download.csdn.net/download/mochounv/12309704

需要替换自己的key 和endpoint

使用OCR API时,需要注意以下限制:

模糊的图片;手写的或者草书,艺术字体,小号字,复杂的背景,阴影,模糊或扭曲等问题。

同时作为分析的图片也有以下要求:

尺寸 >=40*40 and <= 3200*3200 pixel

总像素不太于10 M

存储不大于4M

必须为JPEG, PNG,GIF,BMP

 

其它参考资料

https://docs.microsoft.com/en-us/azure/cognitive-services/computer-vision/

https://docs.microsoft.com/en-us/azure/cognitive-services/computer-vision/quickstarts-sdk/client-library?pivots=programming-language-csharp

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值