开源一个色情图像(NSFW)识别方案,支持私有部署和 HTTP 调用

1 天前
 xiaoz

起因:之前 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 部署

docker run -d \
  --name nsfw \
  -p 6086:6086 \
  --restart always \
  helloz/nsfw

完整的说明可以访问 Github 查看: https://github.com/helloxz/nsfw

2136 次点击
所在节点    分享创造
26 条回复
MIUIOS
1 天前
可以看下数据集吗,我需要人工详细标注一下
xiaoz
1 天前
@MIUIOS #1,模型用的是 https://huggingface.co/AdamCodd/vit-base-nsfw-detector/ 开源的,我本身并没有进行模型训练。

所以我这里没有数据集,哈哈。
Pantheonn
1 天前
用射了,确实不错,可以加一个识别本地图片吗
hccsoul326
1 天前
可以反着用不,去捞一堆图片,部署上去反向过滤一下,只留下色图
xiaoz
1 天前
@Pantheonn #3 ,就是本地 POST 图片上去识别是吧?如果我理解得没错的话,准备近期添加。
xiaoz
1 天前
@hccsoul326 #4 ,你需要部署一个图床服务就可以实现了。比如我开头所说,哈哈哈。
nicoljiang
1 天前
这个对涉政、涉暴力 等方面没用吧?
xiaoz
1 天前
@nicoljiang #7 ,没用哈,底层模型只针对色情图像进行了训练,如果要更多类型的识别,需要自己训练模型。
abel533
1 天前
能不能识别色情、暴力、血腥等分类?
xiaoz
1 天前
@abel533 #9 ,不支持哦,如 8 楼所述。
Maboroshii
1 天前
整蜜罐是吧
nananqujava
1 天前
我需要反向过滤
Pantheonn
1 天前
@xiaoz #5 是的,GitHub 主页已 star ,期待更新
xiaoz
1 天前
@Maboroshii #11 ,没有啊,源码都在 Github 开源了,图片压根就没有保存。
xiaoz
1 天前
@Pantheonn #13 ,正在写代码,晚上应该就支持了。
xiaoz
1 天前
@Pantheonn #3 ,最新版已经支持 POST 上传文件识别,docker pull 更新下即可。
slert
1 天前
和 nsfwjs 相比识别质量如何
xiaoz
1 天前
@slert #17 ,没有详细对比测试过,你可以试试看。
xclrr
1 天前
yahoo 的模型只有 22MB ,这个 300 多 MB 不够轻量啊
xiaoz
23 小时 10 分钟前
@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 对比。

请辩证的看待问题,谢谢。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/1177126

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX