【问题标题】:How to combine background subtraction with dense optical flow tracking in openCV python如何在openCV python中将背景减法与密集光流跟踪相结合
【发布时间】:2018-02-09 02:01:15
【问题描述】:

我正在使用BackgroundSubtractorGMG 方法和Gunner Farneback 用于密集光流,我希望找到一种将这两种方法结合起来的方法,以提高对运动物体的检测精度。也许只有让光流方法专注于更大的分割图像以减少错误结果/噪声。我尝试将背景减法视频的输出简单地馈送到光流方法,但这不起作用。我读了这个stackoverflow link,但我不知道如何使用上述方法。如果这都是基本的,或者存在误解,我深表歉意,因为我对 opencv 和图像处理还很陌生。

【问题讨论】:

    标签: python opencv video-processing


    【解决方案1】:

    使用密集光流方法,背景减去帧将无济于事,但可以使用稀疏光流。

    密集光流:

    Gunner Farneback 的光流方法通过使用当前帧和先前帧来跟踪帧中的所有像素(坐标)。因此称为稠密光流。

    因此,您只需通过用于跟踪的帧即可。因此,如果您通过背景减去帧(黑色和白色)。该算法将不起作用,因为所有像素都将具有相同的强度(0 或 255)。并且不会为算法跟踪提供任何好的特征。

    因为算法会追踪帧中的所有像素。跟踪过程也很慢。

    稀疏光流:

    Lucas Kanade 的光流方法使用当前和以前的帧以及良好的特征来跟踪。这样您就必须传递特定的像素才能让算法进行跟踪。因为它只跟踪指定的像素。它被称为稀疏光流。

    要找到这些功能,您可以使用不同的方法。其中一些正在 goodFeaturesToTrackHarris corners等。您可以通过以下方式使用背景减法找到这些特征。

    第 1 步: 使用 MOG 或 GMG 进行背景减法

    第 2 步:使用减去背景的帧查找轮廓。

    第 3 步: 将您刚刚找到的轮廓点或找到的轮廓的中心像素或轮廓内的所有点(以有利者为准)传递给 Lucas Kanade 方法(稀疏光流)以及灰度帧,而不是减去背景的帧。

    由于背景减帧只能用于寻找特征。

    希望这会有所帮助!

    【讨论】:

    • 很高兴为您提供帮助:)
    猜你喜欢
    • 2016-01-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-08-29
    • 2017-11-22
    • 2012-03-30
    • 1970-01-01
    相关资源
    最近更新 更多