c++ - 提高密集光流分析的性能(容易)?

标签 c++ cuda computer-vision glsl opencl

我编写了一个使用 OpenCV 的 cvCalcOpticalFlowLK 的程序。它在低分辨率网络摄像头输入上表现良好,但我需要在全高清流上运行它,并在对每一帧进行光流分析后进行重要的其他计算。处理缩小到 1440x810 的 5 分钟视频需要 4 个小时 :( 大部分时间花在 cvCalcOpticalFlowLK 上。

我已经研究过通过添加更多原始 CPU 来提高速度,但即使我得到一个 8 核野兽,而且加速是理论上的理想值(比如 8 倍,因为我基本上只使用我的 2.9GHz 之一核心),我只会得到 4FPS。我想达到 30FPS。

更多研究似乎指向使用 CUDA、OpenCL 或 GLSL(?) 在 GPU 上实现它。我发现了一些概念验证实现(例如 http://nghiaho.com/?page_id=189 ),许多论文基本上都在说“这是一个很棒的 GPU 应用程序,我们做到了,它很棒,不,我们不会分享我们的代码”。不用说,我还没有让他们中的任何一个运行。

有谁知道可以在带有 NVIDIA 卡的 Mac 上运行的基于 GPU 的实现?是否有资源可以帮助我自己编写代码?是否还有其他性能更好的密集 OF 算法?

谢谢!

最佳答案

OpenVidia Bayesian Optical Flow呢? ?还有论文Real-Time Dense and Accurate Parallel Optical Flow using CUDA说他们的工作可以在 CUDA 区免费获得。我无法立即在那里找到它,但也许你会,或者可以写信给作者?

关于c++ - 提高密集光流分析的性能(容易)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7266503/

相关文章:

c++ - 从父类调用方法

c++ - std::map 插入段错误

c++ - 如何在 CUDA 中将密集 vector 转换为稀疏 vector ?

Python OpenCV cv2 绘制带文本的矩形

c++ - 跳转表/分支与取消引用函数指针是一回事吗?

debugging - 检测 OpenMP 线程/CUDA 流之间的竞争条件

c# - 时间测量 CUDA 和 C#

matlab - 如果图像使用 matlab,则区域周围的最小矩形边界框

c++ - 未指定的错误找不到作者

c++ - 使用 WinAPI (Windows Core Audio) 时避免无效指针