Dav*_*ave 7 opencv opticalflow
我createOptFlow_DualTVL1()用来计算光流量,它正是我想要的,但它非常慢.有什么方法可以加快它的速度,还是有任何其他光流功能可以给我相同的结果,减少处理时间?我用过calcOpticalFlowFarneback(), cvGoodFeaturesToTrack()但质量不好.请帮忙.
提前谢谢以下是我的申请方式 createOptFlow_DualTVL1()
Ptr<DenseOpticalFlow> tvl1 = createOptFlow_DualTVL1();
tvl1->calc(Previous_Gray_Frame, Current_Gray_Frame, Optical_Flow);
Run Code Online (Sandbox Code Playgroud)
san*_*iso 12
为了加快计算速度,您需要减少每次执行的计算总次数.这看起来很明显,但实现这一目标的大量策略可能令人困惑.所以,这里有一些建议:
减小图像的大小(输入数据).特别是,您应该尝试沿每个维度将它们的大小除以2,计算流量,然后使用线性插值计算全尺寸流量.除非您的应用程序需要非常高的准确性,否则此解决方案应该是可接受的,并且会为您带来巨大的加速.
减少每个比例的扭曲数(参数:)warps.这会损害一点精度,但除非您有非常困难的运动模式(例如,当所有图像像素在不同方向上移动时,或者当您在图像内部进行非常快速的运动时),结果仍然是可接受的.算法运行warps图像金字塔中每个级别的最小化过程时间,因此即使很小的变化warps也会给你一个明显的加速.
减少图像金字塔中的级别数(参数:) scales.这可能会对准确性产生重要影响,因此请务必小心并进行大量实验.在文献中已经发现,水平之间的良好(准确性)比例因子是0.8,因此您应该相应地计算您的水平数.在0.8之前,实验光流的标准是0.5的比例因子,所以你可以尝试下降到这个值.
收敛速度:L1最小化的内部程序tau在理论上对于时间步长(参数:)高达1/8(0.125)是稳定的,但实际上已知1/4(0.25)的值仍然有效.
| 归档时间: |
|
| 查看次数: |
7161 次 |
| 最近记录: |