LSD 直线段检测算法

想在视觉slam里面引入直线特征,所以上周读了一篇直线检测算法的论文:LSD a Line Segment Detector

这篇文章不是很难读懂,翻译以及详细的解释可以参考这篇博客

这里主要说说自己的理解:

其中一点是对于论文中提到的用来验证矩形是否可以作为检测线段的一个衡量标准NFA,如果计算得到的NFA小于预先设置的阈值,则认为这个矩形通过了检测。NFA计算公式在论文中有写,其推导过程描述也很详细,是基于a contrario approach and the Helmholtz principle这两个准则:

the Helmholtz principle:在完美噪声图像图像中不应该检测到目标

a  contrario approach:一个不会检测到目标的噪声图像

具体做法就是:引入一个新的模型a contrario model,这个模型可以理解为一个完美噪声图像,每个像素值相互独立,并且服从[0,2π]的均匀分布。然后分别对目标图像i以及引入的噪声图像I的矩形框区域内的像素以及aligned points进行统计,计算i图像aligned points个数小于I噪声图像aligned points个数的概率,再乘一个比例系数,就作为NFA的值。

直观上理解,就是说如果目标图像矩形框内的aligned points个数小于了噪声图像矩形框内的aligned points个数,那么目标图像矩形框内的aligned points就有理由推断为是由图像噪声引起的,所以就可以拒绝这次的检测。但是由于噪声图像是随机生成的,具有偶然性与不确定性,所以用这个来拒绝矩形框会不会具有随机性,就是同样一个矩形框,在某个噪声图像下NFA值就很小,在另一个噪声图像下就比较大呢。此外有这样的一个想法,如果自己搞的话,可不可以对目标图像叠加负噪声图像,然后对这个新的图像再进行直线检测,比较目标图像与新图像的检测结果的差异,然后作为判断标准呢。

其余部分就没什么难理解的了,读完整片文章,感受就是这个算法里面有很多参数都是作者根据经验给出来的,所以对于不同图像,会不会改变参数能得到更好的结果呢?还有就是大佬的文章真的很自信,只有5篇参考文献…实验部分直接上直线检测的examples,太强了,膜拜!后续需要对这个方法进行更多的实际测试。

你可能感兴趣的:(论文)