7,840
本文尝试用通俗的语言为大家介绍人工智能是如何实现“黄图”识别的,全文没有复杂的公式和晦涩的术语,适合初级技术人员和有强烈好奇心的读者。如果有兴趣对文章内提及的一些人工智能基础概念(神经网络、梯度下降、卷积等)深入研究,网上已有丰富资料,可自行查阅。
(注意:由于演示需要,本文可能包含一些尺度较大的图片。)
色情作为人类最基本欲望的体现之一,伴随人类社会发展衍生出多样形式。互联网的兴起,也让相关内容得到快速传播。有说法称互联网半数流量都和色情内容相关,本文不考证该数据真伪,也不探讨色情产业的合理性,仅从技术角度,结合网易信息安全部门实战经验,讲解网络色情图片的鉴别方案。
十几年前互联网发展初期,图片识别方式简单直接:人工审核。
彼时网络带宽低、线上产品少、图片数据体量小,单日图片量仅数万张,安排审核人员肉眼筛查、删除违规图片,完全可以满足管控需求。
随着互联网普及,图片数据量爆发式增长,单产品单日图片可达数百万张,单纯依靠增加人力审核,成本高昂且难以落地。
依托逐步发展的计算机视觉技术,行业开始使用肤色识别算法做初步过滤,机器筛除大部分低风险图片,剩余约**20%**的内容再交由人工复核,大幅降低人工工作量。
移动互联网到来后,图片、短视频、直播等多媒体数据井喷,即便仅留存20%内容,人工也已无力承载。行业开始引入机器学习鉴黄系统,借助人工智能技术实现自动化审核,成为当前主流解决方案,并取得了显著效果。
从机器学习视角来看,判断一张图片是否为色情图片,本质属于图像分类问题:输入一张图片,由模型计算其属于色情内容的概率,最终输出判定结果。
计算机擅长数学运算,因此需要将识别逻辑抽象为数学模型,本文统一用公式表示:
其中:输入图片为 ,函数 为识别模型,输出结果 代表该图片为色情内容的概率。
整套流程分为定义标准、采集标注样本、训练模型三大步骤。
训练AI首先要划定清晰的分类规则,仅简单以“是否露点”划分,完全无法适配复杂的网络图片场景。
【介于图片尺度问题,无法公开,大家可以想象一张裸体XXOO但不露点的侧身图】

(图1: 没露点的色情)

(图2 :特殊但合理)

(图3: 此处想象一张低俗但不漏点的图片)

(图4 :泳装)
由此可见,简单的“色情/正常”二分类远远不够,行业需要升级为多分类体系。团队结合实际场景、国家法律法规,搭建完整的分类标准,这也是整套鉴黄系统落地的基础。
分类标准确定后,需要海量图片样本用于模型训练。
依托多年人工审核积累的历史数据,从中筛选合规图片、色情图片、擦边图片等各类素材。同时搭建标签系统,组建专职标注团队,对所有样本精细分类打标。
训练样本的质量直接决定模型最终效果,因此数据筛选、标注工作耗时久、人力成本高。且由于素材多为违禁内容,存在传播风险,无法像公开数据集 ImageNet 一样采用众包模式,该工作也在持续迭代补充。
本环节目标:根据标注样本,求解出最优函数 。
设定标注样本的标准结果为 ,模型计算结果为 ,定义损失函数 ,代表预测值与真实值的偏差。模型训练的核心,就是不断优化函数 ,让损失函数的值无限趋近于最小。行业普遍使用梯度下降法完成求解。
图片在计算机中本质是二进制 0/1 数据,直接使用原始二进制运算,会出现运算量巨大、特征提取低效、识别准确率低等问题。

(图5 :图片的二进制值)
为解决该问题,需要对图片做特征提取。现阶段主流方案为深度学习神经网络,本文选用 CNN(卷积神经网络)、GoogLeNet、ResNet(残差网络) 三大经典模型。借助深度网络,可高效提取图片视觉特征,将原始图片转化为可运算的特征数据。
复杂模型拆解:实际应用中函数 结构极复杂,会拆分为多层结构:
拆分后的每一段函数,对应神经网络的一层,多层叠加即为“深度网络”。通过反向推导算法,逐层优化参数,最终训练出完整可用的鉴黄模型。