cv2 显示视频流并在另一个功能完成后添加覆盖

cv2 show video stream & add overlay after another function finishes

我目前正在进行实时人脸检测项目。

我所做的是使用 cv2 捕获帧,进行检测,然后使用 cv2.imshow() 显示结果,这导致 fps 较低。

我想要在屏幕上显示无延迟的高 fps 视频和低 fps 检测边界框覆盖。

有没有办法显示实时视频流(带最后一个检测结果边界框),一旦新的检测完成,显示新的边界框并且背景没有被检测功能延迟。

感谢任何帮助!

谢谢!

一种常见的方法是创建一个标志,允许检测算法每几帧仅 运行 一次,并将感兴趣的预测区域保存到列表中,同时为每一帧创建边界框。

例如,您有一个人脸检测算法,每 15 帧处理一次以检测人脸,但在每一帧中根据预测创建一个边界框。即使预测每 15 帧更新一次。

另一种方法可能是添加对象跟踪层。 运行 你的重型算法找到 ROI,然后使用对象跟踪库保留它们直到下一次 运行 检测算法。

希望这是有道理的。