上一篇 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内容查器就简直轻而易举。

Azure内容审查器之羞羞图审查的更多相关文章

  1. Azure 内容审查器之文本审查

    内容审查器 Azure 内容审查器也是一项认知服务.它支持对文本.图形.视频进行内容审核.可以过滤出某些不健康的内容,关键词.使你的网站内容符合当地的法律法规,提供更好的用户体验. 文本内容审核 其中 ...

  2. WPF入门(四)->线形区域Path内容填充之填充图(ImageBrush)

    原文:WPF入门(四)->线形区域Path内容填充之填充图(ImageBrush) 前面我们提到了LinearGradientBrush可以用来画渐变填充图,那么我们同时也可以使用ImageBr ...

  3. 吴裕雄 Bootstrap 前端框架开发——Bootstrap 辅助类:将页面元素所包含的文本内容替换为背景图

    <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title> ...

  4. P4824 [USACO15FEB]Censoring (Silver) 审查(银)&&P3121 [USACO15FEB]审查(黄金)Censoring (Gold)

    P3121 [USACO15FEB]审查(黄金)Censoring (Gold) (银的正解是KMP) AC自动机+栈 多字符串匹配--->AC自动机 删除单词的特性--->栈 所以我们先 ...

  5. JAVA笔记17-容器之一 图、Collection接口、Iterator接口(重要)

    掌握1136: (1)1个图 (2)1个类:Collections (3)3个知识点:For(了解),Generic泛型,Auto-boxing/unboxing(自动打包/解包) (4)6个接口:C ...

  6. smarty模板引擎部分内容(思维导图)

  7. 软件开发过程中的审查 (Review)

    http://blog.csdn.net/horkychen/article/details/5035769 软件开发过程中的审查 (Review)   希望别人做些什么->定义出流程 希望别人 ...

  8. CSV 客座文章系列:KGroup 通过 Windows Azure 将 Qoob 内容管理发布到云中

    编辑人员注释: 今天这篇文章由 KGroup 首席软件架构师兼研发部主管 Jody Donetti 与 KGroup 技术总监 Simone Procopio 共同撰写,介绍了 KGroup 如何使用 ...

  9. Azure CDN 为静态网站创建内容分发网络

    一,引言 最近刚刚接触 Edi.Wang 的 Moonglade 博客系统,正好这套系统中有使用到 Azure CND (内容分发网络),那就学习学习.那么今天就尝试利用 Azure CDN 来发布静 ...

随机推荐

  1. Oracle数据库的文件以及Oracle体系架构

    第一部分.Oracle数据库的文件 1.参数文件:控制实例的行为的参数的集合 参数文件的作用 设定数据库的限制 设置用户或者进程的限制 设定数据库资源的限制 调整系统的性能 主要的参数文件 SGA_T ...

  2. JavaScript 究竟是怎样去执行的?

    摘要: 理解 JS 引擎运行原理. 作者:前端小智 原文:搞懂 JavaScript 引擎运行原理 Fundebug经授权转载,版权归原作者所有. 一些名词 JS 引擎 — 一个读取代码并运行的引擎, ...

  3. render 强大的渲染函数

    可以动态的创建节点 可以改变表格中要去换一种形式去展示的列 (未完暂定)

  4. indexOf原理,Java,javascript,python实现

      简介 最近做项目的时候,发现无论是前端还是后端,indexOf出现的概率都非常频繁,今天我们来看下他的实现原理吧! indexOf的含义:给定一个字符串去匹配另一个字符串的下标,如果匹配到,返回下 ...

  5. leetcode刷题-37解数独

    题目 编写一个程序,通过已填充的空格来解决数独问题. 一个数独的解法需遵循如下规则: 数字 1-9 在每一行只能出现一次.数字 1-9 在每一列只能出现一次.数字 1-9 在每一个以粗实线分隔的 3x ...

  6. Readme for Software engineering

    作业任务: 软件工程 软件工程 作业要求 作业要求 作业目标 博客园.github注册 自我介绍 软工5问 自我介绍: 广东工业大学计算机学院18级信息安全二班 广东工业大学AD攻防工作室成员& ...

  7. Require.js中的路径在IDEA中的最佳实践

    本文主要讲述require.js在IDEA中路径智能感知的办法和探索中遇到的问题. 测试使用的目录结构:一种典型的thinkphp 6的目录结构,如下图. 现在我通过在 vue-a.js 中运用不同的 ...

  8. python3中抛异常except后面参数

    try: xxx except exception as e: print("给exception取了个别名叫做e") else: ccc

  9. 痞子衡嵌入式:IAR在线调试时设不同复位类型可能会导致i.MXRT下调试现象不一致(J-Link / CMSIS-DAP)

    大家好,我是痞子衡,是正经搞技术的痞子.今天痞子衡给大家分享的是IAR在线调试时设不同复位类型可能会导致i.MXRT下调试现象不一致. 做Cortex-M内核MCU嵌入式软件开发,可用的集成开发环境( ...

  10. [程序员代码面试指南]二叉树问题-在二叉树中找到两个节点的最近公共祖先、[LeetCode]235. 二叉搜索树的最近公共祖先(BST)(非递归)

    题目 题解 法一: 按照递归的思维去想: 递归终止条件 递归 返回值 1 如果p.q都不在root为根节点的子树中,返回null 2 如果p.q其中之一在root为根节点的子树中,返回该节点 3 如果 ...