3

Azure上的计算机视觉入门。

 3 years ago
source link: https://panchuang.net/2021/06/27/azure%e4%b8%8a%e7%9a%84%e8%ae%a1%e7%ae%97%e6%9c%ba%e8%a7%86%e8%a7%89%e5%85%a5%e9%97%a8%e3%80%82-2/
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
neoserver,ios ssh client

Azure上的计算机视觉入门。

fendouai • 2021年6月27日 am5:08 • Medium

计算机视觉是一个研究使计算机能够处理视觉世界并与之交互的算法和技术的研究领域。多年来,研究人员开发了一些算法,训练计算机通过学习标签或发现模式来分析数字图像和视频。¹

计算机视觉(CV)是一个用例比比皆是的领域,从检测图像中的人脸,到识别图片中的单个对象,甚至通过分析X射线图像来检测癌症。这些功能对企业和其他企业都有巨大的潜力,然而,从头开始构建这些模型通常需要大量的技术诀窍和资源,而许多企业可能还无法使用这些技术和资源,谢天谢地,我们可以利用预先培训的模型和完全托管的解决方案,如Azure Computer Vision,它为这些梦寐以求的解决方案抽象了大部分较低级别的工程。

Azure Computer Vision API是Azure认知服务的核心产品,这些认知服务是基于云的AI产品,允许开发人员利用云计算的灵活性和可扩展性来利用最先进的人工智能技术。计算机视觉API提供了对图像执行认知任务的一系列功能,该API可用于从图像中提取书面文本、检测成人内容、描述内容、使用完整的句子描述图像等。它们也是Azure认知解决方案中其他更专业的API,可以执行一系列CV任务,比如专门处理面部识别等与人脸相关的认知任务的Face API(文章即将发布)。

计算机视觉API的使用

这些只是计算机视觉API在您的应用程序或业务中的可能用法:

  • 对图像进行分类以便于保存。
  • 检测图像中的人脸。
  • 使用光学字符识别(OCR)从图像中提取打印和书写文本。
  • 为内容审核系统检测不合适的图像。
  • 用完整的句子描述一个形象。
  • 分析视频。
  • 若要使用Computer Vision API,你需要拥有活动的Azure订阅。
  • 在设置订阅后,你将需要创建一个认知服务帐户来访问所有Azure认知服务,或者创建一个特定的Computer Vision资源,后一个选项允许你以更模块化的方式管理你的云资源,因为你使用的每项服务都是单独计费和记录的。

设置您的认知服务帐户

它们是设置大多数Azure服务的两种主要方式:

Azure CLI允许用户以编程方式运行管理任务,从而提供自动化和可伸缩性等优势。

使用Azure命令行界面的认知服务。

要在云外壳中创建认知服务帐户,请在代码挡路中键入命令,参数如下:

az cognitiveservices create
  • 资源组:将拥有认知服务帐户的资源组。单击此处了解更多信息。
  • Kind:认知服务账号的接口名称。
  • 名称:您可以为认知服务指定名称。
  • SKU:SKU(库存单位)是指产品的价格级次。认知服务的SKU通常控制产品的调用频率,即每秒10k次调用。SKU可以是FO、S1、S2、S3和S4。
  • 位置:要创建服务的位置。最好选择离您最近的可用位置。
az cognitiveservices account create \
— kind ComputerVision \
— name Demo-VisionLab \
— sku S1 \
— resource-group [your resource group]\
— location westeurope

接下来,我们需要检索服务的访问密钥。

现在我们已经创建了一个帐户,我们可以通过此命令和下面的参数检索其访问密钥

az cognitiveservices account keys list \
--name ComputerVisionService \
--resource-group [Your Resource Group]\
  • 名称:认知服务帐户的名称。
  • resource-group:资源组的名称

命令成功后,将发送一个JSON响应,其中包含一个是备用密钥的密钥。保存这些钥匙。

key=$(az cognitiveservices account keys list \
--name ComputerVisionService \
--resource-group [Your Resource Group]\
--query key1 -o tsv)

上面的代码挡路显示了如何使用适当的参数运行到命令,它使用“query”参数指定key1,并将key存储为名为key的变量,可以使用以下命令访问它

echo $key

调用计算机视觉API

您可以使用您喜欢的编程语言通过睡觉端点、软件开发工具包(SDK)和HTTP库调用计算机视觉API。SDK和HTTP库最终围绕着睡觉端点。要访问端点,您需要以下各项:

“region.api.cognitive.microsoft.com/vision/v2.0/resource/[parameters]”

其中,region是您创建帐户的位置,例如,“westeurope”,而resource是您需要的特定计算机视觉工作负载,例如“Analyze”、“OCR”等。

使用分析功能

API的每个功能都有自己唯一的一组参数。讨论每个特性的调用方法可能是一篇单独的文章,我在不久的将来肯定会写这篇文章。但是,对于本文,我将展示如何单独使用Analyze特性。

回想一下,所有计算机视觉API资源的URL端点都遵循以下模式:

“region.api.cognitive.microsoft.com/vision/v2.0/resource/[parameters]”

特别是对于分析功能,URL遵循以下模式:

https://region.api.cognitive.microsoft.com/vision/v2.0/analyze[?visualFeatures][&details][&language]https://region.api.cognitive.microsoft.com/vision/v2.0/analyze[?visualFeatures][&details][&language]

注意上面URL中突出显示的部分,Analyze取代了resource,因为那是我们调用的功能/资源。其他突出显示的部分是参数,它们表示我们希望API执行的特定请求。

分析功能有三个参数,它们是指定我们希望API执行哪些任务以及返回哪些数据的方法。这些参数是:

好了,理论说得够多了。让我们设想一下,我们创建并维护了一款社交媒体应用程序,允许社区联系和共享信息。人们使用我们的应用程序来分享他们在社区公园里的照片,并交换安全提示和信息,作为一种数字社区手表。所有年龄段的人都在使用我们的应用程序,所以我们必须做出真正的努力,确保孩子们不会接触到任何不恰当的内容。

任何人都可以一眼看出上面这张漂亮的全家福是无害的,但想象一下,每天必须滚动数百名用户的数千张照片,这将是重复的,而且肯定不可能实时完成。这些类型的任务非常适合人工智能。

我们可以使用cURL直接从终端调用Azure computer Vision API。下面的代码挡路调用带有分析资源的接口,并将视觉功能设置为成人和描述(用逗号分隔)。然后,它设置两个标头,即要返回的订阅密钥和文件类型。最后,它指定了我们要分析的URL图像,即上面显示的全家福。如果运行成功,我们会得到一个迷你表,其中显示了有关调用本身和JSON响应的一些元数据,否则我们会收到一条错误消息。cURL

curl "https://westeurope.api.cognitive.microsoft.com/vision/v2.0/analyze?visualFeatures=Adult,Description" \
> -H "Ocp-Apim-Subscription-Key: $key" \
> -H "Content-Type: application/json" \
> -d "{'url' :'https://cdn-images-1.medium.com/max/800/0*ggV5fYc6l_S5UGnx'}" \
> | jq '.'

JSON响应可以分为四个部分:

  • 第一个是JSON响应的一部分,其中包含有关我们指定的视觉特性Adult的信息。它有两个属性“isracyContent”和“isAdultContent”设置为布尔值(true或false),在本例中为“false”,表示图像不包含任何成人内容。它还有另外两个属性,用来对图像的色情程度或包含成人内容的程度进行评分。
  • 第二部分包含作为标签的图像的关键字描述。请注意,这并不是因为API调用中设置了“description”参数,该参数紧随其后,以完整的句子(而不是关键字)为图像添加字幕。
  • 第三部分对应于API调用中的“description”参数,它生成一个标题,用完整的英文句子描述图像,因为我们没有设置任何特定的语言。它还包含介于0和1之间的分数,表示系统对标题的信心程度。
  • 第四部分包含关于我们处理的图像的元数据。

结论和建议

到目前为止,我们已经探索了计算机视觉,并发现了如何利用预先培训的、完全托管的云解决方案来支持AI应用。我们还了解到,我们可以直接从命令行提供和调用Azure AI服务,最后我们在映像上测试了该服务。

今天,用户期望应用程序具有智能功能,请记住,您可以在计算机视觉之外为您的应用程序探索更多令人兴奋的功能。在这里探索更多可能性。here

非常感谢大家阅读并享受一天中的睡觉,如果你和我一样纯粹是出于好奇而在午夜阅读这篇文章,那么祝你有一个愉快的夜晚,并睡个好觉:)。

原创文章,作者:fendouai,如若转载,请注明出处:https://panchuang.net/2021/06/27/azure%e4%b8%8a%e7%9a%84%e8%ae%a1%e7%ae%97%e6%9c%ba%e8%a7%86%e8%a7%89%e5%85%a5%e9%97%a8%e3%80%82-2/


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK