python图片鉴黄_真香,我把百万鉴黄服务源码开源了

python图片鉴黄_真香,我把百万鉴黄服务源码开源了前言最近某云审查的比较严,图床上的内容也无奈关闭了,有兴趣的小伙伴可以使用炒鸡工具箱自行搭建。今儿跟大家分享一下之前自建鉴黄服务的这个流程顺便分享一下相关源码。图床架构鉴黄流程代码案例建议有一定的Linux、Java、Python、TensorFlow、Docker基础。使用Java调用Python脚本,当然你也可以自己搭建一个基于Python的Web服务://yellowPath脚本存放位置…

python图片鉴黄_真香,我把百万鉴黄服务源码开源了

前言

最近某云审查的比较严,图床上的内容也无奈关闭了,有兴趣的小伙伴可以使用炒鸡工具箱自行搭建。今儿跟大家分享一下之前自建鉴黄服务的这个流程顺便分享一下相关源码。

图床架构

python图片鉴黄_真香,我把百万鉴黄服务源码开源了

鉴黄流程

python图片鉴黄_真香,我把百万鉴黄服务源码开源了

代码案例

建议有一定的Linux、Java、Python、TensorFlow、Docker基础。

使用Java调用Python脚本,当然你也可以自己搭建一个基于Python的Web服务:// yellowPath 脚本存放位置,后面会讲到

@Value(“${yellow.path}”)

private String yellowPath;

/**

* 自家库鉴黄

* @param imagePath 作为参数供Python脚本使用

* @return

*/

public String check(String imagePath) {

String[] arguments = new String[] {“python3”,yellowPath,imagePath};

String classes = “”;

try {

String line = null;

Process process = Runtime.getRuntime().exec(arguments);

BufferedReader in = new BufferedReader(new InputStreamReader(process.getInputStream(),”GBK”));

while ((line = in.readLine()) != null) {

System.out.println(line);

classes = line;

}

in.close();

int re = process.waitFor();

System.out.println(re);

} catch (Exception e) {

e.printStackTrace();

}

return classes;

}

处理图片的Python脚本,请自行安装各种依赖库:import sys

import json

import requests

from PIL import Image

import numpy as np

_IMAGE_SIZE = 64

# TensorFlow-serving 调用地址,这里要替换成自己的(如果容器和主机不在一个网段,请使用主机IP,8501为映射出来的端口),后面会讲到如何安装

SERVER_URL = ‘http://172.17.0.2:8501/v1/models/image:predict’

_LABEL_MAP = {0: ‘drawings’, 1: ‘hentai’, 2: ‘neutral’, 3: ‘porn’, 4: ‘sexy’}

def standardize(img):

mean = np.mean(img)

std = np.std(img)

img = (img – mean) / std

return img

# 导入

def load_image(image_path):

img = Image.open(image_path)

img = img.resize((_IMAGE_SIZE, _IMAGE_SIZE))

img.load()

data = np.asarray(img, dtype=”float32″)

data = standardize(data)

data = data.astype(np.float16, copy=False)

return data

# 分析

def nsfw_predict(image_data):

pay_load = json.dumps({“inputs”: [image_data.tolist()]})

response = requests.post(SERVER_URL, data=pay_load)

data = response.json()

outputs = data[‘outputs’]

predict_result = {“classes”: _LABEL_MAP.get(outputs[‘classes’][0])}

predict_result[‘probabilities’] = {_LABEL_MAP.get(i): l for i, l in enumerate(outputs[‘probabilities’][0])}

return predict_result

if __name__ == ‘__main__’:

image_data = load_image(sys.argv[1])

predict = nsfw_predict(image_data)

print(predict)

这里我们直接使用TensorFlow 的 TensorFlow-serving 对外提供服务,为了安装方便,我们使用Docker安装部署。docker run -d –rm -p 8501:8501 \

–name nsfw \

-e MODEL_NAME=nsfw \

tensorflow/serving

可以通过以下命令查看容器IP地址:docker inspect nsfw

复制模型数据(阅读原文获取)到容器:docker cp /home/nsfw/data/models/ nsfw:/models/image

进入容器:docker exec -it nsfw /bin/bash

启动服务:tensorflow_model_server –port=8500 –rest_api_port=8501 –model_name=image –model_base_path=/models/image

随便找一张图片,执行脚本,如出现以下内容说明配置成功:[root@VM_0_5_centos python]# python3 yellow.py /home/python/6.jpg

{‘classes’: ‘sexy’, ‘probabilities’: {‘drawings’: 0.0134889195, ‘hentai’: 0.00636488385, ‘neutral’: 0.0619314834, ‘porn’: 0.20824486, ‘sexy’: 0.709969819}}

小结

自己搭建的香归香,但还是觉得UCloud免费的鉴黄接口更香!!!

源码

python图片鉴黄_真香,我把百万鉴黄服务源码开源了

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
如需转载请保留出处:http://bianchenghao.cn/38118.html

(0)
编程小号编程小号

相关推荐

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注