光流法的理解

光流是图像中像素点运动的方向,基于亮度不变的假设。约束方程用于求解特征点运动,常用于运动检测和跟踪。Lucas Kanade光流法在MATLAB中的实现是常用方法,但光流计算耗时且受噪声影响,适用于低速运动和小噪声场景。
摘要由CSDN通过智能技术生成

光流是什么:

我认为光流就是特征点移动的方向或者流动的方向。为什么是光,因为我们假设是同样的物体,他身上的亮度是不变的。

什么是约束方程:

其实就是根据上面的假设(相同特征点的亮度不变),这个约束方程的的目的就是用来求特征点的运动方向的,怎么求?这就是创新的地方了。

不同的应用,不同的求法,不同的环境,不同的求法。这是就是可以发文章的地方了。约束方程的规范写法网上很多,这里我就不举出来了。

目的:

光流是图像中各像素点运动的速度分布,它是一种顺时速度场,即向量场。每一个向量表示了景物中一个点在图像中位置的瞬时变化。光流法是利用运动目标在图像序列间,即随着时间变化的特性,通过计算帧间像素的位移来提取人的运动。其优点是光流不仅携带了运动目标的运动信息,而已还携带了有关景物三维结构的丰富信息,能够检测独立运动的对象,而不需要预先知道场景的任何信息。既实用于静止的运动的背景,也适用于摄像机运动的情况,有很好的适应性。但是其缺点也是明显的,这种方法采用迭代的求解计算,所需计算时间长,无法满足实时的要求,并且该方法受噪声影响比较大,因而它多适用于图像噪声比较小,目标运动速度不大的情况。

这段话我是在一个博客上抄过来的。

光流用来寻找运动区域,那么找到了怎么办?用特征去匹配吗?从而实现跟踪?那么光流其实就是可以放到检测的范畴了。

但光流是用来计算行对应像素点的运动趋势的,本身已经包含了跟踪的成分。

因此我认为,光流跟踪是这样的过程:

输入相邻帧,计算光流场,这时候我们应该会得到很多的光流点,之后我们可以使用kmeans等做简单的聚类运算,找到光流的聚集点,我们判断为运动区域,之后进行迭代运算,在下一帧中找对应的特征点,作为特征点运动到的新的坐标,如此继续下去,从而实现目标跟踪。当然,光流的缺点是,不确定性,特征点很容易飘,所以我们同样可以使用光流去检测运动区域,之后用匹配去实现跟踪,这也是为了提高跟踪的准确性的改进。

上面是我自己的理解,不对的地方希望大家给出指点。

下面给出Lucas Kanade 光流的matlab代码。

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%  Name: Musawir Ali Shah
%%%  Assignment #3
%%%  Project Title: Lucas Kanade Motion Estimation Using Pyramids (Level 4)
%%%  Note: The project specification says use density of 10 in plotting
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

%%% Usage: Lucas_Kanade('1.bmp','2.bmp',10)

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
function Lucas_Kanade(f
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值