09 光流法实践

文章目录

    • 09 光流法实践
      • 9.1 光流法
      • 9.2 直接法
      • 9.3 总结

09 光流法实践

光流法需要提取关键点,而不需要计算描述子;直接法直接利用像素信息,无需特征点。

9.1 光流法

光流法基于 灰度不变假设,即第一帧中的关键点的灰度与其在第二帧中的像素灰度相同。假设该关键点在第一帧 ( x , y ) (x, y) (x,y) 处,表示为 I ( x , y ) I(x, y) I(x,y)(这个值是已知的),我们希望找出 ( Δ x , Δ y ) (\Delta x, \Delta y) (Δx,Δy),从而求出该关键点在第二帧中的像素坐标 I ( x + Δ x , y + Δ y ) I(x+\Delta x, y+\Delta y) I(x+Δx,y+Δy)。(这样根据灰度就直接找到了关键点的位置,省去了匹配的过程,速度更快。)

  • 单层光流

采用优化的方法:

min ⁡ Δ x , Δ y ∥ I ( x , y ) − I ( x + Δ x , y + Δ y ∥ 2 2 \min_{\Delta x, \Delta y}\|\boldsymbol{I}(x, y)-\boldsymbol{I(x+\Delta x, y+\Delta y}\|_2^2 Δx,ΔyminI(x,y)I(x+Δx,y+Δy22

找出使像素灰度误差最小的位置坐标,即为关键点的位置。雅可比矩阵为第二张图像在 ( Δ x , Δ y ) (\Delta x, \Delta y) (Δx,Δy) 处的梯度。

步骤:

(1)第一帧提取关键点(不需要描述子);
(2)后一帧在前一帧的基础上跟踪,得到关键点的位置坐标;
(3)根据关键点匹配关系,对极几何恢复位姿

  • 多层光流

当相机运动较快,两张图像差异较大时,单层光流容易陷入局部最优,这时提出图像金字塔。

我们以原始图像为金字塔的底,以一定的倍率(如0.5)进行缩小(相当于与物体距离越来越远),假设原始图像特征点运动了 20 个像素,那么在缩小的图像里可能只运动了 5 个像素,搜索范围更小,优化结果可能就更好。

计算金字塔时从下往上,跟踪光流时从上往下,即由 粗至精

具体步骤:

(1)构建图像金字塔(一层层缩放,最小的在顶层,原始图像在底层);
(2)从顶层开始,在第一帧中提取描述子,在第二帧得到对应点坐标;
(3)将跟踪成功的关键点坐标乘以缩放系数,得到下一层中的像素坐标,继续追踪;
(4)循环以上步骤,最终得到原始图像的关键点对,进而恢复位姿。

9.2 直接法

假设有一空间点 P \boldsymbol{P} P,他在图一中的位置 p 1 \boldsymbol{p}_1 p1 是已知的,我们的目的是找到他在图二中的特征点 p 2 \boldsymbol{p}_2 p2。基于灰度不变假设, p 2 \boldsymbol{p}_2 p2 p 1 \boldsymbol{p}_1 p1 的灰度值是一致的,也就是说我们希望在图二中找到和 p 1 \boldsymbol{p}_1 p1 灰度值相同的像素点。 定义误差函数:

e = I 1 ( p 1 ) − I 2 ( p 2 ) e=\boldsymbol{I}_1(\boldsymbol{p}_1)-\boldsymbol{I}_2(\boldsymbol{p}_2) e=I1(p1)I2(p2)

其中,

p 1 = [ u v 1 ] 1 = 1 Z 1 K P \boldsymbol{p}_1=\left[\begin{array}{l} u \\ v \\ 1 \end{array}\right]_1=\frac{1}{Z_1}\boldsymbol{KP} p1= uv1 1=Z11KP
p 2 = [ u v 1 ] 2 = 1 Z 2 K ( R P + t ) = 1 Z 2 K ( T P ) 1 : 3 (7-8) \boldsymbol{p}_2=\left[\begin{array}{l} u \\ v \\ 1 \end{array}\right]_2=\frac{1}{Z_2}\boldsymbol{K}(\boldsymbol{RP+t})=\frac{1}{Z_2}\boldsymbol{K}(\boldsymbol{TP})_{1:3} \tag{7-8} p2= uv1 2=Z21K(RP+t)=Z21K(TP)1:3(7-8)

p 1 \boldsymbol{p}_1 p1 P \boldsymbol{P} P 是已知的,那么要想光度误差最小,只需要不断优化迭代位姿 T \boldsymbol{T} T 即可。

那么, P \boldsymbol{P} P 是哪里来的呢?

一是 RGB-D 相机可以直接得到三维点坐标,二是双目相机根据视差计算像素深度,三是单目相机恢复三维点坐标。

9.3 总结

相比于特征点法,直接法完全依靠优化来求解相机位姿。

(1)直接法优点

  • 可以省去计算特征点、描述子的时间;

  • 只需要像素梯度即可,不需要特征点,因此可以在缺失特征点的场合下使用;

  • 可构件半稠密乃至稠密地图,这是特征点法做不到的。

(2)直接法缺点

  • 非凸性:优化时容易进入极小,只有在运动很小的时候直接法才能成功,引入金字塔在一定程度上可减小非凸性影响。

  • 单个像素没有区分度:选点少时效果较差,一般用 500 个点以上;

  • 灰度不变假设是很强的假设,相机会自动调整曝光参数、或者光照变化,都会使得图像整体亮度发生变化。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/221173.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

用print太慢了!强烈推荐这款Python Debug工具~

作为程序员,我们都深知调试(Debug)在编程过程中的重要性。然而,使用传统的"print"语句进行调试可能效率较低,今天,笔者将推荐一款独具一格的Python调试工具——Reloadium。Reloadium为IDE添加了热…

深入理解Spring Security授权机制原理

原创/朱季谦 在Spring Security权限框架里,若要对后端http接口实现权限授权控制,有两种实现方式。 一、一种是基于注解方法级的鉴权,其中,注解方式又有Secured和PreAuthorize两种。 Secured如: 1 PostMapping("…

elementui select中添加新增标签

<el-select v-model"ruleForm.eventType" :placeholder"请选择事件类型&#xff0c;可手动添加" ref"template" clearable visible-change"(v) > visibleChange(v, template)"><el-option v-for"item in eventTypeOp…

多域名SSL证书选择什么品牌比较好?

选择适合的品牌是申请多域名SSL证书的重要一步。不同品牌的SSL证书提供商在性能、安全性和客户支持等方面各有特点。本文将详细介绍选择多域名SSL证书品牌时应考虑的因素&#xff0c;并推荐几个知名的SSL证书品牌。 首先&#xff0c;我们需要考虑的是品牌的声誉和可靠性。选择一…

短地址漏洞

漏洞条件&#xff1a; 当地址的长度不足 20 byte (40个十六进制字符) 时&#xff0c;以太坊虚拟机 EVM 会进行高位补0x0转发以太币时没有对地址长度进行验证 1. input 数据 交易的 input 数据分为三个部分&#xff1a; 1&#xff09;4字节&#xff0c;是方法名的Hash值&…

MySQL_11.InnoDB Buffer Pool原理与配置

1.buffer pool原理 (1)innodb_buffer_pool_instances&#xff1a; windows default 1个实例、windows default 8个实例; 将热点打散,提高并发的性能改善并发,通过降低竞争因为不同的线程读和写cached pages&#xff08;缓存页&#xff09; 内存小于1G默认1个,这个选项只有当设置…

Android开发中压缩文件和文件夹

Android开发中&#xff0c;我们经常会遇到上传文件&#xff0c;用到压缩文件、文件夹的功能&#xff0c;今天我们主要讲解这个功能&#xff0c;具体的实现如下&#xff1a; /*** 压缩文件和文件夹** param srcFileString 要压缩的文件或文件夹* param zipFileString 压缩完成的…

【论文极速读】视频检索中的模态均衡方法

【论文极速读】视频检索中的模态均衡方法 FesianXu 20231206 at Baidu Search Team 前言 传统的视频搜索系统相关性部分主要以文本匹配为基础手段&#xff0c;在其中引入多模态向量容易收到『模态不均衡』的问题&#xff0c;论文[1]尝试对其进行解决&#xff0c;本文进行笔记。…

【算法技术专题】精彩解密KMP算法之跃进式搜索的深度探索

KMP算法 KMP算法介绍KMP算法历史KMP算法思路性能损耗算法思路结构模型准备KMP算法的实现步骤生成next数组构建next数组原理生成nexf数组代码实现 代码案例解释说明 字符串对比操作代码案例解释说明 算法效果 KMP算法介绍 KMP算法&#xff08;Knuth-Morris-Pratt算法&#xff0…

02markdown-学习笔记

一级标题 二级标题 三级标题 四级标题 五级标题 六级标题 换行符<br>标签 写入一段测试用的正文第二段测试文本,如果要对文本进行换行可以使用<br>标签 文本修饰符 字体为斜体的修饰&#xff0c;一对星号包含 字符为粗体&#xff0c;两对星号包含 字体为…

springboot 拦截器之Advisor不生效问题

SPringBoot使用方法注解拦截器时遇到不生效问题记录&#xff1a; 定义方法注解 Target({ElementType.TYPE, ElementType.METHOD}) Retention(RetentionPolicy.RUNTIME) Inherited Documented public interface DataScope {boolean enable() default true;}定义 Advisor Getter…

出现 java: 找不到符号 符号: 变量 log 的解决方法

目录 1. 问题所示2. 原理分析3. 解决方法3.1 增加编译参数3.2 增加lombok插件3.3 清楚本地缓存1. 问题所示 使用Springboot启动项目的时候,出现如下bug: java: 找不到符号符号: 变量 log位置: 类 org.springblade.example.consumer.rpc.BlogStu

如何定位线上OOM?

文章目录 造成OOM的原因1.一次性申请的太多2. 内存资源耗尽未释放3.本身资源不够 如何快速定位OOM&#xff1f;1.系统已经OOM了2.系统运行中还未OOM2.1导出dump文件&#xff1a;2.2.结合jvisualvm进行调试2.3 利用ArthasArthas可以做什么&#xff1f;如何使用Arthas小结 造成OO…

Docker常用命令总结

文章目录 Docker命令总结 Docker命令总结 简介&#xff1a;Docker是一个基于轻量级虚拟化技术的容器&#xff0c;整个项目基于Go语言开发&#xff0c;并采用了Apache 2.0协议。Docker可以将我们的应用程序打包封装到一个容器中&#xff0c;该容器包含了应用程序的代码、运行环…

【带头学C++】----- 九、类和对象 ---- 9.13 运算符重载——(9.13.7-9.13.8)

❤️❤️❤️❤️❤️❤️❤️❤️❤️❤️❤️创做不易&#xff0c;麻烦点个关注❤️❤️❤️❤️❤️❤️❤️❤️❤️❤️❤️❤️ ❤️❤️❤️❤️❤️❤️❤️❤️❤️文末有惊喜&#xff01;献舞一支&#xff01;❤️❤️❤️❤️❤️❤️❤️❤️❤️❤️ 目录 9.13…

Git篇---第九篇

系列文章目录 文章目录 系列文章目录前言一、使用过git merge和git rebase吗?它们之间有什么区别?二、使用过git cherry-pick,有什么作用?前言 前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家。点击跳转到网站,这篇文章男女通用,看…

GPIO模拟MDIO

背景 CPU&#xff1a;AST2500 驱动里实现GPIO模拟MDIO驱动,参考内核驱动mdio-bitbang.c和mdio-gpio.c&#xff0c;当前项目不支持设备树&#xff0c;驱动需要改成platform注册 MDIO介绍 SMI接口 SMI是MAC内核访问PHY寄存器接口&#xff0c;它由两根线组成&#xff0c;双工…

旅游规划

有了一张自驾旅游路线图&#xff0c;你会知道城市间的高速公路长度、以及该公路要收取的过路费。现在需要你写一个程序&#xff0c;帮助前来咨询的游客找一条出发地和目的地之间的最短路径。如果有若干条路径都是最短的&#xff0c;那么需要输出最便宜的一条路径。 输入格式: …

c++ qt 窗口开发中 俩按钮组合 配合 显影 已解决

在日常项目中&#xff0c;有这么需求&#xff0c;还想窗口移动&#xff0c;还想 右侧关闭 还能tab栏点击显影的需求&#xff0c;不得使用 qt模拟点击事件 进行功能优化 特大杯 大杯 控制 窗口显影&#xff0c; 咖啡 按钮 显示窗口 可乐 豆浆 不显示窗口 四个按钮的 互斥关…

Amazon SageMaker机器学习之旅的助推器

授权声明&#xff1a;本篇文章授权活动官方亚马逊云科技文章转发、改写权&#xff0c;包括不限于在 亚马逊云科技开发者社区, 知乎&#xff0c;自媒体平台&#xff0c;第三方开发者媒体等亚马逊云科技官方渠道。 一、前言 在当今的数字化时代&#xff0c;人工智能和机器学习已经…