nsfwjs鉴黄识别最小化案例

3个月前,也就是2月份左右吧,Github上出现一个开源项目:

Infinite Red, Inc.工作室宣布开源旗下基于tensorflow的tfjs的鉴黄小工具

据说是从15000张图片中 进行机器学习而来的比较聪明的工具,值得一用
NSFW JS 全称为:NotSafe/SuitableForWork

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

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

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

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

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

性感(Sexy)——不合时宜的挑衅内容。
<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>Document</title>
    <!-- Load TensorFlow.js. This is required -->
    <script src="https://cdn.jsdelivr.net/npm/@tensorflow/[email protected]"></script>

    <!-- Load the NSFWJS library from AWS -->
    <script src="https://s3.amazonaws.com/ir_public/nsfwjscdn/bundle.js"></script>

    <!-- For testing: Load from local bundle `yarn scriptbundle` -->
    <!-- <script src="../../dist/bundle.js"></script> -->

</head>

<body>
    <input type="file" onchange="showImg()" accept="image/*"><br><br>
    <img id="myImg" src="" width="150" alt="Thumb preview...">
    <button onclick="judge()">鉴别</button>
    <script>
        function judge() {
            const nsfwjs = require(‘nsfwjs‘)
            const img = document.getElementById(‘myImg‘)
            // Load the model.
            nsfwjs.load().then(model => {
                // Classify the image.
                model.classify(img).then(predictions => {
                    console.log(‘Predictions‘, predictions)
                })
            })
        }

        function showImg() {

            var demoImage = document.querySelector(‘img‘);
            var file = document.querySelector(‘input[type=file]‘).files[0];
            var reader = new FileReader();
            reader.onload = function (event) {
                demoImage.src = reader.result;
            }
            reader.readAsDataURL(file);
            console.log(file)

        }

</script>

</body>

</html>
 

原文地址:https://www.cnblogs.com/kunyashaw/p/10896355.html

时间: 2024-10-12 06:43:19

nsfwjs鉴黄识别最小化案例的相关文章

ArchLinux最小化安装 必备库 常用命令

铸成强大的工作站环境——ArchLinux最小化安装 所有问题归结起来,只是一个问题:ArchLinux最小化安装,需要安装哪些包? 1.bash//最基本的Bash Shell(必须)2.bzip2//提供bzip2压缩与解压缩功能(非必须,但就算不选它,系统也会自动将其装上)3.coreutils//提供GNU环境下最基本的工具与命令(必须)4.dnsutils//DNS工具(必须)5.file//文件类型识别工具(必须)6.filesystem//提供基本的文件系统结构(必须)7.find

生产服务器环境最小化安装后 Centos 6.5优化配置备忘

本文 centos 6.5 优化 的项有18处: 1.centos6.5最小化安装后启动网卡 2.解决SSH远程链接访问慢优化 3.更新系统源并且升级系统 4.系统时间更新和设定定时任 5.修改ip地址.网关.主机名.DNS 6.关闭selinux,清空iptables 7.创建普通用户并进行sudo授权管理 8.修改SSH端口号和屏蔽root账号远程登陆 9.锁定关键文件系统(禁止非授权用户获得权限) 10.精简开机自启动服务 11.调整系统文件描述符大小 12.设置系统字符集 13.清理登陆

linux最小化安装后操作

1.由于最小化安装.虚拟机无法识别到本地网卡.解决办法 第一步.系统无法识别eth0网卡.ifconfig eth0 192.168.100.150第二步.进/etc/sysconfig/network-scripts/第三步.copy回环地址模板cp ifcfg-lo  ifcfg-eth0第四步.进vi里更改内容 vim /etc/sysconfig/network-scripts/ifcfg-eth0第五步.重启网卡 service network restart第六步.开启ssh服务 s

K-means的缺点(优化不仅仅是最小化误差)

K-means的缺点(优化不仅仅是最小化误差) #转载时,请注明英文原作David Robinson,译者Ding Chao.# 我最近遇到一个交叉验证的问题,我认为这个给我提供了一个很好的机会去用“R”和“ggplot2”探索下K-means算法的一些基本假设. K-means方法广泛用于聚类分析.可是在我看来,这个算法不需要任何假设啊,也就是说,给我一个数据集和一个预先指定的聚类数目k,然后我就可以应用这个算法去最小化SSE(误差平方和)就行了嘛. 恩..所以K-means本质上是一个优化问

CentOS6.8及7最小化安装后无法直接安装vmtools问题

    问题发生背景: 近期因为学习需要使用CentOS-6.8与CentOS-7系统,因此最小化安装系统后例常进行vmtools的安装,然而竟然报错,报错内容如下 ./vmware-install.pl bash:./vmware-install.pl :/usr/bin/perl:bad interpreter:No such file or directory. 这是什么鬼,最为菜鸟的我第一眼就看懵了,之前都没发生过,怎么这次就出现意外了? 于是上网查找问题所在.     问题的搜索与解决

Centos 6.4 x86_64 最小化安装后的优化

Centos 6.4 x86_64 最小化安装后的优化 购买了服务器以后要做的第一件事就是安装操作系统了,这里推荐安装 Centos 6.4 x86_64,安装系统时要选择最小化安装(不需要图形),在使用服务器时要记住一个原则,系统安装的应用程序包越少,服务器就会越稳定.至于服务器单机性能调优,应本着稳定安全的原则,尽量不要改动系统原有的配置(Cetnos系统自身的文件和内存机制就很优秀),以下配置优化部分也适合Amazon Linux系统,大家可以对比参考. 系统的基础优化 1.更新yum官方

Delphi如何让程序最小化到任务栏(截取WM_SYSCOMMAND后,调用Shell_NotifyIcon)

现在很多的应用程序都有这样一种功能,当用户选择最小化窗口时,窗口不是象平常那样最小化到任务栏上,而是“最小化”成一个任务栏图标.象FoxMail 3.0 NetVampire 3.0等都提供了这样的功能.实现这样的功能实际上并不复杂,在窗口最小化时,窗口会发出WM_SYSCOMMAND消息,你只要需要截取Windows的WM_SYSCOMMAND消息,在窗口最小化时隐藏窗口并调用WindowsAPI函数Shell_NotifyIcon将定义的图标添加到任务栏上,Shell_NotifyIcon的

How Javascript works (Javascript工作原理) (十四) 解析,语法抽象树及最小化解析时间的 5 条小技巧

个人总结:读完这篇文章需要15分钟,文章介绍了抽象语法树与js引擎解析这些语法树的过程,提到了懒解析--即转换为AST的过程中不直接进入函数体解析,当这个函数体需要执行的时候才进行相应转换.(因为有的函数体只是声明了,并没有实际被调用) 解析,语法抽象树及最小化解析时间的 5 条小技巧 这是 JavaScript 工作原理的第十四章. 概述 我们都知道运行一大段 JavaScript 代码性能会变得很糟糕.代码不仅仅需要在网络中传输而且还需要解析,编译为字节码,最后运行.之前的文章讨论了诸如 J

5分钟Serverless实践 | 构建无服务器图片鉴黄Web应用

Serverless是什么 Serverless中文译为"无服务器",最早可以追溯到2012年Ken Fromm发表的<Why The Future Of Software And Apps Is Serverless>,他描述了一种场景,从用户自己维护的物理机,到IaaS,再到PaaS,计算模式的转变并不会停止,在云计算基础设施成熟的情况下应用程序可以不需要考虑服务器的存在,无服务器计算让开发者可以在不考虑服务器的情况下构建并运行应用程序和服务. 再到2016年,Mike