计算机视觉基础(6)——光流估计

news/2025/1/1 7:59:31/

前言

本章我们来学习一下图像处理基础中的运动估计。主要内容包括运动场估计和光流估计两个部分。在运动场估计中,我们将学习到运动场、光流、光流和运动场的区别;在光流估计中,我们将学习到光流估计任务、孔径问题,以及光流估计两种方法——Lucas Knade方法和深度学习方法

一、运动估计

运动估计常用于目标跟踪和分割事件和活动识别以及自动驾驶预测等。

1.1  运动场

定义:三维相对速度矢量在二维图像平面上的投影

1.2  光流

定义:图像中亮度模式产生的运动

1.3  运动场和光流的比较

  • 理想情况下,运动场和光流是相等的;
  • 但是也会有物体运动场和图像光流不相等的时候。

【例子】

二、光流估计

【举例说明】

光流估计任务定义: 给定两个连续的帧,计算对应点之间的位移

【光流平滑性约束】

【光流估计评价标准】

2.1  重要假设

  • 亮度一致性:物体上同一个点在不同帧上的亮度是相同的;
  • 运动幅度小:物体上的点在两帧内的运动较小;
  • 空间连续性:一个点的运动和其周围点的运动相近;

  • 对于每个像素点有,一个方程,两个未知数(u,v) ;
  • 沿着垂直梯度的方向,也即边缘方向的运动分量无法被观测;

2.2  孔径问题

光流估计会出现一个问题——孔径问题。在这种情况下,光流估计将失效,即不能估计出对应点之间的实际位移(运动)。

举例说明如下:

2.3  Lucas Kanade方法

  • 求解欠定问题的核心想法:为每个像素点找到更多方
  • 空间一致性约束(Spatial Coherence Constraint):假设每个像素点的邻域具有相同的运动(u,v)

【参考文献】

B. Lucas and T. Kanade. An iterative image registration technique with an application to stereo vision. In Proceedings of the International Joint Conference on Artificial Intelligence, pp. 674–679, 1981.

Lucas-Kanade方程何时可以求解?也即对于哪些点比较适合计算光流?

但这种方法也有失效的情况:

1)大幅度运动

【解决方案】

2)亮度一致性不满足:相邻帧的光照发生变化

【解决方案】

  • 特征点匹配
  • 模板匹配
  • 基于特征的Lucas-Kanade方法
  • 基于梯度的Lucas-Kanade方法

2.4  深度学习方法

1、FlowNet

【参考文献】

Dosovitskiy, A.; Fischer, P.; Ilg, E.; Häusser, P.; Hazibas;, C.; Golkov, V.; van der Smagt, P.; Cremers, D. & Brox, T. FlowNet: Learning Optical Flow with Convolutional Networks, ICCV 2015

2、PWC-Net

【参考文献】

B. Lucas and T. Kanade. An iterative image registration technique with an application to stereo vision. In Proceedings of the International Joint Conference on Artificial Intelligence, pp. 674–679, 1981.

3、Self-Supervised Method

【参考文献】

Yu, J. J.; Harley, A. W. & Derpanis, K. G. Back to basics: Unsupervised learning of optical flow via brightness constancy and motion smoothness ECCV 2016

 总结

1)运动场估计

运动场

光流

2)光流估计

重要假设

Lucas Kanade方法

深度学习方法


http://www.ppmy.cn/news/1218476.html

相关文章

大数据Doris(二十二):数据查看导入

文章目录 数据查看导入 数据查看导入 Broker load 导入方式由于是异步的,所以用户必须将创建导入的 Label 记录,并且在查看导入命令中使用 Label 来查看导入结果。查看导入命令在所有导入方式中是通用的,具体语法可执行 HELP SHOW LOAD 查看。 show load order by create…

Android 12.0 中 清除通知 , 系统源码分析(一)

Android 提供了标准的api供第三方应用去清除通知,如下: NotificationManager notificationManager (NotificationManager)getSystemService(Context.NOTIFICATION_SERVICE);notificationManager.cancel(id);//删除指定id的通知 notificationManager.cancelAll();//删除全部通…

axios不经过全局拦截器策略

项目中使用的axios请求通常会根据项目情况进行请求拦截request和响应拦截response设置,比如对响应拦截的值具体值返回给调用请求部分直接使用 // 部分代码展示 const request axios.create({baseURL: /proxy/,timeout: 1000 * 600,responseType: json, }) // requ…

【【OpenCV实现图像:用OpenCV进行模板匹配】

文章目录 概要整体架构流程图像灰度化结论 概要 模板匹配是一种在图像处理领域广泛应用的技术,旨在寻找目标模板在源图像中的位置。该算法的核心思想是通过比较模板与源图像的局部区域,逐像素滑动,创建一个相似度图,反映了模板与…

解决 requests.post 数据字段编码问题的方法

问题背景 在进行网络请求时,我们通常会使用requests库的post方法来发送POST请求。然而,当我们尝试发送包含特殊字符(如中文字符)的数据时,可能会遇到数据字段被编码的问题。这可能会导致请求失败或者服务器无法正确解…

Golang获取月份的第一天和最后一天

package mainimport ("fmt""strconv""strings""time" )func main() {month : "2023-11"result : GetMonthStartAndEnd(month)fmt.Println(result["start"] " - " result["end"]) }// 获取月…

基于flask和fomantic-ui的简易p2p文件分享平台的手动实现

背景 开学一个多月了,由于繁重的学业和懒惰,都没怎么更新有意思的博客。 前几天突然想到了一个想法。同学之间平常用网络分享一个文件,大部分都是用的qq。但是qq看起来把文件拖到聊天框点击发送就发给对面同学了。但是实际上是先上传到了腾…

NineData慢查询分析:数据库性能优化的专家

在日常的数据库运维中,慢查询是一个常见的问题,它可能由复杂的查询语句、不充分的索引设计、大量数据的处理、硬件资源不足等多种因素引起。这些慢查询会消耗大量的数据库服务器资源,甚至可能导致数据库死机,无法响应业务请求。因…