如何计算来自深度相机的深度图像流的光流?

How can I compute optical flow from a depth image stream from a depth camera?

我已经设置了深度摄像头馈送,为了让它更有趣,我想从中计算一些数据,例如法线、motion/optical 流和其他数据集,以将它们用于视觉效果.我对 光流 以及是否可以从仅深度流计算它特别感兴趣。

这个实现了吗?如果是这样,我想知道有哪些方法并了解哪种方法最容易使用。

我在 Kinect 深度相机上工作并实现了患者跟踪算法。该算法本身是商业的,我不能透露细节。但我可以在这里给我两分钱。

  1. 由于没有深度像素,来自 Kinect 的深度馈送不应直接用于光流(运动跟踪)。您可以使用修复来填充深度图像中的空白。如果你使用的是OpenCV,你可以参考这里的实现。

http://www.morethantechnical.com/2011/03/05/neat-opencv-smoothing-trick-when-kineacking-kinect-hacking-w-code/

  1. 我建议在修复后使用平滑过滤器,以便在对象边缘附近获得平滑的深度数据。您可以将 OpenCV 中的简单过滤器与深度流一起使用。将 16 位深度采样到 8 位 RGB 图像以帮助可视化视差图像会很好。

  2. 我相信您可以使用来自 OpenCV 的光流算法生成的流。这是一个例子。

http://docs.opencv.org/3.1.0/d7/d8b/tutorial_py_lucas_kanade.html#gsc.tab=0

您也可以使用 Dense trajectory 实现,但我认为它是处理器密集型的,最终帧速率可能非常慢。

https://lear.inrialpes.fr/people/wang/dense_trajectories

希望对您有所帮助。