内容简介:作者 | 一一出品 | AI科技大本营(ID:rgznai100)
作者 | 一一
出品 | AI科技大本营(ID:rgznai100)
一般看到头图,“老司机”立马心领神会,就会猜到这篇文章的主题大致与什么相关。
没错,今天的内容就跟“不可描述”的图片有关,但请别激动,也许没有福利:)
要介绍的项目名称叫 NSFW.JS,英文全称是 Not Safe/Suitable For Work,也就是说不适合工作场所使用。
这其实是一个基于 TensorFlow.js 的色情图片识别项目,说白了就是“审查”色情图片,它的好处是在本地即可识别,即使是那些你无法控制的网络不雅内容,也可以提前帮助进行防御,尤其在保护未成年人健康上网这一点上很有益处。
比如有的网站、或者 App 上,有用户总想尝试上传色情图片,而通过使用 NSFW.JS 则可以提前警告用户禁止上传,如果强行上传,则需要再通过人工审核。
又比如像微博、微信等 App 上卖片的僵尸账号比较泛滥,NSFW.JS 则可以对将要收到该信息的人发出警告,告知他们要查看的内容可能不合适,需要澄清一点,这并不需要服务器处理即可完成操作。
默认情况下,该 JS 库对图像进行分为了以下 5 类:
-
Drawing - 无害的艺术图画,包括动漫
-
Hentai - 色情艺术图,不适合大多数工作环境
-
Neutral - 安全、中性图片
-
Porn - 色情图片,性行为,通常涉及生殖器
-
Sexy - 性感图片,而非色情图片,包括乳头
以下是 Demo 展示,如果默认开启模糊保护,只有当 NSFW.JS 识别图片为 Drawing 和 Neutral 时的比例更高时,意味着可以通过审核进行展示,而将图片识别成其它三类图片的比例更高,图片则自动屏蔽。
当然,这是理想状态下的呈现结果,实际上,项目创建者也坦陈,NSFW.JS 现在并不完美,如果你进行测试就会发现,有一些显而易见的误识图片。
用于训练 NSFW 图像分类器的图像数据脚本集合,目前已在 GitHub 获得 8397 个 Star。
喏,数据集地址你: https://github.com/alexkimxyz/nsfw_data_scraper, 还请善加利用:)
项目创建者认为,虽然目前的识别结果中会出现少量偏差,但通常还是很有趣。对于像 NSFW 这样的项目,他觉得目前召回率比精确度更重要,”误识率高一点也比让更危险的东西漏掉要好”。
话虽如此,但还是有掩饰识别准确度不高的嫌疑。创建者此前测试 15,000 个图像集的准确率大约 90%,不过,根据 AI科技大本营亲自测试,整体感觉是误识率较高。对于显而易见的色情图片,该项目识别时非常明了,不过介于“性感”和“色情”的黑色地带,就不太靠谱了,很容易误伤。
其中,以 AI科技大本营测试的二十多张 Monica Bellucci 图片为例,有很多明显不涉及色情的图片都被错误分类,将“性感照”甚至是普通照片分到了“色情”档。
相较而言,第一张图片明显漏胸面积更大,第二张明显是很普通的图片,却被分类为“Porn”了。
这两张图怎么就是“Porn”了......
更令人难以接受的或许是这样的图片被识别为“Porn”,脸都不能漏了?
目前来看,该项目的分类器模型还有很大的提升空间,尤其 随着 data scraper 的改进, 如果未来识别率有大幅提升,它应该会成为很有潜力的应用项目。 这是一个缓慢但却是值得期待的过程。
如何使用 NSFW.JS ?
最后附上 NSFW.JS 的操作步骤,简单来说只需三步:
1、获取代码到位
2、在客户端上加载模型
3、对图像进行分类
项目创建者也在 GitHub 中给出了详细说明:
import * as nsfwjs from 'nsfwjs' const img = document.getElementById('img') // Load model from my S3. // See the section hosting the model files on your site. const model = await nsfwjs.load() // Classify the image const predictions = await model.classify(img) console.log('Predictions: ', predictions)
API
加载模型。出于多种原因,你应该使用可选参数并从你的网站加载模型。
const model = nsfwjs.load('/path/to/model/directory/')
参数
-
可选的 URL model.json
返回
-
准备使用 NSFWJS 模型对象
对图像进行分类
此函数可以使用任何基于浏览器的图像元素(,),并返回最可能的预测数组及其置信度。
// Return top 3 guesses (instead of all 5) const predictions = await model.classify(img, 3)
参数
-
要检查的张量(Tensor)、图像数据、图像元素、视频元素或画布元素
-
要返回的结果数(默认全部都是 5)
返回
-
对象数组包含 className 和 probability。数组大小由 classify 函数中的第二个参数确定。
安装
NSFWJS 由 Tensorflow.JS 提供支持,作为peer dependency(同级依赖)。如果你的项目还没有 TFJS,则需要进行添加。
# peer dependency $ yarn add @tensorflow/tfjs # install NSFWJS $ yarn add nsfwjs
你也可以进行下载和托管项目:
https://s3.amazonaws.com/nsfwdetector/min_nsfwjs.zip
相关链接:
github 链接:https://github.com/infinitered/nsfwjs
demo 测试地址: https://nsfwjs.com/
如果你对该项目感兴趣,可以安装试用,欢迎在评论区交流使用体验。
(本文为AI科技大本营原创文章,转载请微信联系 1092722531)
群招募
扫码添加小助手微信,回复: 公司+研究方向(学校+研究方向) ,邀你加入技术交流群 。技术群审核较严,敬请谅解。
推荐阅读:
点击“阅读原文”,查看历史精彩文章。
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持 码农网
猜你喜欢:- 通俗易懂--决策树算法、随机森林算法讲解(算法+案例)
- 限流算法之漏桶算法、令牌桶算法
- 什么是Paxos算法?Paxos算法是区块链核心算法之一
- 一文读懂对称加密算法、非对称加密算法和Hash算法
- 算法(六):图解贪婪算法
- 算法篇03:排序算法
本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
正则表达式必知必会(修订版)
福达 (Ben Forta) / 杨涛 / 人民邮电出版社 / 2015-1-1 / 29.00元
《正则表达式必知必会》从简单的文本匹配开始,循序渐进地介绍了很多复杂内容,其中包括回溯引用、条件性求值和前后查找,等等。每章都为读者准备了许多简明又实用的示例,有助于全面、系统、快速掌握正则表达式,并运用它们去解决实际问题。正则表达式是一种威力无比强大的武器,几乎在所有的程序设计语言里和计算机平台上都可以用它来完成各种复杂的文本处理工作。而且书中的内容在保持语言和平台中立的同时,还兼顾了各种平台之......一起来看看 《正则表达式必知必会(修订版)》 这本书的介绍吧!