首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >实现MaskRCNN的NMS部件

实现MaskRCNN的NMS部件
EN

Stack Overflow用户
提问于 2017-10-30 16:47:14
回答 1查看 242关注 0票数 0

我是Halide的初学者,我试着用它来加速伪装。

到目前为止,与c版本相比,性能确实很好。然后,我遇到了一个困扰我几天的问题:非最大抑制(Nms),这是一个经典的算法,但我没有在卤化物中找到类似的例子,总结如下:

首先对数组框进行排序,然后对方框中的每一个I进行排序,从i+1到该数组的末尾,用boxi计算重叠,然后保留它或根据重叠删除它。能在卤化物中实现吗?我是否必须使用定义::extern?如果有人能回答的话,请多多指摘。

最新情况:

对不起,我没有很好地解释这个问题。MaskRcnn中的非最大抑制与Canny边缘检测器中的非最大值抑制略有不同,您可以参考以下内容:

https://www.pyimagesearch.com/2015/02/16/faster-non-maximum-suppression-python/

其中python代码是这种算法的实现。

如果时间太长,想想这个简单的问题:

对于数组a10= {1,2,3,4,5 ,6,7,8,9,10},我们需要计算ai和j之间的乘积,如果这个乘积值小于6(例如),那么我们删除aj,在范围0,9中对所有i迭代这个操作。谢谢。

EN

回答 1

Stack Overflow用户

发布于 2017-10-31 17:55:18

WRT非最大抑制:快速查看维基百科和这个演示文稿(detection.pdf),让我对算法的功能有一些了解。我不知道如何确定边缘方向,但我认为这可能会有帮助:

假设一个简单的过滤器(x +/- 1,y +/- 1),Halide可以使用一个RDom找到这组值的最大值。把结果打给麦克斯。创建一个系数的过滤器使用最大值-一个1和0的过滤器。把系数乘以原始矩阵,你就应该有非最小抑制.

系数滤波器可以通过使用MAX(符号)(像素- (MAX - 1)),0来创建,其中像素值是无符号的。本质上,使用无符号减法和饱和从原始值中减去MAX-1 .过滤器的结果是一个1和0的数组。

正如您所看到的,在Halide中创建这样的算法并不特别困难;实际上,要理清像“重叠”这样的术语的含义要困难得多。希望这能让你知道该怎么做。

祝你好运,-Phil

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

https://stackoverflow.com/questions/47020346

复制
相关文章

相似问题

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