所有文章 > API使用场景 > 图片鉴黄API接口的设计与应用详解

图片鉴黄API接口的设计与应用详解

随着AI写作、AI生成图片等AIGC功能的出现,各类媒体内容的生成和分享变得越来越容易。然而,这也带来了新的挑战,即如何有效地管理和过滤不适当的内容,尤其是色情和性感图片。

笔者运营了一个开发者博客,开放给网络技术爱好者分享AI技术文章。依据现有法律法规健,如果内容运营出现问题,笔者要负全责。

为了应对这一问题,开发者博客准备集成图片审核API,智能识别其中的色情和性感内容,帮助应用过滤和阻止违规图片的显示。在此之前,笔者曾尝试DIY过一个类似聚合数据的图片鉴黄API项目,在此分享给大家。

图片鉴黄API适用场景

除了笔者的内容平台,还可以用于下述场景:

  • 社交应用:社交平台可以通过集成该API来实时过滤用户上传的照片,确保平台内容的合规性和健康性。
  • 新闻媒体:新闻媒体等可以通过接入该API来自动化审核投稿的图片内容,减少人工工作量的同时提高审核效率。
  • 应用商店审核:开发者在提交应用之前,可以先使用该API对接应用内的图片内容进行检查,确保所有图片符合应用商店的规定。

产品需求说明

人工智能版的 图片鉴黄 是通过深度学习目标检测、图像分类、特征检索等技术对图像中的局部和全局信息进行分析,捕获不同类型的色情内容,此外系统还会通过 图文识别、水印识别 等技术手段协助判断隐藏在图片中的敏感内容,包括色情微信推广、色情APP、个人联系方式等。

技术原理设计

辨别一张图片是否是黄图,从机器学习的角度看,本质上是一个对图片分类问题:给定一张图片,让机器判断是否是“黄图”。我们要做的就是研发一个“分类器”,它能根据输入的图片计算出该图片属于“黄图”类别的概率,然后再根据这个概率值输出一个“是”或“否”的结果。计算机擅长的是数学运算,所以我们要把这个“分类器”先抽象成某种数学模型,这样才有可能用计算机来运算。

为了更加方便理解,我们把数学模型定义为:y=f(x)。即给定图片x,我们要找到一个函数f,通过计算f(x)可以得到这个图片的黄图概率y。很简单吧!理论上这个数学模型可以解决所有的分类问题。具体的实现分为以下几步:给出定义、收集样本、训练模型、验证。

具体理论细节,请参考相关资料,此处不再详述。

采用AI技术的优势

  • 持续改进:该API采用了深度学习技术,通过大量标注过的数据集训练而成的神经网络模型来进行图片内容的分类和识别,大数据扫黄尤为强大,同时也能持续不断学习
  • 高准确率:经过优化的模型具有较高的准确率,能够有效地区分色情内容和其他类型的图片,这样不会出现那种动不动就乱封杀,正常的图片都给识别成黄色图片然后给标记删除,从而影响到自己的业务。

图片鉴黄API接口设计

笔者开发者博客平台采用后置审核的业务模式,因此API接口设计如下:

  • 请求方法:通常使用GET方法。
  • 请求体:Query参数来传递图片的URL。
  • 请求参数:参数名 – imgUrl,实际地址是OSS桶的地址
  • 返回参数:JSON格式

返回参数案例:

HTTP/1.1 200 OK
Content-Type: application/json

{
"code": "FAL00033",
"message": "图片存在风险"
"data": {
"is_explicit": true,
"confidence": 0.92,
"adult_scores": {
"sexy": 0.85,
"violence": 0.07
},
"imgUrl": "https://cdn.explinks.com/contents/upload/img/****"
},
}

技术选型

鉴于笔者喜欢站在巨人肩膀上的性格,在Github上找到了一个半成品,NudeNet

由印度开发者Praneeth Bedapudi提供的开源项目,包含用于图像分类和目标检测的两个预训练模型。图像分类模型可以区分“nude”和“safe”两类图片,而目标检测模型能够识别图片中的关键部位。

from nudenet import NudeClassifier, NudeDetector
from nudenet.data import load_dataset
from nudenet.train import train_classifier, train_detector
from nudenet.utils import configure_paths

# 配置数据集路径
configure_paths({
'base': '/home/mt_dev/imgs/base/', # 数据集基础路径
'train': '/home/mt_dev/imgst/train/', # 训练数据集路径
'validation': '/home/mt_dev/imgs/validation/' # 验证数据集路径
})

# 加载数据集
train_dataset, validation_dataset = load_dataset()

# 训练图像分类模型
classifier_model = NudeClassifier()
train_classifier(classifier_model, train_dataset, validation_dataset)

# 训练目标检测模型
detector_model = NudeDetector()
train_detector(detector_model, train_dataset, validation_dataset)

# 保存训练好的模型
classifier_model.save('path/to/save/classifier/checkpoint')
detector_model.save('path/to/save/detector/checkpoint')

print("训练完成,模型已保存。")

如何找到训练图片鉴黄模型的数据集?Github!

寻找合适的图片审核或图片鉴黄接口

图片鉴黄API接口不仅能够帮助我们有效管理在线内容,还能确保遵守当地法律法规,维护良好的品牌形象。如何找到这些接口?百度等搜索引擎很难达到目标,在API市场搜索会更快一些。

例如,幂简集成打造了一款覆盖国内外API的API市场,幂简API平台提供了多种维度发现API的功能:通过关键词搜索API、从API Hub分类浏览API、从开放平台分类浏览企业间接寻找API等。

#你可能也喜欢这些API文章!