依据可查阅资料对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 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标准的特征提取(除深度学习) 视频匹配 视频检索相关推荐

  1. 自动化特征提取器:图像特征提取和深度学习

    自动化特征提取器:图像特征提取和深度学习 转载:github 译者:@friedhelm739 视觉和声音是人类固有的感觉输入.我们的大脑是可以迅速进化我们的能力来处理视觉和听觉信号的,一些系统甚至在 ...

  2. 高端对话 | 深度学习能颠覆视频编解码吗

    智能手机的普及降低了音视频创作的门槛,短视频以不同于文字的视觉呈现与信息表达,受到普通人的青睐,也成为企业数字化转型的重要入口. 2016年以来直播市场的爆发,将图像.语音信息的全面数字化进一步向前推 ...

  3. 深度学习时代的视频理解综述

    深度学习时代的视频理解综述 本文为b站@bryanyzhu老师四期视频理解相关论文解读的汇总图文笔记. 我们先精读深度学习时代视频理解领域最为重要的两篇论文:双流网络和 I3D.它们分别是领域内两大类 ...

  4. faceswap深度学习AI实现视频换脸详解

    给大家介绍最近超级火的黑科技应用deepfake,这是一个实现图片和视频换脸的app.前段时间神奇女侠加尔盖朵的脸被换到了爱情动作片上,233333.我们这里将会从github项目faceswap开始 ...

  5. python神经网络教程16_Python深度学习之神经网络视频

    Python深度学习之神经网络视频 课程简介 该阶段是深度学习的入门课程,主要介绍经典的深度学习框架TensorFlow的使用,IO操作,以及神经网络基础.卷积神经网络的相关知识,并用卷积神经网络原理 ...

  6. 视频教程-从零开始深度学习(仅视频课)-深度学习

    从零开始深度学习(仅视频课) 香港大学硕士.任职经历包括微软中国(Microsoft),今日头条研发中心,联想香港人工智能中心以及联合国亚太分部.现主要工作是利用深度学习实现基于知识图谱的智能问答. ...

  7. 面向机器学习的特征工程 八、自动化特征提取器:图像特征提取和深度学习

    来源:ApacheCN<面向机器学习的特征工程>翻译项目 译者:friedhelm739 校对:(虚位以待) 视觉和声音是人类固有的感觉输入.我们的大脑是可以迅速进化我们的能力来处理视觉和 ...

  8. 特征工程(七):图像特征提取和深度学习

    来源:https://mp.weixin.qq.com/s/pZWKECYyvLlkB-Qt8wi0fw 视觉和声音是人类固有的感觉输入.我们的大脑是可以迅速进化我们的能力来处理视觉和听觉信号的,一些 ...

  9. 对于线性代数、特征空间、特征提取、深度学习的一些深夜思考

    今天女票要毕业论文送审,昨晚熬夜.我们平时一般睡眠时间相近,我也就想着我也稍微晚点睡吧(打算一点左右睡).结果从思考矩阵乘法的意义开始,停不下来.一直想到了两点多,三点多接近四点才睡着.算是昨晚独自思 ...

最新文章

  1. JDBC编程:2(数据库的基本操作)
  2. redis主从复制、高可用和集群
  3. 绩效辅导,阿里这样做
  4. syntaxerror是什么错误_【第1643期】自定义错误及扩展错误
  5. python提示install无效_为什么是python设置.py给我“错误:选项installdir无法识别”错误?...
  6. DLA SQL技巧:行、列转换和JSON数据列展开
  7. Linux防火墙屏蔽ip6,观点|Linux 发行版们应该禁用 IPv4 映射的 IPv6 地址吗?
  8. VC 系统托盘 气泡提示
  9. Ajax_jquery库中Ajax方法的使用
  10. Elasticsearch系列——实战探索text与keyword的区别
  11. oracle11gr2克隆安装,克隆安装Oracle 11G HOME
  12. Atitit。Time base gc 垃圾 资源 收集的原理与设计
  13. Appfuse 开发环境搭建
  14. 我所理解的生活(韩寒)
  15. JavaScript 编程精解 中文第三版 五、高阶函数
  16. Hadoop资源管理
  17. 人工智能——文本分类(大作业必备)
  18. python小型登录系统_(Python)注册登录系统完整版
  19. 数字功放-耐福NTP功放芯片详细性能概述
  20. Zookeeper简单搭建

热门文章

  1. 在thinkphp中 结合 支付宝 paypal 财付通 .
  2. 王者服务器维护什么时间结束s19,王者荣耀S19什么时候开始 S18结束段位怎么掉...
  3. Mysql8.0.19下载安装—windows版本自定义安装
  4. 2013年图灵奖得主Leslie Lamport:如何写出数学上完美的算法
  5. java中String类的常用方法总结
  6. 腾讯云iis8.5新建网站无法访问_教程篇 | 使用七牛云存储、CDN加速网站图片
  7. huntshowdown服务器维护吗,猎杀对决《HuntShowdown》新手入门攻略
  8. 样本量计算PASS软件提高临床研究可靠性的利器
  9. jQuery模板引擎: jQuery-tmpl 和 JsRender 使用介绍
  10. 关于显卡驱动引起的IE异常停止工作解决办法