system: [SYSTEM]

user: 4. 基于感知哈希的视频去重 基于感知哈希的视频去重方案流程图如图2所示。该方案主要由三部分构成：特征帧提取，匹配排序，视频质量评价。视频是由一帧帧图像构成的，同一镜头内连续帧的内容相似性极强，而不同镜头帧间差别很大。在一定程度上可以认为同一镜头内的连续帧为同源图像。我们可以借鉴感知哈希对同源图像检索的方法，利用对每一特征帧提取的感知哈希序列识别同一镜头内的图像帧，当相邻帧的感知特征序列距离小于设定的阈值时，将其归为同一镜头，而当相邻帧间的感知特征序列大于设定的阈值时，此前帧为临界帧。将视频划分为不同的镜头后，再选取特定数量的特征帧，组成特征帧序列。得到特征帧序列后，每一个特征帧图像进行感知哈希计算生成特征帧感知哈希序列。所有的特征序列存放在特征帧数据数据库中，当进行视频去重时，在特征值数据库中对待检索视频的特征帧序列中的每一个特征帧进行检索，记录检索结果得到特征帧图像候选集，最后将特征帧序列的检索结果整合得到重复视频序列的候选集。得到候选集后再通过质量评价阶段，对候选集内的重复视频进行评价，得到质量最好的视频序列，进行标记。同时可选择删除其余重复视频。下面将详细介绍该方案的主要过程。 4.1. 基于感知哈希的自适应阈值关键帧提取方法 视频是由多个不同的镜头构成的，同一个镜头内相邻帧间的差异不大，具有一定程度上的相似性。而不同镜头间的相邻帧则差异较大，图像内容会发生突变。基于镜头分割的关键帧提取算法的思路正是 图2. 基于感知哈希的视频去重方案框图 利用这一点，首先计算每一帧图像的感知哈希序列值，然后计算视频相邻帧间的汉明距离差异值，当该差异值超过所设定的阈值时，便判断该相邻帧为镜头的分界帧，找到分界帧后便可以将视频序列划分成多个镜头，然后通过划分的不同镜头，按照一定的数量关系提取关键帧。但基于镜头分割的算法只能针对特定的场景，因为当场景发生变化时，不同镜头间的差异值发生变化，此时需要按照不同的场景调整算法中的阈值至合适的大小，过程麻烦。不同视频场景的镜头分界值会随着场景的不同发生变化，远景轮廓背景场景内不同镜头间差异较小，而近景细节背景场景内不同镜头间的差异会较大。根据这个原理，本文提出了一种基于感知哈希的镜头自适应阈值分割算法。 算法具体步骤： 视频帧感知哈希特征提取。视频是由图像帧构成的，提取视频图像帧，分别对提取出的视频帧进行感知哈希计算，利用上述的BDCT-hash算法，计算每一帧图像的感知哈希序列。视频每一帧t的感知哈希特征用 表示： 相邻帧差值计算。相邻帧间差异值用汉明距离计算，公式为： 镜头边界帧判断。 设定滑动窗口为Seq，设定两个阈值m，n (且n > m)， 表示为滑动窗口内所有帧差的平均值， 表示当前帧与上一帧的差异值。默认把第一帧加入滑动窗口，每计算一帧的差异值后进行如下操作： 若 且 ，则将当前帧加入到滑动窗口中。 若 ，则当前帧即为镜头的分界帧。 找到第一个分界帧后清空滑动窗口，并将接下来的一帧做为初始帧放入滑动窗口中，重复上述步骤，直到视频最后一帧。 镜头合并。在上一步检测出所有关键帧后，根据关键帧的时间定位，将时间相差较小，小于1 s的关键帧的相应镜头合并。 5) 镜头关键帧选取。每个镜头中找到与该镜头的直方图特征平均值最接近的一帧，将该帧做为该镜头的关键帧。 6) 关键帧排序。根据每个镜头不同的时长，赋予镜头关键帧不同的权重进行归一化处理并把关键帧按照权重排序。需要时选取前n位关键帧作为视频关键帧。 对于视频任意视频，该过程可以表示为 4.2. 匹配排序 匹配排序过程分为两大部分。一是视频到图像特征的映射。在关键帧提取过程中，得到了视频到图像的映射，对于任一个视频得到了其相应的关键帧序列。匹配排序，首先要对关键帧序列建立索引。建立视频到图像的联系。关键帧序列实际上是有一系列图像构成的集合，对于这些图像数据，从前几章的内容中可知，我们很容易获得每一张图像的感知哈希序列，将该哈希序列做为关键帧序列中图像的特征值。提取所有视频的全部的关键帧特征序列建立关键帧的特征值索引库，用进行后续的匹配。 特征值索引库中的每一个关键帧的序列包括以下信息： 。 包括哈希序列值，所属的视频，以及该特征帧所在的镜头在视频序列中所占的权重。 二是图像到视频的映射。从上一步中，我们可以得到关键帧序列中全部图像的感知哈希序列，存放在特征值索引库中。这样相似视频检索就转化成了相似图像检索的过程。我们在特征值数据库中对待检测视频的关键帧图像一一进行检索，与上文所述的相似图像检索过程相同，通过对hash值汉明距离的比较，得到关键帧序列中每一张图像在特征值数据库中的相似图像。同样，得到的匹配后的索引图像也包含以上三种信息，哈希序列值，所属的视频，以及在视频中所占的权重。 该算法的具体步骤如下： 1) 关键帧提取。按照4.1中的算法提取待查询视频的关键帧。其中 代表第n个图像关键帧。 2) 关键帧的特征提取 按照2.1中所提到的BDCT-hash算法提取每一个关键帧的感知特征序列。其中第n个图像的感知哈希特征序列用 表示。 3) 图像检索 在特征值索引库用待检测视频的关键帧特征序列搜索其相似图像，每个关键帧可以得到k个相似图象候选集，score表示图像的相似度评分，score的计算有汉明距离的不同位数占总序列长度的比例得到。 4) 结果整合 在关键帧的提取过程中，可以得到每个关键帧的所属视频以及其所属镜头占视频的权重weight。 表示图像序列 属于视频 且其所占权重为 。 整合后的检索图像序列为： 最后合并所有的检索图像得到最终的视频对应序列 ，得到重复视频结果的候选集。 4.3. 视频质量评价 在得到重复视频候选集后，要通过质量比较后再进行进一步的去重工作。以保留质量最好的视频文件。关于视频的质量评价算法，目前已有很多的研究。对于视频的质量评价是以人眼观测为标准的，因此主观的人眼观测方法也是最精准的方法，但需要耗费大量的人力，不能用于大规模的应用。客观的质量评价方法是目前的主要研究方向。与图像质量评价算法相似，根据算法对原始数据的依赖程度，客观的视频质量评价算法主要分为，全参考评价算法，半参考评价算法和无参考评价算法。其中全参考评价算法需要利用整个原始视频的全部信息，用完整的原始视频与待评价视频做比较，得到与其相似度，经典的全参考算法如MSE和PSNR被广泛应用，还有研究人员对MSE和PSNR进行改进，提出基于结构相似度的视频质量评价方法 [ 11 ] 。但这类算法需要客户端上传整个原始视频至服务器，由于带宽限制，很难实现。半参考评价算法从原始视频中提取特征值，传至服务器用以比较待评价视频与原始视频的相似度，虽然传输所占带宽较全参考视频小，但其准确度有一定的削减。半参考的质量评价算法常适用于在线视频质量实时监控中。 在这里更适合使用无参考的视频质量评价模型。无参考的视频质量评价模型中有很多分类，主要分为像素域的无参考视频质量评价还有压缩域的视频质量评价。像素域的无参考评价又有以下几种形式，基于失真种类的评价算法，通过对视频失真种类进行分类，分析在该分类中失真效应；基于像素差异的估计评价算法还有基于神经网络的算法等。林翔宇在文献 [ 12 ] 一文中提出了一种基于失真度估计的无参考视频质量评价算法。该算法通过计算视频的局部失真度与全局失真度结合得到整体视频的失真度，并通过帧间预测和帧内预测得到视频复杂度，最后结合失真度和计算法复杂度得到最终的视频质量。 在我们的视频去重方案中，视频质量评价过程将直接采用文献 [ 12 ] 中提出的质量评价算法。在得到视频候选集后计算候选集内视频的质量。通过质量比较标记质量最好的视频，同时对其余重复视频进行选择性删除。至此完成了整个框架中视频去重的任务。