大数据文摘出品

作者:蒋宝尚

鉴黄师是一个因为“扫黄打非”的需要而设立的特殊岗位。

在互联网色情内容暴增的情况下其在净化网络的任务中扮演着非常重要的角色。

然而长期面对大量色情内容的刺激使这类工作者往往要承受心理、生理的双重压力。

机器学习和深度学习发展到了今天,造出的AI已经可以在下棋方面狂虐人类。设计个识别不雅图片的算法也不难实现。

GitHub 上开源了一款鉴定不雅内容的js库NSFW JS,你可以根据他的教程,搭建属于你自己的鉴黄客户端,甚至都不需要让文件离开用户的电脑。

NSFW:不适合在工作场合出现的内容(英语:Not Safe/Suitable For Work,缩写:NSFW)是一个网络用语,多指裸露、暴力、色情或冒犯等不适宜公众场合的内容。在给出含有上述内容的超链接旁标注 NSFW,用于警告观看者。

贡献者的背景非常复杂,例如Gant Laborde是Infinite Red的首席技术战略家,Jamon Holmgren是Infinite Red的联合创始人。Frank von Hoven III是Infinite Red的软件工程师,Sean Nam和Gilbert Emerson则都是计算机专业的学生。

懒得动手的小伙伴,作者也给出了网页版的AI,只需要把图片上传到网页,只需几秒就能出来识别结果。

先给出github项目地址和网页地址:

网页地址:

https://nsfwjs.com/

项目地址:

https://github.com/infinitered/nsfwjs

打开网页是这样的☟

输入图片后的表现是这样的☟

嗯,算法还算准确,两个人物露了这么多的肉,还能准确识别这不属于不雅内容。

注意这五个标签的意思是:绘画(Drawing):无害的艺术,或艺术绘画。变态(Hentai):色情艺术,不适合大多数工作环境下观看。中立(Neutral):一般,无害的内容。色情(Porn):不雅的内容和行为,通常涉及生殖器。性感(Sexy):不合时宜的挑衅内容。

那我们再来一张,升级一下难度☟

不错不错,竟然能识别出来裸体的思考者不属于不雅内容,可以说厉害极了。

那....再来一张☟

色情艺术和绘画艺术几乎五五开,这让人有点摸不着头脑了!

数据

准确率如此优秀的模型,怎么可能少了优质的数据做支撑。

根据项目github的介绍,这个算法的训练来自一位名叫Alexander Kim的数据科学家贡献的数据集。

数据集地址:

https://github.com/alexkimxyz/nsfw_data_scraper

数据集一共将内容分为5类,分别是:hentai、sexy、neutral、drawings、porn,代表的含义和上文介绍的一样。

除此之外,还有每个脚本的作用也做了解释,使用者可以做到心中有数!

这些数据集可以用来训练图像分类器,使用CNN做出来的分类器,分辨上述的5种图像准确度可以达到91%。

数据集中,一共有227995张图片。其中,hentai类别中有45228张;sexy类别19554张;neutral有20960张、drawings有25732张;porn类别最多,有116521张。而这些图片,都以txt格式的形式存储图片的网页链接,以drawings类别为例:

注意:注意有少数图片的网址已经失效

另外,这个数据集的github项目,也对运行环境和以及运行方式做了介绍,需要的小伙伴可以去github地址查看:

https://github.com/alexkimxyz/nsfw_data_scraper

如何使用

根据网站给出的博客文章,只有三个步骤:1.获取代码;2.在客户端加载模型;3.对图像进行分类。

博客主要展示的是node风格的用法,首先引入NSFW JS,当然,需要事先获取ensorflowJS。

然后在 JS 文件中导入 Node 模块:

// Load files from the server to the client!
const model = await nsfwjs.load('/model/')

// or just use require('nsfwjs')

然后在客户端加载模型,这个“模型”是用来评价函数的。模型的文件可以下载,而且这些文件是 4MB 大小的分片,便于在客户端进行缓存。在示例中,作者将它们放在 public/model/ 文件夹中。

加载模型的路径要注意,如果你的目录也和作者一样,可以☟

// Load files from the server to the client!
const model = await nsfwjs.load('/model/')

现在,模型已经在客户端的内存当中了,接下来做的是对页面上的图像元素进行分类。

// Gimme that image
const img = document.getElementById('questionable_img')

// Classify the image
const predictions = await model.classify(img)
// Share results
console.log('Predictions: ', predictions)

预测在默认情况下将返回 5 个分类结果,按照概率的大小进行排序!例如:

所有概率的加起来等于1 。在使用的过程中,你可以标记关注概率超过 0.6分类,或者仅关注概率值最高的那个。

另外,模型可以会出现一定概率的误报,原因可能是标记的数据存在偏差,随着对数据的校正,误报会逐渐减少,当然,这是一个渐进的过程。但是对于不雅内容,出现识别误差要比漏报好很多。

因为是开源的,模型一直在改进,你也可以加入算法改进的队列当中去哟~

最后,作者建议在做一些项目的过程中要打开你的想象力,正如下面的幻灯片说说的那样☟

"Machine Learning does things a human can do ;trained with a lot of time and a lot of examples."

相关报道:

https://github.com/infinitered/nsfwjs

https://shift.infinite.red/avoid-nightmares-nsfw-js-ab7b176978b1

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/31562039/viewspace-2641437/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/31562039/viewspace-2641437/

一网打尽“小黄图”!手把手教你造一只AI鉴黄神器(内附代码及数据集)相关推荐

  1. 手把手教你在Python中实现文本分类(附代码、数据集)

    作者: Shivam Bansal 翻译:申利彬 校对:丁楠雅 本文约2300字,建议阅读8分钟. 本文将详细介绍文本分类问题并用Python实现这个过程. 引言 文本分类是商业问题中常见的自然语言处 ...

  2. python编程例子 输入 输出-推荐 :手把手教你用Python创建简单的神经网络(附代码)...

    原标题:推荐 :手把手教你用Python创建简单的神经网络(附代码) 作者:Michael J.Garbade:翻译:陈之炎:校对:丁楠雅 本文共2000字,9分钟. 本文将为你演示如何创建一个神经网 ...

  3. 手把手教你用Keras进行多标签分类(附代码)_数据派THU-CSDN博客 (翻译:程思衍校对:付宇帅)

    手把手教你用Keras进行多标签分类(附代码)_数据派THU-CSDN博客 手把手教你用Keras进行多标签分类(附代码)_数据派THU-CSDN博客

  4. 手把手教你36小时搭建无人超市系统 !(附代码)

    来源:QbitAI 编译:夏乙 问耕 本文经AI新媒体量子位(公众号ID:qbitai )授权转载,转载请联系出处 本文共1635字,建议阅读5分钟. 本文手把手教大家用代码工具搭建亚马逊无人商店. ...

  5. 推荐 :手把手教你用Python进行Web抓取(附代码)

    作者:Kerry Parker :翻译:田晓宁:校对:丁楠雅: 本文约2900字,建议阅读10分钟. 本教程以在Fast Track上收集百强公司的数据为例,教你抓取网页信息. 作为一名数据科学家,我 ...

  6. 百度收录批量查询_峰少课堂 手把手教你操作百度霸屏!(内附详细操作笔记!)...

    今天峰少课堂给大家讲解的是操作百度霸屏,一个月赚6000块!(内附详细操作笔记!) 看完可以直接拿去实操,没有效果你来找我啊哈哈哈哈哈!!之前我就是在公司摸索出了这套方法,然后专门找了一个文案做百度霸 ...

  7. 独家 | 手把手教你用Python创建简单的神经网络(附代码)

    作者:Michael J.Garbade 翻译:陈之炎 校对:丁楠雅 本文共2000字,建议阅读9分钟. 本文将为你演示如何创建一个神经网络,带你深入了解神经网络的工作方式. 了解神经网络工作方式的最 ...

  8. python简单代码-手把手教你用Python创建简单的神经网络(附代码)

    了解神经网络工作方式的***途径莫过于亲自创建一个神经网络,本文将演示如何做到这一点. 神经网络(NN)又称人工神经网络(ANN),是机器学习领域中基于生物神经网络概念的学习算法的一个子集. 拥有五年 ...

  9. 独家 | 手把手教你用Python进行Web抓取(附代码)

    作者:Kerry Parker 翻译:田晓宁 校对:丁楠雅 本文约2900字,建议阅读10分钟. 本教程以在Fast Track上收集百强公司的数据为例,教你抓取网页信息. 作为一名数据科学家,我在工 ...

  10. 手把手教你用Python处理非平稳时间序列(附代码)

    作者:AISHWARYA SINGH 翻译:陈之炎 校对:丁楠雅 本文约3600字,建议阅读10分钟. 本文将重点介绍时间序列数据的平稳性检验方法. 简介 预测一个家庭未来三个月的用电量,估计特定时期 ...

最新文章

  1. Attribute在.net编程中的应用
  2. Sql Server 关于整表插入另一个表部分列的语法以及select 语句直接插入临时表的语法...
  3. 设置在本文件里查找_Win 10 自带聚焦搜索?这么设置轻松查找电脑文件
  4. layui图片src 指定后没显示_2种方法用python调用cv2模块给图片打马赛克
  5. DBGrid内使用CheckBox功能
  6. java实现网页保存_详解Java两种方式简单实现:爬取网页并且保存
  7. MacOS中Nginx的安装「借助Homebrew」
  8. ptmalloc,tcmalloc和jemalloc内存分配策略研究
  9. headerIP php_PHP curl伪造IP地址和header信息代码实例
  10. Several ports (8005, 8080, 8009) required by Tomcat v7.0 Server at localhost are解决方法
  11. 详解REST架构风格
  12. java_web学习(六) request对象中的get和post差异
  13. 华三 h3c Smart linkMonitor link配置
  14. c# 查询sql 返回多个參数
  15. shell :将标准输出及标准错误输出写到指定文件
  16. P1069 细胞分裂
  17. HM编码器代码阅读(32)——帧间预测之AMVP/Merge模式(七)encodeResAndCalcRdInterCU函数:残差计算、变换量化
  18. clusterprolifer gsea 富集分析
  19. Fiddler创建根证书不成功和无法找到根证书的解决方法
  20. 基于tauri打造的HTTP API客户端工具-CyberAPI

热门文章

  1. 华为内容安全反病毒总结
  2. 静水流深2010年版系列教程[转]
  3. 简述网桥,网关,路由器之间的区别和联系
  4. (附源码)Springboot酒店会员点餐系统 毕业设计 072005
  5. Centos7之清理/var/tmp目录下内容
  6. 电商运营中京东运营法则
  7. 将Excel文件(xlsx)中的联系人和电话转换成vcard文件(.vcf),并用pyinstaller打包发布
  8. ASCII码对应表chr(9)、chr(10)、chr(13)、chr(34)、chr(39)、chr(46)
  9. win10无法打开设置,桌面右键显示设置提示ms-settings:display 该文件没有与之关联的程序来执行该操作
  10. Bootstrap 折叠(Collapse)插件