镜头边界检测(下)| 学习笔记

简介: 快速学习镜头边界检测(下),介绍了镜头边界检测(下)系统机制, 以及在实际应用过程中如何使用。

开发者学堂课程【高校精品课-华中科技大学 -智能媒体计算镜头边界检测(下)】学习笔记,与课程紧密联系,让用户快速学习知识。

课程地址:https://developer.aliyun.com/learning/course/811/detail/15700


镜头边界检测(下)


内容介绍

一、前言

二、基于边缘特征

三、基于变换特征

四、基于运动特征

五、基于深度学习的镜头边界检测方法

六、镜头边界检测的评价指标

 

一、前言

前面是切变的检测,这一课讲解渐变的检测。这是一个比较经典的算法,尽管它本身不是特别的准确,但它的思路是后面其他算法的基础。这是由在金山的张洪江博士上个世纪90年代提出的,叫做双重比较法,即采用两个阈值来检测镜头变换。

在一个镜头内部变时会出现一个峰值而渐变时没有明显的峰值在镜头内部的帧间差很小渐变的过程里帧间差变大但没有峰值尤其是当一个镜头内部有物体的运动时,也会偶尔出现阈值变大的情况

根据张洪江博士检测步骤,首先设置两个阈值 TbTsTs < Tb ),分别是镜头切换和渐变的阈值,用较低的阈值 Ts 来确定渐变过程的起始帧,如果两个连续帧的直方图差 dHiHi + 1) 满足 Ts < d  Hi  Hi + 1  < Tb ,则它们被认为可能是渐变的开始出这种帧,就开始进行帧间直方图差累计 Aci ),如果发现下一帧它又变小了认为这不是渐变开始,如果加一直都变大,直到大于 Tb并且两之间又小于 Ts ,则认为是渐变结束

变小说明已经进入另一个镜头内部但实际上由于镜头变换类型复杂度太高这个算法的准确率不是特别高,且实用性也不高,后面根据这个算法做相应的改进,于是有了后面的一些算法。


二、基于边缘特征

通过边缘检测,当相邻帧的边缘位置的差别较大的时,则认为发生了镜头的变换。即在图像里面找边缘存在 i +1帧中,与第 i 帧中最近的边缘像素的距离大于r,即它边缘数发生变化变化大约一个阈值就认为发生了镜头变换。这个方法在一些运动视频里面效果不错,比如说乒乓球比赛(如图),但不是对所有的视频效果都好

图片9.png

该方法有个特点,由于需要边缘检测和预处理,其计算成本很高,但它能解决光照变化问题,有一些其他因素,例如相机变焦操作等,使得错检率很高。


三、基于变换特征

然后将边缘特征变换到频域去,即基于变换的镜头边界检测方法,就是将帧图像从空间域变换到变换域,常见的变换傅立叶变换小波变换离散余弦变换等等

基本流程是将图像进行分块然后呢对第 i  n在第 i +1中的 n' 的周围块中找到最佳的匹配块 p ,然后计算这两图像的相似矩阵(如图)。

图片10.png

在计算匹配块时,需要计算块之间的相关性,由于在空间域的计算代价大,因此将其转到领域再进行计算。


四、基于运动特征

计算相邻两帧图像块的运动向量 Motion Vector ),用以区别镜头的变和相机操作(如缩放或平移等),其缺点是快匹配的计算量巨大。将图像分割成多个不重叠的块,然后对第 i 帧中块 n ,将其与第 i +1帧中的每一块执行块匹配,找到匹配块 n并计算匹配值和运动参数匹配值的有序集合为:

L={li,i=1,…,Ksuch that l¡≤li+1 fori=1,…,K-1}

最后进一步计算图像匹配值:

图片11.png

求运动向量的过程时,将它变化的频率后更容易求解,可以一个一个的去找最后就可以求出(如图)。

图片12.png

在一个镜头内部的运动向量和两帧中切变或者渐变过程,它们一个是全局的一个是局部的,用这种方法可以有效区分。其实还有其他的方法,例如基于信息特征和基于统计特征,这里不详细讲解,感兴趣的同学可以去查看相关的参考文献


五、基于深度学习的镜头边界检测方法

前面的内容是基于手工特征的检测方法。随着近十年深度学习的快速发展不同的学者开始思考把深度学习用在镜头边界检测上,他们的思路就是利用神经网络提取我们视频的空间时间特征并预测或分类镜头边界

有一个文献中的三阶段方法可以去试试,后期实验室也用该方法过实验,用于来证明深度学习用在镜头边界检测的效果,发现深度学习在渐变检测上效果是不错的第一步就是选段的选择,即可能变化的检测利用 CNN 提取特征,然后根据特征来判断切变还是渐变

在候选段选择时,先将视频分割成片段,不能太长,计算片段中第一帧和最后一帧的距离,若超过预设值,则保留为渐变候选段,对候选段执行两次二等分,得到切变候选段(如图),以此类推。

图片13.png

然后利用 CNN 提取候选的特征,先用手工特征进行粗略计算,然后用深度特征进行精选计算,最后计算出相邻两帧之间的相似度。对相似度设置多个约束条件(参数),用于确定切变边界和渐变边界。

要想用深度学习对镜头边界进行检测就要把不同类型的镜头变换收集起来,出做一个大量的数据集,把它标注好切变边界和渐变边界。这个数据集也叫训练集,它越模型的训练越准确,它越准确检测镜头变换效果就越好详细的算法大家可以参考文献


六、镜头边界检测的评价指标

评价镜头边界检测的指标概有三个准确率、召回率和 F1-Measure 准确率就是切变和渐变检测的数量,正确的是多少。在做测试题时,需提前知道它的类型。

公式如下:

图片14.png

召回率是指的总共的变换类型中所找到的变换类型。公式如下:

 图片15.png

准确率和召回率综合在一起可以通过 F1-Measure 度量的公式来进行综合的考量

图片16.png

如果说准确率和召回率的两个算法都差不多F1基本相同还要比较镜头边界检测算法的效率,即计算成本

做实验通常是运行实践,比如说每秒钟处理了多少帧。而从算法角度分析主要是计算复杂度

相关文章
|
存储 vr&ar 图形学
法线贴图的视线原理
使用法线贴图可以大大提高渲染效果,使低多边形数的模型看起来具有高多边形数模型的细节和真实感。在游戏开发、电影制作和虚拟现实等领域,法线贴图被广泛应用于增强场景和物体的视觉效果。
156 2
|
算法 计算机视觉 开发者
镜头边界检测(上)| 学习笔记
快速学习镜头边界检测(上),介绍了镜头边界检测(上)系统机制, 以及在实际应用过程中如何使用。
镜头边界检测(上)| 学习笔记
|
前端开发 JavaScript
神奇的滤镜!巧妙实现内凹的平滑圆角
神奇的滤镜!巧妙实现内凹的平滑圆角
279 0
神奇的滤镜!巧妙实现内凹的平滑圆角
|
小程序
如何做一个俄罗斯方块6:形状停靠
在处理形状停靠之前,有一点儿东西需要了解,就是已经停靠的方块和正在下落的方块不是一种方块,如图,红色的表示的是已经停靠的方块,绿色的表示下落的绿色方块的作用是展示当前下落的形状,红色方块的作用是标识出哪些位置已经摆放了方块。
117 0
|
开发工具
如何做一个俄罗斯方块4:形状碰撞检测(上)
在游戏开发中,我们所说的“碰撞”经常指的是物理碰撞,什么是物理碰撞呢?一般的在游戏开发工具中都会包含一个叫做“物理引擎”的东西,它的作用就是在游戏中模拟出现实中的物理效果。例如,我们扔一个东西,这个东西会因为重力而下落,最终落到地上,与地面发生碰撞。在游戏中,我们可以借助物理引擎,来模拟出东西下落掉到地面上的效果。当东西掉到地面上时,我们就说这个东西与地面发生了碰撞。
312 0
如何做一个俄罗斯方块5:形状碰撞检测(下)
其实,两侧的碰撞判断跟我们上一节讲过的向下移动的碰撞判断原理是一样的,向下碰撞检测的是每一个方块下方的位置是否有其它方块,那么向左/右碰撞检测的就是每个方块左/右侧的位置是否有其他的方块。
320 0
|
并行计算 前端开发 数据可视化
【视觉基础篇】11 # 图案生成:如何生成重复图案、分形图案以及随机效果?
【视觉基础篇】11 # 图案生成:如何生成重复图案、分形图案以及随机效果?
190 0
【视觉基础篇】11 # 图案生成:如何生成重复图案、分形图案以及随机效果?
|
机器学习/深度学习 开发者
镜头边界检测(中)| 学习笔记
快速学习镜头边界检测(中),介绍了镜头边界检测(中)系统机制, 以及在实际应用过程中如何使用。
镜头边界检测(中)| 学习笔记
|
存储 编解码 计算机视觉
图像和视频中的颜色(下)| 学习笔记
快速学习图像和视频中的颜色(下),介绍了图像和视频中的颜色(下)系统机制, 以及在实际应用过程中如何使用。
图像和视频中的颜色(下)| 学习笔记
|
开发者
图像和视频中的颜色(上)| 学习笔记
快速学习图像和视频中的颜色(上),介绍了图像和视频中的颜色(上)系统机制, 以及在实际应用过程中如何使用。
图像和视频中的颜色(上)| 学习笔记