自定义图像列表
分类: Azure认知服务 ◆ 标签: #Azure #人工智能 #内容审查 ◆ 发布于: 2023-06-05 13:26:10

我们前面学习如何自定义文本审查服务的词语列表,用以将用户需要审查的服务和自定义词语列表进行对比,从而无需耗费内容审查的资源,直接就可以将需要审查的文本进行定性,对于图片审查服务来讲同样也是可以使用自定义的图像列表的。本节我们来学习如何自定义图像审查列表,同时使用该自定义列表进行比对。
我们前面有一篇是关于文本审查的自定义列表的,图像审查列表和文本实际上是差不多的。
本章的源代码可以从以下位置下载:
Demo Source Code
注意*
图片审查列表最大支持5个自定义列表,每个列表中最多包含1万张自定义图片。
创建项目并配置包引用
使用如下命令创建一个新的项目,同时向项目中添加必要的依赖包。
dotnet new console -n ContentModeratorImageCustomList
cd ContentModeratorImageCustomList
dotnet add package Microsoft.Azure.CognitiveServices.ContentModerator
dotnet add package Microsoft.Rest.ClientRuntime
dotnet add package Newtonsoft.Json
添加完包之后,使用编辑器打开Program.cs
, 并在头部添加如下的包引用:
using Microsoft.Azure.CognitiveServices.ContentModerator; using Microsoft.Azure.CognitiveServices.ContentModerator.Models; using Newtonsoft.Json; using System; using System.Collections.Generic; using System.IO; using System.Threading;
定义内容审查服务的客户端
代码如下
//创建内容审查服务的客户端 public static class Clients { private static readonly string AzureEndpoint = "<Your Endpoint>"; private static readonly string CMSubscriptionKey = "<Your Key>"; public static ContentModeratorClient NewClient() { // Create and initialize an instance of the Content Moderator API wrapper. ContentModeratorClient client = new ContentModeratorClient(new ApiKeyServiceClientCredentials(CMSubscriptionKey)); client.Endpoint = AzureEndpoint; return client; } }
主要的业务逻辑代码
主要的业务逻辑代码参考:
//使用自定义的图像列表 private static void MatchImages( ContentModeratorClient client, int listId, IEnumerable<string> imagesToMatch) { foreach (var imageUrl in imagesToMatch) { WriteLine(); WriteLine($"Matching image {imageUrl} against list {listId}.", true); var result = client.ImageModeration.MatchUrlInput( "application/json", new BodyModel("URL", imageUrl), listId.ToString()); Thread.Sleep(throttleRate); WriteLine("Response:"); WriteLine(JsonConvert.SerializeObject(result, Formatting.Indented)); } }
完整的源代码我们在文章里就不一一展开了,主要的使用自定义列表的代码就是client.ImageModeration.MatchUrlInput("application/json", new BodyModel("URL", imageUrl), listId.ToString());
,其他的关于如何创建自定义列表,更新自定义列表,以及向自定义列表中添加图像,移除图像等方法请参考实例代码。