基于MoSIFT和CSD特征的暴恐视频检测方法
【技术领域】
[0001 ] 本发明涉及暴恐视频检测算法,具体地,涉及一种基于MoSIFT和CSD特征的暴恐视 频检测算法。
【背景技术】
[0002] 随着互联网的不断发展,通过互联网传播的各种视频内容变得浩如烟海,而其中 不乏暴力恐怖类视频,这类视频对未成年人容易造成不好的心理影响。因此需要对互联网 上的视频进行分类管控,传统的方式是通过人工检测审核处理海量的视频,这种方法工作 量大,并且不能全面及时地管控暴力恐怖类视频的扩散,从而使得采用自动的暴力恐怖视 频检测方法就显得非常有意义。
[0003] 暴恐视频的检测方式多种多样,一般从音频信号和视觉信号两方面入手,通过音 频信号识别尖叫、爆炸等异常声音信息,通过视觉信号识别出血液、阴暗、打斗等画面,这两 种方法在不同的领域中应用具有各自的优势。尤其在电影、监控视频等资料里,视觉信号识 别更有优势。
[0004] 经过对暴恐视频检测技术的检索发现,公开号为CN104036301A,公开日为2014年9 月10日,名称为"基于光流块特征的暴力事件识别方法及系统"的中国专利公开了一种识别 方法。具体地,将视频帧间运动点自适应划为光流块;筛选出包含运动点数目不小于第一阈 值的光流块得到有效光流块群;根据有效光流块群对是否发生暴力事件进行判断,当所述 有效光流块群中的光流块数目不小于第二阈值且所述有效光流块群中所有光流块的主光 流值都不小于第三阈值并且所述有效光流块群中所有光流块的主光流方向两两之间的夹 角都不小于第四阈值时,则判定发生暴力事件。该专利文献使用了光流块特征,但是只提取 了视频的局部动态特征,而视频的全局静态特征并没有被提取,从而使得视频的一些静态 特征丢失,使得对血腥恐怖类视频检测的效果不佳。
[0005] 因此,需要提出一种能够全面检测视频动静态特征的暴恐视频检测方法,以提高 检测效率和检测精度。Char if等人提出的一种新颖的时空特征(Mot ion Scale Invariant Feature Transform)算法,简称MoSIFT。这种算法首先提取视频图像中的SIFT (Invariant Feature Transform)点特征,然后计算与SIFT关键点尺度相对应的光流大小。MoSIFT特征 由128维SIFT向量和128维光流方向直方图连接而成,共256维。光流方向直方图的组合方式 与SIFT特征向量的组合方式类似:即将光流的模值和角度对应为SIFT中像素梯度的模值和 角度,在局部领域内进行加权。与SIFT描述子不同,这里并不需要旋转各点的光流到主方向 上,原因在于不同于空间域的旋转不变性有助识别角度同目标,光流角度是用于运动描述 的重要信息。
[0006] 颜色结构描述子CSD(Color Structure Descriptor)计算的是图像局部区域的颜 色分布情况。比如一个8X8像素大小的窗口在整张图像上滑动并统计窗口出现的颜色种 类,该CSD特征在疆0(此6,丨11,1&?,0丨€€6代1?^)颜色空间下提取,主要优点是可以区别颜 色直方图相似,但是颜色空间分布较为不同的图像对。
【发明内容】
[0007] 针对现有技术中的缺陷,本发明的目的是提供一种基于MoSIFT和CSD特征的暴恐 视频检测方法。
[0008] 根据本发明提供的基于MoSIFT和CSD特征的暴恐视频检测方法,包括如下步骤:
[0009] 步骤1:分别提取测试视频、训练视频的MoSIFT特征;
[001 0]步骤2:对提取的测试视频、训练视频的MoSIFT特征进行数量和维度削减;
[0011] 步骤3:对数量和维度削减后的训练视频MoSIFT特征进行聚类,得到聚类中心矩 阵;
[0012] 步骤4:根据聚类中心矩阵得到对应的聚类中心,利用所述聚类中心统计训练视频 和测试视频的词袋,得到训练样本和测试样本;
[0013] 步骤5:利用所述训练样本训练SVM分类器,得到分类器,记为SVM-1;
[0014]步骤6:利用SVM-1在训练样本、测试样本上分别进行分类计算,计算得到分数,记 为MoSIFT分数;
[0015]步骤7:分别提取训练视频、测试视频的CSD特征;
[0016] 步骤8:利用均值动态密度点Mean Diversity Density,简称MDD方法,计算训练样 本的最大动态密度点MP;
[0017] 步骤9:根据训练样本的最大动态密度点MP分别计算训练样本、测试样本的CSD分 数;
[0018] 步骤10:利用训练样本的MoSIFT分数和CSD分数训练SVM分类器,得到训练好的分 类器记为SVM-2;
[0019] 步骤11:利用SVM-2在测试样本的MoSIFT分数和CSD分数上,进行分类,进而完成对 测试视频进行分类。
[0020] 优选地,所述步骤1包括:
[0021 ]步骤1.1:将测试视频和训练视频拆分成帧;
[0022] 步骤1.2:处理前后相邻两帧,计算MoSIFT特征;
[0023] 具体地,利用基于Opencv实现的MoSIFT算法,调用Opencv中的MoSIFT类的构造函 数,得到前后连续两帧所具有的MoSIFT特征,并将所述MoSIFT特征保存为Opencv的Mat类型 数据;
[0024]步骤1.3:将一个训练视频的某帧和该帧的MoSIFT特征纵向拼接,得到相应的第一 特征矩阵,所述第一特征矩阵记为M1;将一个测试视频的某帧和该帧的MoSIFT特征纵向拼 接,得到相应的第四特征矩阵,所述第四特征矩阵记为M4,处理完成所有视频,得到每个视 频的第一特征矩阵施。
[0025]优选地,所述步骤2包括:
[0026]步骤2.1:对第一特征矩阵施中的第一行至最后一行依次执行如下处理:
[0027]在第一特征矩阵%某一行以下的所有行内找到距离该行最近的一行,并将距离该 行最近的一行与该行的下一行进行交换;
[0028] 步骤2.2:将经过步骤2.1处理后的第一特征矩阵施等行数均分为k4份,每一份沿纵 向取平均值,即计算列平均值,将每一份的结果纵向拼接得到k4XW1的矩阵即第二特征矩 阵,所述第二特征矩阵记为M2,其中wi表示施的横向维度;
[0029] 步骤2.3:统计第二特征矩阵M2中每一纵向维度中非0元素的个数,提取第二特征 矩阵M2中非0元素的个数排在前ki位的维度的列向量,得到第三特征矩阵M 3;记住提取的维 度的列号,按照所述列号,提取第四特征矩阵M4得到第六特征矩阵M6。
[0030] 优选地,所述步骤3包括:对所有训练视频的第三特征矩阵M3进行纵向拼接,得到 总训练矩阵M,对Μ进行K-means聚类处理,得到聚类中心矩阵&,所述聚类中心矩阵&每一行 作为一个聚类中心;
[0031] 具体地,使用MATLAB的k-means函数处理第三特征矩阵Μ3,并限定最大的迭代次数 为200,start值设为cluster,k_means函数返回的值设为[idx,center ],idx表示Μ中的某一 行聚类之后的位置,center即表示聚类中心矩阵Cu
[0032] 优选地,所述步骤4包括:
[0033]步骤4.1:统计idx得到训练视频中对应的训练样本的词袋,计算第六特征矩阵M6 中的一行与聚类中心矩阵&中每一行的距离,取聚类中心矩阵&中与第六特征矩阵M6中的 一行距离最小的行作为词汇;
[0034] 步骤4.2:统计测试视频中各个词汇出现的次数,并绘制成直方图,将该