深度学习在网络色情图像识别中的研究与应用①
2018-12-27
( 福州大学至诚学院,福建 福州 350002)
0 引 言
目前国内外针对色情图像的识别方法主要有三种:①基于肤色和纹理检测的色情图像识别。这类方法对于纹理复杂以及类肤色区域较多的正常图像容易产生误检[1]。②基于肤色检测和多个维度特征的色情图像识别[2]。这类方法虽然可以满足基本图像内容过滤的要求,但是敏感图像的正检率还有待提高。③基于深度学习的色情图像识别[3]。随着计算机视觉的发展,改进的训练数据和深度学习算法,使计算机能够更精确地自动分类色情图像。
基于此,提出在传统YCbCr肤色检测算法的基础上,结合深度学习的NSFW模型对网络图像进行色情判别。实验结果表明,该检测方法识别正确率较传统方法有较大提升,可满足实际应用需求。
1 系统设计与实现
网络色情图像检测系统的总体流程如图1所示。
其中“互联网”为未经过检测的原始数据源,其可能包含带色情内容的图像,检测系统包含图像采集和色情图像识别,将识别结果存储至数据库中反馈给审查人员,由审查人员对网站做出相应处理。
1.1 分布式爬虫模块
网络图像是通过爬虫模块来抓取的,该模块以Scrapy-Redis为基础实现分布式爬取网络图像。
爬虫模块的基本流程如图2所示。
图1 网络色情图像检测系统总体流程图
图2 爬虫模块的基本流程图
1.2 色情图像识别模块
网络图像各式各样,为了减少背景信息的干扰,提高色情图像识别的正确率,在进行识别前需要先对原始图像进行预处理。
一般网站中正常图像的比例明显要高于色情图像的比例,基于YCbCr肤色模型检测的色情图像识别的局限性在于容易被类肤色的图像背景误导,但该算法简单,且对于正常图像有较高的识别率,因此该模块使用YCbCr肤色模型和NSFW模型进行级联识别,首先由YCbCr肤色模型进行一级识别,若被判定为疑似色情图像则再利用NSFW模型进行二级识别。色情图像识别模块的流程如图3所示。
图3 色情图像识别流程图
1.2.1 图像预处理
由于网络图像参差不齐,图像中若存在多个皮肤裸露层度不同的人物或者类肤色背景时,对识别成功率会造成负影响,因此在色情图像识别流程中需要先将图像中的人物与背景相分离,再对人物进行针对性识别。图像预处理模块的功能就是提取原始图像中的人物图像,并调整成指定大小(256×256像素)。
图4 图像预处理的流程
图5 疑似色情图像
人物图像分离是基于TensorFlow框架并采用Google的ssd_mobilenet模型来实现。首先对图像中的物体进行识别,获取与“人”相似率高于50%的物体坐标矩阵,接着根据坐标矩阵对图像进行切割获取人体图像,最后将人体图像按照指定大小保存。图像预处理的流程如图4所示。
1.2.2 色情图像识别
基于YCbCr肤色检测算法对系统资源消耗较少效率较高,而基于深度学习的NSFW模型相比肤色检测算法的资源消耗相对较高,因此对预处理后的图像文件,只有在一级识别为疑似色情图像时再进行二级判定,能够在较低的资源消耗下同时提高识别准确率。
但基于YCbCr肤色检测算法的局限性在于如皮肤裸露较多但非色情图像的误检率较高,如对图5中的比基尼和米开朗基罗著名作品《大卫》两张图像,YCbCr肤色检测算法均判定为色情图像,因此当一级识别结果为色情图像时,需要再利用NSFW模型识别进行二级识别,才能提高识别正确率。
基于深度学习的NSFW模型是由基于加权的混合卷积神经网络来实现的。模型体系结构如图6所示,包含8个CNN模型,每个模型都使用相同的体系结构,并使用普通最小二乘法计算每个模型的权重值。
图6 加权的混合卷积神经网络
因为深度神经网络模型需要较长的训练时间,所以采用在单个训练过程中同时获取具有不同权重的八个子模型的方法,可大幅减少训练时间。子模型是基于深度卷积神经网络的二分类模型,输出结果为0~1,数值越接近于1,疑似色情的概率越大。若数值< 0.2 表示很安全;当数值> 0.8 表示有非常大可能性是色情图像。实验模型的网络使用Caffe[4]在Hadoop和Spark模型训练集群中深度学习,网络结构采用ResNet[5]。
基于NSFW模型的色情图像识别流程如图7所示。
图7 基于NSFW模型的色情图像识别流程
利用NSFW模型分别对图5中的两张疑似色情图像进行检测,输出结果分别为0.01973和0.54456,在阈值为0.8时可判定为正常图像。
2 实验结果及分析
2.1 色情图像识别验证实验
首先,选择4000张彩色图片对色情图像识别进行实验,图像大小跨度几十至上千像素,图像种类包括BMP、JPG、PNG等网络常见图片格式,其中正常图片3200张(包含风景、幼儿、比基尼、实体雕像、人物等),色情图像(包括裸露皮肤和只露点等)800张,两者比例为4∶1。实验结果如表1所示。
表1 图像种类判断结果
实验结果表明,对正常图像和色情图像的总体检测率达到98.2%,表明该方法可满足实际应用的需求。
2.2 指定网站验证实验
1)选取从今日头条https://www.toutiao.com通过关键字美女爬取的357幅图像作为实验数据,其中未发现色情图像,识别正确率为100%。
2)选取某色情网站爬取的5726幅图像进行识别,其中107幅为正常图像,其余为色情图像,试验结果如表2所示。
表2 某色情网站图像识别结果
实验结果显示该系统可以满足网络色情图像检测的要求,将正检率提升至97%。但在实际中还存在一些误判的情况,主要是两方面:一是将一些性感但不露点图像识别为色情图像;二是部分情趣露点或只露点但其它皮肤未裸露图像未能够正确识别,仍然被判定为正常图像。
3 结 论
在互联网信息膨胀、网络不良图像泛滥的今天,色情图像识别过滤技术的研究具有很大的意义。将传统基于YCbCr肤色检测算法和基于深度学习的NSFW模型有效结合起来,构成二级识别模型,并使用分布式网络爬虫技术提高了网络色情图像的检测效率。实验统计结果表明,该方法的色情图像识别正确率达到 97% 以上精度。
随着网络带宽的增大和流媒体技术的发展,网络视频和直播在互联网上所占的比重日益增大,对网络视频和直播内容的监控和识别势必成为未来的研究热点。对于网络视频和直播内容的检测也是后续的研究工作。该部分可通过提取网络视频文件的关键帧图像和直播视频过程的截图,对其进行图像识别,从而实现对网络视频文件和直播内容的检测。