陈 晨,詹永照
(江苏大学 计算机科学与通信工程学院,江苏 镇江 212013)
随着信息技术的高速发展与信息量的激增,产生了数据挖掘技术(KDD)[1]。视频数据挖掘是计算机视觉领域的研究热点之一,在视频检索[2]、视频点播、智能监控等领域应用广泛。视频复杂动作场景概念分析是视频复杂事件分析中的一个重要内容,用视频动作语义概念间的关联关系分析高层次视频复杂动作场景概念或视频复杂事件概念[3-4],能更加合理地刻画视频复杂动作场景概念或视频复杂事件概念的内在本质,有助于提高分析的准确性。
然而在应用过程中,由于视频信息庞大、视频底层特征与高层语义概念之间存在语义鸿沟(Semantic Gap)[5-6]等问题,增加了视频挖掘的复杂性。目前的视频动作语义概念检测分析方法可大致分为3类[7]:
(1)基于预定义动作语义概念模型的动作语义概念检测分析。Sadlier[7]主要基于运动视频动作语义概念特点建立动作语义概念检测器,通过与SVM结合,生成模型以推断动作语义概念的发生;Ye等[8]提出动作语义概念网(EventNet)建立视频动作语义概念库,从而对视频动作语义概念进行检测。该方法的主要特点是采用预定义的规则或限制条件等构建动作语义概念模型,由于其需要相关环境的先验知识,用于特定情况下的动作语义概念检测,而不能处理新的动作语义概念,因而具有很大的局限性。
(2)基于训练数据学习动作语义概念模型的动作语义概念检测分析[10]。采用隐Markov模型或动态贝叶斯网络等[11-12]方法分析各关键帧特征值之间的关系,并挖掘各镜头之间的关联,进而检测出一些典型的动作语义概念。M Chakroun等[13]采用神经网络模型对视频特征(HOG/HOF)进行约简,并支持向量机增量模型,对每一个动作语义概念状态进行建模,检测视频动作语义概念。
(3)基于聚类分析的动作语义概念检测分析。该方法样本标签是未知的,主要用于异常动作语义概念检测。在特殊空间下,正常动作语义概念与异常动作语义概念可以采用K-means聚类算法[14]与K-近邻法进行区分。
以上几类视频动作语义概念检测方法对于基本低层视觉特征难以做到准确描述,但对于高层语义特征描述的视频,视频中感兴趣动作语义概念之间的关系没有直接体现视频动作语义概念之间的关系。本文提出基于Aproiri[15-16]算法视频动作语义概念关联关系的视频动作场景检测,以挖掘视频中动作语义概念的关联性。首先在不同的视频场景下,挖掘出训练视频动作语义概念之间的频繁模式,得出动作语义概念之间的强关联规则;然后通过挖掘出的强关联规则,构造关联规则库;最后通过对比关联规则库,检测出相关联动作语义概念隶属的视频类别。
面对海量数据,从中发现有用信息或知识是具有挑战性的课题,数据挖掘即是为了满足这一要求而发展起来的。本文研究的Aproiri算法是由Agrawal与Srikant[17]于1994年首次提出的布尔关联规则挖掘算法。典型例子为购物篮分析,商场通过发现顾客放入他们“购物篮”中商品之间的关联,分析顾客购物习惯。“那些90%购买面包的客户也会购买牛奶”,其直观意义是需要考虑用户偏好,而这些信息即是人们想要挖掘的知识。
目前,关联规则应用于视频检测的研究还比较少。Lin等[18]提出基于Semantic的视频关联语义关联框架方法,应用多重对应分析(MCA)将特征与类投影到一个新的主成份空间中,并发现特征值对与类之间的相关性,取得了较好的分类检测效果;Yuya Matsuo等[19]采用关联规则反映视频编辑模式;Z等[20]探索视频中基于镜头的关联规则。上述算法都是利用不同视角对视频进行挖掘检测,而视频本身作为非结构化数据,由多种文件融合而成,与传统事务关联存在很大差异。视频层次结构从小到大分别为:关键帧、镜头、场景及整个视频。因此,本文从不同层次对视频数据进行挖掘。
2.1.1 基本概念定义
定义1 项集(Itemsets):视频预处理结构,即视频的动作语义概念集,用相应符号ζ表示,如ζ={I1,I2,…,Im}是项的集合,与其相关的数据E是数据库事务集合,每一个事务T是一个非空项集,T是E的子集。
定义2 K项集(K-Itemset):包含K个项的集合,是所有K项关联的集合,每一个元素都是K项关联。
表1 频繁项集K
定义3 支持度(support):M、N都为项集,其中support是E中包含M∪N(集合M和集合N的并)的百分比。其数学表达式为:
support(M⟹N)=P(MUN)
(1)
定义4 频繁项集:如果项集I的支持度满足预先定义的最小支持度阈值(MST),则I被称为频繁项集。
定义5 置信度(Confidence):如果项集I的支持度满足规则M⟹N,该规则在事务集E中拥有置信度(MCT),其数学表达式为:
confidence(M⟹N)=P(N|M)
(2)
定义6 关联规则是形如M⟹N的蕴涵式,其中M为关联规则的先导,N为后继。关联规则是M与N在E中同时出现的情况所占的百分比,即同时出现的概率。在E中已经出现M的情况下N也出现的概率,称为M、N满足最小支持度(MST)与最小置信度(MCT)的强关联规则。
2.2.1 算法基本思路及步骤
算法基本思路流程有以下3个步骤,如图1所示。
图1 视频动作语义概念关联规则挖掘
先对视频中的基本动作语义概念进行序列化语义概念标注获取,设基本动作语义概念有N类,则每个时刻都有N个动作语义概念标注信息,对相应场景的每个视频中T时刻出现的基本动作语义概念进行归一化处理,成为一个N维基本动作语义概念的向量,再采用Apriori算法挖掘视频动作语义概念的关联规则,最后生成该场景的动作概念关联规则集。
视频动作语义概念关联规则挖掘算法描述如下:
input:traindatasets E (训练数据动作语义概念事务集)。
MST:最小支持度阈值。
MCT:最小置信度,使用逐层迭代的方法。
output:L、E中的频繁项集frequent_itemsets。
Video_rule
{
//产生频繁项集
{
E1=Find_Video_frequent_1_itemsets(E,MST)
for(k=2;E1-1≠∅;k++){
Ck=aproiori_gen(Lk-1)// 连接与剪枝
{
扫描动作语义概念数据库中的每一个事务e∈E
Ce=subset(Ck,e) //得到e的子集作为候选集
For each candidatec∈Ce
count++ //进行计数
}
count>=MST//对于Ck的计数, 满足最小支持度(MST)
}
E1=∪kLk//得到视频动作语义概念项集
}
//生成关联规则
If frequent_itemsets El,{
s⊂El且s≠φ//产生El的所有非空子集s
for each s{
printf rules⟹(El-s) //生成规则
}
}
}
连接与剪枝:连接与剪枝算法aproiori_gen分为两个步骤,先连接后剪枝,在得到K项集之前先得到K-1项集。步骤如下:
aproiori_gen
{ //连接:
for each 事务项集l1∈Lk-1
for each 事务项集l2∈Lk-1
if(项集LK-1是可连接的,之前的K-2项相同)
l1∞l2// l1与l2是可连接的
//候选集剪枝
if has_infrequent_subset(c, Lk-1)// 判断是否为非频繁项集
delete c; //剪枝
elsec∪Ck
将c添加到Ck中
}
非频繁项集判断:
has_infrequent_subset(c:K项候选集,Lk-1为K-1项集)
{
for each c的K-1项子集
如果都不属于Lk-1,返回频繁项集
否则,返回非频繁项集
}
将各类视频复杂动作语义概念中的动作语义概念关联规则集挖掘出来后,根据所产生的强关联规则,对训练集的视频动作语义概念进行检测分类,但需合理定义复杂动作语义概念检测分类准则。
本文考虑到各种规则在各类动作语义概念中,不同支持度对视频分类贡献不同,将待测视频中所有符合规则的置信度相加,除以动作语义概念规则集中所有规则的置信度,作为该类视频动作语义概念的检测分类依据。设视频动作场景有M类,则计算待测视频为第i类场景的得分scorei,其计算公式如下:
(3)
当分别计算出待检测视频动作场景符合视频动作场景M类的得分后,对于待检测视频动作场景类别L,可由下式进行计算:
(4)
即计算其对应的所有视频动作语义场景类别得分,取得分最大的类别作为待测视频动作场景的最终类别。
本文首先采用动作识别数据库Charades daily human activities Data Set[21],该数据库包含15类室内复杂动作语义概念:Basement、Bathroom、Bedroom、Closet、Dining room、Entryway、Garage、Laundry room、Living room、Kitchen、Home Office、Hallway、Stairs、Recreation room、Pantry、Other。本实验选取其中5类复杂动作语义概念:Bedroom、Bathroom、Kitchen、Living room、Home Office,总共4 336段视频。在该视频库数据集中,对视频中出现的动作语义概念进行序列标注,总共157个动作,并对视频进行标准化。即对每个视频截取50s片段,然后对每段视频中动作语义概念的出现次数进行检测,最后将视频中每个动作语义概念出现的时间及共同出现的动作语义概念,作为最终的实验输入数据。
由于采用关联规则的匹配程度进行动作语义场景检测,各类场景的关联规则集大小对检测准确率有着重要影响,故需考虑支持度、置信度参数的变化,从而挖掘出相应场景的关联规则集,并选择检测准确率最高的参数作为该类场景挖掘的支持度与置信度参数,以保证挖据的规则集可以有效表达与检测该类场景。因此,对视频中5类复杂动作场景进行关联规则挖掘,其中MST取值范围为[0.02,0.09],MCT取值范围为[0.20,0.60],然后对挖掘出的规则数与用相关规则进行场景检测分类的准确率进行分析。
在Bedroom场景中挖掘出的规则数与用规则集进行语义场景检测的准确率如表2、表3所示。由表3可以看出,在该语义场景下选取的最佳参数MST=0.05,MCT=0.40。
表2 Bedroom在不同MST与MCT下的规则数
表3 Bedroom在不同MST与MCT下的检测准确率 单位:%
在Bathroom场景中挖掘出的规则数与用规则集进行语义场景检测的准确率如表4、表5所示。由表5可以看出,在该语义场景下选取的最佳参数MST=0.04,MCT=0.60。
表4 Bathroom在不同MST与MCT下的规则数
在Kitchen场景中挖掘出的规则数与用规则集进行语义场景检测的准确率如表6、表7所示。由表7可以看出,在该场景下选取的最佳参数MST=0.05,MCT=0.50。
在Living_room场景中挖掘出的规则数与用规则集进行语义场景检测的准确率如表8、表9所示。由表9可以看出,在该场景下选取的最佳参数MST=0.06,MCT=0.50。
表5 Bathroom在不同MST与MCT下的检测准确率 单位:%
表6 Kitchen在不同MST与MCT下的规则数
表7 Kitchen在不同MST与MCT下的检测准确率 单位:%
表8 Living_room在不同MST与MCT下的规则数
在Home_Office场景中挖掘出的规则数与用规则集进行检测的准确率如表10、表11所示。由表11可以看出,在该场景下选取的最佳参数MST=0.06,MCT=0.60。
表9 Living_room在不同MST与MCT下的检测准确率 单位:%
表10 Home_Office在不同MST与MCT下的规则数
表11 Home_Office在不同MST与MCT下的检测准确率 单位:%
以上结果可以看出5类视频在不同参数下的表现情况,参数选取不同时,检测性能也有较大差异。各个复杂场景挖掘的关联规则数目对场景检测分类准确率有一定影响,若MST>0.07,实验中获得关联规则的数目偏少,过滤掉了大多数规则,会导致计算准确率偏低;若MST<0.03,MCT<0.30,挖掘出的关联规则中则存在大量置信度较小的规则,降低了视频语义场景检测准确率。
为了验证本文方法的有效性,在相同训练集与测试集下,将本文方法与SVM方法进行实验对比分析。采用5倍交叉[22]实验得出分类准确率,每次交叉实验选取各类视频场景训练集与测试集之比为8∶2。由5类场景的检测准确率对比(见表12)可以看出,本文方法对5类场景的检测准确率均高于SVM方法,并且对各类场景的检测准确率更加均衡,其平均准确率比SVM高1.19%。
实验结果表明,基于动作语义概念关联规则表达复杂动作场景是有效的,采用场景的动作语义关联规则集进行动作场景检测分类,有利于提高复杂动作场景检测准确率。
表12 视频语义场景检测准确率 单位:%
针对视频监控多个动作语义概念形成的视频场景或复杂事件检测分类问题,本文提出一种基于基本动作语义概念关联的视频复杂动作场景检测方法。该方法对相应视频场景中的所有动作语义概念采用Aproiri算法进行关联规则挖掘,将挖掘得到的动作语义概念关联规则作为视频复杂动作场景检测分类依据,并对测试视频中符合相应场景类别的关联规则情形进行场景检测分类。实验结果表明,该方法可以挖掘出视频中动作之间的关联关系,并快速、有效地实现对视频复杂动作场景概念的检测分类。下一步工作还需要引入动作间的时序关系并对其进行挖掘,从而进一步提高视频复杂动作场景的检测分类准确率。