硬件上实时的密集光流,4K 分辨率 @30fps

Posted

技术标签:

【中文标题】硬件上实时的密集光流,4K 分辨率 @30fps【英文标题】:Dense optical flow for real time on hardware for 4K resolution @30fps 【发布时间】:2020-09-20 07:57:39 【问题描述】:

我正在研究一种基于硬件的解决方案(不带 GPU),以实现密集光流以达到 30fps 的实时性能和不错的精度。与 NVIDIA 的光流 SDK 相当或更好的东西。除了 Pyramidal Lukas Kanade 和 horn Schunck 之外,有人可以推荐好的算法吗?我发现 SGM 是一个很好的起点,但很难在 FPGA 或 DSP 内核上实现。目标是测量具有遮挡的大位移以及类似于真实世界的视频。

如果有人能说出 NVIDIA 到底使用了什么算法,那就太好了。

【问题讨论】:

【参考方案1】:

对于实时设置中的密集光流估计,FlowNet 是一个不错的选择。它可以在更高的FPS下实现光流估计。您可以使用他们训练有素的模型进行推理。由于您想在非 GPU 环境中运行估计,您可以尝试将模型转换为 ONNX 格式。 NVIDIA 的 Github repo 中提供了一个很好的 FlowNet 实现。我不确定 NVIDIA 在其 SDK 中用于光流的确切算法。

FlowNet2 建立在 FlowNet 之前的工作之上,用于计算大位移。但是,如果您担心遮挡,那么您可以查看他们在 FlowNet3 上的后续工作。 FlowNet 的另一个替代方案是PwC-Net。

【讨论】:

谢谢,我已经分析了所有基于深度学习的解决方案,甚至可能比最近发布的在准确性上也表现良好的流网更好。但是,在没有 GPU 的情况下,基于 DL 的解决方案是否可以使用专用的硬件解决方案,一些基于块匹配的算法对于上述约束会更好还是没有任何想法? 是的,如果您可以获取不同格式的模型,则可以使用专用硬件解决方案(不带 GPU)。由于您要对 4K 视频执行估计,您可能需要重新训练模型。块匹配方法很好,但我不确定它是否可以在更高的 fps 及其计算成本下工作。

以上是关于硬件上实时的密集光流,4K 分辨率 @30fps的主要内容,如果未能解决你的问题,请参考以下文章

OpenCV 密集光流矩阵

Lucas Kanade 密集光流

有没有办法在opencv c ++中将密集光流转换为稀疏光流?

两帧之间的密集光流

Brox 密集光流跟踪器错误“EFilterIncompatibleSize”

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