写点什么

拯救尴尬:鉴黄神器 NSFW JS 开源了!

  • 2019-02-26
  • 本文字数:1907 字

    阅读完需:约 6 分钟

拯救尴尬:鉴黄神器NSFW JS开源了!

近日,GitHub 上开源了一款鉴定不雅内容的 js 库 NSFW JS,你可以使用 NSFW JS 识别不雅内容,所有操作都只在客户端进行,甚至都不需要让文件离开用户的电脑。


演示地址:https://nsfwjs.com/


项目地址:https://github.com/infinitered/nsfwjs


你有没有过这样的经历,在睡觉之前看了一些东西,然后在闭上眼睛时那些东西仍然历历在目?我说的可不是那种甜蜜的美梦,而是那种被你的老板看到后会让你卷铺盖走人的东西。


用户的输入可能会很恶心。我的一个朋友之前开了一家网店,居然可以允许用户输入负的数。一些恶意用户会购买一件 50 美元的衬衫,然后再加上负一件 40 美元的衬衫,从而达到打折的效果!纠正用户输入的数字是很容易的,但如果是图片呢?那是不可能的!


机器学习正在做着令人惊叹的事情,现在已经开始进入 JavaScript 领域,那些令人惊叹的事情无处不在。

NSFW JS NPM 模块

我可以用一整章的内容来介绍 NSFW JS 内部原理,但还是让我们来关注它的功能吧。


给 NSFW JS 一张图片元素或画布,然后简单地调用 classify,可能会得到如下 5 个分类结果。


  • 绘画(Drawing)——无害的艺术,或艺术绘画;

  • 变态(Hentai)——色情艺术,不适合大多数工作环境;

  • 中立(Neutral)——一般,无害的内容;

  • 色情(Porn)——不雅的内容和行为,通常涉及生殖器;

  • 性感(Sexy)——不合时宜的挑衅内容。


每个分类都有一个概率!基于这些数字和分类,你可以采取行动或者只是目瞪口呆。


为什么要用它?

大公司一般都有专门的团队专注于消除令人反感的内容,但我们一般享受不到这种奢侈。就像客户端的表单验证可以减少服务器端的工作量一样,客户端的内容检查也可以减少团队的工作量。

场景 1:

想象一下,当用户要上传淫秽图像时,他们会立即收到这样的消息:“抱歉!这张图片的一些内容已经触发了内容警告。你仍然可以上传图片,但不会立即可用,需要通过人工审核后才会生效”。用户看到这条消息后可能会放弃上传。

场景 2:

它也可以用于用户到用户的保护。在从别人那里接收消息时,可能会收到警告,告知他们要查看的内容是不是适合。如果可以查看,它会在显示之前进行确认,而这些是在没有服务器处理的情况下完成的!


随着用户上传内容的合法性变得越来越重要,我们需要更大更好的工具来保证优质网站的畅通。

如何使用它?

这很简单,基本上包含三个步骤:


1.获取代码;


2.在客户端加载模型;


3.对图像进行分类。

1. 获取代码

我将向你展示 Node 风格的用法。首先,我们需要引入 NSFW JS。如果项目中尚未包含 TensorflowJS,请先获取它。



现在,我们可以在 JS 文件中导入 Node 模块:


// Classic import styleimport * as nsfwjs from 'nsfwjs'// or just use require('nsfwjs')
复制代码

2. 在客户端加载模型

接下来我们需要做的是加载模型。这个“模型”是用来评估图像的函数。可以在这里下载它们。这些文件是 4MB 大小的分片,便于在客户端进行缓存。在我的示例中,我将它们放在 public/model/文件夹中。



如果你的目录也一样,那么可以使用这个路径来加载模型。


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

3. 对图像进行分类

现在,模型已经存在于客户端的内存中,我们可以对页面上的图像元素进行分类。


// Gimme that imageconst img = document.getElementById('questionable_img')
// Classify the imageconst predictions = await model.classify(img)// Share resultsconsole.log('Predictions: ', predictions)
复制代码


预测(默认情况下)将返回 5 个分类结果,按照最可能到最不可能的顺序排列!例如:


[  {className: “Drawing”, probability: 0.9195643663406372},  {className: “Hentai”, probability: 0.07729756087064743},  {className: “Porn”, probability: 0.0019258428364992142},  {className: “Neutral”, probability: 0.0011005623964592814},  {className: “Sexy”, probability: 0.00011146911856485531}]
复制代码


所有概率的总和应该加起来等于 1 或 100%。现在,你可以基于这些数据做你想做的事情!标记超过 60%的东西,或者只用最前面那个,把其余的忽略掉。

误报

作为人类,你可能经过了几十年的图像识别训练。所以可以肯定地说,你肯定会遇到一些很明显的误报。虽然这些通常很有趣,但结果中也会出现少量的数据偏差。随着数据清洗技术的改进,这些偏差将被消除。这是一个缓慢的过程。


对于像 NSFW 这样的东西,我觉得出现误报总比出现漏网之鱼更好。

动手演示

需要注意的是,NSFW 可能会发生误报,但这个模型每天都在不断改进。因为是开源的,所以我希望大家一起帮助改进它!



英文原文:


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


更多内容,请关注前端之巅。



2019-02-26 14:3414074
用户头像

发布了 38 篇内容, 共 32.3 次阅读, 收获喜欢 209 次。

关注

评论 3 条评论

发布
用户头像
nice
2019-03-21 17:01
回复
用户头像
哭了,弄了一天没弄好,有谁有教程吗
2019-03-17 16:27
回复
用户头像
这个演示网站没有效果啊
2019-03-05 14:25
回复
没有更多了
发现更多内容

【FAQ】HMS Core推送服务推送角标的开发及常见问题解答

HarmonyOS SDK

HMS Core

文盘Rust -- 生命周期问题引发的 static hashmap 锁 | 京东云技术团队

京东科技开发者

rust 生命周期 cli 企业号9月PK榜

【创新项目探索】大数据服务omnidata-hive-connector介绍

openEuler

大数据 hive Linux 开源 操作系统

软件测试/测试开发丨Web自动化测试 cookie复用

测试人

Python 程序员 软件测试 Cookie

华为云API对话机器人CBS的魅力—实现简单的对话操作

ide 云计算 软件开发 API 华为云

软件测试/测试开发丨Web自动化 测试用例流程设计

测试人

程序员 软件测试 测试开发 测试用例

开发指导—利用组件&插值器动画实现HarmonyOS动效

HarmonyOS开发者

HarmonyOS

百度自研高性能ANN检索引擎,开源了

百度Geek说

开源 ann 企业号9月PK榜 检索引擎

iOS APP版本更新升级教程:如何打包上架新的APP版本?

基于 LLM 的知识图谱另类实践

NebulaGraph

图数据库 知识图谱 LLM

楠姐技术漫话:接着唠唠社区发现 | 京东云技术团队

京东科技开发者

图计算 社区发现 风控算法 企业号9月PK榜

便捷、快速、稳定、高性能!以 GPU 实例演示 Alibaba Cloud Linux 3 对 AI 生态的支持 | 龙蜥技术

OpenAnolis小助手

Linux 开源 gpu 操作系统 龙蜥社区

1分钟实现MySQL大数据量迁移任务

NineData

MySQL 数据同步 数据迁移 NineData 大数据量迁移

如何选择网线

小齐写代码

Spring Bean 别名处理原理分析

江南一点雨

Java spring

MegEngine 7-8 双月报来啦:新版本发布,开发者福利课程,干货满满

MegEngineBot

深度学习 开源 开发者

从积木式到装配式云原生安全 | 京东云技术团队

京东科技开发者

云原生 云原生安全 企业号9月PK榜

“历久弥新 | 用AI修复亚运珍贵史料”活动震撼来袭!

阿里云大数据AI技术

机器学习 阿里云

jdk17下netty导致堆内存疯涨原因排查 | 京东云技术团队

京东科技开发者

Netty jdk17 内存爆表 企业号9月PK榜

[PaddleGAN]人脸表情迁移-视频换脸

alexgaoyh

飞浆 PaddleGAN 视频编辑 换脸 First Order Motion

高并发系统设计之限流

Java随想录

Java 架构

漆包线工厂云MES解决方案

万界星空科技

解决方案 MES系统

构建一体化云原生安全防御体系,京东云云原生安全平台重磅发布

京东科技开发者

云原生 安全 镜像 京东云 企业号9月PK榜

HarmonyOS实现表单页面的输入,必填校验和提交

HarmonyOS开发者

HarmonyOS

深入剖析计算机网络和操作系统:面试必备知识解析

王中阳Go

面试 面试题 计算机网络 操作系统 八股文

拯救尴尬:鉴黄神器NSFW JS开源了!_开源_Gant Laborde_InfoQ精选文章