查字典论文网 >> 基于网络色情图像检测的研究与实现

基于网络色情图像检测的研究与实现

小编:

【摘 要】 对于两幅既有旋转又有缩放变化的图像,如何确定哪些点是兴趣点呢?因为是不会随着图像变化而变化的点,所以就是要找到图像中的一些稳定点,比如角点、边缘点、亮区域中的暗点以及暗区域中的亮点。而Surf算法对于这些点的检测是基于最基本的Hessian近似矩阵。

【关键词】 图像兴趣点 积分图像 Hessian矩阵

对一个数据较大的图像集来说,将里面的图像进行一一筛选分类是一个耗时比较长的工作,并且相对于数据小的图像集而言,这样直接进行分类的结果误判率将明显有所增加。为了较为快速并且精确的区分出所有的图像,我们可以将图像集进行一个数据减小的前提工作,做法是优先排除一些明显合法的图像,然后再从余下的图像集中进行色情图像的识别。

1 合法图片的识别

对一个数据较大的图像集来说,将里面的图像进行一一筛选分类是一个耗时比较长的工作,并且相对于数据小的图像集而言,这样直接进行分类的结果误判率将明显有所增加。为了较为快速并且精确的区分出所有的图像,我们可以将图像集进行一个数据减小的前提工作,做法是优先排除一些明显合法的图像,然后再从余下的图像集中进行色情图像的识别。具体做法如下(如图1):

(1)图片加载和预处理,图片预处理就是将图片大小规范到统一的尺寸;

(2)人脸检测,基于OpenCV中训练好的分类器进行人脸所在图片比例的计算;

(3)基于YCrCb的肤色检测,计算去除人脸后的基于YCrCb肤色所在图片的比例,如果满足合法图片的阈值则进行基于纹理的肤色检测,否则进行非法图片检测;

(4)基于纹理的肤色检测,满足YCrCb肤色检测为合法图片后,进行纹理的肤色检测,计算去除人脸后的基于纹理肤色所在图片的比例,如果满足合法图片的阈值则分类为合法,否则进行非法图片检测。

2 色情图片的识别

经过图像集的缩小工作后,接下来就是通过分类器对图像进行分类,以区分出色情图片和合法图片。色情图像的分类识别步骤如下(见图2)。

3 算法实现

(1)训练基于BoVW模型的词典,并对词典进行聚类,输出词典文件,伪代码如下:

BEGIN

While( !readVocabulary(G_vocabularyFile,vocabulary))

{

定义参数bowTrainer,聚类维数为G_vocabSize

While( readdir(dir) != NULL )

{

检测兴趣点imageKeypoints

对兴趣点提取描述子imageDescriptors

If( !Descriptors.empty() )

{

向bowTrainer中加入描述子

vocabulary = bowTrainer.cluster();

}

输出vocabulary

}

}

END

其中,输出词典为vocabulary,dir为训练样本图像集所在路径,bowTrainer类型为BOWKMeansTrainer,词典文件通过G_ vocabularyFile设定,词典训练的维数通过G_vocabSize设定。

(2)基于YCrCb的肤色检测,将图像分类存放在不同文件目录下,伪代码如下:

BEGIN

While( readdir(test_dir) != NULL)

{

通过肤色阈值及肤色像素所占比例判断是否为色情图像,返回class_no

if( class_no为1 )

将该图像拷贝到NO目录下

if( class_no为0 )

将该图像拷贝到OK目录下

}

END

其中,test_dir为待测图像集所在路径,class_no为图像类别(0为合法,1为非法)。

(3)基于纹理的肤色检测,将基于YCrCb肤色检测后NO文件里的图像集进一步分类,伪代码如下:

BEGIN

While( readdir(NO) != NULL)

{

通过阈值将图像重构,通过肤色比例判断是否为色情图像,返回class_no

if( class_no为1 )

将该图像拷贝到NO目录下

if( class_no为0 )

将该图像拷贝到OK目录下

}

END

其中NO为基于YCrCb肤色检测后的NO文件,class_no为图像类别(0为合法,1为非法)。

(4)对图像集进行KNN分类,根据建立了正、反索引的词典,对图像集进行分类存放,伪代码如下:

BEGIN

读取合法图像词典为OK_Mat

读取非法图像词典为NO_Mat

建立索引Oindex(OK_Mat, KDTreeIndexParams)

建立索引Nindex(NO_Mat, KDTreeIndexParams)

Oindex.knnSearch得到距离vec_dists_o

Nindex.knnSearch得到距离vec_dists_n

if( vec_dists_o vec_dists_n )

n_sum++

else

o_num++

if(n_sum o_sum)

将图像拷贝到OK目录下

if(n_sum o_sum)

将图像拷贝到NO目录下

END

其中,KDTreeIndexParams为OpenCV库函数参数,OK目下为测试图像集中合法图像,NO目录下为测试图像集中非法图像。

4 结语

参考文献:

[3]王新成.高级图像处理技术[M].北京:中国科学技术出版社,2001.

热点推荐

上一篇:化工自动化仪表的检修与维护

下一篇:如何对幼儿进行德育教育论文 幼儿园关于德育教育之类的论文

2023年战略管理类论文大全(16篇) 智慧校园实施方案(模板19篇)