微软认知服务用户的5大建议

目录

简介和背景

微软认知服务的背景

提示#0:询问(说服)你的老板

提示#1:只取你需要的东西

提示 #2:将所有内容保存在Azure中

提示 #3:充分利用REST API

例子

提示#4:时间就是一切

提示 #5:安全性


简介和背景

正如标题所示,这篇文章是针对微软认知服务用户的个人推荐,这些服务为人工智能软件应用程序提供基于云的订阅解决方案,具有任何团队、任何目的和任何规模承诺。我们都知道,微软如今在Azure上投入了大量人力、推广和承诺,几乎他们的每一个解决方案都在Azure的边缘徘徊,并且以一种或另一种方式,他们得出了相同的结论,该解决方案可以作为软件即服务从Azure购买——还有许多其他名称,平台即服务、服务即服务,请从池中选择您喜欢的名称

在这篇文章中,我将介绍您的团队在迁移到Microsoft认知服务之前应该了解的最重要的几点。

微软认知服务的背景

对于不知道什么是Microsoft认知服务的任何人:Microsoft认知服务是一揽子服务,由Microsoft提供给任何规模和任何规模的个人、团队和/或组织,以提供需要复杂机器的服务学习或人工智能的反应。

完成机器学习是一项艰巨的任务,只需一个错误的输入,您的整个算法就可以{在此处添加俚语}。微软正在提供这项服务,您只需提供算法的输入,就可以获得输出。微软自己管理算法的微调方式,或者算法的性能,你不用担心。

它是一项基于订阅的服务,现在在Azure中作为服务提供。在这篇文章中,您将了解认知服务服务对您有多大帮助!

提示#0:询问(说服)你的老板

Microsoft认知服务针对数千(如果不是数百万)用户、数据记录和实体进行了测试,并且算法真的很具体!你无法达到微软认知服务真正提供服务的水平,原因是微软与相当多的学术教授、独立开发者、团队和组织合作,甚至大多数时候网上冲浪者都会出现并分享一些数据到云——所有这些都在一个许可下,微软要求许可,无论如何我不是在这里掩盖许可条款

获取权限,以便我们可以继续这篇文章。

提示#1:只取你需要的东西

认知服务是一个服务库,库中已经添加了很多服务,而且每个月都会添加许多服务。但这并不意味着您应该考虑所有这些,甚至是其中的一半。它们都归类在不同的子部分下,其中包含Microsoft CS提供的集体服务,

  1. Vison
    • 这组服务包含人脸API,例如识别和跟踪。
    • 它还提供可以从人脸中提取特征的服务,例如年龄、情绪检测。
    • 它还提供计算机视觉,允许用户对图像执行OCR功能。
  2. Speech
    • 允许您的用户根据他们的声音命令触发功能。自然语言处理。
    • 说话人识别——尖端技术!
    • 语音转文字和文字转语音服务。
  3. Language
    • 允许对文本进行语言分析。
    • 您也可以使用以前的服务对照片进行分析,这样您就可以使用OCR读取文本,然后对文本进行分析。
    • LUIS(语言理解智能服务)是新的Jarvis
  4. Knowledge
    • 推荐系统。
    • 任何需要复杂的学术或研究内容的东西。
  5. Seach
    • 旧版Bing API现在在此处提供……

同样,您可以看到这些是类别,甚至这些类别也具有您可能想要使用的不同API集和服务。由你决定,选择你需要的那个。

让我简单地说,如果您需要做的就是从图像中读取文本,将它们转换为语音并进行交流。那么你只需要购买“Computer Vision API”“Bing Speech API”。您的应用程序将不需要其余的服务。最后可以添加LUIS以支持以后的通信。

会有更多的服务,你总是可以添加更多的服务。但是,如果您不再使用某项服务,或者您的应用程序与某项服务无关,则无需为该服务购买密钥。

提示 #2:将所有内容保存在Azure

Microsoft CS是从不同区域(所有Microsoft属性)提供的,例如LUIS可以通过luis.ai访问,反之亦然。但是您应该保持家庭紧密,并将所有密钥和资源保留在Azure上。这样您就可以通过单个订阅管理所有内容,而不必查看各种不同的帐户来配置和使用应用程序。

Microsoft CS支持基于RESTAPI(我们将在后面的技巧中介绍这一点),因此很容易将密钥添加到URL并开始使用服务。

您可以在Azure中管理所有密钥,只需前往认知服务刀片并打开您想要为其获取密钥的应用程序。在密钥部分下,查找可用于验证请求的密钥。


1:与帐户关联的认知服务列表。

我有4项服务处于活动状态,我可以通过REST APIAzure中访问这些服务。那是多么简单!您可以添加更多密钥、添加更多服务、更新密钥……所有这些都来自Azure!在这篇文章的最后,你会意识到这个技巧的重要性。

提示 #3:充分利用REST API

Microsoft CS Azure端点作为REST API端点提供,您可以通过任何HTTP客户端(甚至是Web浏览器)进行访问。REST API,由于使用HTTP协议,允许您充分利用HTTP协议和发送/接收信息。目前微软CS支持两种方式上传信息到云端,

  1. 基于URL
  2. 二进制数据库

这是可以将内容交付到Azure进行处理的两种方式。除此之外,请求唯一需要的头是订阅密钥,添加到Ocp-Apim-Subscription-Key的头中,首先处理它,然后根据订阅信息处理其余的东西。

例子

现在让我向您展示WPF应用程序中的一个小示例,该示例使用计算机视觉API来检测图像的全部内容。Azure将生成一个完整的句子来解释图像、图像中的对象以及正在完成的任务。

WPF应用程序的XAML代码如下,

<Grid>
    <Grid.ColumnDefinitions>
        <ColumnDefinition />
        <ColumnDefinition />
    </Grid.ColumnDefinitions>
    <Border BorderBrush="Black" BorderThickness="1" Width="211" Height="188">
        <Image Name="image" HorizontalAlignment="Left" Grid.Column="0" Height="188" MouseLeftButtonDown="Image_MouseLeftButtonDown" VerticalAlignment="Top" Width="211"/>
    </Border>
    <Button Name="btn" Grid.Column="0" Margin="0,0,24,10" Height="20" Width="70" Click="btn_Click" VerticalAlignment="Bottom" HorizontalAlignment="Right">Process</Button>
    <Button Name="slct" Grid.Column="0" Margin="24,0,0,10" Height="20" Width="70" Click="slct_Click" VerticalAlignment="Bottom" HorizontalAlignment="Left">Select</Button>
    <TextBlock Name="rslt" Margin="10" VerticalAlignment="Center" TextWrapping="Wrap" Grid.Column="1" Text="Result will be here..." />
</Grid>


2WPF 应用程序正在运行,没有选择图像。

至于后端代码,C#代码编写如下,

private async void btn_Click(object sender, RoutedEventArgs e)
{
    using (var client = new HttpClient())
    {
        // Request headers
        client.DefaultRequestHeaders.Add("Ocp-Apim-Subscription-Key", "<the-subscription-key>");

        // Request parameters
        var uri = $"https://westus.api.cognitive.microsoft.com/vision/v1.0/analyze?visualFeatures=Description";

        // Request body
        if(fileName == null) { MessageBox.Show("Select a file first."); }
        byte[] byteData = File.ReadAllBytes(fileName);

        using (var content = new ByteArrayContent(byteData))
        {
            content.Headers.ContentType = new MediaTypeHeaderValue("application/octet-stream");
            var response = await client.PostAsync(uri, content);
        }

        rslt.Text = await response.Content.ReadAsStringAsync();
    }
}

private void slct_Click(object sender, RoutedEventArgs e)
{
    OpenFileDialog dialog = new OpenFileDialog();
    if (dialog.ShowDialog() == true)
    {
        // Something happened
        fileName = dialog.FileName;
        var source = new BitmapImage(new Uri(fileName));
        image.Source = source;
    }
}

同样,这段代码的输出,一旦工作,


3:选择的图像和从Azure捕获的响应。

如所见,这是结果,可以映射到JSON对象以进行存储或进一步处理请求。

提示#4:时间就是一切

我们对Microsoft CS的兴趣只有在它能够保证我们及时得到结果的情况下才有可能,例如如果我们将Microsoft CS投资于安全应用程序,那么应该及时向用户提供结果,滞后可能会导致我们重新考虑周围的东西。

所以,我也想展示请求的时间,以展示这一切是如何工作的。为此,我修改了代码并应用了以下更改,

Stopwatch watch = new Stopwatch();
watch.Start();
response = await client.PostAsync(uri, content);
watch.Stop();

rslt.Text = $"Request took {watch.ElapsedMilliseconds} ms to complete, for {byteData.Count()} sized byte array.\n\n";

rslt.Text += await response.Content.ReadAsStringAsync();

这样做的效果是我能够确定处理和返回结果需要多长时间。


4:显示时间的应用程序。

看上面的一段,它说,对于33282大小的字节数组,请求需要3519毫秒才能完成。这意味着,处理一个大约30 kB的文件大约需要3.5秒。还有其他因素导致延迟,例如我的互联网连接。其次,较大的图像文件会花费更多时间,较小的图像会快速处理但会出现错误。

我们从中学到了一些东西……

  1. Azure的时机不是很大的因素,因素是
    1. 我们自己的互联网连接
    2. 图像本身
  2. 要完成的处理类型很重要
    1. 处理15秒的低质量音轨与1分钟的高质量音轨,永远不会以相同的时间结束。
  3. 在这种情况下,CDN可能有帮助,也可能没有帮助

最后,不同API的要求不同,这就是为什么我不会谈论推荐的图像大小。但是,您可以通过将文件直接上传到 Azure来提高应用程序的性能,因为Azure总是会从URL下载文件 并对其进行处理。那么,为什么不直接上传呢?

提示 #5:安全性

您的应用程序的密钥非常重要。如果它们丢失了,或者任何人都可以访问它们,那么您应对所发生的事情负责——在最坏的情况下,他们可能会使用您自己的资源为自己使用,并且收费将由您承担!

请记住提示#2,如果您听从了我的建议,如果您觉得有人可以访问密钥,您现在可以轻松更改密钥。


5:显示为从Azure购买的Microsoft认知服务的密钥。

否则,如果您不喜欢每月更新安全密钥,可以使用其他方式隐藏密钥。其中包括,例如将密钥存储在安全区域,例如AzureKey Vault或任何其他任何人都无法访问的地方……但是,如果有人可以访问怎么办?

在许多方面,事情可能会出错,因此我建议每个月更新密钥。请注意,您可以使用密钥1或密钥2,并且可以独立更新两个密钥。

提醒:就在您阅读这篇文章时,我返回并重新生成了密钥……仅用了4秒就重新生成了两种密钥。

https://www.codeproject.com/Articles/5322057/Top-5-advices-for-users-of-Microsoft-Cognitive-Serc

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值