您现在的位置是:首页电子技术论文

电子技术论文发表基于网络色情图像检测的研究与实现

发布时间:2015-04-08 16:03:43更新时间:2015-04-08 16:04:23 1

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

  【关键词】电子技术论文发表, 图像兴趣点,积分图像,Hessian矩阵

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

  1 合法图片的识别

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

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

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

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

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

  2 色情图片的识别

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

  (1)提取图片的Surf特征;(2)对提取的Surf特征进行特征表示,即一个64维向量代表一个特征点;(3)基于BoVW词典的KNN检索,基于BoVW的正向和逆向词典索引,对每个特征描述符通过KNN算法进行检索,计算待测图片中逆向特征描述符的距离均值和逆向特征描述符的比例因子;(4)色情图片的判别,同时满足YCrCb肤色、逆向特征距离均值和逆向特征比例因子三个设定的阈值,即判别为色情图片,否则为合法图片。

  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 结语

  本文中我们采用的训练图像数据共8083张,其中色情图像4135张,合法图像3948张,包含有不同大小、不同人种的各式图像。测试用图像数据共6000张,其中色情图像3100张,合法图像2900张。这里定义了如下三种参数来评价该系统的检测效率:正检率:检测出的色情图像占全部色情图像比例;误检率:将合法图像误检为色情图像的数量占全部合法图像比例;漏检率:没有检测出的色情图像占全部色情图像比例。实验结果如表1所示。

  参考文献:

  [1]Bay H, Tuytelaars T,Van Gool L. Surf: Speeded up robust features[M]//Computer Vision�CECCV 2006.Springer Berlin Heidelberg,2006:404-417.

  [2]陶霖密,彭振云,徐光�v.人体的肤色特征[J].软件学报,2001,12(7):1032-1041.

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


转载请注明来自:http://www.yueqikan.com/dianzijishulw/50889.html