
起因:之前 ImgURL 一直使用雅虎的 Open NSFW 识别方案,但是 Open NSFW 这个项目 2019 年就归档且不再更新了。最近正在重构 ImgURL ,顺便准备寻找新的色情图像识别方案,结果找了一圈,没发现满足自己需求的,于是就手搓了一个,希望对开发者有帮助。

Github 开源:https://github.com/helloxz/nsfw
测试 API:https://nsfw.demo.mba/check?url=https://www.imgurl.org/static/images/logo.png
只需要把 URL 参数值替换为任意可访问的图片地址即可识别,个人感觉识别率比 Open NSFW 更强一些,而且速度也不错。(识别速度非 http 下载和请求速度)
基于 AdamCodd/vit-base-nsfw-detector/ 实现,并封装为 HTTP API 调用,可用于识别网络色情图像( nsfw 识别),适合纯 CPU 机器推理,轻量级实现方案。
docker run -d \ --name nsfw \ -p 6086:6086 \ --restart always \ helloz/nsfw 完整的说明可以访问 Github 查看: https://github.com/helloxz/nsfw
新增了WEBUI,部署的时候可通过环境变量选择是否启用。WEBUI测试地址:https://nsfw.demo.mba/
1 MIUIOS 5 天前 |
2 xiaoz OP @MIUIOS #1,模型用的是 https://huggingface.co/AdamCodd/vit-base-nsfw-detector/ 开源的,我本身并没有进行模型训练。 所以我这里没有数据集,哈哈。 |
3 Pantheonn 5 天前 用射了,确实不错,可以加一个识别本地图片吗 |
4 hccsoul326 5 天前 可以反着用不,去捞一堆图片,部署上去反向过滤一下,只留下色图 |
6 xiaoz OP @hccsoul326 #4 ,你需要部署一个图床服务就可以实现了。比如我开头所说,哈哈哈。 |
7 nicoljiang PRO 这个对涉政、涉暴力 等方面没用吧? |
8 xiaoz OP @nicoljiang #7 ,没用哈,底层模型只针对色情图像进行了训练,如果要更多类型的识别,需要自己训练模型。 |
9 abel533 5 天前 能不能识别色情、暴力、血腥等分类? |
11 Maboroshii 5 天前 整蜜罐是吧 |
12 nananqujava 5 天前 我需要反向过滤 |
14 xiaoz OP @Maboroshii #11 ,没有啊,源码都在 Github 开源了,图片压根就没有保存。 |
17 slert 5 天前 和 nsfwjs 相比识别质量如何 |
19 xclrr 5 天前 yahoo 的模型只有 22MB ,这个 300 多 MB 不够轻量啊 |
20 xiaoz OP @xclrr #19 ,你拿容器镜像大小和模型大小去对比??? 1. 这个项目的模型大小大概 50MB 左右,看这里:https://github.com/helloxz/nsfw/tree/main/app/onnx ,单从模型的大小来说,雅虎模型只有 20M 左右确实更小,但是个人测试了下雅虎的效果相对更差一些。 2. 容器包括 Python 运行环境和相关依赖,自然更大一些。 3. 如果单纯的去对比体积,是不是镜像对比镜像更合理一些?这是第三方基于 open nsfw 的镜像:https://hub.docker.com/r/eugencepoi/nsfw_api 体积是 600M 4. 轻量指的是相对市面上的方案实现和运行时资源占用,而不是单纯看体积。就算对比容器体积,我的镜像也是相对偏小,你可以自行去 docker 搜索 nsfw 对比。 请辩证的看待问题,谢谢。 |
21 gargar 5 天前 via iPhone 感谢分享。有没有性能测试数据? |
22 gargar 5 天前 简单测了一下,苹果 M 芯片 0.5-0.8 秒,云主机比较弱要 3-4 秒。 |
24 Charon2050 4 天前 |
25 grimbedroom 4 天前 @Charon2050 笑毁了 |
26 AkinoKaedeChan 4 天前 @Charon2050 感觉用处不在这啊 Pixiv 图片 R-18 都有标签,不知道有没有能下载大量图片而且没有打标签的地方 |
29 xclrr 4 天前 @xiaoz 没有人会拿镜像和模型去比大小。你描述里写的轻量我才针对不轻量的问题发表我的观点,雅虎那个模型才是真轻量,我内置到 android app 做识别才十几 ms 。请理性地看待问题,谢谢 |