快速找到点集中的粗线


12

在特定类别的检测器中,我们的数据以二维的成对点的形式出现,我们希望将这些点串成线。

数据比较嘈杂,并且在一个方向进行分箱,但在另一个方向进行分箱。即使每个检测器元件都在工作,我们也不能保证每个容器都命中,因此可能会跳过。

我们当前的分析链看起来像

  1. 调整命中值以校准单个检测器元件
  2. 查找集群
  3. 群集的粗拟合线
  4. 将集群连接成更长的线状结构
  5. ...

这个问题与步骤(3)有关。

我们已经在该步骤中使用了Hough变换,并且效果很好,但是当我们尝试从测试床扩展到全尺寸项目的仿真时,它变得缓慢得令人无法接受。

我正在寻找一种更快的方法。


对于那些可能关心实际用例的人来说,这里是一个液态氩时间投影室


1
我们还做了一个递归霍夫变换方法,用于通过FermiLab的多线比例腔进行路径跟踪。Erik Kangas的高级论文包含了所有细节。我认为这仍然是最好的方法。
Matt Knepley 2011年

1
您在第一句话中是指“ ...成对的点...”还是“ ...成对的点...”?
比尔·巴特

Answers:


2

Hough变换(PHT)的概率版本更快。如Bradski和Kaehler在他们的OpenCV书中所述:

这个想法是,无论如何,该峰都将足够高,然后将其击中仅一小部分时间就足以找到它。

OpenCV库提供了PHT 的实现

还有其他选择。创建霍夫变换的分布式版本并不困难。只需将您的观点集分成较小的块,然后使用MapReduce框架即可汇总所有累加器。另一个想法是使用具有低分辨率的参数空间执行Hough变换的粗略版本。选择最合适的候选人,并使用具有更高解析度的参数空间进行更精细的迭代。也许这就是甘道夫FHT背后的想法。


1
在以下方面提出了PHT:Matas,J.和Galambos,C.和Kittler,JV,使用渐进概率霍夫变换对线进行稳健检测。CVIU 78 1,第119-137页(2000)。
TH。

然后,可以将精细过程的过程概括为多个步骤,这就是甘道夫所做的。
dmckee ---前主持人小猫,

顺便说一句-自从我问了这个问题以来,一位同事已经使用转换的渐进概率版本向我们的代码添加了一个模块。这带来了一些相关的更改,因此很难准确描述其造成的差异,但是它是程序包的一部分,大大加快了分析的几个步骤。因此,我将接受这作为“获胜”建议。
dmckee ---前主持人小猫

5

我的同事已经在Gandalf库中找到了快速霍夫变换,它看起来很有希望,但可能需要大量工作才能集成,因此我正在寻找其他方法。

Gandalf的实现很有趣:他们以递归的方式评估累加器空间,就像遍历四叉树或八叉树一样。密度不大的区域随即丢弃。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.