将 umat 与 BackgroundSubtractor 结合使用会导致停止从相机接收帧
Using umat in combination with BackgroundSubtractor results in stopping of receiving frames from camera
我正在使用 Emgu CV,我有一个程序可以从有线网络摄像机接收帧并使用 BackgroundSubtractor
class 减去背景。
一段时间后(这是随机的)它停止接收帧,可能会在 5 分钟或几个小时后发生。
我已将问题追溯到 BackgroundSubtractor
class 中的 apply
方法。
它是这样调用的:_fgDetector.Apply(smoothedFrame, forgroundMask);
两个参数都是Umats
。
当我使用相同的代码但使用 Mat 而不是 Umat 时,代码可以工作几天。
当使用 Umat
时,在 Visual Studio 诊断中看到 CPU 使用率非常低,这是预期的,因为卸载到 GPU。使用 Mat
时,我发现 CPU 的使用率高得多,这也是预期的。
谁能explain/help解决这个问题?这可能是 Emgu/OpenCv 中的错误吗?
如果您需要更多信息,请告诉我。
我用更好的型号更换了显卡,之前是 Readeon HD5450,现在是 运行 ATI R920x。
旧卡有 1 GB 的内存,而新卡有更多,速度也快得多。该程序现在 运行 大约 3 周,到目前为止没有任何问题。
旧的有 "hypermemory" 支持,它使用正常的系统 ram 来消耗 ot 的内存。也许这导致了问题。
总之:显卡好一点,目前没有问题。
我正在使用 Emgu CV,我有一个程序可以从有线网络摄像机接收帧并使用 BackgroundSubtractor
class 减去背景。
一段时间后(这是随机的)它停止接收帧,可能会在 5 分钟或几个小时后发生。
我已将问题追溯到 BackgroundSubtractor
class 中的 apply
方法。
它是这样调用的:_fgDetector.Apply(smoothedFrame, forgroundMask);
两个参数都是Umats
。
当我使用相同的代码但使用 Mat 而不是 Umat 时,代码可以工作几天。
当使用 Umat
时,在 Visual Studio 诊断中看到 CPU 使用率非常低,这是预期的,因为卸载到 GPU。使用 Mat
时,我发现 CPU 的使用率高得多,这也是预期的。
谁能explain/help解决这个问题?这可能是 Emgu/OpenCv 中的错误吗?
如果您需要更多信息,请告诉我。
我用更好的型号更换了显卡,之前是 Readeon HD5450,现在是 运行 ATI R920x。
旧卡有 1 GB 的内存,而新卡有更多,速度也快得多。该程序现在 运行 大约 3 周,到目前为止没有任何问题。
旧的有 "hypermemory" 支持,它使用正常的系统 ram 来消耗 ot 的内存。也许这导致了问题。
总之:显卡好一点,目前没有问题。