基于金字塔分层的LK光流学习笔记

本文介绍了光流法的基本概念和L-K光流算法,重点讲述了基于金字塔分层的LK光流算法,包括构造金字塔和计算光流的过程。文章通过详细解释泰勒公式和最小二乘法,阐述了光流约束方程的求解,并提及在实际实验中使用的核心函数cv2.calcOpticalFlowPyrLK()和cv2.goodFeaturesToTrack()。同时,还简要讨论了Harris和Shi-Tomasi角点检测在光流计算中的作用。
摘要由CSDN通过智能技术生成

光流法

之前对光流的认识只是保留在是一种视频动作信息的一种表示,最近有幸看到一篇大神整理的博客,写的特别详细,对光流法有了进一步的理解。

大神博客地址:https://blog.csdn.net/sgfmby1994/article/details/68489944

灰度图的图像信息是有其图像亮度表现的,在视频中,帧的图像亮度信息会发生变化,光流即是图像亮度的运动信息描述。光流计算基于两个假设:
1、运动物体的灰度在短时间的间隔内不变。即前一帧的像素p(x1,y1)在后一帧运动到了p(x2,y2),p(x1,y1)的灰度值等于p(x2,y2)的灰度值。
2、给定领域内的速度向量场变化是缓慢的。

图像上一个像素点(x,y),t时刻的亮度为I(x,y,t),t+Δt时对应点亮度值为I(x+Δx,y+Δy,t+Δt),
光流为(dx/dt,dy/dt),当Δt足够小时则为(Δx/Δt,Δy/Δt),记为(u,v)。
用泰勒公式将I(x+Δx,y+Δy,t+Δt)展开(左边),即得:
在这里插入图片描述
消去I(x,y,t),两边除上Δt整理后得:
在这里插入图片描述
这即使基本得光流约束方程,但此时还求不出u,v。

L-K光流算法

L-K光流算法是求光流方法的一种,它有一个重要的前提假设:
领域内光流一致,即在局部领域内所有的像素点运动的速度都是一样的,假设一个局部领域里有n个像素点,则可以列出下列方程组:
在这里插入图片描述
两个未知数,但却有n个方程,这样是求不出准确解的,但可以通过最小二乘法求出最优解,最优解尽可能的同时满足n个方程。
最小二乘法的公式就不列了。

基于金字塔分层的LK光流

LK光流法只适用于运动位移较小的情况,当运动位移较大时,用LK光流法会产生较大的误差。所以金字塔分层的做法即是通过缩小图像尺寸的方法来缩小图像中物体的运动位移。把图像的宽高各自缩小为原来的1/2,那么位移的x和y分量也就缩小到了原来的1/2,以此方法直到缩小到可以使用LK方法为止。

构造金字塔

对每一帧建立一个高斯金字塔,原图像在底层,分辨率最高的在顶层。上层金字塔的一个像素可以代表下层的两个像素。

计算光流

从顶层开始,通过最小化没个点的领域内的误差和,得到最顶层图像每个点的光流。简单来说就是用LK方法计算顶层光流。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值