Deep Hough Transform for Semantic Line Detection

Han Q, Zhao K, Xu J, et al. Deep Hough Transform for Semantic Line Detection[J]. arXiv preprint arXiv:2003.04676, 2020.

任务:

检测”semantic line“,所谓semantic line这里区别于一般的line detection,只有有助于将图像结构化的line才叫做 semantic line。semantic line可以指导构图。如下图左边c是这篇工作的检测结果,右边是line detection结果:
semantic line & line detection
当然paper中最重要的点就是利用深度霍夫变换来进行line detection

Deep Hough Transform

先说什么是霍夫变换,然后看作者的deep hough transform。

Hough Transform

霍夫变换是检测直线常用的方法;
他的基本思想是图像中的一条线映射为参数空间的一个点

可略过:每一个点都可以经过若干条直线,这些直线由不同的参数表达,这些直线在参数空间中可以表示为一条曲线。如果有多个点都经过这条直线,那么他们在参数空间中应该会相交。我们只需要看参数空间某一点成为交点的次数即可得到有多少个点共此线。具体原理,请戳这里
这里要注意. 为什么使用\((r , \theta)\)而不是截距式表达直线参数?

deep hough transform

这里没有必要非要和霍夫变换一一对应,只要明白作者是如何做的就可以了
DTH

如上图,同样是将直线使用\((r , \theta)\)表示,X矩阵是通过deepmodel学习到的feature。如何将一条线映射为参数空间下(Y矩阵)的一个点呢?
将某条直线所经过的feature相加,作为Y矩阵中这条线的值,要知道参数时连续的,所以这里需要首先将参数离散化。

train的时候咋弄咧?

framework

如上图,train的时候的gt map来自于标注直线的参数空间表示,然后进行了gaussian smooth
Inference的时候选取大于一定阈值的参数作为预测直线,因为要计算Y矩阵的所有点,所以最后的相加应该有($R\times Theta $)次累加运算,没有乘法的参数,从论文结果看还是挺快的。

ps.如果从另外一个角度来看就是遍历所有的直线并分类,如果这样写可能真就是啥novelty也没了

posted on 2020-05-13 23:20  treeaxx  阅读(1020)  评论(1)    收藏  举报