什么是光流Optical Flow

无人机上经常提到的光流法定位是什么?

作为无人机爱好者一枚,经常关注比如大疆(DJI)、零度智控、PARRET的人都会看到他们提及的光流定位、室内悬停等的宣传标语,那么今天我们就来一起探讨下它。

  • 光流定义
  • 光流通俗理解
  • 光流法分析
  • 参见

光流定义

光流的概念是Gibson在1950年首先提出来的。它是空间运动物体在观察成像平面上的像素运动的瞬时速度,是利用图像序列中像素在时间域上的变化以及相邻帧之间的相关性来找到上一帧跟当前帧之间存在的对应关系,从而计算出相邻帧之间物体的运动信息的一种方法。一般而言,光流是由于场景中前景目标本身的移动、相机的运动,或者两者的共同运动所产生的。

光流定位通俗理解

名字看着陌生又高大上,但从本质上说,光流就是在这个运动着的世界里你感觉到的明显的视觉运动,是空间运动物体在观测成像平面上的像素运动的“瞬时速度”。光流的研究是利用图像序列中的像素强度数据的时域变化和相关性来确定各自像素位置的“运动”。

光流法分析

其计算方法可以分为三类:
(1)基于区域或者基于特征的匹配方法;
(2)基于频域的方法;
(3)基于梯度的方法;
光流法的前提假设:
(1)相邻帧之间的亮度恒定;
(2)相邻视频帧的取帧时间连续,或者,相邻帧之间物体的运动比较“微小”;
(3)保持空间一致性;即,同一子图像的像素点具有相同的运动
光流的基本方程
假设位于(x,y,t) 的像素的亮度是 I(x,y,t), 该像素在两个图像帧之间移动了Δx Δy Δt,由泰勒展开式我们可以得到:
(x+Δx,y+Δy,t+Δt)=I(x,y,t)+∂I∂xΔx+∂I∂yΔy+∂I∂tΔt+o
由假设1可知
I(x+Δx,y+Δy,t+Δt)=I(x,y,t)
故有:
∂I∂xΔx+∂I∂yΔy+∂I∂tΔt=0
或者
∂I∂xΔxΔt+∂I∂yΔyΔt+∂I∂t=0
这个方程便是我们计算光流的基本方程。

其中ΔxΔt和ΔyΔt为该点在x和y方向上的瞬时速度,也就是光流。
∂I∂t 代表 像素点在时间上的变化。 可以通过在像素位置(x,y)处两张图像之间的像素差。

但是这个我们要计算一个点的光流,有两个未知数,只有一个方程,该如何解呢?针对这个问题,有很多解决方法:
- 基于梯度的方法
- 基于匹配的方法
- 基于能量的方法
- 基于相位的方法

继续内容请参见以下文章。。。

参考

0 光流法小结
http://blog.csdn.net/GH_HOME/article/details/51502933?locationNum=5&fps=1
1.【教程】通俗讲法告诉你什么是光流Optical Flow,附算法
http://bbs.elecfans.com/jishu_485979_1_1.html
2. Opencv学习笔记(九)光流法
http://blog.csdn.net/crzy_sparrow/article/details/7407604
3. 光流法简单介绍
http://blog.csdn.net/carson2005/article/details/7581642

  • 1
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: bounding box是指在图像中定位物体或区域的矩形框。而光流是指描述图像中像素在不同时间或帧之间的运动向量。 将bounding box作为optical flow输入可以通过以下步骤实现: 首先,根据任务的需求,在图像中选择目标物体或区域,并用bounding box进行标注。 然后,利用计算机视觉算法,例如基于深度学习的目标检测算法,对图像中的目标进行检测和定位。该算法将输入图像和bounding box作为输入,并输出目标检测结果。 接下来,对于每一帧图像中的bounding box,利用光流算法计算目标区域的运动向量。光流算法能够分析相邻帧之间的像素变化,并计算出物体在图像中的运动情况。 最后,根据光流算法计算出的运动向量,可以进一步分析目标物体的运动轨迹、速度和加速度等运动信息。这些信息可以应用于许多计算机视觉任务,例如运动跟踪、行为分析和视频压缩等。 通过将bounding box作为optical flow光流输入,可以更加准确地分析目标物体的运动情况,并为后续的任务提供更丰富的信息。这种方法在许多视觉任务中具有广泛的应用,例如视频监控、自动驾驶和虚拟现实等领域。 ### 回答2: bounding box(边界框)在计算机视觉领域中常用于表示物体在图像中的位置和范围。而optical flow光流)是一种用于估计图像中像素运动的技术。 将bounding box作为optical flow的输入意味着我们希望通过光流来估计给定物体在图像中的运动。通过监测bounding box的运动,我们可以了解物体的位移、速度和方向等运动信息。 在这种方法中,首先需要使用目标检测算法或手工标注的方式得到bounding box的位置。然后,我们可以使用光流算法对bounding box中的像素进行跟踪和分析,以获取物体的运动信息。 使用bounding box作为optical flow输入的好处是,只需对感兴趣的区域进行光流计算,减少了计算量,提高了计算效率。而且,通过对物体运动的分析,我们可以获得更精确的物体运动信息,有助于在视觉跟踪和行为分析等领域中的应用。 然而,bounding box作为optical flow输入也存在一些挑战和限制。首先,bounding box的准确性对光流的计算结果有很大的影响,如果bounding box的位置不准确,可能会导致光流计算出的运动结果不准确。此外,如果物体发生较大的旋转、遮挡或形变等情况,bounding box的边界可能无法完整地包围物体,从而影响光流的计算和分析结果。 综上所述,bounding box作为optical flow光流的输入可以用来估计给定物体在图像中的运动。但在使用时需要注意bounding box的准确性和在特定情况下的局限性。 ### 回答3: bounding box作为optical flow光流的输入,是指在目标跟踪或目标检测任务中,使用bounding box来框定目标区域,并将该区域作为输入,进行光流计算。 光流是一种用于分析图像中像素运动的技术。它能够通过比较相邻帧中的像素位置变化,推测像素的运动方向和速度。为了准确地计算光流,需要选择合适的输入区域。而bounding box提供了一个有效的方式来定义并限制光流计算的区域,以便准确地追踪目标的运动。 具体而言,使用bounding box作为光流的输入可以带来以下优势: 1. 限定区域:bounding box可以将光流计算限定在目标区域内,从而排除其他背景区域的干扰。这样可以提高光流的计算精度和效率。 2. 快速目标跟踪:光流可以用于目标跟踪任务,而bounding box提供了目标的初始位置信息。通过光流计算,可以根据目标的运动轨迹对目标进行跟踪,并及时更新bounding box的位置。 3. 目标检测准确性:光流可以用于目标检测任务,通过计算不同帧之间的光流变化,可以检测出目标的运动。而bounding box则可以用来获取目标在当前帧中的位置,从而进一步提高目标检测的准确性。 总之,使用bounding box作为optical flow光流的输入,可以更好地限定光流计算的区域,提高光流的计算精度和效率,同时也可以用于目标跟踪和目标检测任务。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值