我正在设备上开发一个“性能关键”的图像处理程序Jetson TX1
,直到这次我使用OpenCV
,但现在我决定切换到Arrayfire
一些加速。不过,现在好像慢了很多。
基本上,我有两个选择:
完全忘记
OpenCV
,使用Arrayfire
图像处理功能。在关键部分
cv::Mat
之间使用转换。af::array
问题是我最初OpenCV
执行这项工作的关键函数的运行时间约为 160 毫秒,而只有转换本身需要 110 毫秒。
还有其他令人不快的功能,例如medianBlur
,在 CPU 上最多需要 60 毫秒,而在 GPU上最多需要OpenCV
250 毫秒。Arrayfire
(我知道这medianBlur
对于 GPU-s 来说并不理想,但是慢 5 倍的代码对于我的应用程序来说非常尴尬,并且只做那部分会导致问题再次出现,因为和OpenCV
之间的转换太慢了。我不可能更快地实现CPU 比现有的)cv::Mat
af::array
medianBlur
OpenCV
那我现在能做什么?