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

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

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

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


镜头边界检测(中)


内容介绍

一、镜头边界检测方法

二、基于手工特征的镜头边界检测方法


一、镜头边界检测方法

镜头边界检测方法可分为两种类型,一种是基于手工特征的镜头边界检测方法,另一种是基于深度学习的镜头边界检测方法。手工特征是人针对特定对象构造的特征,主要是相对于机器学习特征而来的。

基于手工特征的镜头边界检测方法,包括基于像素( Pixel-Based )特征,基于直方图( Histogram-Based )特征,基于边缘( Edge-Based )特征,基于变换( Transform-Based )的特征,基于运动( Motion-Based )特征。

图片17.png

基于深度学习的镜头边界检测方法,是构造一个深度特征提取的模型,用不同的渐变类型来训练这个模型,训练是为了调整好模型参数,然后用训练好的模型去检测特定的边界。

 

二、基于手工特征的镜头边界检测方法

基于手工特征的镜头边界检测方法,一般流程的第一步是特征提取(视觉内容表示),第二步是相似性度量(连续信号的构造),还是要找帧间差,第三步是根据帧间差分类(连续信号分类),从而识别镜头变换的类型。

图片18.png

1.基于像素特征

先看第一种就是基于像素的镜头边界检测方法,它是计算相邻两帧的像素差的总和,若超过特定的阈值,则视为有镜头变换发生。计算公式如下:

图片19.png

大家想一想,两幅画面分别对应手举起来和手放下,手部位置的像素对应值是有差别的,但它并没有发生镜头的切变。该方法的缺点是对物体或相机的运动很敏感,而实际上手并没有离开画面,则需要去除位置的信息,可以通过用平滑滤波器对像素点的相邻点计算平均值,以此替代该像素点的值。

它的特点是计算方法与像素的位置密切相关;图像差别的计算对噪声和物体运动十分敏感;在镜头边界识别中,如果单纯采用基于像素的方法,容易造成误识。

2.基于直方图特征

比如说,它有一个运动矢量,但实际上它并没有发生镜头变化,这时可以装入一像素的均值,或者使用不考虑位置变化的方法,叫做基于直方图的方法,可以是颜色直方图或者是亮度直方图,直方图的意思是统计画面里所出现特定的颜色数量,比如说整个画面里面的颜色或者是亮度把它分成若干个,然后统计各个颜色的个数。

即假设相邻两帧图像 IiIj 的直方图为 HiHj ,则颜色直方差为(如图):

图片20.png

对于 RGB 图像,颜色由不同亮度的 R (红)、 G (绿)、 B (蓝)组成,可根据下面的公式进行计算:

图片21.png

直方图的特点是它没有位置信息,相对于基于像素的方法,它的抗干扰能力大幅提升。它丢失了颜色的位置信息,存在两幅图像,内容完全不同,但直方图相似。

这个情况在镜头边界里样出现的概率是很小的,因此基于直方图的方法用在镜头边界的检测上是没有问题的。有时仅用简单的颜色直方图匹配也容易造成误识别,可以通过分块直方图改进,将图像划分成若干子块,分别对各子块进行匹配,然后分别统计块内的直方图,块内跟位置无关,而不同的块又表明了相应的位置。

可以对物体运动、镜头缩放等情况有更好的适应性,同时也解决了完全失去位置造成的极个别情况的混淆。

图片22.png

看一下检测结果对比(如图),第一幅图是完全基于像素的检测方法,它有很多的峰值,但实际上没有这么多的镜头变换。

第二个是通过直方图直方差所求。第三个是直方差中的 p ,一开始 p 的取值是1,后来取值改成2,效果明显有所提升了。

一个差值取平方之后,会变得更小,而一个大的峰值拾取平方后会更大,这样可以使得分类的效果更明显。

相关文章
|
算法 计算机视觉 开发者
镜头边界检测(上)| 学习笔记
快速学习镜头边界检测(上),介绍了镜头边界检测(上)系统机制, 以及在实际应用过程中如何使用。
镜头边界检测(上)| 学习笔记
|
图形学
浅谈Unity之ShaderGraph-等高线和高程渐变设色
ShaderGraph实现等高线和高程渐变设色
|
传感器 机器学习/深度学习 人工智能
苏黎世理工最新!maplab2.0:模块化的多模态建图定位框架
将多传感器模态和深度学习集成到同时定位和mapping(SLAM)系统中是当前研究的重要领域。多模态是在具有挑战性的环境中实现鲁棒性和具有不同传感器设置的异构多机器人系统的互操作性的一块垫脚石。借助maplab 2.0,这个多功能的开源平台,可帮助开发、测试新模块和功能,并将其集成到一个成熟的SLAM系统中。
苏黎世理工最新!maplab2.0:模块化的多模态建图定位框架
|
缓存 JavaScript 前端开发
成功解决:npm 版本不支持node.js。【 npm v9.1.2 does not support Node.js v16.6.0.】
这篇文章介绍了如何解决npm版本与Node.js版本不兼容的问题,提供了查看当前npm和Node.js版本的步骤,以及如何根据Node.js版本选择合适的npm版本并进行升级的详细指导。
成功解决:npm 版本不支持node.js。【 npm v9.1.2 does not support Node.js v16.6.0.】
|
运维 监控 负载均衡
什么是系统可用性?如何提升可用性?
本文探讨了系统可用性的概念、计算方法及其重要性。可用性指系统能在预定时间内正常运行的比例,计算公式为:(运行时间)/(运行时间+停机时间)。文章列举了不同级别的可用性对应的停机时间,并介绍了提升系统可用性的多种策略,包括冗余设计、故障检测与自动恢复、数据备份与恢复、负载均衡、容错设计、定期维护与更新及使用高可用性云服务和网络优化。这些措施有助于构建更加稳定可靠的系统。
1830 0
|
Oracle 关系型数据库 MySQL
入职必会-开发环境搭建17-IDEA连接数据库
IntelliJ IDEA集成了众多插件,方便开发者使用,使用IDEA自带的Database模块就可以很方便的配置、连接数据库,在 IntelliJ IDEA 中连接数据库,可以按照以下步骤进行操作。
630 0
|
Ubuntu 安全 Linux
Ubuntu零基础教程
Ubuntu零基础教程
766 0
|
机器学习/深度学习 算法 计算机视觉
镜头边界检测(下)| 学习笔记
快速学习镜头边界检测(下),介绍了镜头边界检测(下)系统机制, 以及在实际应用过程中如何使用。
镜头边界检测(下)| 学习笔记
|
机器学习/深度学习 自然语言处理 分布式计算
深度学习进阶篇-预训练模型4:RoBERTa、SpanBERT、KBERT、ALBERT、ELECTRA算法原理模型结构应用场景区别等详解
深度学习进阶篇-预训练模型4:RoBERTa、SpanBERT、KBERT、ALBERT、ELECTRA算法原理模型结构应用场景区别等详解
深度学习进阶篇-预训练模型4:RoBERTa、SpanBERT、KBERT、ALBERT、ELECTRA算法原理模型结构应用场景区别等详解
|
机器学习/深度学习 算法
深度强化学习常用算法
深度强化学习常用算法
336 0