open nsfw封装成接口

本文介绍如何将opennsfw封装成HTTP接口,通过上传图片获取nsfwscore。方案涉及搭建FTP服务器、使用Python的Bottle提供HTTP服务及Spring+MyBatis+SpringMVC实现图片上传。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

承接上文:http://blog.youkuaiyun.com/wangqi880/article/details/62037078 黄图识别-open nsfw

为了使用的方便和提供别人好用,想把open nsfw封装成http形式的接口,别人通过上传图片,就可以得到这图片的nsfw score.
由于本人技术有限,python不太熟悉,自己整理了一套方案如下:
1因为图片需要上传到服务器之后,才能调用python的 nsfw,所以这里需要搭建一个ftp服务器。
2使用python的bottle提供http服务,可以调用如下命令进行反馈

python ./classify_nsfw.py \
--model_def nsfw_model/deploy.prototxt \
--pretrained_model nsfw_model/resnet_50_1by2_nsfw.caffemodel \
./pic/h1.jpg

3还需要一个web服务器,来做图片上传,然后调用python的bottole接口 ,处理返回数据。
这里使用httpclient来调用Python的远程接口。
这里写图片描述
web的架构spring+mybatis+springmvc,虽然没有使用到mybatis哈,但是以前有就直接拿来用了。

文件目录:
/home/wangqi//home/wangqi/open_nsfw-master 这里nsfw目录
/home/wangqi//home/wangqi/open_nsfw-master/pic 保存图片目录
可以自己改哈

python的服务脚本就比较简单了:
我是在/home/wangqi/pythonhttp,vim bottoleServer.py
这里写图片描述

import commands
import bottle
from bottle import route, run, template
@route('/alisa')
def index():
    params = bottle.request.params
    filename=params.get("filename", None)
    print filename
    command = "python /home/wangqi/open_nsfw-master/classify_nsfw.py --model_def /home/wangqi/open_nsfw-master/nsfw_model/deploy.prototxt --pretrained_model /home/wangqi/open_nsfw-master/nsfw_model/resnet_50_1by2_nsfw.caffemodel /home/wangqi/open_nsfw-master/pic/"+filename


    # output = os.popen(command)
    return template('<b>{{text}}</b>', text=commands.getoutput(command))


run(host='192.168.247.131', port=8888)

然后python bottoleServer.py启动就好了
这里写图片描述
。这里启动好了之后,就从github下载javaweb工程就可以使用了哈.

这里写图片描述

这里写图片描述

还有就是open nsfw调用的自己的模型,会输出一大推日志信息,我是使用sub直接截取的分数。如果不想要日志的话,只有部署caffeonspark自己训练模型来用了,以后尝试做吧。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

猫二哥

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

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

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

打赏作者

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

抵扣说明:

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

余额充值