您的位置:首页 > 其它

MPEG-CDVA标准的特征提取(除深度学习)& 视频匹配 & 视频检索

2017-10-07 10:30 471 查看
依据可查阅资料对CDVA标准中的特征提取(不涉及深度特征部分),视频匹配和视频检索流程做了分析说明。

1. 概要

1.1 描述子提取:

使用关键帧描述子

提取关键帧之前,视频做一个降采样,每隔2-10帧左右取一帧

关键帧通过比较彩色直方图的相似性而得,每一帧与前一个关键帧作比较

视频降采样之后,提取关键帧之前,提取视频帧的时间信息

在提取关键帧的流水线中,将视频划分成小段(我认为就是shot的划分)

1.2 视频匹配:

双重循环的匹配,待匹配视频中每一个关键帧,和其他所有视频中的所有关键帧匹配

由粗到精,对于每一次迭代中的两个关键帧,先比较其全局描述子,再比较局部描述子

用两个阈值控制,不符合条件的直接略过。

1.3 视频检索:

对于待检索视频中的每一个关键帧,先使用全局描述子进行检索,得到前500个,再使用局部描述子,得到最相似的前50个视频。

2. 描述子提取过程

MPEG CDVA整体框架



CDVA描述子提取



CDVA描述子提取(不含深度学习部分)



1. 分段的选择(segment)

从第一个关键帧开始,第一个关键帧作为第一个分段的段边界(segment boundary),从段边界开始,之后的帧,直到遇到下一个段边界或文件结束,都是同一段中的。

2. 帧的降采样(我理解的是,每隔多少帧取一帧,典型的参数2-10)

3. 对帧进行解码

4. 计算彩(颜)色直方图,使用RGB颜色空间,每个颜色空间32个bin(将颜色空间划分为若干个小的颜色区间,每个小区间成为直方图的一个bin,称为颜色量化)。

5. 检验当前帧和之前的帧的彩色直方图差值,如果大于一个给定的阈值,就被选做关键帧,否则就把当前帧丢弃。就是说如果当前帧,和之前已经编码过的帧相似,就舍弃。

6. 关键帧的颜色直方图保存下来,当做下一次迭代中的前一直方图

7. 对独立的帧提取CDVS描述子,使用CDVS标准中的模式0。

8. 检验当前帧和段首(也应该是一个关键帧)的彩色直方图差值,如果大于某个阈值,当前帧被选做一个新的分段的第一帧(分段边界)

9. 计算当前帧的描述子和分段中第一帧的描述子的全局CDVS相似性,如果小于某一个阈值,即相似性较小,就把这个帧选定为新的分段边界。

10. 选定为新的分段边界的帧,存储描述子,以便和段中的之后的帧作比较

11. 对帧的描述子进行编码,使用cdvs提取器得到的当前帧的数据结构,以二进制方式进行编码。

12. Mux: 视频帧的时间戳,描述子大小,分段开始的信息以及二进制的CDVS描述子,都被联接起来,然后再附加上当前的CDVA描述子,成为一个描述子。

3. 成对匹配过程

3.1 描述子级别的匹配

匹配对象:Qi和Rj Q:待匹配的视频的关键帧的集合 R:其他视频中所有关键帧的集合。

for(Qi∈Q)

for(Rj∈R)

这样一个匹配关系。

即,需要匹配的视频中的所有关键帧与其他视频中所有关键帧进行比较。

视频匹配通过把两个描述子进行一个由粗到精的匹配策略来实现:

一个视频中的每一个关键帧首先与其他视频中的所有关键帧,即Qi与Rj,通过全局特征相似度来比较。如果这个相似度大于给定的阈值,就表明两帧有可能匹配,局部描述子比较会被几何校验这一模块进一步完成。关键帧级别的相似度再之后通过全局和局部描述子的匹配值进一步得到。最后,我们可以通过在所有关键帧级别的相似性中选择最大的匹配值,得到视频级别的相似性。

CDVA成对匹配



1. Decode CDVS descriptors Q and R

对于两个地方的描述子:Q表示CDVA查询描述子,R代表CDVA参考描述子,进行CDVS描述子的解码

2. Get next pair CDVS Qi Rj

解码过程得到成对的Q和R,成对的查询和参考描述子,Qi和Rj。

3. Match Global descriptor

对Qi和Rj描述子的全局描述子做一个CDVS匹配操作

4. Match local descriptors

如果3中全局匹配的值大于th1(小于th1的丢弃了),则再继续做一个局部描述子的匹配(由粗到精)

5. Determine score

由全局和局部的匹配值,得到最终的一个匹配值,如果这个值大于th2转6(小于th2的丢弃)

6. Set time of Qi

如果全局和局部结合生成的匹配值大于th2,则存储Qi这个描述子所属的分段的时间。

当迭代过程结束,所有的Qi和Rj都匹配过之后,找到一个最大的间隔,然后使相邻的间隔融合。

7. Update score

默认的更新匹配值策略是:在所有当前的匹配值中选取一个最大值;也可选择另外一种:取均值。每得到一对Qi和Rj就更新一次匹配值,直到迭代结束。

3.2 基于时间定位(temporal localization)的匹配/基于shot的匹配

视频匹配中的另外一个标准是时间定位temporal localization,可以基于记录下的时间戳,定位包含感兴趣项目的视频片段。意大利电信的提案中提出了shot(镜头,连续镜头,景)级别的定位模式。

定义shot为一组连续的关键帧,shot中每个关键帧的颜色直方图和这个shot中第一个关键帧的颜色直方图之间的距离,都小于某个给定的阈值。如果关键帧级别的相似性,大于某个阈值,则包含这个关键帧的shot被认为是匹配间隔(matching interval)。多个匹配间隔也可以连接起来得到最终用于定位的间隔。

16年10月,意大利电信的提案

简单迅速的shot检测算法:

使用同样的颜色直方图算法来检测关键帧,引入了一个新的阈值来检测shot的变化,定义shot为一组连续的关键帧,shot中每个关键帧的颜色直方图和这个shot中第一个关键帧的颜色直方图之间的距离,都小于某个给定的阈值。Shot的起始时间是shot中第一个和最后一个关键帧的时间。时间定位间隔通过如下方法计算:对于每一对做匹配的局部描述子,检查查询关键帧(query keyframe)的信息来确定包含帧的shot;shot的起始时间传给评价框架,作为匹配间隔(matching
4000
interval),即匹配间隔就是这个shot的起止时间。如果不止一个shot匹配上,间隔会被自动连接起来(shot被连接起来)

使用暴力(brute-farce)匹配的方式来做关键帧的匹配:在查询和参考关键帧的所有可能的组合上应用全局+局部描述子匹配,将计算过程分为三部分:

1. 计算所有的全局描述子匹配值(在这个部分,只对全局描述子匹配使用暴力算法)

2. 根据全局描述子匹配值选出匹配对中的前64对。

3. 计算这前64对的局部描述子匹配值,如果这个值大于给定的阈值,则将这个shot的起止时间传递给评价框架。

4. 视频检索过程

视频检索使用的是一对多的模式,数据库中的视频都会被检查,并且顶端的那几个有更高的匹配值。特别地,关键帧级别的和全局描述子进行的匹配,是通过提取数据库中前Kg个候选关键帧实现的。然后,这些关键帧会使用局部描述子匹配进一步检验,然后候选帧的数据集被进一步缩小到Kl,依据是全局和局部相似性的结合的排序。这些关键帧在视频中被重新组织,最终遵循视频检索流水线的原则在视频级别上进行相似性排序。

CDVA视频检索流水线



1. Decode CDVS descriptors Q

CDVA查询描述子中的所有描述子,解码其CDVS描述子

2. Get next CDVS Qi

每次的CDVS描述子:Qi,循环迭代

3. Query in the Global Descriptor Index

在全局描述子数据库索引中查询Qi,使用的是CDVS的检索操作

4. Sort by descending score

排序,将检索结果按降序排序

5. Get the top 500 elements from the list

在排序名单中,选择前500个描述子

6. Local descriptor matching for each item in the list

500个描述子进行CDVS局部描述子匹配

7. Rerank by the local score

通过局部值进行一个重排序,迭代继续,取下一个Qi

8. Merge results and remove duplicates

全部迭代结束之后,融合结果,去掉重复,返回前50个匹配上的视频
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  MPEG CDVA 视频分析