光流估计

光流估计基本模型

在每一像素(x,y)处,有:

光流估计_第1张图片

因此有:

光流估计_第2张图片

一个小方格里的所有像素位移相同

光流估计_第3张图片

光流估计_第4张图片即Au=b光流估计_第5张图片

 

Lucas—Kanade方法

min ||Au-b||

最小二乘解:

区域像素只有2个时,就是2元1次方程组求解。多个像素,比如3*3时,则是求上述最小二乘解。

 

思路:在一个小的图像邻域内速度近似一致

约束:

对应:光流估计_第6张图片

类似前述求解,可得

 

可信度判断:

 

金字塔L — K方法

光流估计_第7张图片

光流估计_第8张图片

 

金字塔流光位移传播示意图

光流估计_第9张图片

 

金字塔L — K方法推导

光流估计_第10张图片

光流估计_第11张图片

边缘(对比Harris算子)

光流估计_第12张图片

光流估计_第13张图片

光流估计_第14张图片

低纹理区域(对比Harris算子)

光流估计_第15张图片

 

OpenCV相关函数

CV_EXPORTS_W void calcOpticalFlowPyrLK( InputArray prevImg, InputArray nextImg,
                                                                           InputArray prevPts, InputOutputArray nextPts,
                                                                           OutputArray status, OutputArray err,
                                                                           Size winSize = Size(21,21), int maxLevel = 3,
                                                                TermCriteria criteria = TermCriteria(TermCriteria::COUNT+TermCriteria::EPS, 30, 0.01),
                                                                           int flags = 0, double minEigThreshold = 1e-4 );

prevlmg,第一帧图像。

nextlmg,第二帧图像。

prevPts,第一帧图像中的所有特征点向量。

nextPts,第二帧图像中的所有特征点向量。

status,输出状态向量;如果相应点光流被发现,向量的每个元素被设置为1,否则,被置为0。

你可能感兴趣的:(光流估计)