opencv - 为什么OpenCV擅长处理大尺度图像的ORB和Harris Keypoints检测?

标签 opencv arrayfire

几周前我参加了由 NVIDIA 主办的 Arrayfire 网络研讨会,工程师们展示了一些有趣的图表来比较 ArrayFire 库与 OpenCV CPU(1 线程)和 GPU (CUDA) 的性能。

HARRIS 关键点检测

Harris Keypoint detection

ORB 关键点检测

enter image description here

我有机会问他们为什么 ArrayFire 加速(通过单线程 CPU 实现)对于大图像会降低。他们回答我说“这是因为 OpenCV CPU 非常有效地处理大规模数据” - 没有提供任何技术细节。

你知道它们可能是什么吗?

最佳答案

我是在 ArrayFire 上同时实现 Harris 和 ORB 并实际绘制了您发布的图表的人。使用的图像样本不同,因此它们具有不同的特征和每个特征比例的不同像素。

ORB 和 Harris 的性能取决于图像的像素数量和特征。在接下来的几周内,我将尝试收集更多数据并获得更一致的每特征像素比来验证这就是原因。

关于opencv - 为什么OpenCV擅长处理大尺度图像的ORB和Harris Keypoints检测?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27627092/

相关文章:

c++ - 手电筒 (arrayfire) 中的 torch.squeeze 和 torch.unsqueeze 等价物

python - 如何从 C++ 创建 c_void_p PyObject,将其传递给 Python 并将其检索回 C++

python - 为Python 2.7安装opencv时DLL加载失败错误

python-3.x - 我无法打印彩色文本

python - 使用numpy的调色板方法

cvCreateFileCapture奇怪的错误

arrayfire - 在ArrayFire中实现卷积神经网络反向传播(梯度计算)

c++ - 由于头文件中的语法错误导致编译错误

python - 使用 ArrayFire 的多个主机线程

python - 如何在python服务器中保存视频的<httpfile>