2

我正在设备上开发一个“性能关键”的图像处理程序Jetson TX1,直到这次我使用OpenCV,但现在我决定切换到Arrayfire一些加速。不过,现在好像慢了很多。

基本上,我有两个选择:

  • 完全忘记OpenCV,使用Arrayfire图像处理功能。

  • 在关键部分cv::Mat之间使用转换。af::array

问题是我最初OpenCV执行这项工作的关键函数的运行时间约为 160 毫秒,而只有转换本身需要 110 毫秒。

还有其他令人不快的功能,例如medianBlur,在 CPU 上最多需要 60 毫秒,而在 GPU上最多需要OpenCV250 毫秒。Arrayfire(我知道这medianBlur对于 GPU-s 来说并不理想,但是慢 5 倍的代码对于我的应用程序来说非常尴尬,并且只做那部分会导致问题再次出现,因为和OpenCV之间的转换太慢了。我不可能更快地实现CPU 比现有的)cv::Mataf::arraymedianBlurOpenCV

那我现在能做什么?

4

0 回答 0