APP下载

基于肤色特征的色情图像识别算法

2014-03-23任民宏郭伟钢

关键词:色情肤色色度

任民宏, 郭伟钢

(1.陕西理工学院 数学与计算机科学学院, 陕西 汉中 723000;2.汉中市翔云科技有限公司, 陕西 汉中 723000)

0 引 言

随着网络技术的快速发展,互联网对当今社会的经济、政治、文化、军事和人们的生活产生了重大的影响,既方便了信息交流,又推动了社会的进步,但是互联网也给人们带来了负面影响,其中较为突出的是在互联网上传播色情内容。色情内容的传播有文字、图像和视频3种形式,视频是由许多帧的图像构成,因而研究色情图像识别对于禁止在互联网上传播色情内容具有重要意义。

色情图像的一个重要特征就是暴露身体部分较多,更严重的就是全身裸露,因而利用图像的肤色特征可以有效地识别色情图像。

1 肤色模型

肤色模型就是用来描述皮肤颜色的数学模型,肤色模型的建立与色度空间的选择密切相关。肤色建模常用的色度空间有RGB(红、绿、蓝三原色)、HIS(色调、饱和度、亮度)、YIQ(NTSC制式的光亮度和色度模型)、YUV(PAL制式的光亮度和色度模型)和YCbCr(亮度分量、蓝色色度分量和红色色度分量模型)等。由于YCbCr色度空间广泛用于图像和视频压缩标准,并且YCbCr色度空间是离散空间,易于实现聚类统计[1],因而本文采用YCbCr色度空间。

1.1 YCbCr色度空间

YCbCr色度空间是由YUV色度空间衍生而来,YCbCr色度空间与RGB色度空间的关系如下:

(1)

1.2 高斯模型

在YCbCr色度空间中,选取大量的肤色样本进行统计,结果表明不同人种的肤色区别主要受亮度影响,受色度的影响较小,肤色在CbCr空间的分布呈现良好的聚类特性,且统计分布满足[2]:

77≤Cb≤127, 133≤Cr≤173。

这表明肤色在CbCr空间集中分布,符合高斯分布特征,可用高斯模型来描述。高斯模型分为单峰高斯模型和混合高斯模型,本文采用了单峰高斯模型。单峰高斯模型假设肤色分布服从单峰高斯分布,用各种人体肤色样本来训练高斯模型,其特征由样本均值向量和样本协方差矩阵决定,即G(m,C)。

(2)

(3)

而协方差矩阵则为:

(4)

用向量X(Cb,Cr)表示图像中的一个像素,则该像素在肤色分布空间中是肤色的概率可用(5)式表示:

(5)

尽管YCbCr空间中肤色的聚类性已是较好的,但是还是无法排除某些图像中存在随机干扰因素,为了更准确地进行肤色判断,可以考虑混合的高斯模型。由于篇幅所限,本文不再叙述了,有兴趣的读者可阅读参考文献[3]。

1.3 模型建立

选取80幅不同年龄和性别人的彩色图片,用Photoshop作为工具手工分割出80幅30×30的肤色图片,在MATLAB平台中用公式(2)、(3)和(4)计算出高斯模型的均值向量和协方差矩阵如下:

m=(108.516 3,149.794 4),

2 色情图像识别

2.1 图像预处理

为了减少图像高频噪声的影响,在对图像识别前应对图像采用低通滤波器进行滤波处理,低通滤波器的冲击响应矩阵为:

再者,受外界光照环境的影响,尤其是光源颜色,彩色图像经常会发生彩色偏移,这时直接应用已建立的肤色模型来检测肤色,结果会出现较大的偏差[1]。本文采用Gray World彩色均衡方法[1]来消除这种彩色偏移,该方法的具体步骤如下:

(1)计算图像的R、G、B三个分量的各自平均值avgR,avgG,avgB;

(2)计算图像的平均灰度值avgGray=(avgR+avgG+avgB)/3;

(3)令aR=avgGray/avgR,aG=avgGray/avgG,aB=avgGray/avgB,对于图像中的每个像素c,调整其R、G、B三个分量cR、cG、cB,使得cR=cR×aR,cG=cG×aG,cB=cB×aB;

(4)将图像各个像素的R、G、B值调整到可显示的范围之内。例如对于24位真彩色图像,令factor为图像中所有R、G、B三个分量中的最大值,并使factor=factor/255,如果factor>1,则对于图像中的每个像素c,调整其R、G、B三个分量cR、cG、cB,使得cR=cR/factor,cG=cG/factor,cB=cB/factor。

2.2 肤色区域分割

(a)原图 (b)肤色区域分割结果 图1 肤色区域分割实例

肤色模型训练好后,在色情图像识别中分割图像中的肤色区域是一个重要环节。肤色区域分割就是在YCbCr空间中利用已经训练好的肤色模型判断图像中的哪个像素是肤色,哪个像素不是肤色,并把肤色像素用1表示,非肤色像素用0表示。其过程是:先将彩色图像按公式(1)转换为YCbCr空间中的图像;再用公式(5)对图像的每一个像素计算该像素是肤色的概率,如果肤色概率不小于设定的阈值,则该像素是肤色像素,用1表示,否则该像素不是肤色像素,用0表示;最后把肤色区域面积过小的部分过滤掉(肤色区域面积过小的部分通常是颜色与肤色接近的背景、衣服和头发等产生的)。笔者在MATLAB平台中为了提高识别的时间效率,把图片大小按长宽比例调整成宽度为200像素,采用实验结果与分析中设定的肤色概率阈值,把图1(a)进行肤色分割,结果如图1(b)所示,效果较好。

2.3 人体外接矩形的确定

由于色情图像有一个重要特征就是暴露身体部分较多,暴露越多,待识别图像是色情图像的可能性就越大。但是,如果以肤色区域面积占整幅图像的比例作为识别特征,认为该比例大于设定的阈值,待识别图像为色情图像,否则不是色情图像,这种方法存在两个弊端:一是人体在图像中所占比例过大或过小会影响识别效果,二是大头贴图像可能会错误识别成色情图像。针对这种情况,笔者引入人体的外接矩形,以外接矩形的长宽比例、肤色区域面积占外接矩形面积的比例和外接矩形面积占整幅图像的比例作为识别特征,当把图像进行肤色区域分割后,确定人体的外接矩形的方法如下:

(1)按从上到下、从左到右的方向对图像扫描,在扫描过程中确定肤色区域像素的最小横坐标minX、最小纵坐标minY、最大横坐标maxX和最大纵坐标maxY;

(2)计算人体外接矩形的长度length=maxY-minY,宽度width=maxX-minX;

图2 人体外接矩形

(3)计算人体外接矩形的长宽比例rate=length/width;

(4)计算人体外接矩形的面积area=length×width。

对图1中的(a)图进行肤色区域分割后确定的人体外接矩形如图2所示。

由于人脸的长宽比例接近1,因而当人体外接矩形的长宽比例rate的值接近1,则认为图像是大头贴。当人体外接矩形的面积area占整幅图像的比例较小时,人体裸露部分较小,也可能分割的肤色区域是由与肤色接近的背景或物体产生的,可以认为图像为非色情图像。在前面两种情况排除的情况下,当肤色区域面积占人体外接矩形面积的比例大于设定的阈值时,认为图像是色情图像,否则为非色情图像。

3 实验结果及分析

在Inter Core2 CPU,2.0 G RAM的环境下,采用1.3节建立的肤色模型,经反复实验,当肤色概率阈值设为0.16,肤色区域面积占人体外接矩形面积的比例阈值设为0.31,肤色区域过滤临界值设为350时能取得较好的识别效果。采用MATLAB 7.0编程实现文中的识别算法,对百度图库中100幅人物图像(含有各种人种和性别的图像)和100幅风景图像进行识别,正确识别图像165幅,正检率为82.5%,每幅图像识别所需平均时间为0.32 s。

本文提出的色情图像识别算法利用了色情图像的肤色特征,能有效地识别绝大多数的色情图像,识别效率较高。在算法中引入了人体外接矩形,利用人体外接矩形的几何特征有效地过滤了大头贴,消除了人体在图像中所占比例过大或过小时误判或漏检的情况。

[参考文献]

[1] 雷明,张军英,董济杨.一种可变光照条件下的肤色检测算法[J].计算机工程与应用,2002(24):123-125.

[2] CHAI D,NGAN K N.Locating facial region of a head-and-shoulders color image[C]//Proceedings of the 3rd International Conference on Automatic Face and Gesture Recognition,Nara,Japan,1998:124-129.

[3] 宗苏.人类肤色识别中高斯模型的应用[J].中小企业管理与科技,2011(22):273.

[4] 王航宇.基于YCbCr高斯肤色模型的人脸检测技术研究[J].现代电子技术,2008(22):102-105.

[5] 王潇茵,唐成画.Web页面色情图片层次化识别算法研究[J].微计算机信息,2008,24(30):44-46.

[6] 黄娟,杨阳,刘忆宁.色情图片识别系统研究[J].信息网络安全,2011(8):27-28.

[7] 苏敬勇.基于内容的黄色图像识别[D].哈尔滨:哈尔滨工业大学,2008:27-32.

[8] 张远鹏,董海,周文灵.计算机图像处理技术基础[M].北京:北京大学出版社,1998:89-92.

猜你喜欢

色情肤色色度
西班牙担忧色情视频毁了青少年
Conversation in a house
人的肤色为什么不同
为什么人有不同的肤色?
日本“色情报复”增多
基于改进色度模型的非接触式心率检测与估计
景德镇早期青白瓷的器型与色度
如何提高苹果的着色度
格非称色情只是《金瓶梅》的外衣
肤色检测和Hu矩在安全帽识别中的应用