如何在蒙版图像上进行基于网格(密集)的光流?
Posted
技术标签:
【中文标题】如何在蒙版图像上进行基于网格(密集)的光流?【英文标题】:How to do grid-based (dense) optical flow on a masked image? 【发布时间】:2016-02-18 18:24:32 【问题描述】:我正在尝试使用摄像机跟踪多个人。我不想使用 blob 分割技术。 我想做什么:
执行背景减法以获得隔离人们运动的蒙版。
-
在这些区域执行基于网格的光流 -
我最好的选择是什么?
我正在努力实施。我已经尝试过 blob 检测以及一些基于光流的示例(稀疏),稀疏并没有真正为我做到这一点,因为我没有从 goodfeaturestotrack() 获得足够的特征点 - 我想最终得到至少 20 个轨道每个人的能力点数,这就是为什么我认为基于网格的方法对我来说更好,我将使用获得的运动向量对不同的人进行分类(可能在大小和方向上进行聚类?)
我在 Python 3.5 中使用 opencv3 - 但在这个领域我仍然很菜。 非常感谢一些指导!
【问题讨论】:
这似乎被某人否决了,没有任何解释。我觉得这是一个很好的问题,尽管它可能看起来有点宽泛。我可以想象你的问题可能是什么,但也许你可以用更具体的方式来改写它,说明你尝试过的方法和不适合你的方法。 感谢您的提示!我会这样做的 【参考方案1】:对于稀疏光流(在 OpenCV 中为金字塔形 Lucas Kanade 方法),您不需要良好的特征来强制跟踪来获得位置。 calcOpticalFlowPyrLK 函数允许您估计预定义位置的运动,这些也可以由您给出。 所以只需自己初始化一个 cv::Point2f 网格,例如创建点列表并将位置设置为位于 blob 处的网格点,然后运行 calcOpticalFlowPyrLK()。
良好的特征跟踪方法的想法是,它为您提供 calcOpticalFlowPyrLK() 结果更有可能准确的点,并且这是在具有类似边缘的图像位置上结构。但根据我的经验,这并不总是提供最佳的特征点集。我更喜欢使用常规网格作为特征点集。
【讨论】:
以上是关于如何在蒙版图像上进行基于网格(密集)的光流?的主要内容,如果未能解决你的问题,请参考以下文章
如何在openCV python中将背景减法与密集光流跟踪相结合
如何在 15 帧的时间窗口的密集光流中找到特征点(某些像素)的速度?
如何将使用 Mask Rcnn 在自定义对象检测上创建蒙版图像的 Keras 模型转换为 CoreML 模型以在 iOS 应用程序中使用?