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

前言

本章我们来学习一下图像处理基础中的运动估计。主要内容包括运动场估计和光流估计两个部分。在运动场估计中,我们将学习到运动场、光流、光流和运动场的区别;在光流估计中,我们将学习到光流估计任务、孔径问题,以及光流估计两种方法——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.hqwc.cn/news/175849.html

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

相关文章

Jenkins Docker Swarm插件 配置的坑

配置 Docker Host URI 注意,这里要用 http://!!!如果按照提示里用了 tcp:// 则会报错,异常信息如下: 2023-11-13 16:28:42.6830000 [id34] WARNING o.e.j.s.h.ContextHandler$Context#log: Error while s…

美国站群服务器IP如何设置分配?

​  在配置美国站群服务器时,IP的分配是一个重要的步骤。下面将介绍一些关于美国站群服务器IP分配的相关知识。 独享IP和虚拟IP 在租用美国站群服务器之前,我们需要了解提供的IP是独享的还是虚拟的。独享IP指每个网站都有独立的IP地址,而虚…

Android Studio的代码笔记--JSON解析学习2

JSON学习2 生成JSON解析JSON java解析json字符串和合成json字符串 json字符串 {"type":"getConfig","ip":"192.168.1.100"}使用 String ss groupJS("Config","192.168.1.100"); splitJS(ss);回显 I/lxh: group…

(一)什么是Vite——vite介绍与使用

什么是Vite Vite(法语意为 "快速的",发音 /vit/,发音同 "veet")是一种新型前端构建工具,能够显著提升前端开发体验。 它主要由两部分组成: 一个开发服务器,它基于 原生 …

Kohana框架的安装及部署

Kohana框架的安装及部署 tipsKohana安装以及部署1、重要文件作用说明1.1 /index.php1.2 /application/bootstrap.php 2、项目结构3、路由配置3.1、隐藏项目入口的路由3.2、配置默认路由3.3、配置自定义的路由(Controller目录下的控制器)3.4、配置自定义的路由(Controller/direc…

数据同步工具调研选型:SeaTunnel 与 DataX 、Sqoop、Flume、Flink CDC 对比

产品概述 Apache SeaTunnel 是一个非常易用的超高性能分布式数据集成产品,支持海量数据的离线及实时同步。每天可稳定高效同步万亿级数据,已应用于数百家企业生产,也是首个由国人主导贡献到 Apache 基金会的数据集成顶级项目。 SeaTunnel 主…

通过右键用WebStorm、Idea打开某个文件夹或者在某一文件夹下右键打开当前文件夹用上述两个应用

通过右键用WebStorm、Idea打开某个文件夹或者在某一文件夹下右键打开当前文件夹用上述两个应用 通过右键点击某个文件夹用Idea打开 首先打开注册表 win R 输入 regedit 然后找到HKEY_CLASSES_ROOT\Directory\shell 然后右键shell 新建一个项名字就叫 Idea 第一步&#xf…

MVC使用的设计模式

MVC使用的设计模式 一、背景 MVC模式是"Model-View-Controller"的缩写,中文翻译为"模式-视图-控制器"。MVC应用程序总是由这三个部分组成。Event(事件)导致Controller改变Model或View,或者同时改变两者。只要Controller改变了Model…

Netty Review - 从BIO到NIO的进化推演

文章目录 BIODEMO 1DEMO 2小结论单线程BIO的缺陷BIO如何处理并发多线程BIO服务器的弊端 NIONIO要解决的问题模拟NIO方案一: (等待连接时和等待数据时不阻塞)方案二(缓存Socket,轮询数据是否准备好)方案二存…

STM32F103C8 PC13端口无输出原因

如果开启了RTC功能,就要注意PC13端口的设置。要把RTC OUT 由“Disable”改成“No RTC Output”,才行。

docker-compose 部署 MySQL 8

前言 Windows 系统通过 docker-compose 部署 MySQL8.0。 MySQL 配置文件(my.cnf) # 服务端参数配置 [mysqld] usermysql # MySQL启动用户 default-storage-engineINNODB # 创建新表时将使用的默认存储引擎 character-set-serverutf8mb4 # 设置mysql服…

Spring-Spring之AOP底层原理解析---实践(动态代理)

动态代理 代理模式的解释:为其他对象提供一种代理以控制对这个对象的访问,增强一个类中的某个方法,对程序进行扩展。 cglib动态代理 方式一: public class UserService {public void test() {System.out.println("test..…