首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >一个CUDA编程GPU是否适合于OpenCV自适应阈值的实现?

一个CUDA编程GPU是否适合于OpenCV自适应阈值的实现?
EN

Stack Overflow用户
提问于 2013-10-01 14:14:04
回答 3查看 2.4K关注 0票数 4

在我的系统中,对于一个大窗口大小(75 am )的5 MP图像来说,要完成140 ms (大约是线性操作的20倍),我希望对其进行优化。我注意到OpenCV gpu模块没有实现adaptiveThreshold的gpu版本,所以我一直在考虑自己为GPU实现该算法。

如果我在CUDA中实现了一种基于大窗口大小(50px+)和大图像(5 MP+)的自适应阈值算法,而忽略了将内存加载到GPU的开销,我还能期望有任何加速吗?

关于adaptiveThreshold的opencv.org文档:

transformations.html#adaptivethreshold

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2013-10-01 15:01:01

通过CUDA的实施应该会给你一个满意的性能增益。

由于您的窗口大小很大,这个操作应该是有计算界的。在特斯拉K20X GPU上,具有75 on窗口的5MP图像的理论峰值性能应该是大约

代码语言:javascript
复制
5e6 * 75 * 75 / 3.95 Tflops = 7ms

这是一张关于图像卷积的白皮书。说明了如何用CUDA实现一个高性能的箱形报警器。

Imaging/convolutionSeparable/doc/convolutionSeparable.pdf

Nvidia cuNPP库还提供了一个函数nppiFilterBox(),可用于直接实现ADAPTIVE_THRESH_MEAN_C

http://docs.nvidia.com/cuda/cuda-samples/index.html#box-filter-with-npp

对于ADAPTIVE_THRESH_GAUSSIAN_C,可以使用带有适当掩码的函数nppiFilter()

NPP文档NPP.1009 Library.pdf

票数 1
EN

Stack Overflow用户

发布于 2013-10-01 16:21:51

在埃里克回答的基础上:

Npp库没有实现adaptiveThreshold,但它似乎有利于以一种非常简单的方式获得一个自适应阈值(刚刚测试了它,而且很有用):

  1. src上运行一个盒子过滤器(即计算每个像素的平均窗口值),存储在中间图像tmp中。
  2. tmp中的每个像素减去一个数字K
  3. srctmp之间的比较函数运行到dst中。结束了。

代码可能如下所示(在这里,K=0省略了第二步):

代码语言:javascript
复制
nppiFilterBox_8u_C1R(oDeviceSrc.data(), oDeviceSrc.pitch(),
                                  oDeviceIntermediate.data(), oDeviceDst.pitch(),
                                  oSizeROI, oAdapThreshWindowSize,oAnchor);
nppiCompare_8u_C1R(oDeviceSrc.data(),oDeviceSrc.pitch(),
                   oDeviceDst.data(),oDeviceDst.pitch(),
                   oDeviceResult.data(),oDeviceResult.pitch(),
                   oSizeROI,NPP_CMP_LESS);

此外,维基百科索赔要求表示,连续三次应用盒子过滤器,将高斯滤波器的准确度提高到97%。

票数 4
EN

Stack Overflow用户

发布于 2013-10-01 15:00:27

是的,这个算法可以在GPU上进行优化。我希望能看到一个很好的加速。

对于ADAPTIVE_THRESH_MEAN_C,可以使用标准的并行约简来计算算术平均值。对于ADAPTIVE_THRESH_GAUSSIAN_C,您可以使用一个内核来执行每像素的高斯衰减,并对和进行标准的并行缩减。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/19118533

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档