专栏首页.NET开发那点事Azure内容审查器之羞羞图审查

Azure内容审查器之羞羞图审查

上一篇 Azure 内容审查器之文本审查我们已经介绍了如果使用Azure进行文字内容的审核。对于社区内容,上传的图片是否含有羞羞内容也是需要过虑的。但是最为一般开发者自己很难实现这种级别的智能识别。但是借助Azure的内容审查器可以分分钟实现它。

创建内容审查器

在使用审查器之前需要在Azure上创建它。上次我们已经创建过了,这次就不在赘述了。请直接查看上一篇: Azure 内容审查器之文本审查

编写代码

创建一个控制台项目然后使用nuget安装一个库:

使用Azure封装过的库,真的超级简单,只要把图片的stream传递进去调用EvaluateFileInput就行了。

        static void Main(string[] args)
        {
            Console.WriteLine("Hello World!");

            var endpoint = "https://x.cognitiveservices.azure.com/";
            var subscriptionkey = "x";

            var client = new ContentModeratorClient(new ApiKeyServiceClientCredentials(subscriptionkey));
            client.Endpoint = endpoint;

            var imgFile = "d://1.jpg";
            using (var img = File.OpenRead(imgFile))
            {
                //调用EvaluateFileInput识别
                var result = client.ImageModeration.EvaluateFileInput(img);

                var json = JsonConvert.SerializeObject(result, Formatting.Indented);

                Console.WriteLine(json);

                Console.Read();
            }
        }

运行代码

代码写完了,超级简单。于是我迫不及待的找了张羞羞图(别问我怎么找的)来试试。

以下是返回结果:

Hello World!
{
  "CacheID": null,
  "Result": true,
  "TrackingId": "SEA_ibiza_2a18af19-97fa-4b8d-82b2-2e1654c046fa_ContentModerator.F0_95862889-a5cc-4855-9adc-c3dff4ed6570",
  "AdultClassificationScore": 0.9992928504943848,
  "IsImageAdultClassified": true,
  "RacyClassificationScore": 0.9999726414680481,
  "IsImageRacyClassified": true,
  "AdvancedInfo": [],
  "Status": {
    "Code": 3000,
    "Description": "OK",
    "Exception": null
  }
}

返回的结果主要关注两个指标:

  1. AdultClassificationScore 成人内容的分值0-1之间。
  2. RacyClassificationScore 性暗示内容的分值0-1之间。

看我找的图片这两个值数值都达到了0.999,如假包换的羞羞图啊,哈哈。

下面换一张Gakki的美照试一下。

下面是返回结果:

Hello World!
{
  "CacheID": null,
  "Result": false,
  "TrackingId": "SEA_ibiza_2a18af19-97fa-4b8d-82b2-2e1654c046fa_ContentModerator.F0_193fa67b-0014-41a1-9567-63289886509a",
  "AdultClassificationScore": 0.0015181272756308317,
  "IsImageAdultClassified": false,
  "RacyClassificationScore": 0.003930455073714256,
  "IsImageRacyClassified": false,
  "AdvancedInfo": [],
  "Status": {
    "Code": 3000,
    "Description": "OK",
    "Exception": null
  }
}

这个图片就是个正常图片,AdultClassificationScore\RacyClassificationScore的数值都很低。

总结

通过以上简单的不能再简单的代码就实现了图片是否有成人内容的识别。如果你自己去实现的话需要学习机器学习人工智能等知识,这个不是一天两天能够完成的。但是使用Azure内容查器就简直轻而易举。

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 使用Azure Functions玩转Serverless

    通过无服务器计算,开发者无需管理基础结构,从而可以更快构建应用程序。通过无服务器应用程序,将由云服务提供商自动预配、缩放和管理运行代码所需的基础结构。

    kklldog
  • nodejs+express+jade+mongodb给我baby做个小相册(2)-留言板

    上一篇简单的实现了下照片的展现跟浏览功能,这一篇我将给这个程序添加一个留言的功能。那么留言的话肯定要涉及到数据持久了,其实对于这个小功能的话,用个xml就可以,...

    kklldog
  • 如何白嫖微软Azure12个月及避坑指南

    Azure是微软提供的一个云服务平台。是全球除了AWS外最大的云服务提供商。Azure是微软除了windows之外另外一个王牌,微软错过了移动端,还好抓住了云服...

    kklldog
  • python读取pdf文档-实战

    py3study
  • 使用js的数据类型简单描述redis各个数据类型

    key:想在redis中创建任意数据都必须有一个名字,可以通过这个名字来操作这个数据,这篇说明里,这个名字被称为key

    黒之染
  • 基于unittest集成你的selenium2测试

    前言 python单元测试框架(The Python Unit Testing Framework)简称PyUnit,是JUnit的python版本,自pyth...

    苦叶子
  • 跟“老大爷”学习数据分析

    缜密的思维,耳观六路,眼看八方,不放过任何细节,这就是我们平常所说的数据敏感度或数据分析直觉,具备这样直觉的人不一定是一个好的侦探,但却不妨碍他成为一个好的数据...

    CDA数据分析师
  • 沉淀半年,我又转回安全行业了

    大家好,我是 dbj1216,刚好这次把任务提交上去,基本的 web 路线任务都完成了,我的分数也恰好过了 100。在这里,我想总结一下这大半年在平台上的自我学...

    信安之路
  • tf.variables_initializer

    返回初始化变量列表的Op。在会话中启动图形之后,可以运行返回的Op来初始化var_list中的所有变量。这个Op并行运行var_list中所有变量的初始化器。 ...

    于小勇
  • java后端学习路线建议

    你是想要进大厂,还是想进小公司呢? 对于一个普通本科生,很可能真正步入学习的时间不多。并且能够掌握的知识的广度和深度也是有限度的,还要考虑学习环境的影响。要慎重...

    bigsai

扫码关注云+社区

领取腾讯云代金券