NSFWJS 开源项目教程

NSFWJS 开源项目教程

nsfwjsNSFW detection on the client-side via TensorFlow.js项目地址:https://gitcode.com/gh_mirrors/ns/nsfwjs

项目介绍

NSFWJS 是一个基于 TensorFlow.js 的客户端内容检测库,专门用于识别和分类不适合工作环境的图像(Not Safe For Work)。该项目由 Infinite Red 维护,旨在帮助开发者在浏览器或 Node.js 环境中实现图像的 NSFW 检测。NSFWJS 使用预训练的模型,能够以较高的准确率(约90%)识别出包含成人内容的图像。

项目快速启动

安装

首先,确保你的项目中已经包含了 TensorFlow.js。然后,通过 npm 或 yarn 安装 NSFWJS:

# 使用 npm
npm install @tensorflow/tfjs nsfwjs

# 使用 yarn
yarn add @tensorflow/tfjs nsfwjs

加载模型并分类图像

以下是一个简单的示例,展示如何在浏览器中加载模型并分类图像:

import * as tf from '@tensorflow/tfjs';
import * as nsfwjs from 'nsfwjs';

async function start() {
  const model = await nsfwjs.load();

  // 假设你有一个图像元素
  const img = document.getElementById('img');

  // 将图像转换为 Tensor
  const tensor = tf.browser.fromPixels(img);

  // 分类图像
  const predictions = await model.classify(tensor);
  console.log(predictions);

  // 清理 Tensor
  tensor.dispose();
}

start();

应用案例和最佳实践

浏览器扩展

NSFW Filter 是一个使用 NSFWJS 的浏览器扩展,用于过滤掉浏览器中的 NSFW 图像。该扩展目前支持 Chrome 和 Firefox,并且是完全开源的。

服务器端应用

你也可以在 Node.js 环境中使用 NSFWJS 进行图像分类:

const tf = require('@tensorflow/tfjs-node');
const nsfwjs = require('nsfwjs');
const axios = require('axios');

async function classifyImage(url) {
  const model = await nsfwjs.load();

  const response = await axios.get(url, { responseType: 'arraybuffer' });
  const imageBuffer = Buffer.from(response.data, 'binary');
  const decodedImage = tf.node.decodeImage(imageBuffer);

  const predictions = await model.classify(decodedImage);
  console.log(predictions);

  decodedImage.dispose();
}

classifyImage('https://example.com/path/to/image.jpg');

典型生态项目

TensorFlow.js

NSFWJS 的核心依赖是 TensorFlow.js,这是一个用于在浏览器和 Node.js 中运行机器学习模型的 JavaScript 库。TensorFlow.js 提供了丰富的 API,支持从简单的线性回归到复杂的神经网络模型。

React Native

NSFWJS 也支持 React Native 应用。你可以通过加载本地模型来减少网络负载,并利用 TFJS-React-Native 库在移动应用中实现图像分类。

Lovell/Sharp

对于图像预处理任务,你可以使用 Lovell/Sharp 库来处理更多文件格式,并进行图像优化和转换。

通过这些生态项目,NSFWJS 能够提供一个全面的解决方案,帮助开发者在不同的平台和环境中实现高效的内容检测。

nsfwjsNSFW detection on the client-side via TensorFlow.js项目地址:https://gitcode.com/gh_mirrors/ns/nsfwjs

使用:网络需要在图像和输出概率(评分0-1)之间过滤不适合工作的图片。评分<0.2表示图像具有较高概率是安全的。评分>0.8表明极有可能是不适合工作(NSFW)图像。我们建议开发者根据用例和图像类型的不同选择合适的阈值。根据使用情况、定义以及公差的不同会产生误差。理想情况下,开发人员应该创建一个评价集,根据“什么是安全的”对他们的应用程序进行定义,然后适合ROC曲线选择一个合适的阈值。结果可以通过微调你的数据/ uscase /定义NSFW的模型的改进。我们不提供任何结果的准确性保证。使用者适度地结合机器学习解决方案将有助于提高性能。模型描述:我们将不适合工作的图片(NSFW)作为数据集中的积极对象,适合工作的图片作为消极对象来进行训练。所有这些被训练得图片都被打上了特定的标签。所以由于数据本身的原因,我们无法发布数据集或者其他信息。我们用非常不错的名字叫“CaffeOnSpark”的架构给“Hadoop”带来深度学习算法,并且使用Spark集群来进行模型训练的实验。在此非常感谢 CaffeOnSpark 团队。深度模型算法首先在 ImageNet 上生成了1000种数据集,之后我们调整不适合工作(NSFW)的数据集比例。我们使用了50 1by2的残差网络生成网络模型。模型通过 pynetbuilder 工具以及复制残余网络的方法会产生50层网络(每层网络只有一半的过滤器)。你可以从这里获取到更多关于模型产生的信息。更深的网络或者具有更多过滤器的网络通常会更精确。我们使用剩余(residual)网络结构来训练模型,这样可以提供恰到好处的精确度,同样模型在运行以及内存上都能保持轻量级。 标签:opennsfw
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

管翌锬

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值