我的工作是光流,基于the lecture notes here和互联网上的一些样本,I wrote this Python code。
所有代码和示例图像也都在那里。对于大约4-5个像素的小位移,计算的向量方向似乎很好,但向量的大小太小(这就是为什么我在绘制它们之前必须将u,v乘以3)。
这是因为算法的限制,还是代码中的错误?上面分享的讲稿还说,运动需要很小"u,v小于1像素“,也许这就是原因。这一限制的原因是什么?
发布于 2011-10-05 07:02:00
@belisarius说:"LK使用一阶近似,所以(u,v)理想情况下应该是<< 1,如果不是,高阶项控制行为,你就完蛋了。“
发布于 2016-12-10 16:41:54
来自光流约束方程(OFCE,你的参考幻灯片5)的一个标准结论是:“你的运动应该小于一个像素,更少的高阶项会杀死你”。虽然在技术上是正确的,但您可以在实践中使用更大的平均窗口来克服这一点。这需要你做合理的统计,即不是幻灯片中建议的纯粹的最小二乘均值。Tikhonov正则化可以实现同样快的计算速度和更好的结果。这需要设置调谐值( Tikhonov常量)。这可以作为全局常量来完成,或者让它根据图像中的局部信息进行调整(例如Shi-Tomasi置信度,也就是结构张量行列式)。
请注意,这并不能取代多尺度方法来处理更大的运动。对于任何单个规模都可以处理的范围,它可能会扩展一点。
实现、可视化和代码以教程格式here, albeit in Matlab提供,而不是Python。
https://stackoverflow.com/questions/7612018
复制相似问题