基于概率Hough 线段检测算法的天花板影像边界提取*
2023-08-02刘树惠
许 勇 刘树惠 吴 锐
(武汉邮电科学研究院 武汉 430074)
1 引言
天花板成块状铺设在房顶上,对其影像进行线段检测,不仅要考虑有效性,还要考虑完整性。稳定、可靠的Hough变换直线检测算法可以检测出影像中的线段,但是该方法对所有点进行空间转换,计算量大、效率低下,国内外学者在此基础上做了很多研究[1~4]。在2010 年,LSD[5~6](a Line Segment Detector)作为一种新的直线检测算法,能在线性的时间内得出精度达亚像素级的检测结果,且能进行误差控制。但是,该方法中某个像素点一旦被标志使用过,则无法作为其他直线的组成元素,直线相交就意味着直线断裂。概率Hough 线段检测是对Hough 直线检测的继承和发展,保留了传统Hough检测的优点,又避免了LSD算法中长线段断裂的风险,是对天花板影像进行线段检测的最佳选择。
拍摄的天花板影像中包含的其他物体,在进行边缘检测[7~8]后,二值图像中很大一部分区域被不规则的噪点占据。此外,线段检测的结果中,还会出现平行且邻近的多条线段扎堆这种过检测情况。为了解决上述问题,本文在概率Hough线段检测[9~10]的基础上,提出了分块处理[11~12]和线宽控制[13~14]的解决方案。该方案在室内环境复杂时可以减少50%以上的噪声边界点,还能对线段检测的结果进行修正。
2 传统概率Hough线段检测算法
霍夫直线检测利用图像与霍夫空间[15~16]中点与线的对偶性,将图像空间中待检测的离散像素点集,通过参数方程映射为霍夫空间中的曲线集,找直线问题便转换为找交点问题。同时考虑到笛卡尔坐标系存在垂直线无法检测的问题,因而利用极坐标去表示:
转换为θ,r为变量的形式:
对于给定的图像空间下坐标x,y,霍夫空间中表现为一条正弦曲线。而给定共线的离散点在霍夫空间中对应的曲线交点,即为共线直线的参数。正弦曲线的形状取决于点到原点的距离r,r越大振幅越大。
概率霍夫变换算法不是简单的逐像素扫描影像,而是随机选择边缘像素并变换到参数空间,形成一条条曲线。这些曲线每经过参数空间的一个坐标,就把坐标的累加器上的值增加1;然后选择累加器上值最大的坐标,判断累加值是否到达阈值;接着寻找线段的两个端点,更新累加矩阵;最后,循环迭代整个线段检测过程,直到满足停止条件。
3 改进概率Hough线段检测算法
概率Hough 变换从二值影像中随机选取一个边缘点,直接参与Hough 变换运算,这样会导致选取的边缘点没有针对性,该算法边缘点的检测顺序也可能会影像检测结果。如果待检测的影像中包含了太多杂乱的噪声边缘点,不仅影响效率,还会有噪点被误检测成伪直线的风险。所以,对参与线段检测的边缘二值图像做预处理很有必要。
此外,对于概率Hough 直线检测结果,没有考虑由于峰值模糊造成两条以上平行且接近的直线共同出现的现象。事实上,这种平行且接近的直线有一定的相关性,一旦考虑直线的宽度,这些直线就可能合成一条直线。一些情况下,对直线进行线宽控制,符合人们在科研实践中的实际需求。针对以上问题,本文在概率Hough变换之前对图像进行分块处理,以消除噪声边缘点;在概率Hough 变换最后,对获取的线段进行线宽控制,以满足天花板影像中边界提取的要求。
3.1 分块处理
分块处理可以对分块区域中心的对象提供更加精准的表示。将全局图像分解成多个小块,分析局域图像与全局图像特征的差异性,可以有效筛选出那些特征差异大的区域,保留价值高的区域。文中考虑的是消除噪声边界点的问题,在天花板影像中,噪声边界点的出现主要呈现区域性的块状分布,边缘点密度远超过影像中天花板区域。利用统计特性,可以将密度很大的区域作为要消除对象,以获取质量更高的边缘二值图像。
图像中非零像素的总数为M,被分割成了i×j块小区域。每一块小区域平均非零像素为mave;第i行第j 列的小区域内非零像素点的个数为mij,于是有式(3)、(4)成立。
mave和mij的单位都是pix/块,它们反映了局部像素与整体像素分布的差异。将那些mave小于mij的区域置零即可去除非零像素分布集中的区域。其中,为了避免mave和mij以1∶1 的数值比例无法调节,还可以将mave和mij乘以一个比例系数,以调节局部边界点密度和整体边界点密度的差距程度,增加密度比较的灵活性。
3.2 线宽控制
在笛卡尔坐标系中,一条直线可以由y=kx+b表示,对应式(1),可以得到:
从而,可以得到霍夫空间与笛卡尔坐标的对应关系:
对于平行且接近的多条线段,在笛卡尔坐标系中可以理解为斜率k相等,截距b接近的一组线段;在极坐标系中,可以理解为-cosθ/sinθ相等,r/sinθ接近的一组线段;在霍夫空间中,可以理解为θ固定,r/sinθ接近,即r 接近的一组线段。所以,对概率Hough 变换线段检测进行线宽控制,假设允许的宽度为d,那么在笛卡尔坐标系中,就是以当前直线以中心,距离当前直线d/2 范围内的线段都应该按某种规则被合并。
图1 表示笛卡尔坐标系中,直线L2、L3 到L1 的距离|AB|=|BC|=d/2,在L2 与L3 之间的平行直线都应按某种规则被合并成一条直线。根据几何关系,可以得到:
图1 笛卡尔坐标系下直线表示
联合式(5),可以得到:
所以,得到霍夫空间中r 的合并范围为[b*sinθ-det,b*sinθ+det]。假如有一组平行且距离在d 内的m 条直线,那么这m 条直线的θ值都相等,每条直线的r 值都不相等。最后线段融合的结果中,θ值不变,r值根据线段长度取加权平均。
将参与融合的直线的两个端点根据距离图像原点的距离,分为近端点和远端点。线段融合中的端点的融合策略,一般在所有近端点中取最小值,远端点中取最大值,然后向新生成的直线作垂线,垂足作为最终直线的两端点。图2 中L1 和L3 的距离|AB|=d,线段融合后L4 的端点分别是L1、L2 的一端点相对于L4的垂足。
图2 线宽控制示例图
4 实验结果与分析
实验1 中,将mave或者mij间的比例系数设置为1,即同比例比较图像局部区域和整体的边界缘点密度。图3 中可以看到本文采用一组天花板影像进行实验,x1(a1,b1,c1,d1,e1)分别表示原始图片,x2 分别表示未经处理的x1 边缘检测的结果,x3分别表示经过分块处理的x1 边缘检测的结果,表1是图像分块处理后的数据统计。
表1 图像分块处理统计表
图3 分块处理对比图
图3 中可以看出,图片分块处理后,原来大面积杂乱的噪声边界点区域被遏制,描述天花板边缘的边界点基本保留,这能为后续线段检测带来效率和精度上的极大提高。根据表1 中的数据对比,明显发现分块处理前后,实验中非零像素点的个数下降很多,数据进一步说明图像分块处理对线段检测的性能的显著效果。
实验2 中,图4(a)是没有线宽控制的线段检测结果,得到a、b、c 三条直线和其他两条直线。可以看到,直线La、Lb、Lc 属于平行且邻近的三条直线,它们在Hough 空间上呈现的是三个θ值相等,r值非常接近的三个点。图4(b)是线宽控制后的检测结果,可以看到,直线L 是直线La、Lb、Lc 经过线宽控制重新组合的直线,直线的两个新的端点分别是参与合并的三条直线端点的极大值和极小值,向新直线引垂线后的垂足。比较图4(a)、(b),发现线宽控制有融合邻近直线、拼接断裂直线的作用。
图4 线宽控制对比图
5 结语
本文从天花板影像线段检测的需求入手,对概率Hough 线段检测算法提出分块处理和线宽控制两种方法,并对这两种方法做了详细的理论推导和实验分析。图像分块处理极大减少了参与Hough运算的边界点的数目,减轻了硬件的存储压力和计算压力;线宽控制可以消除由于峰值模糊导致的多条平行邻近线段出现的现象,避免一些项目中线段检测太灵敏,产生过检测的问题,在一定程度上拓展了概率Hough线段检测的使用范围。