阅读文献后的记录,如有不正之处,请指正。
论文下载地址
https://xueshu.baidu.com/usercenter/paper/show?paperid=a16724c041eda11326b76ab2920e340c
前言
针对传统直线检测算法输出线段,多为短小线段的问题,作者提出了一个优化现有线段输出,对线段集融合的算法。
LSM算法流程,分为3步骤
- 采用LSD和Edlines等传统算提取线段集。
- 线段集预处理。
- 根据合并准则合并直线。
一、LSM算法步骤
1.1 传统方法线段提取
这里不讲可移步以下链接
LSD算法
(4条消息) 【文献翻译】LSD: A Fast Line Segment Detector with a False Detection Control_YuYunTan的博客-CSDN博客
Edlines算法
(4条消息) EDlines原理_West_brook的博客-CSDN博客_edlines算法
1.2 线段集预处理
在合并前的处理
(1)降序排列:
将传统方法输出的检测结果,按长度降序排列,其中最长线段记为L_1,稍短线段记为L_2。将L_1与L_2线段看作一对线段即(L_1,L_2),因为后续操作大部分是对这一线段对的处理。其中(l_1,l_2)表示线段对的长度, (θ_1,θ_2)表示线段对的角度。任以线段L_i有两个端点(x_i1,y_i1)和(x_i2,y_i2).
将传统箍筋尺寸检测的结果按照箍筋的尺寸长短进行排列,箍筋中最长的线段记录为L1
(2)角度滤波
设置输入一个参考角度阈值τ_θ,滤除原始线段集中与L_1角度超过τ_s(与τ_θ有一定关联,获取方式后面会讲)的线段,得到的新线段集记为P_(L_1 )。
(3) 空间相似性滤波
根据水平距离滤波:剪除P_(L_1 )中水平距离中较远的线段,在线段集L_1和P_(L_1 )中寻找水平方向上相近两个的线段,即满足以下公式
根据垂直距离滤波:紧接着剪除P_(L_1 )中垂直距离较远的线段,满足如下条件的线段留下
需要说明的是用户同样输入参考距离ξ_s,τ_s是自适应的阈值,具体来源后部分讲解。
三个滤波器的顺序是根据计算成本由小到大排列的,至于作者选用水平或垂直距离而不是欧式距离等,也同样是因为节省计算开销。
1.3合并线段
线段数据处理完之后就是,线段融合步骤了,如何的基本思想是:将 P_(L_1 )中的L_1和 L_2 合并。 如果满足合并条件,则合并后的段 M 立即替换 L_1并删除L_2。考虑将P_(L_1 )中的剩余段与新的合并段合并。
合并准则如下:
(1)如果线段L_1和 L_2的最近的两个端点(c_1和 c_2)之间的欧式距离d小于空间阈值τ_s,则可认为两线段能够融合。
(2)如果两线段的合并各种情况如下图,其中黑色点代表最终合并的线段M的两个端点,蓝色是L_1、红色是L_2
为了确保合并后的线段不会偏离L_1太远,需要检验合并结果:如果合并后的线段M与合并前原原线段L_1之间的夹角大于τ_θ/2,则认为合并不成功
二、参数
2.1 参数表
2.2参数推导
其中作者提出一种根据线段L_1长度自适应的角度和空间阈值,如下
其中ξ_s是用户输入参数,〖0<ξ〗_s<1
归一化较短线段L_2
归一化两线段运行的空间距离d
二者相加得到参数ℷ
自适应的角度阈值τ_θ^*如下
三、结果
`输入
输出(左图:LSD算法,右图:LSM算法)