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

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

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

课程地址: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基本相同还要比较镜头边界检测算法的效率,即计算成本

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

相关文章
|
算法 计算机视觉 开发者
镜头边界检测(上)| 学习笔记
快速学习镜头边界检测(上),介绍了镜头边界检测(上)系统机制, 以及在实际应用过程中如何使用。
552 0
镜头边界检测(上)| 学习笔记
|
4月前
|
图形学
【unity小技巧】实现FPS武器的瞄准放大效果(UGUI实现反向遮罩,全屏遮挡,局部镂空效果)
【unity小技巧】实现FPS武器的瞄准放大效果(UGUI实现反向遮罩,全屏遮挡,局部镂空效果)
61 1
|
4月前
|
Go 图形学
【Unity小技巧】3D人物移动脚步和跳跃下落音效控制
【Unity小技巧】3D人物移动脚步和跳跃下落音效控制
31 1
|
前端开发 JavaScript
神奇的滤镜!巧妙实现内凹的平滑圆角
神奇的滤镜!巧妙实现内凹的平滑圆角
260 0
神奇的滤镜!巧妙实现内凹的平滑圆角
|
计算机视觉
第三周作业:matlab将一张图片进行顺时针旋转 20°,做水平镜像,做错切变换,缩小图像处理,并采用双线性插值方法
简介:第三周作业:matlab将一张图片进行顺时针旋转 20°,做水平镜像,做错切变换,缩小图像处理,并采用双线性插值方法
第三周作业:matlab将一张图片进行顺时针旋转 20°,做水平镜像,做错切变换,缩小图像处理,并采用双线性插值方法
|
传感器 JSON 数据可视化
【视觉高级篇】22 # 如何用仿射变换来移动和旋转3D物体?
【视觉高级篇】22 # 如何用仿射变换来移动和旋转3D物体?
188 0
【视觉高级篇】22 # 如何用仿射变换来移动和旋转3D物体?
|
机器学习/深度学习 开发者
镜头边界检测(中)| 学习笔记
快速学习镜头边界检测(中),介绍了镜头边界检测(中)系统机制, 以及在实际应用过程中如何使用。
340 0
镜头边界检测(中)| 学习笔记
|
存储 编解码 计算机视觉
图像和视频中的颜色(下)| 学习笔记
快速学习图像和视频中的颜色(下),介绍了图像和视频中的颜色(下)系统机制, 以及在实际应用过程中如何使用。
218 0
图像和视频中的颜色(下)| 学习笔记
|
开发者
图像和视频中的颜色(上)| 学习笔记
快速学习图像和视频中的颜色(上),介绍了图像和视频中的颜色(上)系统机制, 以及在实际应用过程中如何使用。
139 0
图像和视频中的颜色(上)| 学习笔记
|
机器学习/深度学习 算法 计算机视觉
图像特征提取(上)| 学习笔记
快速学习图像特征提取(上),介绍了图像特征提取(上)系统机制, 以及在实际应用过程中如何使用。
251 0
图像特征提取(上)| 学习笔记