由于最近参加视频拷贝检测竞赛,针对数据做了很多实验,还是写写记录下吧。
对于视频拷贝检测,最著名的是TRECVID竞赛。关于TRECVID竞赛,可以看看百度百科,这里就不再赘述了。由于实验室之前参加过TRECVID竞赛,所以程序源码都是现成的。为了验证系统的有效性,我们先在TRECVID07数据集,对系统进行了测试。
TRECVID07数据集的大小为29.3G,其中有109个视频,相对来说不是很大。针对拷贝检测来说,第一步是对参考视频库进行特征的提取。由于特征提取各视频之间是互相独立的,因此我们采用并行提取方式。并行的实现方式就是采用Shellextcute函数调用外部可执行应用程序,同时打开多个线程。对于提取特征的结果是:我们对视频数据每隔25帧提取一个关键帧,这样下来大概有9千万的Sift点。特征文件的大小大概为:40多G,可见特征比源视频还要大。
特征提取完毕后,就是对提取出来的特征进行采样(特征点较多,没必要用这么多特征进行聚类)。这里采用的分级聚类,我们主要分5级进行采样。分级采样的作用是为了以后的分级聚类。5级的采用点数分别是:2000000 4000000 8000000 16000000 32000000. 接下来是对采样完的数据进行分级聚类,聚类中心分别是:10 100 1000 10000 100000. 接下来就是把每个视频的特征点量化到相应的聚类中心上,建立倒排表。这样下来,倒排表的大小有1.4G左右。 倒排表中有四列数据,分别是对于视频ID、帧号、x坐标、Y坐标。这样,我们就可以用生成好的倒排表进行视频检索了。
第一次写,有点乱。期待有更大提高。加油……