视像高层特征抽取算法研究
文件类型:DOC/Microsoft Word 文件大小:46180字节
内容摘要:
视像高层特征抽取算法研究
Research on High Level Feature Extraction in Video
(申请清华大学工学硕士学位论文)
培 养 单 位
:
计算机系
学 科
:
计算机应用
研 究 生
:
陈 乐
指 导 教 师
:
林福宗教授
二○○五年六月
视像高层特征抽取算法研究
陈
乐
关于学位论文使用授权的说明
本人完全了解清华大学有关保留,使用学位论文的规定,即:
清华大学拥有在著作权法规定范围内学位论文的使用权,其中包括:(1)已获学位的研究生必须按学校规定提交学位论文,学校可以采用影印,缩印或其他复制手段保存研究生上交的学位论文;(2)为教学和科研目的,学校可以将公开的学位论 文作为资料在图书馆,资料室等场所供校内师生阅读,或在校园网上供校内师生浏览部分内容;(3)根据《中华人民共和国学位条例暂行实施办法》,向国家图书馆报送可以公开的学位论文.
本人保证遵守上述规定.
(保密的论文在解密后遵守此规定)
作者签名:
导师签名:
日 期:
日 期:
摘 要
在信息爆炸的今天,如何让计算机自动的发掘各种视像中的语义并有效的对其索引和检索,已经成为计算机领域一个亟待解决的重大问题.作为基于内容的视像检索的一部分,与基于内容的图像检索一样,视像高层特征抽取面临着底层特征与高层语义之间的语义鸿沟.解决这个问题,现在通常的做法是提取更有效的底层特征和设计更好的分类器及其分类器融合算法.我硕士阶段的工作就围绕这两个方面展开.
视像检索的单位是镜头,以往镜头特征的提取通常是首先提取关键帧,然后用关键帧的图像底层特征来作为镜头的底层特征.这样做会丢失时间轴上的大量信息.我们提出的时域小波特征,是一种有效的镜头特征提取方法,它利用特定的图像底层特征在时间轴上的小波变换,抓住了该特征在时间轴上变化的模式.实验证实了时域小波特征对于具有某些固定模式的镜头检测的有效性.
现在公认推广性能最好的分类器是支持向量基,它在很多领域中得到了广泛的应用.相比之下,虽然人们对分类器融合的研究已经很多,但是至今仍没有一个通用的令人满意的分类器合并算法.针对不同的具体问题,往往会有不同的最佳合并策略.我们提出的基于平均准确率的Borda投票算法,用样本在分类器输出的排序值的负值作为样本的置信度,用分类器在验证集合上的平均准确率经过一个最优的非线性变换后的值作为分类器的权重.大量实验显示出了该方法的鲁棒性及其有效性.
美国国家标准局举办的TRECVID会议是该方面研究的一个国际公认的评测.视像高层特征抽取是其4个任务之一,其目标就是利用标注好的样本,让机器能自动发掘高层特征或语义与底层特征之间的内在联系,从而可以使计算机对视像自动的建立有效的索引,以方便对其检索.本人参与设计并实现了TRECVID2004高层特征抽取系统,验证了我们提出方法的有效性,并在检测"篮球进篮"时取得了第一名的好成绩.
关键词:基于内容的图像检索 基于内容的视像检索 TRECVID 概念检测 高层特征提取 镜头底层特征 分类器合并算法Abstract
In an era of information explosion, it has become an urgent problem in computer science and technology that how to make computer to automatically find semantics in videos and then index and retrieve them efficiently. As a part of the content based video retrieval, extraction of high level features in videos encounters the same problem as content-based image retrieval that is how to bridge the semantic gap. The common way to solve this problem is to extract more effective low level features and at the same time design more powerful classifiers and fusion methods for them. My research then focuses on these tow aspects.
The unit for video retrieval is shot. The common way to extract shot features is first extracting keyframe from the shot and then computing the image features of the keyframe which is then used as shot features. The drawback of this method is that it loses most of time information. We proposed an effective method to extract shot features, temporal wavelet features. The method exploits the wavelet transform of certain kind of image feature along the temporal axis to capture the evolving pattern of this image feature. Experiments show the effectiveness of the temporal wavelet features for representing shots with fixed patterns along temporal axis.
On contrast to the most widely used classifier, support vector machine, people fail to find a common effective fusion method for classifiers, though it has been studied for a long time. The most effective fusion method may vary according to different applications. We proposed a novel fusion algorithm, AP-based Borda voting method, which uses the negative rank value as the confidence value, and transforms the average precisions on the validate set nonlinearly to the optimal weights for each classifier. Substantial experiments show the effectiveness and robustness of our method.
To promote progress in content-based retrieval from digital video via open, metrics-based evaluation, NIST and other U.S. agencies sponsor the TRECVID conference to encourage research in this field. We designed and implemented a high level feature extraction system for TRECVID 2004, which validated our proposed methods and achieved the highest score in detection of "Basket scored" feature.
Keywords: content-based image retrieval, content-based video retrieval, TRECVID, concept detection, high-level feature extraction, shot feature extraction, fusion of classifiers
目 录
第1章 引言
1.1 背景
自上个世纪90年代以来,随着计算机技术和网络技术迅猛发展,多媒体数据呈爆炸性增长,图象,语音,影像等各种形式的多媒体信息都被放到了网上,它们展极大方便和丰富了人们的生活的同时,如何有效的索引和快速的检索多媒体数据,以方便用户的搜索和管理,已成为计算机领域的重要课题.
视像高层特征有时也称为概念,是指诸如"行人","海滩","篮球进篮"及"比尔.克林顿"等语义内容.视像高层特征抽取就是要计算机自动的发掘视像中这些语义内容.作为基于内容视像检索的一部分,视像高层特征抽取的任务是在视像结构分析基础上,进行语义分析.它不仅有着单独存在的意义,而且它还为最终的视像搜索提供更接近语义的特征,协助完成搜索任务.同基于内容图像检索一样,高层特征提取同样面临着底层特征和高层语义之间的鸿沟.
为了推进基于内容的视像检索方面的研究,美国国家标准局(NIST)举办TRECVID会议,受到了包括美国国防部高级研究计划局(DARPA)在内的多个美国政府部门的资助.NIST向世界各国的大学和公司的参评者发布标准测试数据,参评者用这些标准测试数据测试自己开发的算法和软件,在规定时间以前提交自己的运行结果,然后由NIST提供标准答案并对各结果进行评价.
我硕士阶段主要的工作就是集中在如何有效的提取视像中的高层特征,并以TRECVID数据作为测试平台,验证了我们方法的有效性.
1.2 研究现状
视像中高层特征抽取通常可认为是一个有监督的机器学习问题(见第4章):首先要抽取诸如颜色,纹理,声音以及文本等方面的底层特征;然后构造相应的分类器,利用已有的标注训练分类器;最后利用这个分类器对样本分类.因此抽取视像高层特征的研究可以分为两部分:(1):抽取更有效的视像底层特征,(2):设计及使用分类器及其分类器合并算法.
首先,对于视像检索的单位—镜头(shot),我们要对其抽取有效的底层特征,以便进行检索.镜头通常用关键帧表示,因此一个自然的想法是用关键帧的图像底层特征作为镜头的底层特征.实事上,目前包括IBM公司,CMU大学及复旦大学等在内,大部分研究机构开发的系统都是基于关键帧的图像检索系统.这些系统直接将基于内容的图像检索技术应用到对关键帧的检索,从而实现对视像的基于内容的检索.
在抽取镜头关键帧的图像底层特征时,可能会有很多不同的方式.最简单的是直接对于整个图像抽取相应的图像特征.IBM公司处理的相对最为复杂,为克服背景噪声的干扰,他们首先进行图像分割,然后将识别目标用一个尽可能小的矩形框框起来,最后在这个小的矩形框里提取有效的图像特征.CMU大学在提取图像底层特征方面介于这两者之间,他们采取"切豆腐块"的方法,将关键帧平均的切成的子块,然后在各个子块上提取特征,最后将这些特征拼接起来作为图像的特征.这种方法对于图像中主要目标的平移会比较敏感.
使用关键帧代表一个镜头来抽取特征,会丢失很多时间轴方面的信息.因此,更合理的镜头特征提取应该是直接将镜头作为一个对象,抽取其有效的底层特征.其中有代表性的工作有Oulu大学的概念检测系统工作.
其次,关于分类器.现在公认推广性最好的分类器是支持向量基(Support Vector Machine SVM),它被大多数参赛单位所采用,并取得了很好的结果.另外,诸如模糊K近邻分类器,神经网络等也有使用,但效果一般不如SVM好.
仅仅使用单独一个分类器很难取得很好的结果,往往是要使用不同的底层特征,使用多个分类器,将多个结果融合起来才能取得较好的结果.于是,各种分类器的融合算法也得到广泛应用.常用的融合方法有使用不同规则化方法及其不同分类器权重的Ensemble融合,Bagging算法,AdaBoosting算法等,更复杂的有诸如贝叶斯网络(Multinet)方法,使用模型向量的融合算法,使用多层感知器的分类器融合算法等方法.仔细分析了Trecvid2003的各个参赛单位的报告,尤其是结果遥遥领先的IBM的做法,我们发现使用分类器融合算法确实可以提高系统性能,但若采用过于复杂的模型带来的收益往往不会很大,有时甚至会使结果有所下降.
1.3 论文内容简介
在第2章中,作者给出了一种提取镜头特征的方法.该方法摆脱了通常使用关键帧的图像特征来作为镜头特征的做法,充分考虑到了时间这一纬度上的变化,更有效的描述了镜头的动态特性,在部分高层特征的检测中显示出了其有效性.
在第3章中,作者给出了一种新的分类器结果合并算法,该方法利用各个分类器在一个验证集合上的平均准确率作为分类器合并的初始权重,通过一个非线性映射,找到用负排序值作为置信度值的分类结果合并的最佳权重,取得了良好的效果.
本人硕士阶段针对Trecvid2004的概念检测任务,参与设计及实现了一个系统,该系统在当年检测"篮球进篮"概念时,取得了最好的成绩.我们将在第4章中详细介绍我们设计实现的概念检测系统.
在第5章中,作者给出了硕士生阶段工作的总结以及一些展望.
最后,我们在附录中给出了有关系统和程序的更详尽的介绍,其中附录A给出了概念检测系统的详细介绍,附录B给出了我们提出的基于平均准确率的Borda投票方法的相关程序说明.
第2章 镜头特征提取的一类有效的方法
——时域小波特征
2.1 本章引论
本章介绍了我们提出的一种有效的镜头特征提取方法—时域小波特征,该方法利用小波特征捕获了某些图像特征在时间域的变化模式,为视像镜头特征的提取提供了一类有效的方法.我们选取HSV空间的颜色直方图作为图像特征,提取了相应的时域小波特征——TWColorHist,从而验证了该方法的有效性,今后可以尝试使用其它种类的图象特征.
本章的安排如下:2.2节介绍了镜头特征提取的背景及其相关工作;2.3节将详细介绍该类镜头特征;2.4节给出了相关的实验结果;2.5节给出了一些讨论.
2.2 背景介绍及相关工作
基于内容的视像检索的研究在过去的十年里得到了越来越多的关注,这方面的技术大部分是直接或间接的源自基于内容的图像检索技术.比如现在通常的做法是首先提取镜头的关键帧,然后通过关键帧的诸如颜色和纹理等方面的图像底层特征来检索.然而,在基于关键帧的索引与检索方法中,时间方面的信息没有被充分利用.
Smith等人利用时空小波来提取视像纹理,这种方法提供了一个描述时空特征的方法.该特征仅仅是将2维小波变换直接推广到了3维,这样,时间1维和空间的2维(图像)被同等的对待.事实上,时间和空间是两个性质截然不同的抽象空间,而且这两个抽象空间在带给人们的感受上也是截然不同的.因此,我们试图分别对待时间和空间这两个抽象空间,提取更有效的底层特征.
Rautiainen等人提出的时域颜色相关直方图(TCC,Temporal Color Correlogram)将二维的图像平面内的颜色相关直方图直接推广到了三维,其中第三维是时间维度.该特征捕获了颜色在视像镜头中在图像平面和时间这三维空间中的统计共生特性.该方法的与Smith等提出的时空小波特征一样,没有区别对待时间和空间两个不同的抽象空间.
Rautiainen等人还设计了时域梯度相关直方图(TGC,Temporal Gradients Correlogram),它描述了视像中采样的帧之间边缘的共生相关性.该方法虽然对于时间和空间采取了不同的处理,但有较大的局限性,它的设计是为了描述视像序列中边的变化模式,比较适合描述城市风景这样的镜头.
由于沿着时间轴的变化在视像中往往包含着非常丰富的信息,我们试图利用小波分解的方法去捕获这种时间上的变化.为了叙述的方便,我们把从在一个镜头中顺序采样的一帧帧图图像中提取的某种图像底层特征的序列称为是一个特征-帧序列(Feature-Frame Series),它实际上是一个多维时间序列.
时域小波特征和TCC和TGC的差别在于它们在时间轴上所作的不同处理,时域小波特征作的当然是小波分解,然后提取特征,而TCC和TGC则是沿着时间轴作共生分析.
另一方面,我们可以认为时域小波特征是某种图像底层特征在时间域上通过使用小波分析的方法的作出的一种推广,于是提出的三维小波特征可以认为是时域小波特征当图像特征取二维图像小波特征时的一个特例.
作为一个有益的尝试,我们使用图像的颜色直方图作为研究对象,设计了一种基于此特征的有效的时域小波特征—时间颜色直方图,简记为TWColorHist.虽然该特征在Trecvid04的数据上表现出较好的效果,但是实验作的还不够,仅仅这一个实验并不能完全说明该特征的有效性,希望以后还能使用这个方法进行更多的尝试.
2.3 时域小波特征
2.3.1 视像镜头特征的提取
在视像中最基本的单位是帧(frame).比帧高一层次的单元是镜头(shot),镜头是指摄像机从打开到关闭的过程中记录下来的一组连续图像帧.在视像检索中,往往最小的检索单位就是镜头.
如何从一个镜头中提取有效的特征呢 提取一个事物的特征实际上是对该事物的去粗取精的抽象化过程.从这个角度看,我们可以把镜头特征提取分为三类,如图2.1所示.
第一类方法是基于关键帧的镜头特征提取.这是最常用的镜头特征提取方法,对应与图2.1中最左边的方法.它首先提取镜头的关键帧,然后用关键帧的图像特征作为镜头的特征.这种方法实际是先在时间轴上作了一次抽象,但抽象的太厉害,以至于几乎没有任何时间信息留下来;其次在空间上抽象,就采用通常提取图像特征的办法.该方法区别对待了时间和空间两个不同的抽象空间,但对时间的处理过于粗糙.
第二类方法是基于视像体数据的镜头特征提取,对应与图中中间部分.它们把镜头数据作为一个三维体数据处理,如前面提到的TCC与3维小波特征描述的视像纹理等.这种方法的优点是充分考虑了时间轴上的信息,但是它将时间和空间两种性质不同,带给人们的感受也截然不同的抽象空间同等的对待,其有效性值得怀疑.
第三类方法是基于特征-帧序列的镜头提取方法,对应于图中右边部分.它们首先在空间上将一帧帧的图像抽象—提取图像特征,这样形成一个特征-帧序列,然后将这个序列作为一个多维时间序列来处理,进一步从中提取有效的特征.该方法充分考虑到了时间和空间的不同,应该是一类很有效的方法.TGC就是基于这种方法的一种镜头特征.
本人提出的时域小波特征就属于这类方法,它是对这个多维时间序列(特征-帧序列)进行了小波分解,之后提取相应的小波特征,希望能够利用小波来捕获时间轴上多尺度的信息.
图2.1 三类镜头特征提取方法之示意图.从左到右依次为:基于关键帧的镜头特征提取方法,基于镜头体数据的特征提取方法和基于特征-帧的镜头特征提取方法.
2.3.2 特征-帧序列可视化
为了能从特征-帧序列中提取有效的特征,我们对其做了可视化,来分析对于不同语义的镜头是否其特征-帧序列也能表现出来不同的特性.
在实验中,由于张磊提出的HSV36有着提取效率高,特征维数短(36维),实验效果不错等优点,因此我们利用它来提取镜头中各帧的图像底层特征.又由于每相邻帧之间变化往往很小,而且考虑到效率的因素,我们在实验中是每十帧取一帧来形成相应的特征-帧序列(即每秒采3帧).
图2.2至图2.5显示了我们对这种特征-帧的可视化结果.每组图的第一幅是其可视化图,第二幅图是该镜头的主关键帧,如果该镜头还有其他次关键帧,则依次下实在后面.可视化图的宽度显示表示了镜头的长度;图的每一列都由36个小方格组成,分别对应于HSV36直方图的36个Bin,值越大,相应的小方格里的颜色越亮.
图2.2对一个相对平静的镜头进行了可视化,镜头的是关于两个人物的交谈.这种镜头相对平静,表现在特征-帧序列上,可以看到杂乱无章的斑纹,可以认为信号以高频为主.
图2.2 特征-帧序列可视化:相对平静的镜头
图2.3对一个片头进行了可视化,该片头背景颜色在不停的变化,从可视化结果中我们可以隐约的看到相应的垂直的纵向条纹,这些条纹反映了部分颜色周期性的变化.
图2.3 特征-帧序列可视化:片头镜头,颜色周期性变化
图2.4和图2.5对两个篮球比赛的镜头进行了可视化,一个是仅有一个关键帧,另一个则有多个关键帧.篮球比赛镜头的特点是,往往有镜头从中场到前场的平移(pan),这样画面的主色调会由黄色,逐渐变成深色.这种具有颜色平移的性质,也可以从相应可视化结果中看出来,它对应与可视化图中的斜向的条纹.
图2.4 特征-帧序列可视化:篮球比赛镜头之一,主颜色平移,只有一个关键帧
图2.5 特征-帧序列可视化:篮球比赛镜头之二,主颜色平移,有多个关键帧
从以上的可视化结果可以看出,特征-帧序列确实能反映镜头的部分语义特征.但我们应该如何表示或者如何从中提取有效的特征呢 从上面的分析可以看出,特征-帧序列往往表现出多尺度的特性,我们很自然的想到使用小波沿着时间轴对信号分解,以提取有效的特征.我们将在下一节详细给出该特征—时域小波特征.
2.3.3 时域小波特征
小波变换(或参见第8章)是80年代后期发展起来的新的数学分支,在函数论,微分方程,信号分析与传输,图象处理方面有着重要的应用.
时域小波特征是一种基于特征-帧序列的镜头提取方法,它将特征-帧序列作为时间序列,使用小波分析的方法提取出来的镜头特征.应用小波分析提取特征可以有很多不同的方法,我们采用了三层的金子塔小波变换,如图2.6所示,在每一个细节部分D和近似部分A都提取相应的均值和方差,然后将各个维度拼接起来形成了一种时域小波特征.在下一节我们给出部分实验结果,说明了该方法的有效性.为了叙述方便,我们称该时域小波特征为TWColorHist.
图2.6 金字塔小波特征提取
2.4 实验结果
本小节我们给出了时域小波特征的一个例子—TWColorHist特征的实验结果.在上面的叙述中已经给出了特征TWColorHist的提取方法,这里作一个完整的叙述如下:对于每一个镜头每十帧采样,在采样的帧上提取HSV36特征,形成特征-帧序列;然后对该序列的每一维度用Haar小波基作3层的金字塔小波分解,在各个子带上提取均值和方差;最后将这些均值和方差拼接起来形成了TWColorHist.
我们在114个ABC/CNN新闻视像上评价了我们提取的特征TWColorHist.每一个视像大约有300个镜头,镜头的边界以及标注都由Trecvid提供.我们使用SVM作为分类器,特征在使用前进行了均值为零方差为一的高斯归一化.
图2.7显示了相应的召回率-准确率曲线.我们还在相同的数据集上对HSV36(ColorHistHSV36)和传统的166维的颜色直方图(ColorHistHSV166)做了比较.从该图可以看出,TWColorHist取得了较好的结果.
图2.7 镜头特征提取示意图
下面给出了我们这个系统错分的两个例子.图2.8是"篮球进篮"概念漏检的一个例子,从该例子可以看出,这个镜头漏检可能与它拍摄的角度与一般的"篮球进篮"镜头不同,从前两个关键帧可以看出,画面中缺少大面积的篮球场地.
而图2.9中,是克林顿上飞机的一个过程,伴随着大片黄色场地的移动,镜头的最后是飞机机身,这种颜色直方图上的变化确实和一般的"篮球进篮"镜头很类似.从可视化图中也依稀可以看出两个斜向的长条纹.
图2.8 "篮球进篮"概念漏检的例子
图2.9 "篮球进篮"概念误检的例子
2.5 结论及进一步工作
通过实验,我们可以看出时域小波特征提供了一个有效的描述镜头特征的方法.本实验有很多不足之处,如下:
首先,这个实验,仅仅使用了一种较为简单图像底层特征,进一步可以尝试其它更有效的图像特征,如相关直方图,颜色一致向量,边缘直方图等等.我们选取36维的颜色直方图做实验的原因在于,该特征维数短,表达力还不错,而且提取效率高.时域小波特征的计算量主要是取决于单个图像特征的提取效率,时间上的小波分解及统计其相应的统计量的计算量很小.
其次,在对于一维的时间信号的处理上,我们使用的仅仅是进行了三层的金字塔分解,然后再各个子带上去两个统计量,各子带的地位是平等的.实际上,对于某种信号,人们关心的往往是某一个特定的子带,或者说是某一个特定的粒度.因此,可以进一步考虑如何选取最能表达语义概念的子带或者说粒度层次.我想可以用类似特征选择的做法,做实验选定最好的若干个子带,进一步可以做子带的自动选择,这样就可以充分利用了小波多尺度的优点,将大大增强该小波特征的描述能力.该想法是源自文献,由于时间关系,没有进一步深入的展开着部分工作.
第3章 基于平均准确率的Borda投票算法
3.1 本章引论
本章介绍了作者在分类器结果合并方面做的一些工作,也即我们提出的基于平均准确率的Borda投票算法(AP-based Borda Voting Method).3.2节将简单介绍一下工作的背景;3.3节将介绍平均准确率的计算及其性质;3.4节将详细介绍该方法,同时与其他类似的方法进行比较;3.5节给出了两组实验结果,显示了该方法的有效性和鲁棒性,并给出了在Trecvid 2004测试集上的结果;相关的程序在附录B中给出了详细的介绍.
3.2 背景介绍
在机器学习领域,存在着众多的分类器,每种分类器都有自己的优点和缺点.即使对于同一种分类器,不同的参数也会得到很不相同的分类结果.将这些不同的分类结果合并的算法的研究已有很多年了,但是,至今还没有一个公认有效的分类结果的合并算法.
分类器对于各个样本属于某一类作出的判断可以有三个不同的粒度:最细的粒度是分类器返回每个样本属于某一类的置信度,其次是返回各个样本属于某一类按置信度的排序,最粗的粒度是仅仅返回各个样本属于还是不属于某一类的是与否的判断.针对这三种不同的分类结果,分类结果合并算法可以相应的分为:针对置信度类型分类结果的合并算法,针对排序类型分类结果的合并算法和针对抽象标号类型分类结果的合并算法,如下图3.1所示.
针对置信度类型分类结果的合并算法从分类器得到了最多的信息,但是该方法的困难在于,如何使不同分类器输出可以比较的置信度,尤其是对于基本原理都不相同的分类器.或者说,该类算法的困难在于如何对不同分类器输出的置信度进行合理的归一化.
针对抽象标号类型分类结果的合并算法不存在置信度归一化的问题了,而且由于抛掉了很多信息后,相当于去除了很多的噪声,该方法具有一定的鲁棒性.但是由于从分类器得到的信息太少,丢失的信息太多,很难取得很好的结果.
针对排序类型分类结果的合并算法即避免了置信度难于度量的问题,又保留了较多的分类器的判断,是前两种方法的一个折中,因而有望能取得较好的合并结果.这类方法扔掉了分类器输出的很细致的反映置信度的信息,而仅仅保留了相对排序,这相当于对分类器的输出结果进行了一下最简单的归一化,即使用排序值最为置信度值.从另一个角度看,这种处理也相当于一次去除噪声的处理,从而使得该方法具有了较强的鲁棒性.
我们研究针对排序类型分类结果的合并算法的原因在于:一方面,由上述可知,这类方法应该具有较强的鲁棒性;另一方面,是我们在解决Trecvid高层特征抽取任务时遇到了这样的问题.我们参加的Trecvid的概念检测任务本身就要求以排序的形式返回结果,对于同一个概念我们往往能得到多个这样的排序结果,于是我们遇到了如何将其合并得到一个最好,最鲁棒的结果这样的问题.
在众多针对排序的分类结果合并算法中,Borda投票(有时也称Borda计数—Borda Count)的方法是一个最简单,有启发性而且效果不错的方法.该方法有很多变形,应用到不同的具体问题,往往可以取得不错的结果.针对Trecvid概念检测任务,为了取得最佳的平均准确率,我们设计了一种称为基于平均准确率的Borda投票的分类结果合并算法,大量的实验显示出了该算法的有效性和鲁棒性.
从另一个角度看,分类结果合并算法最关键的问题可以认为是如何判断各个分类器在真正的测试数据上性能的好坏,性能好的应该有较高的投票权重,或者其作出的判断的可信度应该相对更高;而性能差的分类器则相反.我们提出的基于平均准确率的Borda投票算法实际上是利用一小部分未使用过的数据(简称为预测集)来预测各个分类器在真正的测试数据集合上的性能好坏,用各个分类器在这个小数据集上的AP来表示.然后使用负排序值作为置信度值,在预测集上求最优的相对权重.同样,我们也可以固定相对权重,即使用预测集上的AP作为权重,而调整排序值之间的差异到一个合适的尺度,从而使得在预测集上的AP最好.
图3.1 分类结果合并算法
3.3 平均准确率
信息检索领域使用最多的评测指标是准确率(precision)和召回率(recall).他们定义如下:
(3-1)
(3-2)
这两个指标实际上是某一点的指标,并不能很好的反映系统的性能.而且,两个指标之间是此消彼长的关系,这样,使用这两个指标很难对不同系统进行比较.Trecvid的概念检测任务使用平均准确率(Average Precision, 或简称为AP)作为评测指标.这是一个单值的指标,综合考虑了多点的性能,有利于系统间的比较.
AP的计算如下:要求在返回的结果按置信度从高到低的已排序,在前n个结果中计算每返回一个相关的样本时刻的准确率,然后计算这些准确率的均值.例如,假设我们有一个返回20个镜头,其中4个镜头属于我们要检测的概念.进一步假设这四个相关的镜头分别排在第1,2,4,15位,这样该排序的平均准确率是每返回一个正例时刻的准确率的均值:(1/1+2/2+3/4+4/15)/4 = 181/240.
我们设计算法优化的目标就是最大化平均准确率.该值和返回结果的排序密切相关.我们在试验时往往会去分析某个AP的波动是不是对应于排序结果的显著变化 还是仅仅是个别样本排序的小扰动造成.于是,我尝试寻找关于排序结果小扰动时对AP的影响的上下界,从而有利于我们分析试验结果.下面的结果是在写论文时总结的,但由于篇幅限制,没有写到中,现在总结如下,如有问题望指出:
定理1:假设我们使用一个二分类器对样本分类,返回了M个结果,该结果按照每个样本属于该类的可能性由高到低排序.进一步假设其中有N()个是正例.这样,我们任意交换第j-1和第j个样本()可能造成的该排序的AP值的变化的界如下:
如果第j-1和第j个样本同属于一类,则,否则:
(3-3)
证明:如果第j-1和第j个样本同属于一类,则由AP的计算方法可以知道,这种扰动不会引起AP的任何变化.现在考虑AP属于不同的类.的两个界对应于两种极端情况.
上界对应于所有j-1以前的样本都是正例,当第j-1个样本也是正例,而第j-1个样本是反例是,则AP值会下降上界这个值.反之,当第j-1个样本是反例,而第j个样本是正例是,则AP会升高这个值.
下界对应于所有j-1以前的样本都是反例的情形.证毕.
推论1:对于一个长为M的序列,任意交换两个相邻的样本,将导致AP的变化不超过,其中N是M个样本中正例的个数().
使用这个定理及其推论,我们可以对AP的变化有一个量上的认识.举例来说,我们概念检测任务,要返回前2000(N=2000)个相关样本,而我们的正例往往很少,假设有250个(M=250).这样,任意交换相邻两个样本,造成的AP变化不超过0.002.如果某次实验AP变化超过了0.002,那么这个变化可以认为一个显著的变化.我们知道,返回结果的排序有可能由于算法的不稳定性,造成个别相邻的样本前后位置不同,而这些变化应该是不显著的.
3.4 基于平均准确率的Borda投票的分类结果合并算法
当我们把分类器的排序值作为置信度时, 针对排序的分类结果合并算法可以认为是针对置信度的分类结果算法的一个特例,它可以统一的这样来描述:假设我们有n个分类器,每个分类器在决策时有一个表示其重要性的权重.我们有m个待分类样本.第j个分类器对这m个样本的排序结果表示为.针对排序的合并算法可以认为是一个映射:. 第i个样本最终的置信度将是:
(3-4)
函数f是分类器权重的一个实函数.g是排序值的一个实函数.
从(3-4)式可以看出,当我们取不同的函数f和g以及Comb时,就可以得到Borda投票的算法及其各种变形.下面将一一介绍.
3.4.1 标准的Borda投票方法
当我们取函数f和g以及Comb为如下形式时:
(3-5)
标准的Borda投票方法可以表述为:
(3-6)
该方法很简单,在我们的Trecvid数据上也能取得不错的结果.
3.4.2 中位数Borda投票方法与最小排序值Borda投票方法
标准的Borda投票方法是用所有排序的和,等同于使用排序值的均值.这种方法对于个别的野值的鲁棒性不强.而中位数对于个别的野值具有较强的鲁棒性,因此提出使用中位数Borda投票的方法,该方法只是将(3-4)式中的Comb函数取为:,于是该方法可以描述为:
(3-7)
另一种变形是,对第i个样本的判断使用所有分类器中排序最靠前的那个排序值.该方法的判断偏于乐观,要求分类器输出的排序的靠前的部分较为稳定.我们称该变形为最小排序值Borda投票方法,具体可以用下式描述:
(3-8)
3.4.3 Logistic Borda投票方法
前面的方法都认为各个分类器在决策时的重要性是一样的.但事实上,各个分类器的性能差异可能会很大,这样我们在决策时,应该优先考虑性能好的分类器的判断.但给出或判断各个分类器的重要性呢 也即如何求分类器权重呢 Logistic回归提供了该问题的一个解决方法.我们没有采取该方法的原因在于该方法的计算量随着待估类数的增大迅速增大.Trecvid03的概念检测任务要求返回前2000选,这样对应与Logistic回归中2000个类,计算上不可行.
3.4.4 用平均准确率加权的Borda投票的分类结果合并算法和基于平均准确率的Borda投票的分类结果合并算法
我们调试系统的目标是使得最终排序的平均准确率尽可能的高,于是,每个分类器出输出的排序的平均准确率可以启发式的作为该分类器的权重,中给出该方法.我们称之为用平均准确率加权的Borda投票方法.该方法表述为:
(3-9)
其中是分类器i在以往试验中表现出来的平均准确率.该方法要求要有少量的训练,也即要统计各个分类器的性能,估计出.
用平均准确率加权的Borda投票方法对于的使用过于直接,于是我们尝试对进行适当的映射,自适应的拉大或者缩小各个分类器之间的差距,使得最后输出的结果尽可能的鲁棒和满意.通过尝试各种变换,我们发现使用以下形式的变换能取得很好的结果,该方法我们就称为基于平均准确率的Borda投票的分类结果合并算法.具体表述为:
(3-10)
其中
,
(3-11)
在上式中,C是一个非负的控制参数,它的大小决定了将原来的权重之间的差距放大或缩小的程度.当C=0时,该方法将所有权重之间的差距缩小到零,从而该方法退化为标准的Borda投票的方法.当C取较大的值时,一般在大于150时,该方法将权重之间的差距放大到最高平均准确率的分类器的权重近似为1,而其他分类器的权重都近似为0.调整控制参数C,可以得到一个最合适的权重向量.是对原来的平均准确率在使用前作的归一化.
该方法所需要的训练和利用平均准确率加权的Borda投票方法一样,在训练集上测试各个分类器的性能,得到.比利用平均准确率加权的Borda投票方法多做的是,还要对C进一步进行一维搜索,这里可以用0.618法,或者简单的以一定步长搜索即可,计算量不大,一般本人使用的笔记本上(迅驰1.5G的CPU)计算20个分类器的合并,每个分类器输出2000选,只需要1分钟左右的时间.
实际上,该方法给出了一个求取适当权重的策略,原始的权重可以是平均准确率,也可以是通过其他方法得到的权重,如Logistic回归,或者专家的判断.
3.5 实验结果
3.5.1 在均衡的分类器上和不均衡的分类器上的实验
我们用Trecvid的数据作了两组实验来检验该算法的有效性和鲁棒性.
第一组实验使用比较均衡的分类器,也即分类器之间的性能差异不大,第二组实验使用了性能差异很大的分类器,既有好的分类器,也有很多性能比较差的分类器.
表3.2的前两列和图3.2给出了在一组均衡的分类器上的实验结果.均衡的分类器是指他们的性能都差不太多,从它们在测试集上的AP看出来(第一列),而经过由参数C控制的非线性映射之后得到了各分类器在决策时的真正权重(第二列).从这些权重可以看出,该算法根据原来分类器相对好坏的粗糙的序关系,计算得到了一组适合我们特定问题的精确的相对大小关系.
表3.1的后两列和图3.3给出了在一组不均衡的分类器上的实验结果.分类器不均衡可以从它们在测试集上的AP看出来,经过该算法,很不好的分类器的权值被自动置为0,如此就不会对分类产生不良的影响.
我们在实验前,并不知道所有这些分类器中,哪一个将在测试集上性能最好,而真正的测试之后才知道,于是我们把这个最好的分类器作为我们的比较乐观Baseline系统,应该是比较合理的.它对应与图3.2和图3.3中的Sbest曲线.可以看出我们的算法一致的超出了该Baseline系统.同样的也超出了通常采用的一些方法.
表3.1 两组实验中自适应权重的例子
Balanced Exp
C = 7
Unbalanced Exp
C = 137
List
AP
Weight
AP
Weight
1
0.6518
0.6637
0.0796
0
2
0.5169
0.1122
0.0773
0
3
0.4581
0.0517
0.0608
0
4
0.5128
0.1063
0.0588
0
5
0.3946
0.0224
0.0588
0
6
0.6671
0.812
0.6671
0.0135
7
0.6716
0.8616
0.6716
0.0461
8
0.6751
0.9023
0.6751
0.1195
9
0.6814
0.9804
0.6814
0.6646
10
0.6643
0.7826
0.6643
0.0063
11
0.6773
0.9289
0.6773
0.2176
12
0.6749
0.8999
0.6749
0.1132
13
0.6311
0.5053
0.6749
0.1132
14
0.6076
0.3707
0.6076
0
15
0.6829
1
0.6829
1
16
0.6553
0.6951
0.6553
0.0005
17
0.6704
0.8481
0.6704
0.0332
18
0.632
0.5113
0.632
0
19
0.6492
0.6414
0.6492
0.0001
20
0.611
0.3877
0.611
0
图3.2 在一组均衡的分类器上的实验.Apb:基于平均准确率的Borda投票方法;Std:标准的Borda投票方法;Min:最小排序值的方法;Median:中位数Borda投票方法;Sbest:在测试集上性能最好的分类器;Mean:给出了所有分类器结果性能的平均值;Apw:用平均准确率加权的Borda投票方法
图3.3 在一组不均衡的分类器上的实验,显示了算法较强的鲁棒性
3.5.2 在Trecvid2004测试集上的结果
我们的Trecvid2003的概念检测系统就使用了该方法,下图3.4和图3.5给出了我们使用该方法对结果的提升.
我们对"篮球进篮"概念使用了20个性能还不错的图像分类器,这些分类器的之间的差别在于使用了不同的底层特征,它们都是使用通过对数据集合TV03D一分为二,学习出来的参数模型后,在数据集TV03D上最终训练出来的该概念的检测模型.而基于平均准确率的Borda投票方法则是在TV03T数据集上简单学习得到各个分类器的权重的.图3.4中Best指示所有20个分类器在TV04T上的性能最好的那个分类器的结果,Mean和Median分别指示所有20个分类器在TV04T上的AP值的平均和中值.而AP-based Borda Fusion就是我们的方法.由于我们不知道我们的模型的推广性能如何,在TV03T上测试不错的分类器,在TV04T上完全有可能不好用.也就是我们事先并不能估计出Best是哪一个,从而Best对应的分类器是一个很好的结果,而我们的结果在这个结果上还提高了7.2%.而比这20个不错的分类器的平均性能提高了近20%.
在"克林顿"概念检测上,我们使用了15个较好的图像分类器,基于平均准确率的方法对最好结果Best的提高有19.4%,而对平均结果提高有129%.即使如此,这个概念我们最终的结果并不好,低于平均水平.这是由于单个图像子分类器性能很差.在如此低的基础上即使有较大的提高,最终结果还是有限.
我们参加的另一个概念"海滩",仅仅使用了图像子分类器的结果,没有使用合并策略.故这里没有相应结果.
图3.4 "篮球进篮"概念检测上性能的提升
图3.5 "克林顿"概念检测上性能的提升
第4章 Trecvid高层特征抽取图像系统
4.1 本章引论
TREC系列会议由美国国家标准与技术协会(the National Institute of Standards and Technology)主办,并受到了包括美国国防部高级研究计划局(DARPA)在内的多个美国政府部门的资助.该会议的目标是通过提供大量的数据集和一致的评测方法来鼓励人们(研究机构)在信息检索领域的研究,它为那些愿意相互比较试验结果的机构提供了一个公共论坛.从2001年TREC系列新增了对视像的检测——Video Track,由于其重要性,从2003年起视像检索正式独立出来成为一个独立的系列——TRECVID(TREC Video Retrieval Evaluation),用以推动基于内容的视像检索方面的研究.
Trecvid2004一共给出了4个任务:(1) 镜头的边界检测(Shot Boundary Detection);(2) 故事分割(Story Segmentation);(3) 高层特征提取或称概念检测(High Level Feature Extraction or Concept Detection);(3) 检索(Search).
我们课题组参加镜头的边界检测和高层特征提取两项任务.我们设计的概念检测系统框架如下图4.1所示,其中上半部分是图像子系统,该子系统仅使用关键帧的图像信息对镜头分类;而框架图的下半部分的子系统则又进一步使用了文本和时间方面的信息来提高结果的准确率.本章将对本人主要参加设计和实现的概念检测系统的图像子系统部分做以详细的介绍.我们整个系统的介绍还可以参考,而对于时间和文本的利用以提高准确率的做法可以进一步参考.
本章的安排如下:我们将首先在4.2节介绍一下Trecvid04的概念检测任务;4.3节介绍图像子系统设计的思想,着重阐述了为何及如何将对镜头的检测变成对镜头关键帧的检测;4.4节给出了系统实现,关于系统更详细的介绍,请参看附录A;4.5节给出了我们围绕Trecvid05做的部分实验;最后我们在4.6节给出了这部分工作的总结和展望.
图4.1 Trecvid04概念检测系统通览
4.2 概念检测任务描述
高层语义特征,如"室内/室外","交通工具","人的语音"等,在视像库中会经常出现.概念检测或高层特征提取任务将为评测语义概念检测方法有效性提供一个基准.
该任务是:给定概念检测的测试集合,该集合上的镜头边界,以及概念的详细定义(见表4.1),参赛者应对每个概念返回一个测试集合上镜头的列表,该列表长度不得超过2000,而且根据该概念出现的可能性大小从大到小排序.概念的在某一镜头中的出现是二值的,即要么出现要么不出现.如果一个概念在一个镜头中的某几帧出现,则该镜头属于或包含该概念.
2004年的概念检测任务一共有10个子任务(10个概念),每一个子任务用一个序号表示,我们用QID表示.下面的列表给出了Trecvid2004的10个QID.
表4.1 概念检测列表
概念
QID
描述
Boat/ship
1028
segment contains video of at least one boat, canoe, kayak, or ship of any type.
Madeleine Albright
1029
segment contains video of Madeleine Albright
Bill Clinton
1030
segment contains video of Bill Clinton
Train
1031
segment contains video of one or more trains, or railroad cars which are part of a train
Beach
1032
segment contains video of a beach with the water and the shore visible
Basket scored
1033
segment contains video of a basketball passing down through the hoop and into the net to score a basket - as part of a game or not
Airplane takeoff
1034
segment contains video of an airplane taking off, moving away from the viewer
People walking/running
1035
segment contains video of more than one person walking or running
Physical violence
1036
segment contains video of violent interaction between people and/or objects
Road
1037
segment contains video of part of a road, any size, paved or not
这些概念大致可以分为两类:一类是场景型的概念,如"篮球进篮","海滩"等;另一类是目标型的概念,如"火车","克林顿"等.我们这次采用的方法对于场景型的概念检测比较有效,对于目标型的概念结果较差,应考虑更复杂的模型来处理这类概念.
4.3 图像子系统的总体设计
概念检测实际上是一个有监督的机器学习过程:首先我们必须确定分类对象,我们的系统最底层的分类对象是关键帧,而不是镜头(见4.3.1节);然后我们要对这些分类对象——关键帧提取适当的图像底层特征(见4.3.2节);接下来就是选取适当的分类器(见4.3.3节);最后训练得到概念检测模型(见4.3.4节).
4.3.1 关键帧检测系统
概念检测的单元是镜头(shot),镜头是影片制作过程中的一个连续的不间断的拍摄过程,对应于我们的数据就是一段存在于整段视像中的一般为数秒长的视像片断.比较直接的思路是提取每个镜头的底层特征用以分类,然而我们应该如何从一段连续的视像中提取有效的特征呢 本人在做完Trecvid之后提出了一种针对镜头的时空小波特征,见第2章,该特征取得了不错的检索结果.
在做Trecvid2004概念检测图像子系统时,考虑到我们课题组在做基于内容的图像检索方面研究积累了一定的经验和代码,我们将这个对镜头检索的问题,变成了对关键帧的检索的问题.正好NIST提取了所有镜头的关键帧,并将其单独保存成了jpg文件提供给了我们,方便了我们对关键帧的处理.因此我们图像子系统实际上是一个对关键帧分类的图像分类系统.实际上,参加Trecvid2003的大多数系统均采用这种简化方法,我想这也是NIST单独提供所有关键帧的一个原因.
由于一个镜头可以有多个关键帧,因此一个关键问题是如何将返回的关键帧列表映射回相应的镜头列表 这样的映射可以有很多,我们使用的映射可描述为:用镜头中置信度最高的关键帧的置信度作为该镜头的置信度.使用这样的映射的合理性在于TRECVID的标注要求:概念在一个镜头中的出现仅仅要求是在该镜头中的某些帧出现即可.
4.3.2 图像底层特征
我们在图像子系统里面提取了关键帧的多种图像底层特征.由于这些特征在以后的分类中可能被多次使用,而且提取它们比较费时,我们一次性把所有视像中的全部关键帧都提取出来,形成图像底层特征库.我们提取并使用的特征如下表4.2所示.各个图像底层特征更具体的介绍和比较参考钱芳的博士论文的第二章.
表4.2 图像底层特征列表
特征类
名字
描述
颜色直方图
HSV36
在HSV颜色空间非均匀量化成36维
HSV166
在HSV颜色空间均匀量化为166维
颜色一致向量
CCV
针对HSV36作的颜色一致向量,72维
自相关直方图
HSVCorrelogram
对特征HSV36沿着D={1,3,5,7}四个尺度计算的自相关直方图,144维
RGBCorrelogram
对RGB颜色空间量化为64维之后,沿着D={1,3,5,7}四个尺度计算的自相关直方图,256维
边缘直方图
EdgeHist
统计落在每5度空间中的边缘的个数,生成的直方图,72维.
小波特征
PWT
金字塔型小波,在每一个子带上计算一阶矩和二阶矩,24维
TWT
树型小波,在每一个子带上计算一阶矩和二阶矩,104维
Gabor
Gabor小波,使用6个Gabor滤波器沿四个方向计算均值和方差,48维
我们本想使用基于区域的图像特征,但最终没有使用的主要原因是参赛的时间很紧,不知道在17万的大数据量下效率如何.而且一个图像中各个区域的重要性往往是通过相关反馈学习得到的.这和概念检测任务不太一样,而且相关反馈会引入很多主观的因素.
观察到很多关键帧都有固定的布局,如新闻节目主持人的镜头(如图4.3所示)和篮球进篮的镜头(如图4.2所示).这种布局有如下特点:
1:如果分块越细,对图像内部布局的稳定性要求越高,如在图4.3中4x5的分块中,两个新闻节目主持人的镜头的关键帧中人物的平移,造成相应的特征出现错位.
2:垂直布局(水平分块)一般较水平布局(垂直分块)稳定.
考虑到如上因素,我们使用了2x1和3x1的分块图像特征,取得了不错的结果.别的单位,如卡耐基梅隆大学和复旦大学,也使用了这样的方法.该特征提取方法对于特定的概念效果很不错,而且避开了图像分割的困难.
图4.2 "篮球进篮"镜头关键帧的布局特点
做了2x1的分块
图4.3 新闻节目主持人镜头关键帧的布局特点
做了4x5的分块
IBM使用的方法是则介于这两者之间,不是简单的划块,也不是对分割出来的复杂的目标直接处理,而是将图像分割后选取最小的包围目标的矩形区域作为一个整体提取相应的图像底层特征.使用该方法问题是训练集合要标注的更精确,也即是要标出各个目标出现的最小的矩形区域.另外,测试数据上我们还要作分割,然后找到这个最小的矩形区域.这部分工作的实现起来要复杂很多,Trecvid04上我们没有采取这种方法.
4.3.3 分类器
概念检测实际上是一个有监督的机器学习过程.由于数据中正例样本较少,通常只有几百个甚至只有几十个,而反例则有上万个.为了使我们的模型得到较好的推广性,我们采用支持向量基(Support Vector Machine,简称SVM)作为分类器.
SVM是将样本从低维空间映射到高维的空间,这样样本的可分性可能会变得更好..然后在高维空间中寻找一个线性的分类面,尽量把样本分开.这个从低维到高维的映射通常称为是核函数,一般有如下三个类型:
(4-1)
(4-2)
(4-3)
第一个核称为是高斯核,不同的对应了不同的映射放式.一般而言,越大,SVM训练越容易收敛,但很容易过训练.最优的取决于数据集合自身的特点以及样本间平均距离的模长的平方.我们在实验时,将样本的各个维度都归一化到均值为零方差为一之后,一般取10至100.
第二个核称为是多项式核.它有三个参数,p,a和b.一般人们使用较多的是二次核,因此我们固定p=2.我们经过试验发现,a对分类器性能影响较大,而b值影响较小,于是我们将b固定为1,而调整a的值.a的作用和正好相反:a越小,SVM训练越容易收敛,但容易过训练.a对于归一化之后的特征,一般取值为0.0005至0.001.我们没有使用第三种核参数.
一般的SVM仅仅输出一个样本是否属于一个类别的二进制标号,而概念检测任务要求返回的相关镜头要根据属于该概念的置信度排序,因此我们适当改造了SVMTorch,使之可以输出每个样本在其被映射到高维空间后距离线形分类面的远近,我们用这个距离作为对该镜头置信度(或者称相关性)的一个度量.
4.3.4 概念检测模型
分类器对区分某一概念的能力取决于3个因素:图像底层特征,分类器自身的参数以及训练集合.这3个因素都确定了的话,我们称之为一个概念检测的具体模型,简称模型.该模型的3个因素的地位是不一样的:其中,最本质的是因素是图像的底层特征;训练集合是对该概念的一个采样;而分类器(及其相应的参数)只是区分该特征的工具,它显式或隐式的统计了训练集合上的统计特性.采样的集合越大,我们作统计时的估计就越可能接近真实的情况,偏差越小.
由于我们的数据量很大,而且这些数据上的标注质量不同(见4.4.1节).我们如果使用全部数据做实验的话,那将效率很低,而且效果未必好.实际上,我们取出标注较好的一小部分数据(TV03D),在其上针对某一概念上进行特征选择和SVM参数选择的实验,从而估计出该概念的图像的底层特征及其SVM最优参数.为了方便,我们称之为概念检测的参数模型.
参数模型实际上是去掉了训练集合这个因素对模型区分性的影响,它的区分能力是通过做交叉验证(Cross Validation)估计出来的.交叉验证将数据分为N份,然后依次取N-1份做训练,剩下的1份做测试.最后将N个测试结果(我们用的是AP)作平均,得到分类器性能的一个估计.在我们的实验中,取N=2这个最简单的情况作估计.
我们最终参赛时,首先在精标注的TV03D集合上估计出来的参数模型,然后在整个TV03D上或者更大的集合TV03A上训练出概念检测的具体模型,用于对TV04T上数据检测.
4.4 图像子系统实现
该节将从数据,文件,核心程序,包装程序以及实验目录结构几个方面详细的介绍图像子系统.相关的源代码以及实验的目录都可以在源文件中找到.如果不是想深入了解系统的运行方式的话,可以跳过这一节.
不同的底层特征对不同的概念有不同的区分力,而且该区分力的度量—平均准确率—是通过找到最优的SVM参数确定的.因此,我们的任务是对每一个概念—用QID表示,找到对其最有区分力的底层特征—用Feature表示,这样Feature + QID就构成了一个抽象模型.之所以称其为抽象模型,是因为仅有Feature信息,并不能完全确定这个模型,还应确定相应的SVM参数—用svmPara表示,这样svmPara + Feature + QID才最终构成一个确定的可以直接训练和测试的模型,即我们上一节说的参数模型.我们实验的过程实际上就是在对每一个概念去寻找这样最优的参数模型.这个搜索过程实际上是如下图4.4所示的一个三层的循环,最外层是对所有概念的循环,中间层是对所有图像底层特征以及可能的组合的循环,最内层是对SVM参数空间的搜索.
图4.4 概念检测系统的三重循环示意图
因此,图像子系统要做的工作是对于每一个概念找到最佳的参数模型.这是一个很复杂的任务,我们将这个任务分割成一个个独立的子任务,编写了一系列核心程序分别完成这些子任务.有了这些基本的工具以后,就可以实验了.但由于我们处理的数据量大,一般是3万多关键帧训练3万多测试关键帧,这个过程很费时,就是对一组SVM参数的训练和测试有时就会要用几小时.为了使这个过程自动化,使得各个核心程序能自动地依次被正确的调用,而不必由用户实时监控,不断地在命令行键入各种命令,我们编写了一系列批处理程序,或称包装程序.这样,整个程序跑起来后,一两天后来收集结果就好了.
写批处理程序来实现自动化的一个关键是规范文件名,文件格式以及目录结构.实际上,我们用DOS下的批处理程序作为"胶水语言",将各个核心程序连接起来,而接口就是一系列规范化的文件及目录结构.这次使用的是DOS脚本,将来建议使用Perl,Python或者直接使用C的系统调用函数,它们调试起来比DOS脚本将更方便,功能更强大.
规范文件名以及目录结构的原因是避免文件命名冲突.而解决文件命名冲突这个问题的办法有两个:一是设计复杂的目录结构,将同名的文件根据不同的对象放到不同的文件夹下;另一个方法是,设计复杂的文件名.我们对那些不太重要的文件,我们其保存在相应的文件夹下,这样比较清晰;而对于重要的文件,则做复杂的文件命名,将其保存在同一目录下,便于查看.
我把更细节的介绍放到了附录中了,下面是这部分内容的安排:在4.4.1节给出了Trecvid2004用于概念检测的数据的介绍;核心程序如图4.4所示,详细介绍见附录A.1;实验文件的详细介绍见附录A.2;实验目录结构的详细设计见附录A.3;包装程序如图4.5所示,详细介绍见附录B.4.
图4.5 图像子系统流程图之一,核心程序及相关文件
4.4.1 实验数据描述
我们从NIST得到的原始数据有:原始的视像文件,标注(XML格式)以及所有镜头的关键帧.每一个视像文件都有其文件名,如19980204_ABC.mpg,同时还有一个唯一的视像ID号,该号码从1开始编起,按时间顺序依次加一.视像按内容分为两类.一类是由ABC和CNN公司提供的1998年上半年的新闻视像,该类视像占绝大多数,它们存放在NIST数据根目录下的\basic\feature.search.development\和\basic\feature.search.test\下面.其中前一个目录下的115个视像用于训练,后一个目录下的105个视像用于测试.每一个视像大约半个小时,均为MPEG-1格式.另一类是由C-SPAN提供的25个学术讲座视像,内容比较单一,我们没有使用.
我们检索的基本单位是镜头,镜头是影片制作过程中的一个连续的不间断的拍摄过程.在\additional\common_feature_annotation\目录下,以XML的格式给出了所有镜头在视像中的位置,即起讫帧号.同时,每个镜头都有一个名字,命名规则是:shotXXX_YYY,其中XXX是视像的ID, YYY指该镜头在XXX视像中的第YYY个镜头.一个镜头大约有若干秒钟.
比镜头更基本的单位是帧,我们使用的视像是采用美国的NTSC制式,每秒钟30帧.我们可以从一个镜头中的所有帧中提取出关键帧来代表一个镜头.关键帧分为两种,主关键帧:shotXXX_YYY_RKF和次关键帧:shotXXX_YYY_NRKF_K,其中K指示第K个次关键帧.一个镜头有且仅有一个主关键帧,但可以有若干个次关键帧,也可以没有次关键帧.我们按时间顺序将所有的关键帧依次编号,称之为关键帧的ID号.2003年训练集合上一共有67166个关键帧,2004年全部数据有123178个关键帧,加上2004年的评测数据,一共有171996个关键帧.
为了将视像,镜头以及关键帧之间的关系理清,我们建立了三个库文件,shotURL.txt,shotName.txt以及kfrmURL.txt.这三个文件可以在Trecvid实验的根目录下找到.其中shotURL.txt文件指定了每一个镜头所对应的视像文件所在的相对路径及其文件名,以及起讫帧号.shotName.txt按时间顺序列出了全部的镜头,它们的位置是很关键的,实际上,除去第一行的说明外,每一个镜头所在的行号减一正号是该镜头的ID号.对镜头描述的这两个文件shotURL.txt和shotName.txt是以行号对应的. kfrmURL.txt文件列出了所有关键帧对应的图像文件存放的相对位置以及在视像中的帧号.同样地,关键帧所在的行号减一就是该关键帧的关键帧号.进而我们编写了tv04mapping类,该类利用上述三个文件初始化,当完成了初始化后,所有的映射关系都可以得到.
图4.6 视像,镜头和关键帧之间的关系示意图
所有这些数据我们分为如下几部分:
表 4.3 数据划分列表
数据划分
说明
累计视像ID号
累计镜头ID号
累计关键帧ID号
TV04A
TV03A
TV03D
03年训练集
03年全
部数据
04年全部数据
114
33970
64752
TV03T
03年测试集
254
67166
123178
TV04T
2004年测试数据集合
382
100533
171996
其中TV03D数据集合上有最完善的标注信息,因此我们往往是在这个数据集合上将其进一步划分为两个差不多大小的集合,交叉验证找到最好的参数模型.虽然TV03T上也有标注信息,但相对TV03D上的标注差一些.因此这部分数据我们往往用在分类器融合时的训练和测试集合.TV04T上是的标准答案是在TRECVID2004评测完之后NIST提供的.
图4.7 图像子系统流程图之二,包装程序及其相应文件
4.5 相关的实验
本节将介绍我们围绕Trecvid2004概念检测任务所做过的几组实验.以下的实验是按时间顺序依次列出,从这里可以看出我们是如何一步一步摸索,将系统最后搭建起来.
4.5.1 针对道路概念的全局特征比较实验
【实验背景及目的】这个实验是系统于2004年7月下旬走通后的第一个系统的实验,该实验做于7月22日.我们首先选择了"道路"概念,原因是该概念是2003年和2004年都参加评测的少数几个概念之一.我想"道路"概念连续参加评测的一个原因可能是这个概念的检测太难了,实际上该概念的检测是2003年所有概念中效果最差的几个概念之一,平均准确率仅有0.0026.我们做这组实验可以将我们的系统和03年参赛系统进行比较,而且系统参数调好了可以直接用这个结果参加2004年的比赛.
实验中使用的仅仅是图像的全局特征,没有用分块特征和基于区域的特征(见4.3.2节).
【实验数据】将TV03A一分为二,一个用于训练(708正例/总样本65516),一个用来测试(783正例/总样本57662).
【实验结果】见下图4.8和下表4.4.我们使用图像的全局特征得到的最好结果0.0027略微超过03年的平均准确率0.0026,但这个结果低于随机抽取的准确率0.01358,不知其原因在哪里.该结果距离当年最好的结果(IBM)0.183还很远,距离CMU的Baseline系统的结果0.028差了一个数量级.
表4.4 针对道路概念的全局特征比较试验结果
SVM参数
高斯核 -std 10
多项式核 -d 2 –a 1 –b 1
维数
(%,次,分种)
特征
训练集AP
测试集AP
迭代次数
运行时间
训练集AP
测试集AP
迭代次数
运行时间
颜色
ColorHistHSV36
0.0024
0.0011
3006
3
0.0016
0.0017
121665
15
36
ColorHistHSV166
0.0025
0.0006
3098
7
0.0028
0.0014
452854
71
166
CCV
0.0027
0.0023
3674
5
0.0020
0.0010
481239
61
72
HSVCorrelagram
0.0062
0.0018
179042
47
―――
―――
Abort!
77
144
边缘
EdgeHist
0.0023
0.0027
2326
3
0.0015
0.0011
46228
15
72
小波
PWT
0.0016
0.0011
768
1
0.0018
0.0023
e=0.0220
25
24
TWT
0.0017
0.0011
3207
5
0.0018
0.0013
e=0.4022
34
104
Wavelet10
0.0018
0.0005
745
1
0.0036
0.0015
93665
7
10
Gabor
1.0000
0.0104
34787
12
0.0009
0.0014
e=4.0278
30
48
My Best
0.0027
0.0023
Average of Tecvid 2003
0. 0026
Best of Tecvid 2003
0.183(IBM MN) 0.181(IBM BOF)
CMU Baseline
0.028
其它参数1: svm0711,QID:1015(road);-m 180;-c 100;-e 0.01;-h 100 (ColorHistHSV36, CCV)
其它参数2:svm0722 ,QID:1015(road);-m 200;-c 100;-e 0.01;-h 100 –i 50000
e的含义是,迭代超过了501000次,程序终止,下面给出了终止误差
Abort:当迭代到91000次时,e仍在3到4之间变化,很难收敛,故人为停止.
图4.8 针对"道路"概念的全局特征比较试验
【结果分析】我们这次实验的结果虽然达到了2003年的平均水平,但并不理想,可能有如下两个原因:
1.未寻找最优的SVM核参数.这次实验中高斯核收敛速度相对较快,效果比较好,而多项式核结果不很好,原因是多项式参数取得不好,高斯核取得相对较好.事实上,这次实验并没有遍历所有核参数,只是取了两个固定参数.不好的核参数不但影响实验结果,而且收敛及其慢,影响实验进度.今后的实验,针对不同的底层特征,应该搜索最优的SVM参数.这将是一个很费劲的事情,因此有必要找到核参数选取的规律,以缩小SVM参数搜索的空间来加快实验.
2.效果不好的另一个原因是我们采用的特征过于简单通过该实验,我们看到可以尝试更复杂的特征,也即是平均分块的特征.
4.5.2 SVM参数优化实验
【实验背景及目的】由上面的一组实验我们看到,针对每一个特征,我们都应该去搜索最优的SVM核参数,而在一个很大的空间中搜索SVM参数是一个很费劲的事情.因此,我们设计做了一组搜索最优SVM核参数的实验,希望通过这组实验,找到最优的SVM参数与底层特征之间的关系.这次实验选取的概念是"篮球进篮".
【实验】略
【结果与分析】
1.实验发现,最优的SVM参数和特征平均模长正相关.于是我们猜测所有特征进行归一化之后对应的最优的SVM参数将与该特征的维数正相关,这个经验使我们后来选取SVM参数变得很容易.
2.将结果可视化出来观察发现,有很多分类器误判的样本其实并没有误判,只是标注不够精确造成.于是,将标注精确化将有利于我们工作进一步展开.以后我们称NIST提供的公共标注为粗标注,而我们求精以后的标注为精标注.
4.5.3 标注求精实验
【实验背景及目的】在Trecvid中,为了更准确的比较系统间的差异,抛开数据集合及其标注对结果的影响,系统被分为如下三类:
1.A类系统:使用NIST提供的训练集合及其相应的标注训练.
2.B类系统:仅使用NIST提供的训练集合训练,使用不同于公共标注的一套标注.
3.C类系统:非A类且非B类系统称为C类系统,该类系统可以使用任意的训练集合,任意的标注.
我们作了标注求精工作,实际上我们提交的结果就属于B类系统.希望能在精确的标注上,为我们进一步作各种改进实验铺平道路.当时我们应该用用B类系统学习出来的参数模型训练几个A类系统,提交几个A类系统的结果用以和其它参赛单位比较.而在Trecvid2004中,我们提交的都是B类系统的结果.
【实验结果】标注求精后,"篮球进篮"概念大约提高了20个百分点.这个提高是相当大的,全组为之振奋.以后的实验均是在精标注下进行的.可以参看图4.8和图4.9之间的对比.
图4.9 粗标注下"篮球进篮"概念检测时用归一化的HSVCorrelagram特征进行的最有SVM参数选择实验,左边是高斯核的最优参数,
右边是多项式核的最优参数.
图4.10 精标注下"篮球进篮"概念检测时用归一化的HSVCorrelagram特征进行的最有SVM参数选择实验
4.5.4 特征归一化实验
【实验背景及目的】在上面实验的启发下,希望找到特征归一化之后SVM最优参数的取值规律.实验是对"篮球进篮"概念作的.
【部分实验结果】这组实验可以查看相应的Excel文档.这里给出了部分有代表性的图表以说明.
【结论】通过该组实验,我们得到如下两个结论:
1.归一化对特征的最优参数时的区分能力没有明显影响,因此可以采用特征归一化的做法.
2.归一化后最优核参数点位置的范围基本一致,其中高斯核最优std值(均方差)约为35到100;多项式核最优a值约为0.0005到0.01之间.而且随着样本维数增加,std值在相应的区间取值增大,a值在相应的区间取值减小.这样以后的实验我们就可以在相对小的参数空间中搜索SVM最优参数,从而大大提高了实验效率.
4.5.5 针对篮球进篮概念的特征组合效果试验
【实验背景及目的】特征组合实验是我们图像子系统实验的重点,这些都是对特征归一化之后,并掌握了SVM最优参数取值规律后做的大量实验.该实验完成了特征选择和SVM最优参数选择的任务.从而对每一个概念找到相应的参数模型.
【实验结果】实验的详细记录请见文件特征组合实验.xls.这里列出一些主要结果.
表4.5 针对"篮球进篮"概念的特征组合试验选出的比较好的参数模型
特征组合
核参数
最优的参数模型名字
CCV(3by1)A_HSV36(3by1)A
g80
CCV(3by1)A_HSV36(3by1)A_g80
g70
CCV(3by1)A_HSV36(3by1)A_g70
g60
CCV(3by1)A_HSV36(3by1)A_g60
g50
CCV(3by1)A_HSV36(3by1)A_g50
g150
CCV(3by1)A_HSV36(3by1)A_g150
g120
CCV(3by1)A_HSV36(3by1)A_g120
g100
CCV(3by1)A_HSV36(3by1)A_g100
CCV(3by1)A_HSV36(3by1)A
d2a0.0001b1
CCV(3by1)A_HSV36(3by1)A_d2a0.0001b1
d2a0.00005b1
CCV(3by1)A_HSV36(3by1)A_d2a0.00005b1
CCV(3by1)A
g120
CCV(3by1)A_g120
d2a0.0001b1
CCV(3by1)A_d2a0.0001b1
d2a0.00005b1
CCV(3by1)A_d2a0.00005b1
ColorHistHSV36(3by1)A
g50
ColorHistHSV36(3by1)A_g50
g80
ColorHistHSV36(3by1)A_g80
d2a0.0005b1
ColorHistHSV36(3by1)A_d2a0.0005b1
HSVCorrelagram(2by1)A
g80
HSVCorrelagram(2by1)A_g80
d2a0.0001b1
HSVCorrelagram(2by1)A_d2a0.0001b1
对于每一个参数模型,我们都是通过绘制出该底层特征随SVM参数变化的曲线,然后取出最好的SVM参数,找到最优的参数模型.下图给出一个例子,所有数据请参见特征组合实验.xls.
图4.11 针对篮球进篮概念的使用组合特征CCV(3by1)A_HSV36(3by1)A的
参数模型,从中选取最优的SVM核参数,形成最优的参数模型
【分析与结论】从实验结果看,我们采取的水平分块特征,取得了不错的结果,这与数据集合极其相关.观察篮球进篮的关键帧(如图4.2所示)会发现,这些图像的基本上都是上下模式:上半部分是看台上的人,由于光线较弱,一般都是呈现出大片的黑色;下半部分则是近景—大片黄色的篮球场;而图像的中间则会有运动员的出现.我们正是利用了这个数据集的这种上下模式,对图像水平的切割,对各个水平条部分分别提取不同的特征,然后拼接成一个完整的特征.
我们可以进行特征如此拼接,同时效率还可以接受的一个重要原因在于我们选用的特征比较短.我们使用的大部分特征如HSVCorrelagram和CCV都是针对HSV36做的相应统计.
4.5.5 在Trecvid2004参赛数据集上的结果
该小节我们给出我们在Trecvid2004参赛数据集上的结果.我们的系统主要是在篮球进篮概念上调试的,取得了最好的成绩,结果如图4.12所示.我们最好的一个结果的平均准确率达到0.561,比其他单位的最好结果0.517高出8.5%,远远超过了当年该概念的平均水平0.254和中间水平0.200.
图4.12 篮球进篮(1033)概念的参赛结果
图4.13显示了系统各个部分在最终结果的贡献,Visual表示SVM分类器输出的结果,该结果反映了前融合(图像特征底层特征的简单拼接)的效果,可以看出它(0.435)已经远远超出了平均水平(0.254).之后AP-Based表示经过基于平均准确率的Borda投票算法后系统的结果(0.4696),在Visual基础上提升了7.2%.Commercial Filter 是指结果进一步过滤掉的商业广告的内容.由于我们检测的概念大部分是针对新闻视像中的,而不是广告中的,因此广告过滤后,结果又在原有基础上提高了2.8%.SRI是我们系统的一个分裂-重排序-合并的融合算法(Split-Rerank-Insert),在原有结果基础上提高了13.4%.此时我们的系统结果(0.5478)已经超出其它单位最好结果6.0%.Cluster是进一步利用同一概念的镜头在时间轴上的聚集性进行聚类后的结果(0.5614),在SRI基础上有提高了2.5%.
图4.13 系统在检测篮球进篮时各个部分对最后结果的贡献
由于时间关系,我们直接将这个系统应用到了海滩(1032)和克林顿(1030)这两个概念上,前者结果中等偏上(图4.14),而后者结果较差(图4.15),低于平均水平.
对"海滩"概念,我们仅仅做了底层特征的选择,包括各种特征的拼接(也即前融合),然后由SVM输出的结果就提交了.之所以可以取得不错的结果,是由于这个概念同"篮球进篮"概念一样,是一个场景类型的概念,而场景的检测往往可以通过全局或者是均匀分块特征取得很好的结果.
图4.14 海滩(1032)概念的参赛结果
对于"克林顿"概念,我们使用了较多的策略,如图4.15所示,除了Cluster没有外,其他策略都用了.虽然结果在每一次操作后都确实提高了,但由于基础很低,最终结果也就不是很理想,低于平均水平.这是由于这个概念是一个目标类型的概念,目标可以出现在任何类型的场景中,因此使用检测场景的方法来做目标检测必然不会有很好的结果,除非所要目标总是出现特定的场景中,而这个假设往往是不成立的.目标检测是计算机视觉中的一个基本问题,这和基于内容的图像检索的研究思路以及使用的技术不太一样.要想把目标类型的概念做好,应该使用计算机视觉中的相关技术.
图4.15 克林顿(1030)概念检测的结果
图4.16 克林顿(1030)概念检测的参赛结果
4.6 总结和讨论
经过大约5个月的奋战,我们在高层特征提取任务中取得单项第一的好成绩.取得这个还不错的成绩是有多方面原因的,简单列举如下,希望对组里接着作Trecvid的人有所帮助.
首先,大家齐心合力,及时的交流,充分的讨论.
其次,我们力争做好一个概念的策略.事实上,如果我们全面的去做各个概念,最终的结果可能将都会平平.
最后,在技术上,我们继承了组里以往师兄师姐的研究成果,使得我们有了较高的起点.其中值得一提的是,张磊师兄留下的图像底层特征提取代码,省去了我们大量的工作.另外张磊提出的在HSV空间非均匀量化成36维的直方图特征,有着维数小,性能还不错的优点.除了36维的颜色直方图之外,其他的底层如颜色一致向量,颜色的自相关直方图都是基于这个36维的量化方式的,这是我们底层特征上与众不同的地方.正是由于维数小的优点,我们做了底层特征的拼接后,特征维数长度还是可以接受的.
当然我们这个系统也有一些不足及值得改进之处:
首先,脚本语言可以选取Perl或者Python这些更高级的语言,而不是完全依赖DOS脚本.因为后者功能很有限,调试费尽.
其次,我们这个模型针对性太强,可以说是对"篮球进篮"概念调试出来的一个专用的系统,将来应该将系统作的更加通用一些.现在这个概念检测系统使用于一个场景类型概念的检测系统,而近年来,目标类型的概念越来越多,如"克林顿","船","汽车"等.因此,设计目标类型的概念检测系统,可能需要更复杂的模型,如基于区域的方法,LDA模型以及计算机视觉中的一般目标识别技术.
最后,我们的分类器都是使用SVM,其实还可以尝试不同原理的分类器,如K近邻,贝叶斯网络等.虽然它们的效果不比一定必SVM好,但它们为分类器融合提供了更丰富的结果,有望在融合中发挥作用.
第5章 总结与展望
在计算机技术与网络技术迅猛发展的今天,大量的视像数据产生出来,于是如何有效的对这些视像数据建立索引并进行检索便成了一个重要的课题.美国国家标准局自2003年起组织实施的Trecvid,为视像检索的研究提供了一个公共的平台,被公认为该领域最具有权威的评测系统.我们实验室——清华大学计算机系智能多媒体组于2004年第一次参加该评测.经过大约5个月的努力,我们在高层特征提取子任务中取得单项第一的好成绩.我的硕士课题就围绕Trecvid高层特征提取这个任务展开,下面总结了我硕士阶段的主要工作及其研究成果,以及对进一步研究的展望.
5.1 主要研究工作及成果
首先,本人提出了一种有效的镜头特征提取的方法.该方法利用小波变换,捕获了特定的图像特征在时间轴上的变化特性,在对一部分与时间相关的或在时间轴上有一定模式的概念的检测中,取得了较好的结果.
其次,本人提出了一种有效的分类器结果合并的算法.该方法利用各个分类器在一个验证集合上的平均准确率作为分类器合并的初始权重,通过一个非线性映射,找到用负排序值作为置信度值的分类结果合并的最佳权重,取得了良好的效果.
再次,本人与组里师兄们一同设计实现了我们组的第一个Trecvid概念检测系统.该系统以图像分类结果为基础,辅以广告及播音员过滤,并进一步利用镜头在时间上的聚集性,镜头的文本特征以及两类视像(BBS和CNN)的不同特点等特性,一致的提高了最终结果.
最后,本人在硕士阶段做过一年多的量子信道容量可加性的问题和并在最后半年在微软亚洲研究院做计算机视觉中的一般类别目标识别的工作.遗憾的是都未做出可发表的结果.
展望
通过硕士阶段3年的学习和科研,最主要的是通过对视像高层特征提取的研究,我积累了对一些对于多煤体,机器学习及计算机视觉等领域的粗浅认识.如果研究可以进一步深入下去,我想可以有如下一些可以做的工作:
首先,提取更加有效的镜头特征.现在对镜头底层特征的提取往往是先提取相应的关键帧,然后使用关键帧上的图像特征表示一个镜头.这样时间这个纬度的信息将极大的丢失了.直接针对整个镜头提取特征,充分考虑到时间这个尺度,将会更有效的表征时间上变化有一定模式或语义的镜头.这方面的工作还很少,我们提出的时空小波特征(见第2章),正是在这个方向的一个尝试.
其次,由于视像高层特征提取与图像标注(image annotation),基于内容的图像检索以及计算机视觉有着密切的联系,它们的进展,对于视像高层特征的提取都将具有借鉴意义,甚至可以直接应用到视像高层特征的提取上来.下面列出部分个人认为可能应用到视像高层特征提取上的计算机视觉及图像标注领域最近的进展.
一般目标识别(General Object Recognition)的研究在最近两年在计算机视觉领域中渐渐热了起来,在诸如CVPR,ICCV和ECCV这些顶级的计算机视觉会议中,有越来越多的这方面的文章.一般目标识别顾名思义,一般识别的对象已不再仅仅是视觉界常做的人脸,汽车的检测,而是包括更多的目标,诸如摩托车,飞机,杯子,牛等等.现在的水平是可以做到100个类,但如果可以做到1000个类,而且技术上可行,那么语义鸿沟就基本上被跨越.基于内容的图像及视像检索的问题就迎刃而解.
这方面研究的共同特性是它们都是基于某种具有良好的不变性(如尺度不变性,彷射不变性等)的关键点或区域的检测,不同点包括对训练样本标注的多少有所不同,其中标注最少的工作是星座模型(constellation model).
另一方面值得注意的工作是图像标注中近来研究LDA(Latent Dirichlet Allocation)模型,研究使用这个模型的人很多,这个概率模型有望能更好的语义鸿沟的问题.
最后,关于分类器融合方面的研究,其研究的历史已经很悠久了(可以找到上个世纪90年代初的文献),这方面的研究直到今天还没有满意的通用结果.我们的基于平均准确率的Borda投票算法为何能够提高最终的平均准确率 是否可以有更严格的理论上的证明 这部分工作要有更深厚的统计相关的知识.
参考文献
致 谢
衷心感谢导师林福宗教授对本人的精心指导,及在生活上细致入微的关怀.同时感谢张钹院士对我的课题的指导,他们的言传身教将使我终生受益.
在微软亚洲研究院进行六个月的访问学生期间,承蒙张磊研究员热心指导与帮助,不胜感激.
感谢丁大勇,王栋,吴俊,袁进辉,李强等博士生,及佟子健,郑武杰等硕士生,与你们的讨论使我受益匪浅.
感谢智能技术与系统国家重点实验室主任马少平教授,以及实验室全体老师和同窗们学的热情帮助和支持!
本课题承蒙国家自然科学基金重点项目(60135010)及其国家自然科学基金(60321002)资助,特此致谢.
最后要特别感谢我的家人及女友张秀苇对我工作上的支持和鼓励,他们的期盼永远是我前进的动力.
声 明
本人郑重声明:所呈交的学位论文,是本人在导师指导下,独立进行研究工作所取得的成果.尽我所知,除文中已经注明引用的内容外,本学位论文的研究成果不包含任何他人享有著作权的内容.对本论文所涉及的研究工作做出贡献的其他个人和集体,均已在文中以明确方式标明.
签 名: 日 期: 附录A 图像子系统的详细描述
A.1 核心程序(.exe)介绍
图像部分的系统流程如图A.1及图A.2所示,其中与图像底层特征提取相关的程序有:
全局特征提取程序Fe0726.exe: 该程序有很多版本,0726是这个版本的时间,其他版本也都是Fe****.exe的形式.可以在source目录下找到相应的工程FE_con_MFC,修改以适合新的任务.该程序根据制定的关键帧列表提取相应的特征.用户要给出本地Trecvid数据的根路径.提取特征往往很费时,而且常常会有意外发生,因此,我们作了一些特征拼接的程序,可以一部分一部分的提取.最后生成图像的底层特征库文件.
分块特征提取程序Fe_grid.exe:该程序根据根据参数采取均匀分块的方法对指定的分块提取特征.
特征的纵向合并程序appFe.exe: 由于底层特征文件都是二进制文件,不方便拷贝拼接,该程序将分批提取的特征拼起来形成特征库文件.
特征横向提取和合并程序mixFe.exe: 我们也试验了直接将不同的底层特征拼起来作为一个新的特征的方法,我们称这种融合方法为前融合.该程序就是完成这个任务的,可以把两个底层特征文件拼接成一个更宽的特征文件.同时它也支持相反的操作,提取特征特定维度的操作.
特征归一化程序Fenorm.exe: 特征归一化程序,生成特征归一化参数文件.归一化采取每一维度减去均值除以均方差的方式归一.
文件格式转换程序B2A.exe A2B.exe:我们使用的图像底层特征都是以二进制格式存放,利用这两个程序,可以方便的与文本文件进行转换,从而便于调试和测试.
与分类器相关的程序:
样本划分程序spsplitter2.exe:我们检索的对象是镜头,在划分数据集合来进行分类和测试时,直接将所有视像中的所有镜头分开即可.但是考虑到同一个视像中属于同一概念的镜头往往具有很强的相似性,若把它们同时分在了训练集和测试集的话,往往会使训练结果偏于乐观.另一方面,正例相对较少,如篮球进篮概念在TV03D上正例镜头和全部镜头之比为511:33970,而该概念的正例在所有10个概念中算是多的了.因此,我们在样本划分时,是将不同视像中的正例尽可能均匀的分开,使得同一视像中的正例仅在一个样本子集中出现.由于正例的稀少,有的视像中甚至一个正例也未出现,于是我们要给定扩充范围列表,告诉系统我们在那个视像集合上划分,把视像中不属于正例的镜头全部作为反例记录到样本子集描述文件中.该程序输出若干个样本的子集描述文件,及其相应的镜头标准答案文件.
支持向量基程序svm0729.exe:该程序是系统的核心程序,完成对关键帧的分类和测试.可以有两个选项,--gauss表示使用高斯核参数,-std对应与中的;--poly表示使用多项式核参数,-degree,-a,-b分别对应于中的p,a和b.程序会输出一系列的文件,其中我们用得着的是置信度列表文件.
结果格式转换程序kfrm2ters.exe:由于我们的系统实际是一个关键帧的图像分类系统,而实际检索结果的单位是镜头,因此有必要将SVM输出的在关键帧上的结果映射回到镜头层次.同时完成格式的转换,使之适合NIST提供的评测程序trec_eval.exe的输入.
评测程序trec_eval.exe:该程序由NIST官方提供源代码,该程序返回了检索结果的平均准确率.
这些程序的源代码都可以在source目录下找到.用户可以根据自己的需要加以修改和完善.
图A.1 像子系统流程图之一,核心程序及相关文件
A.2 实验文件介绍
程序之间是靠文件耦合在一起的.下面详细介绍文件名的命名规则及格式.
首先介绍与底层特征相关的文件:
图像底层特征文件:该文件是二进制文件,按关键帧的ID号存储了所有关键帧的某种图像底层特征.该文件的前四个字节指示存储到的ID号,接着的四个字节存储每一个特征的宽度(单位:浮点数的宽度),以后各个关键帧的特征依次存储.该文件一般用.ftr后缀.
特征列表文件:文件名任意,指定图像底层特征库文件的路径及文件名.如要进行底层特征的融合,可以写入多个特征,一行一个特征.第一行指示特征的个数.如果要使用归一化的特征,应该在该特征那一行后面给出相应得特征归一化参数文件.
特征文件:该文件也是一个二进制文件,前四个字节存储样本的个数,接着的四个字节存储样本的宽度加一,这个"一"是由于我们在每个样本特征后面加了一个整数(0或1),表示该样本是正例还是反例.(单位:4个字节).该文件一般用.dat后缀.
特征归一化参数文件:该文件是一个文本文件,第一行记录了所归一化的特征的维数n,接下来的n行,每行两个实数,第一个记录该维度上的均值,第二个记录该维度上的均方差.以后在使用时,填写到特征列表文件中即可.
下面介绍在分类系统中使用到的文件:
正例列表文件:该文件命名任意,在程序执行时手工给定.
扩充范围文件:指定我们实验的视像范围,文本文件,每个视像ID号占一行.文件名任意.
样本子集描述文件:指示样本划分的一个子集合.这是一个文本文件,第一行两个整数,一次表示正例的个数n和反例的个数m.第2行到第n+1行每一行存放一个正例关键帧的ID号,第n+2行到第n+m+1行每一行存放一个反例关键帧的ID号.该文件由程序自动生成,属于内部文件,命名采取如下规则.假如我们对概念"basket scored"检测,其对应的QID是1033,则相应的训练子集描述文件为:d1033k1.txt,测试子集描述文件为:t1033k1.txt.d代表训练,t代表测试,k表示是在关键帧上做的划分.最后的1表示是第一个样本子集.
关键帧置信度文件:该文件也是一个中间文件,由系统自动生成,和样本划分文件除去第一行外按行对应.假如样本划分文件d1033k1.txt有n个正例,m个反例,则该文件有n+m行,每行一次用一个浮点数表示该样本在SVM的核空间中距离分界面的距离,正值表示在分界面的正例一侧,负值表示在另一侧.该文件的命名为:XXXX_YYYY_d1033k1_cfd.txt,XXXX表示选用的SVM参数,YYY表示选用的底层特征,_cfd表示是置信度文件(confidence file).从该文件名就可以看出,我们在那个集合上训练或测试,选用的什么特征,以及使用的SVM的核参数.
实验结果文件:该文件是我们可以最后提交的结果文件,命名以上面的例子为例,为XXXX_YYYY_d1033k1_rst.txt,_rst表示是结果文件(result file).该文件有六列,第一列指示QID,第二列取0,第三列是镜头名字,第四列是置信度的排序值,第五列是置信度,第六列是1.要求该文件已经以第五列排好序,也即第四列应该从1依次递增.
镜头标准答案文件:该文件命名以上面的例子为例,因该是:训练集合上的标准答案文件d10331_std.txt,测试集合上的标准答案文件t10331_std.txt._std表示是标准答案文件(standard answer file).1033后面的"1"表示第一个样本子集对应的标准答案.该文件由四列组成,第一列是QID,第二列是0,第三列是镜头名字,第四列取1.
2003年全局标准答案文件:feature.qrels.tv03.txt,该文件给出了2003年全部概念的标准答案.与镜头标准答案文件格式相同,内容的差别在于,它的第四列取1时表示是相关的镜头,取0时表示是不相关的镜头.
系统运行还有几个关键的配置文件.tv04mapping.cfg文件有三行,依次指定在当前机器中,kfrmURL.txt,shotName.txt以及shotURL.txt三个文件的详细路径.tv04_feature.cfg文件完成了特征名字到特征库文件以及相应的归一化文件的映射.一个特征占用一行,一行有三部分组成,之间用空格或者tab键间隔.每行第一部分表示特征的名字,第二部分表示特征的存放位置,第三部分表示相应的归一化文件的存放位置.
另外,程序在执行的过程中会生成许多Log文件,这些文件记录了程序执行的命令(包括详细的参数),这不但有利于我们调试系统,而且便于我们重复实验.部分重要的实验结果如AP值,就记录在部分Log文件中.这部分文件的命名规则因所记录的内容不同而不同,根据它们的名字可以大致辨别出它的内容,它们的共同特点就是文件以.log为后缀.
A.3 实验目录结构
一个实验目录完成了对某一概念在某一数据集上选择图像底层特征及其相应的SVM分类器参数的任务.
该目录下有两个parameter_files和sysFiles固定的子目录,在sysFiles目录下放入扩充范围文件和全局标准答案文件,这几个文件相对固定,和概念无关,我们称它们为常文件.而parameter_files目录下则存放了三个实验参数文件:一是所要检测的概念的正例列表文件,该文件要命名为%QID%.txt,%QID%是概念的QID;第二个是特征参数列表,文件名为featurelist.txt,该文本文件格式为一行一个特征名字,这里的特征名字要在特征配置文件tv04_feature.cfg中找得到;第三个是svm参数列表文件svmParameters.txt,其格式参见一个文件即清楚了.
在实验的根目录下还要有至少如下两个配置文件tv04mapping.cfg,tv04_feature.cfg.
第一次实验时,要保证实验的根目录下有prego.bat,在执行start.bat时就会自动生成样本的子集描述文件和相应的镜头标准答案文件.在以后的实验里,如果根目录下存在子集描述文件和标准答案文件时,就不会再重新划分样本了.
配置好以上所说的文件后,在根下执行start.bat就自动开始试验了.系统自动为featurelist.txt文件中指定所有特征依次在跟下建立以特征名字命名的子文件夹,如HSVCorrelagram和CCV,在这里生成相应的特征文件.然后系统进入相应的特征目录下遍历svm参数列表文件svmParameters.txt指定的所有svm参数.系统将用高斯核(多项式核)实验的所有实验结果存放到gauss(poly)子文件夹下.每个具体的核参数都会在gauss(poly)目录下生成一个子目录,而所有svm输出的文件都存放于此.为了便于统计,实验结果,系统在每个特征子目录下建立了一个ap子文件夹,将各个参数下的置信度列表文件拷贝到此,然后在这里生成实验结果文件,并加以评测,评测结果记录到了特征子目录下的以参数名加特征名加QID组成的.log文件中.这些结果最后会被ColeAp.bat统一收集.
设计试验目录的一些思考.设计多级目录是为了将实验结果合理有效的存储起来.我们也可以把它们都存放到一个目录下,这就会引起大量的文件重名.我们采取了这两个方法的折中,对于不太重要的中间结果,我们往往将其存放在深深的目录树中,而将重要的部分文件收集到一起,为了避免文件重名,我们对文件的命名规则如下:
核参数_d(t)特征名_QIDk1……
其中d代表训练集,t代表测试集,……表示后面可能还有东西以表示不同内容的文件.如后面接_rst.txt表示是结果文件,_cfd.txt表示是置信度列表文件,.log文件记录了实验的详细结果,包括实验的时间,实验迭代次数以及平均准确率.举下面六个文件名为例.
d2a0.01b1_dHSVCorrelagram_1033k1.log, d2a0.01b1_dHSVCorrelagram_1033k1_cfd.txt
d2a0.01b1_dHSVCorrelagram_1033k1_rst.txt
d2a0.01b1_tHSVCorrelagram_1033k1.log, d2a0.01b1_tHSVCorrelagram_1033k1_cfd.txt
d2a0.01b1_tHSVCorrelagram_1033k1_rst.txt
图A.2 实验目录结构示意图
A.4 包装程序(批处理程序)介绍
为了说明的方便,我们假设用特征HSVCorrelagram,以及高斯核参数1以及二次多项式核参数a=0.1,b=1,进行实验.
启动程序start.bat:首先判断实验数据预处理程序prego.bat是否在实验的根下,如果在的话,就执行.然后调用实验总控程序main.bat.最后调用AP收集程序coleAp.bat收集收有实验结果.程序运行的所有命令及异常都记录在mainxxxx-xx-xx-xx.txt文件中,xxxx-xx-xx-xx是系统运行该命令的时间.
实验数据预处理程序prego.bat:该程序判断根目录下是否存在训练集和测试集的样本子集描述文件及其相应的标准答案文件四个文件,如果不存在则调用spsplitter2.exe根据正例列表文件根据扩充范围文件以及全局标准答案文件生成这四个文件.
实验总控程序main.bat:该程序动作最为复杂,它解析特征参数文件parameter_Files\featurelist.txt,为每一个特征在实验的根目录下建立一个子目录用于存放该与特征相关的全部实验结果.然后解析SVM核参数文件parameter_Files\svmParameters.txt,在特征子目录下为高斯核和多项式核参数分别建立gauss和poly子目录,还建立ap子目录来存放实验结果.对于每一个具体的核参数,在相应的gauss或者poly目录下建立相应的子目录,然后在该目录下调用高斯核训练测试程序gauss.bat或者多项式核训练测试程序poly.bat进行训练和测试.
高斯核训练测试程序gauss.bat与多项式核训练测试程序poly.bat:这两个批处理程序结构基本相同,只是在调用svm0722.exe训练时采取了不同核类型参数.它们的动作都是,先训练,然后测试,接着分别对训练集和测试集的分类得到的置信度文件调用kfrm2ters.exe生成相应的结果文件,并将其拷贝到该特征子目录下的ap子目录下面.然后调用trec_eval.exe得到该结果的平均准确率,保存在特征目录下与该参数相应的log文件中.
AP收集程序coleAp.bat:该程序用来收集实验根目录下各个特征子目录下面的log文件中的AP值,将其保存于实验根目录下.命名为AP_xxxx-xx-xx-xx.txt,xxxx-xx-xx-xx是系统运行该命令的时间.
图A.3 图像子系统流程图之二,包装程序及其相应文件
附录B 基于平均准确率的Borda投票算法的相关程序
如下图B.1所示,主程序BestExppara.pl,线性搜索最好的控制参数C.在每一个步长下,调用程序Borda.pl来计算当前策略下的平均准确率.最后将所有的实验结果,由好到坏依次打印输出到屏幕.其中间的详细结果也被记录在用户指定的文件中.
主程序BestExppara.pl需要七个参数,前三个是必须的,后四个是可选项.
参数一指定标准答案文件.
参数二指定一个列表文件,该文件指示对哪几个List合并.其格式是每一行有两项组成,第一项是List的文件全路径,任意多个空格或Tab键之后是一个实数,用以表示该结果的原始权重,实际上就是该分类器在训练集上的平均准确率.
参数三指定输出的中间结果文件,该文件记录了每个C值对应的合并的详细结果.
参数四指定使用Borda投票方法的何种变形,默认是标准的Borda投票方法.
参数五,参数六和参数七指定搜索控制C参数的起始值,步长和终止值.默认是从0.00001开始以步长1搜索到150.
进一步了解可以参看实验目录下的\AP-based_Borda_Fusion文件夹.该文件夹记录了文中的所有实验结果,中间文件,相关程序及其实验数据分析报表.程序BestExppara.pl和Borda.pl均是用perl写的,在dos命令行下键入文件名,将会显示这两个函数的详细使用方法.如果想改进,可以直接修改这两个函数.
图B.1 AP-based Borda Voting Method程序示意图
个人简历,在学期间发表的学术论文与研究成果
个人简历
1979年01月10日出生于山西省太原市.
1998年9月考入大连交通大学(原大连铁道学院)电气信息分院计算机专业,2002年7月本科毕业并获得工学学士学位.
2002年9月考研进入清华大学计算机系攻读计算机工学硕士至今.
发表的学术论文
Le Chen, Dayong Ding, Dong Wang, Fuzong Lin and Bo Zhang. AP-based Borda Voting Method for Feature Extraction in TRECVID-2004. 27th European Conference on Information Retrieval, Santiago de Compostela, Spain, 2005.(已发表,LNCS收录,SCI索引)
Le Chen, Dayong Ding, Dong Wang and Fuzong Lin. Temporal Wavelet Features for Video Retrieval. 4th WSEAS International Conference on Wavelet Analysis & Multirate Systems, Athens, Greece, December 2004.(已录用)
Le Chen, Lei Zhang, A Detailed Deduction of Mixture of Constellation Models presented at Technique Report at Web Search & Ming Group, Microsoft Research Asia, 2005.
Dayong Ding, Le Chen and Bo Zhang. Temporal Shot Clustering Analysis for Video Concept Detection. 27th European Conference on Information Retrieval, Santiago de Compostela, Spain, 2005.(已发表,LNCS收录,SCI索引)
Dong Wang, Dayong Ding, Le Chen, Shen Zhang, Fuzong Lin and Bo Zhang. Two Kinds of Timing Cues and Their Usage in Concept Detection in News Video. The 30th International Conference on Acoustics, Speech, and Signal Processing (ICASSP), Philadelphia, USA, 2005.(已发表,EI索引)
Jinhui Yuan, Wujie Zheng, Zijian Tong, Le Chen, Dong Wang, Dayong Ding, Jun Wu, Jianmin Li, Fuzong Lin and Bo Zhang. Tsinghua University at TRECVID 2004: Shot Boundary Detection and High-Level Feature Extraction. Online Proceedings of the TRECVID Workshops., 2004.(已发表,online proceedings)
研究成果
本人参与设计于实现的清华大学TRECVID2004概念检测系统,在TRECVID2004评测中,取得单项第一的好成绩.
使用"抽象空间"这个词是为了和与我们生活在的3维"空间"相区别.
这里的分类及其命名均是本人提出,有不妥的地方,望指出.
数据均来自Trecvid提供的数据集合.
把样本的排序值看成置信度时,需要将其用一个反向函数映射一下.见下一节的介绍.
请见第4章详细介绍.
把样本的排序值看成置信度时,需要将其用一个反向函数映射一下.因为置信度越高的样本,排序值越低.后面我们将排序值的负值看成它的置信度.
关于在Trecvid04上的数据集合划分请见4.4.1节.
数据划分见4.4.1节
一些重要文件的命名将采取这种格式.
称之为核心程序,是因为这些程序完成了一些更基本的任务,而且它们基本上都是用C(C++ )写的.它与用DOS脚本写的批处理程序相区别,后者我们称之为成包装程序.
该结果是从NIST官方的slides中对应的图中用尺子量出来的.我没有找到官方报道的准确结果.
摘 要
Abstract
目 录
第1章 引 言
第2章 镜头特征提取的一类有效的方法—时域小波特征
第3章 基于平均准确率的Borda投票算法
第4章 Trecvid高层特征抽取图像系统
第5章 总结与展望
参考文献
致 谢
附录A 图像子系统的详细描述
附录B 基于平均准确率的Borda投票算法的相关程序
个人简历,在学期间发表的学术论文与研究成果
不知道有没有必要提这个.
林老师,不知道这个是否有必要写到这里,这也算是在微软做的看得到的一点工作.
List
标准答案文件
搜索SVM参数空间
遍历所有图像的底层特征及其可能的组合
BestExppara.pl
std
min
median
该List的AP值.
最佳的控制参数C
Borda.pl
List1
List2
……
ListN
标准答案文件
对于每一个概念寻找最优的模型
实验的根\
├—sysFiles
├—Parameter_Files
├—HSVCorrelagram
│ ├—poly
│ │ ├—d2a1b1
│ │ ├—d2a0.1b1
│ │ └—d2a0.01b1
│ ├—gauss
│ │ ├—10
│ │ └—1
│ └—ap
└—CCV
├—poly
│ ├—d2a1b1
│ └—d2a0.01b1
├—gauss
│ ├—10
│ └—1
└—ap
·上一篇:
天秤座酒馆是焦日朗每日下午必经之地·下一篇:
试论当代宗教哲学的历史背景和主要论域