繁体   English   中英

如何在openCV python中将背景减法与密集光流跟踪相结合

[英]How to combine background subtraction with dense optical flow tracking in openCV python

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

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

密集光流:

Gunner Farneback的“光学流”方法通过使用当前和以前的帧来跟踪帧中的所有像素(坐标)。 因此,它被称为密集光流。

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

由于该算法跟踪帧中的所有像素。 跟踪过程也非常慢。

稀疏光流:

卢卡斯·卡纳德(Lucas Kanade)的“光流”方法使用当前和以前的帧以及良好的功能进行跟踪。 这样您就必须传递特定的像素,算法才能进行跟踪。 由于它仅跟踪指定的像素。 它被称为稀疏光流。

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

步骤1:使用MOG或GMG进行背景扣除

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

步骤3:将刚找到的轮廓点或找到的轮廓的中心像素或轮廓内的所有点(以有利为准)与灰度框架一起传递给Lucas Kanade方法(稀疏光流),而不是减去背景那些。

由于背景减去的帧只能用于查找特征。

希望这可以帮助!

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM