基于投票约束的Hough 变换直线检测算法

2023-10-05 08:10张喜民詹海生余奇颖
电子设计工程 2023年19期
关键词:精准度像素点边缘

张喜民,詹海生,余奇颖

(1.陕西国际商贸学院信息工程学院,陕西西安 712046;2.西安电子科技大学 计算机学院,陕西 西安 710071)

基于机器视觉的精密测量技术已成为国内外研究热点[1-3]。自动检测图像中零件直线边缘是尺寸测量的重要环节,边缘直线检测的精度直接影响零件尺寸测量的精度。目前,直线检测算法大部分都是基于Hough 变换技术,其具有对噪声不敏感、稳健性好、对遮挡易处理等优点[4-9]。

标准Hough 变换直线检测算法是在图像的边缘提取图上实现的,因此,会依赖边缘检测算法的准确性。对于有较高边缘密度的图像会出现大量错误结果。同时,由于对每个边缘像素点都需要计算参数,计算量较大。Hough 变换直线检测算法的改进主要体现在提高算法性能和提高检测准确度两个方面,在提高算法性能方面,已有大量研究论文和应用[9-13],Mukhopadhyay等和Hassanein等对这些进展进行了详细综述[8]。而在提高直线检测准确率方面的研究成果相对较少,典型的有Lee 等提出了离散Hough 变换算法(DHT),Chung 等在DHT 的基础上进一步提出了基于方向的离散Hough 变换算法(ODHT)[3],这两种算法采用多参数的离散Hough 变换,可提高直线检测率,但多参数的引入导致了较大计算量;针对虚假直线、线段信息缺失等问题,Almazan 等提出的马尔可夫链边缘直线段检测器算法,其能够检测到更为完整的直线段,但计算量较大[14];王竞雪等对检测得到的边缘像素进行编组[15-16],先过滤独立像素点和短边缘,再对每一个边缘组分别进行Hough 变换,降低了边缘组间干扰、提高了检测准确度;徐超等提出结合随机抽样一致性算法和模型预检验的改进随机Hough 变换算法[17-18],该算法通过对像素点进行分组,计算相邻像素点的梯度方向差分,降低了直线检测过程中的误检情况,但计算量也较大。

在进行工业生产线零件尺寸测量时,既要满足精度要求又要保证算法的时间性能,上述算法为提高直线检测精确度引入了较复杂的计算,降低了算法的时间性能,不能满足生产要求。笔者在应用Hough 变换、随机Hough 变换对类矩形小插件进行边缘直线检测时发现,由于边角圆弧设计以及制造工艺等原因,小插件的棱有弧度,对采集图像边缘提取后,一条棱变成两条相距很近的有弧度的边缘线,这些边缘线弯曲部分的像素点很容易在Hough 空间形成伪峰,伪峰值会对周围的真峰值点产生抑制[3],导致Hough 变换及其衍生算法直线检测不准确。为此,提出了基于投票约束的Hough 变换直线检测算法,通过设计新的Hough 空间投票权重策略来抑制伪峰的产生,进而提高直线检测的精准度。该方法引入的计算量小,在提高精准度的同时基本不降低算法的时间性能。

1 算法设计

1.1 Hough变换直线检测算法

Hough 变换是图像处理中识别几何形状的方法,它利用图像空间X-Y与Hough 参数空间ρ-θ的点与线的对偶性,把原始图像中给定形状的直线或曲线变换成Hough 参数空间的一个点。图像空间中同一条直线或曲线上的多个点在Hough 参数空间中将成为为一个正弦曲线簇,且曲线簇相交于一点,称该点为峰值点,如图1 所示。通过检测该峰值点,就可检测对应图像空间中的一条直线或曲线。

图1 Hough变换的点线对偶原理

若图像空间X-Y中的点(x1,y1)、点(x2,y2)在直线L上,则它们都与Hough 参数空间ρ-θ中的一个峰值点相对应,反之,参数空间ρ-θ中的一个峰值点就和图像空间X-Y中的一条直线相对应。Hough 变换直线检测算法的过程如下:

1)设置正向夹角和法线距离的取值范围[θmin,θmax]和[ρmin,ρmax],将Hough 参数空间网格量化成M×N个单元(M为θ的等分数,N为ρ的等分数),并设置累加器矩阵Q[M×N]初始值为0;

2)对于图像空间中的每个点(x,y)执行步骤3);

3)令s=(θmax-θmin)/M为步长,对于0≤i

4)检测累加器矩阵Q[M×N]中的极大值,获取峰值点网格下标[mH,nH],由式(2)计算ρL和θL;

5)根据ρL和θL由式(3)计算图像空间X-Y中直线L的参数:斜率p和截距q,并检测到直线。

1.2 投票约束的Hough变换直线检测算法

由于零件的棱本身是带有弧度的,对应到图像中不存在完全理论上的直线。类矩形小零件在弯曲处产生的像素点很容易在Hough 空间形成伪峰,干扰直线检测的精度。针对上述问题,该文提出通过设计新的Hough 空间投票权重策略来抑制伪峰的产生,提高直线检测精度。

算法的投票策略:给边缘上弧度较小的像素点一个较大的投票权重,而给弧度较大的非线性边缘像素点一个较小的投票权重。算法具体实现过程如下:

1)对采集图像采用3×3 模板进行中值滤波,得到增强图像;

2)应用基于RANSAC 去离群点的SIFT 特征匹配算法[3]对增强图像进行图像配准变换,得到精准的配准图像;

3)应用最大化类间方差的方法(Otsu),迭代求出灰度值t,将t与0.5×t分别作为高低阈值传入Canny算子,提取配准图像边缘得到二值图像;

4)将Hough 参数空间网格量化成M×N个单元(M为θ的等分数,N为ρ的等分数),并设置累加器矩阵Q[M×N]的初始值全为0;

5)对于二值图像空间中的每个点(x,y)执行步骤6)、7);

6)令s=π/M为步长,对于0≤θ<π,用式(1)循环计算ρ,对ρ进行量化,求取网格下标j;

7)判定像素点(x,y)是否处于预设的高投票权区域,用式(4)计算二值图像像素点的空间投票权,再用式(5)更新累加器矩阵Q;

8)检测累加器矩阵Q[M×N]中的极大值,获取峰值点所在矩阵的行列位置,再由式(2)计算ρL和θL;

9)根据ρL和θ L由式(3)计算图像空间中直线的参数:斜率p和截距q,并检测到零件的边缘直线L。

2 实验与分析

2.1 实验系统组成

实验系统硬件由计算机、工业数码相机、远心镜头、红色环状LED 光源、直流稳压电源、支架等组成,如图2 所示。

图2 实验系统硬件组成

实验系统中计算机配置:Intel(R) Core(TM) i7-9700K、4.90 GHz,8 GB DDR4 内存,256 GB 固态硬盘;工业数码相机为1 292×964 分辨率的单色CCD相机,采集到的图像通过USB3.0 接口传输给计算机;远心镜头选用焦距固定、景深大的物方远心镜头,具有平行光输出、畸变非常小的特点,以保证采集图像的质量;红色环状LED 光源向下均匀照射待检测的零件,减少了外部光照的影响,以获取低噪声的清晰图像,直流稳压电源为环形光源提供稳定的+12 V。

实验系统软件环境采用Windows7 64 位专业版操作系统;测量应用软件用C++语言开发,软件开发环境采用Visual Studio 2015;支持库采用MFC 类库和计算机视觉库OpenCV4.5.1。

2.2 直线检测实验与分析

2.2.1 直线检测实验结果

以手机尾插零件为检测对象,任选取一幅采集图像,分别用标准HT 算法、概率HT 算法和该文提出的算法进行实验,Hough 变换的相关参数选取如下:斜率取值范围为[0,180°],截距的取值范围为[0,1 000],M为1 000,N为1 800;该文算法在确定投票权重时,鉴于手机尾插外形较规整及算法时间性能的要求,只设计一个高投票权区域,圆心选零件基准图像几何中心位置,根据手机尾插的外形尺寸选取参数:Ci=280、λ=1/2 800。3 种算法检测到的前8 个峰值点所对应直线的实验结果如图3 所示。

图3 3种直线提取算法实验效果

从图3(b)可以看出,HT 算法给出的前8 个最显著峰值点中有4 个是噪声像素产生的伪峰(对应4 条误检测直线),噪声像素主要来自于类矩形插件在四个角处的不规则弯曲边缘;概率HT 算法也不能抑制噪声像素的影响,前8 个最显著峰值点中也有两个伪峰(对应两条误检测直线),如图3(c)所示;该文算法检测到的前8 条直线均为有效边缘直线,如图3(d)所示。实验结果表明,该文算法能有效抑制伪峰的产生,误提取的直线数目小于另外两种算法,具有较高的直线检测精准度。

2.2.2 伪峰抑制效果分析

为了进一步分析该文算法对Hough 空间伪峰抑制作用,分别抽取标准Hough 算法和该文算法检测到的前10 000 个点,用Matlab 分别绘制抽取点在Hough 空间的分布情况,结果如图4 所示。

从图4 中可以看出,标准HT 算法得到的检测点在Hough 空间中的分布相对嘈杂,伪峰点与真峰点包围在一起,形成一个近似的锥形,如图4(a)所示,说明真峰旁边充斥着无数伪峰点,真峰不能显著突出;该文算法得到的检测点在Hough 空间中的分布峰值明显尖锐,如图4(b)所示,说明真峰点被伪峰点包围在一起的情况较少,真峰锐利突出,很好地抑制了Hough 空间中伪峰的高度,进而提高了直线检测的精准度。

2.2.3 直线检测实验精度分析

对300 张采集的手机尾插图像分别采用标准Hough 算法、概率Hough 算法以及该文提出的投票约束的Hough 算法进行直线检测实验,以式(6)的平均直线检测精准度P作为评判标准:

式中,Lall为遍历峰值点检测到直线数,Lright为最终需要检测到的直线数,对于手机尾插零件为8。

图4 算法伪峰抑制效果图

表1 是3 种算法检测精准度与时间性能的实验统计结果,可以得出,该文算法的检测精准度最高,平均直线检测精准度P达到89%,较标准Hough 算法、概率Hough 算法有较大幅度的提升;该文算法引入的计算量小,算法的时间性能与标准Hough 算法相当。由于概率Hough 算法只进行部分像素点映射,其算法的时间性能较好,但精度最差。

表1 3种算法检测精准度与时间性能实验结果

3 结束语

Hough 变换算法被广泛用于图像直线检测,但该算法用于类矩形小插件尺度测量中边缘直线检测时,易在Hough 空间形成伪峰、影响边缘检测精准度,为此,提出了基于投票约束的Hough 变换直线检测算法,该算法通过引入Hough 空间投票权重分配新策略来抑制伪峰产生,提高了图像边缘直线检测精准度,以手机尾插零件进行实验,实验结果表明,与标准Hough 算法、概率Hough 算法相比较,该文算法直线检测精准度有较大的提升,可达到89%。该文算法引入的计算量小,在提高检测准确度的同时基本不会降低算法的时间性能,该文算法可根据具体情况设置多个高投票权区域及调整参数,以适用于其他零件,达到最优直线检测效果,且该研究已应用于某型检测设备研制中。

猜你喜欢
精准度像素点边缘
BH66F5355 增強型24-bit A/D MCU
基于局部相似性的特征匹配筛选算法
让党建活动更加有“味”——礼泉县增强“两新”党建精准度
基于5×5邻域像素点相关性的划痕修复算法
2017年IoT设备DDoS攻击更严重
基于canvas的前端数据加密
论提高不动产产权保护精准度的若干问题
基于逐像素点深度卷积网络分割模型的上皮和间质组织分割
一张图看懂边缘计算
在边缘寻找自我