激光与光电子学进展, 2020, 57 (18): 181002, 网络出版: 2020-09-02  

一种快速高精度的矩形检测算法 下载: 1118次

Fast and High-Precision Rectangle Detection Algorithm
作者单位
郑州大学机械工程学院, 河南 郑州 450000
摘要
为了能够快速、精确地检测出矩形,综合分析目前存在的矩形检测算法的优缺点,提出了一种快速、高精度的矩形检测算法。所提算法首先采用环形窗口将图像分割为多个感兴趣区域,再提取感兴趣区域的亚像素轮廓,并将亚像素轮廓分割为若干线段,然后利用模糊数学理论对线段的几何和物理特性进行融合计算,最终根据模糊融合得到的判决结果完成矩形的高精度检测和定位。实验结果表明:所提算法的检测速度是基于Hough变换的矩形检测算法的7.4倍,检测最大中心定位误差为(0.507 pixel,0.272 pixel);长度的平均误差为1.034 pixel,宽度的平均误差为1.310 pixel,倾角的平均误差为0.304°,并且能够准确地检测出矩形。所提算法满足工业应用中快速、高精度的要求,且有较强的稳定性。
Abstract
To quickly and accurately detect rectangles and comprehensively analyze the advantages and disadvantages of existing rectangle detection algorithms, a fast and high-precision rectangle detection algorithm is proposed herein. The proposed algorithm first divides an image into multiple regions of interest using a ring window, then extracts the subpixel contour of the region of interest, divides the subpixel contour into several line segments, and finally uses fuzzy mathematics to analyze the geometric and physical characteristics of the line segments. As a result of the fusion calculations, high-precision detection and positioning of the rectangle are obtained based on the fuzzy fusion assessment. Experimental results show that the detection speed of the proposed algorithm is 7.4 times that of the rectangle detection algorithm based on Hough transform, and the maximum center positioning error is (0.507 pixel, 0.272 pixel). Furthermore, the average length error is 1.034 pixel, the average width error is 1.310 pixel, and the average inclination error is 0.304°. The rectangle can be accurately detected through the proposed algorithm that meets the requirements of fast and high precision in industrial applications and exhibits strong stability.

1 引言

快速、准确地检测矩形在实际应用中具有重要的意义,例如汽车的车牌与矩形零件的定位和识别以及复杂背景下的二维码检测等。目前,关于矩形的检测算法大部分采用基于Hough变换检测直线算法以及基于Harris角点检测算法。

利用基于Hough变换检测直线算法检测矩形,通常先检测矩形的4条边再检测矩形,等价于将矩形检测转换为直线检测。直线检测的方法中,基于经典Hough变换检测直线算法应用最为广泛[1]。Jung和Schramm[2]提出了基于窗口Hough变换的矩形检测算法,该算法利用环形窗口扫描图像,且对环形窗口内的图像进行Hough变换,通过比较Hough空间的峰值点来判断窗口中心是否为矩形中心,从而检测环形窗口内所包围的矩形,虽然可以检测出方向和大小未知的矩形,但因为检测过程中对窗口内的像素都进行操作,导致计算量大,检测速度较慢。李强兵等[3]给出了基于Hough变换的矩形检测算法,该算法在Hough变换的空间上对峰值点进行一系列操作,并在组合和提取到的峰值点中检测出满足一定角度和长度条件的直线,最终识别图像中的矩形。王红军等[4]提出了结合Hough变换和最小二乘拟合的矩形几何提取和校正算法,利用该算法来识别图像中的直线,并且利用4条直线的4个交点得到透视变换矩阵,从而将四边形内的点映射到矩形区域。Zhu等[5]提出了一种随机Hough变换(RHT)方法,用来检测冷冻电子显微镜图像中的矩形颗粒,如果已知矩形的边,使用2D累积数组来检测矩形的中心和方向,该方法检测快速,并且检测结果很好,但仅限于图像中所有矩形具有相同的尺寸,并且所有尺寸都清楚。目前,基于Hough变换的改进算法主要有RHT以及概率Hough变换(PHT)方法等[6-7]。但Hough变换需要对每个像素点进行操作,导致基于Hough变换的矩形检测无法解决耗时长的问题且效率较低,在检测速度要求高的环境下应用受限。

基于Harris角点检测的矩形检测方法通常先检测矩形的角点,再根据角点信息来识别矩形,等价于将矩形检测转换为角点检测。张从鹏等[8]提出了基于Harris角点的矩形检测算法,该算法改进传统的Harris角点检测算法,首先提取矩形中L型角点,然后提取L型角点中满足矩形特性的角点,利用角点信息来检测矩形,该算法与Hough变换方法相比,可以提高检测速度和效率,但是在图像中的角点信息受到严重噪声污染的情况下,检测容易受到干扰,会检测出多余的矩形,从而影响矩形检测的准确率。

目前,针对矩形检测算法存在检测速度慢、准确率低以及精度的问题,本文提出一种快速、高精度的矩形识别算法。通过提取图像中的亚像素轮廓并将轮廓分割为线段,然后利用模糊数学理论对线段的几何和物理特性进行融合计算,最终根据模糊融合计算得到的判决结果来识别并定位矩形。该算法能够快速并且准确地检测出图像中的矩形,具有一定的应用价值。

2 算法原理

2.1 矩形判断的条件

图1P1P2P3P4是一个矩形,其中P1=(x1,y1),P2=(x2,y2),P3=(x3,y3),P4=(x4,y4),P1P2P3P4为矩形的4个顶点,其中(x1,y1),(x2,y2),(x3,y3)和(x4,y4)分别为矩形线段的端点坐标。图像坐标系为xOy,原点为O。线段P1P2,P2P3,P3P4,P4P1满足以下条件,则可以判定其为一个矩形。

1)斜率条件:k1=k2,k3=k4。其中k1为线段P1P2的斜率,k2P3P4斜率,k3P2P3的斜率,k4P4P1的斜率。

2)长度条件:l1=l2,l3=l4。其中P1P2=l1,P3P4=l2,P2P3=l3,P4P1=l4

3)距离关系:d1>0,d2>0。d1为两线段P1P2P3P4之间的垂直距离,d2为线段P4P1P2P3之间的垂直距离。

4)相邻边正交:角度值差为π/2,即arctan k1-arctan k3/2。

5)位置关系:P1P2P3P4对角线交点为O1,P2P3P4P1对角线交点为O2,其中O1O2点重合,且对角线P1P3=P2P4,即d3=d4

图 1. 矩形示意图

Fig. 1. Rectangular diagram

下载图片 查看所有图片

2.2 模糊融合的原理

在所提算法中,4条线段是否可以组合成矩形,是由一系列与矩形的几何特性有关的判断条件决定的,每个判断条件提供线段是否为矩形边的支持程度,这种支持程度有较大的不确定性,所以设置固定的阈值来判定线段是否为矩形边是不合理的。Zadeh教授提出了模糊集合理论[9],在这个理论中提供了一种处理不严密信息的方法,并且通过模糊计算融合来判断信息,故实验引入模糊集合理论来解决判定是否为矩形的问题[10]

定义1:利用模糊逻辑来解释不确定性的隶属度函数,并将由隶属度函数生成的集合视为模糊集合。

定义2:对于论域U上的模糊集合A由隶属度程度μA(u)来表征,映射μA:U→[0,1],uμA(u)叫作A的隶属度函数。任意uU,μA(u)∈[0,1]叫作u关于A的隶属度程度。对于μA(u)=1的所有u都是模糊集合A的元素,对于μA(u)=0的所有u都不是模糊集合A的元素,而μA(u)值介于0和1之间的所有u均是模糊集合A的部分元素。

实验使用定义来判决矩形的隶属度程度,并以此判断任意4条线段是否能够组合成矩形,其中每一个判决器得到的结果是线段为矩形边的隶属度程度。为了综合考虑每个判决器的计算结果,采用模糊数学的方法融合计算每个判决结果。采用的判决条件如下。

1)斜率条件,平行直线的斜率相等。因为直线的斜率有可能不存在,所以直线的斜率使用角度α=arctan [(y5-y0)/(x5-x0)]来表示,其中(x0,y0)和(x5,y5)分别为线段的端点坐标。隶属度函数可表示为

u1(w1)=-w1/b+1,0w1b0,else,(1)

式中:b表示角度差的阈值;w1表示任意两条直线lilj的斜率反正切值差的绝对值,即w1=|αi-αj|,ij表示不同的编号。图2为斜率相似的隶属度函数曲线。

图 2. 斜率相似的函数图像

Fig. 2. Function image of similar slope

下载图片 查看所有图片

2)长度条件,P1P2=l1,P3P4=l2,P2P3=l3,P4P1=l4,l1=l2,l3=l4,隶属度函数可表示为

u2(w2)=-w2/c+1,0w2c0,else,(2)

式中:c表示长度差的阈值;w2表示任意两条直线lilj的长度差值的绝对值,即w2=|li-lj|。图3为长度相似的隶属度函数曲线。

图 3. 长度相似的函数图像

Fig. 3. Function image of similar length

下载图片 查看所有图片

3)相邻边正交,角度差为π/2,即arctan k1-arctan k3=π/2,k1=(y2-y1)/(x2-x1)、k3=(y3-y2)/(x3-x2)。隶属度函数可表示为

u3(w3)=2w3/π,0xπ/20,else,(3)

式中:w3表示任意两条直线lilj的角度差的绝对值,即w3=|arctan ki-arctan kj|。图4为正交性的隶属度函数曲线。

图 4. 正交性的函数图像

Fig. 4. Function image of orthogonality

下载图片 查看所有图片

4)矩形的中心位置重合,P1P2P3P4的对角线交点为O1,P2P3P4P1的对角线交点为O2。当O1O2点重合时,则满足矩形的中心不变性。隶属度函数可表示为

u4(w4)=1,0w4mw4/(m-n)+n/(n-m),m<w4n0,else,(4)

式中:mn分别表示中心点距离矩形长和宽的阈值,其中n>m;w4表示两对角线交点之间的距离,即w4=O1O2图5为中心位置关系的隶属度函数曲线。

图 5. 中心位置关系的函数图像

Fig. 5. Function image of center position relationship

下载图片 查看所有图片

每个判决条件的计算结果是一个有关线段是否为矩形边的隶属度函数。分别计算(1)~(4)式,可以得到对应情况下线段为矩形边的支持程度,并且利用融合策略公式[7],其表达式为

S=a=14{ua(wa)-[1-ua(wa)]},(5)

来融合计算(1)~(4)式得到的结果,就可最终判定线段是否为矩形边。式中:ua(wa)表示第a个判别式判决线段为矩形边的隶属度值。当S>0时,4条线段可以组合成矩形。当S≤0时,4条线段无法组合成矩形。

3 矩形检测的实施方法

3.1 基本思想

如果直接采用算法对整幅图像进行处理,会因组合线段数量过多,导致运算量过大,耗时较长,所以所提算法将以(x0,y0)为原点的环形区域分割为I个感兴趣区域,并分别对每个感兴趣区域进行矩形检测,其中I为图像中封闭轮廓的个数。首先提取子图像的亚像素轮廓[11-12],将亚像素轮廓分割为线段[13],然后利用模糊数学的方法将直线信息融合为矩形。环形区域的选择如图6所示,其中(x,y)为图像中轮廓区域的中心,轮廓的最短边为Dmin,最大轮廓的对角线长度为Dmax

图 6. 环形区域的选择

Fig. 6. Selection of ring regions

下载图片 查看所有图片

3.2 矩形检测算法的步骤及流程图

矩形检测算法的检测步骤如下。

step 1:提取目标图像的亚像素轮廓,计算图像中每个轮廓所有连续点的算术平均值和图像中封闭轮廓的中心[14-15],以确定环形区域的位置。

step 2:将环形区域分割为I个感兴趣区域。

step 3:提取感兴趣区域的亚像素轮廓[11-12]。由于提取的亚像素轮廓可能出现断线的现象,所以首先对提取到的亚像素轮廓进行共线连接[10],然后将轮廓分割为多条线段[13],并在数组A1中保存线段的坐标(xz,yz),z=1,2,3,…,Z

step 4:提取线段中相互平行的线段。

1)利用A1中所有线段坐标来计算任意两条线段的斜率和长度的隶属度函数的隶属度值u1u2。利用αiαjw1来计算u1u2。若w1∈[0,b],u1=-w1/b+1,反之,u1=0。在数组A2中保存线段的斜率反正切值的均值β=(αi+αj)/2。

2)计算两条线段lilj的中点坐标(xz0,yz0)和(x'z0,y'z0)以及两中点之间的距离d

3)计算两条线段lilj的长度,即w2=|li-lj|,其中w2为两线段长度差的绝对值。若w2∈[0,c],u2=-w2/c+1,反之u2=0。

4)利用(6)式以及附加判据d>0来计算S1=[u1-(1-u1)]+[u2-(1-u2)]。若S1>0,且d>0的线段lilj为矩形的一对平行边,由此在数组A3中保存矩形的边长L=(li+lj)/2。

step 5:为了提取平行线对中相互垂直的平行线对,通过步骤1)~3)来计算平行线对的u3u4。步骤如下。

1)分别扫描数组A2A3中的βL值,计算任意βiβj差值的绝对值,即θ=|βi-βj|。若θ∈[0,π/2],u3=2θ/π,反之u3=0。同理,比较LiLj值的大小。

2)分别求得两对平行线对的对角线交点O1O2之间的距离w4,及两对角线的长度为d3d4。若w4∈[0,m],u4=1。若w4∈(m,n],u4=d1/(m-n)+n/(n-m)。否则,u4=0。

3)利用(6)式融合计算S2=[u3-(1-u3)]+[u4-(1-u4)]。若S2>0,d3=d4,则两对平行边互相垂直,可以判定这两对平行边为矩形的4条边,此时环形区域的中心即为矩形的中心坐标,长度为LiLj中的最大值,宽度是LiLj中的最小值。否则,两对平行边不是矩形的4条边。

step 6:循环执行I次step 3~5的操作,最终检测图像中所有矩形的中心坐标、长度、宽度以及倾角。

4 算法测试及结果分析

使用所提算法分别对合成图像和利用机械手动平台上由工业相机采集的实际矩形零件图像进行测试。

4.1 合成图像的测试结果

合成图像如图7(a)和图7(b)所示,使用所提算法对合成图像1和图像2进行测试,测试结果如图7(c)和图7(d)所示,检测结果的对比如表1所示。从图7表1可以看到,利用所提算法检测图7(a)和图7(b)的合成图像,检测的准确率为100%,且最大耗费时长小于95 ms。图像测试的过程中,采用的参数b/4,c=5,m=2,n=3。

表 1. 合成图像的检测结果对比

Table 1. Comparison of detection results of composite images

ImageImagesize /(pixel×pixel)Timeconsuming /msNumber ofrectanglesobtained
Synthetic image 1404×570166
Synthetic image 2782×512928

查看所有表

4.2 实际矩形零件图像的测试结果

由工业相机采集得到实际矩形零件图像。系统配置:面阵工业相机,型号为A3600MG18,620万像素,GigE接口;镜头为JHHF0420-5M。实验室的光源条件为环形光源。算法运行环境及硬件:MATLAB R2015b,i7-4790 CPU,8.00 GB内存,64位操作系统。

使用由千兆网工业相机采集的三组实际矩形零件图像来验证所提算法的检测准确度、速度以及精度,结果如图8~10所示。分别使用文献[ 2]和所提算法对矩形零件1和2进行测试,结果如图8图9所示,检测结果对比如表2所示;使用文献[ 8]和所提算法对矩形零件3进行测试,结果如图10所示。检测矩形的中心坐标为(122.463,126.233),长为195.380 pixel,宽为100.253 pixel,倾角为8.025°。实际矩形图像的中心坐标为(122.000,126.000),长为195.000 pixel,宽为100 pixel,倾角为8°。采用的参数b=π/4,c=6,m=1,n=2。采集大小为3072 pixel×2048 pixel的80幅实际矩形图像,对其进行分析,可以得到所提算法的平均耗时为229.75 ms,正确次数为80次,准确率为100%。

图 7. 合成图像及矩形检测的结果。(a)合成图像1;(b)合成图像2;(c)合成图像1的检测结果;(d)合成图像2的检测结果

Fig. 7. Results of composite image and rectangle detection. (a) Composite image 1; (b) composite image 2; (c) detection result of composite image 1; (d) detection result of composite image 2

下载图片 查看所有图片

图 8. 不同算法对矩形零件1的检测结果。(a)矩形零件1;(b)文献[ 2];(c)所提算法

Fig. 8. Detection results of rectangular part 1 by different algorithms. (a) Rectangular part 1; (b) Ref. [2]; (c) proposed algorithm

下载图片 查看所有图片

表 2. 所提算法和文献[ 2]的检测结果对比较

Table 2. Comparison of detection results of proposed algorithm and Ref. [2]

ResultRef. [2]Proposed algorithmActual information
Image size /(pixel×pixel)3072×20483072×2048
Time /ms2600352
Center coordinates of 1st rectangle(214.000,476.000)(213.507,474.272)(213.000,474.000)
Length /pixel145.278145.729145.000
Width /pixel129.817131.833131.000
Inclination /(°)5.9625.9166.000
Center coordinates of 2nd rectangle(233.000,314.000)(232.308,313.049)(232.000,313.000)
Length /pixel76.03879.72379.000
Width /pixel60.37366.15965.000
Inclination /(°)-29.620-29.144-29.000
Center coordinates of 3rd rectangle(361.000,505.000)(359.962,505.074)(360.000,505.000)
Length /pixel125.536129.721128.000
Width /pixel73.17679.11978.000
Inclination /(°)22.68022.50422.000
Center coordinates of 4th rectangle(395.000,373.000)(394.437,373.050)(394,373)
Length /pixel123.136142.962142.000
Width /pixel111.945135.127133.000
Inclination /(°)37.38034.48534.000

查看所有表

图 9. 不同算法对矩形零件2的检测结果。(a)矩形零件2;(b)文献[ 2];(c)所提算法

Fig. 9. Detection results of rectangular part 2 by different algorithms. (a) Rectangular part 2; (b) Ref. [2]; (c) proposed algorithm

下载图片 查看所有图片

图 10. 不同算法对矩形零件3的检测结果。(a)矩形零件3;(b)文献[ 8];(c)所提算法

Fig. 10. Detection results of rectangular part 3 by different algorithms. (a) Rectangular part 3; (b) Ref. [8]; (c) proposed algorithm

下载图片 查看所有图片

4.3 算法性能比较

通过分析检测结果可知,所提算法的检测速度是Hough矩形检测算法的7.4倍;由于采用亚像素轮廓算法,矩形图像中心位置的最大定位误差为(0.507 pixel,0.272 pixel),测得矩形长度的平均误差为1.034 pixel,宽度的平均误差为1.310 pixel,倾角的平均误差为0.304°,利用文献[ 2]算法得到的长度、宽度以及倾角误差分别为6.142 pixel、7.922 pixel和1.179°。从图10可以看到,在这种情况下Hough算法出现误检的现象,所提算法的精度以及准确率均优于文献[ 8]。文献[ 8]受到角点信息检测不准确的干扰,导致检测出多余矩形。所提算法未涉及角点信息的提取,所以相对于文献[ 8],误检的次数减少。分析可知所提算法的时间复杂度为o(n),文献[ 8]的时间复杂度为o(n2),所以所提算法的执行速度较快。

所提算法通过调整b,c,m,n值可以快速、准确地识别矩形。即使是复杂的矩形图形或零件,也可以准确地检测矩形的中心位置并取得很好的精度,但缺点是检测过程中的cmn值受到零件尺寸的影响,不同批次的检测零件的尺寸波动较大,需及时调整取值。所提算法对于检测精度、速度和准确率要求高的场合有较高的适应性。

5 结论

为了实现快速而准确地识别、定位矩形,提出一种快速、高精度的矩形检测算法。实验结果表明:该矩形检测算法能够高效、高精度和高准确率地实现矩形的识别和定位。实验结果显示所提算法的检测速度为Hough矩形检测算法的7.4倍,最大中心定位误差为(0.507 pixel,0.272 pixel)、长度的平均误差为1.034 pixel,宽度的平均误差1.310 pixel,倾角的平均误差为0.304°,准确率、精度以及速度相对文献[ 2]和文献[ 8]有所提高,也减少误检情况的发生。所提算法能够满足高精度、高效和高准确率的矩形图元检测,具有一定的工业应用价值。

参考文献

[1] Illingworth J, Kittler J. A survey of the Hough transform[J]. Computer Vision, Graphics, and Image Processing, 1988, 44(1): 87-116.

[2] Jung CR, SchrammR. Rectangle detection based on a windowed Hough transform[C]∥Proceedings of 17th Brazilian Symposium on Computer Graphics and Image Processing, October 20, 2004, Curitiba, Brazil. New York: IEEE, 2004: 113- 120.

[3] 李强兵, 刘文予. 基于Hough变换的快速矩形检测算法[J]. 微计算机信息, 2007, 23(31): 248-250.

    Li Q B, Liu W Y. Fast rectangle detect base on Hough transform[J]. Control & Automation, 2007, 23(31): 248-250.

[4] 王红军, 陈临强, 王磊. 机器视觉中矩形几何提取和校正[J]. 机电工程, 2010, 27(4): 95-96, 111.

    Wang H J, Chen L Q, Wang L. Extraction and correction of rectangle geometric date in machine vision[J]. Mechanical & Electrical Engineering Magazine, 2010, 27(4): 95-96, 111.

[5] Zhu Y X, Carragher B, Mouche F, et al. Automatic particle detection through efficient Hough transforms[J]. IEEE Transactions on Medical Imaging, 2003, 22(9): 1053-1062.

[6] Xu L, Oja E, Kultanen P. A new curve detection method: randomized Hough transform (RHT)[J]. Pattern Recognition Letters, 1990, 11(5): 331-338.

[7] Kiryati N, Kälviäinen H, Alaoutinen S. Randomized or probabilistic Hough transform: unified performance evaluation[J]. Pattern Recognition Letters, 2000, 21(13/14): 1157-1164.

[8] 张从鹏, 魏学光. 基于Harris角点的矩形检测[J]. 光学精密工程, 2014, 22(8): 2259-2266.

    Zhang C P, Wei X G. Rectangle detection based on Harris corner[J]. Optics and Precision Engineering, 2014, 22(8): 2259-2266.

[9] Rafael CG, Richard EW. 数字图像处理[M]. 3版. 北京: 电子工业出版社, 2010.

    Rafael CG, Richard EW. Digital image processing[M]. 3rd ed. Beijing: Publishing House of Electronics Industry, 2010.

[10] 毛峡, 赵兴圆, 李磊. 一种基于模糊融合的直线提取算法[J]. 红外与激光工程, 2006, 35(s4): 13-18.

    Mao X, Zhao X Y, Li L. Algorithm of extracting straight lines based on fuzzy fusion[J]. Infrared and Laser Engineering, 2006, 35(s4): 13-18.

[11] Xu GS. Sub-pixel edge detection based on curve fitting[C]∥2009 Second International Conference on Information and Computing Science, May 21-22, 2009, Manchester, UK. New York: IEEE, 2009: 373- 375.

[12] 舒启林, 山博. 改进canny算子的亚像素定位算法[J]. 机械设计与制造, 2018( 10): 165- 168.

    Shu QL, ShanB. Sub-pixel localization algorithm based on modified canny operator[J]. Machinery Design & Manufacture, 2018( 10): 165- 168.

[13] Rosin P L, West G A. Segmentation of edges into lines and arcs[J]. Image and Vision Computing, 1989, 7(2): 109-114.

[14] Tao WB, Tian JW, LiuJ. A new approach to extract rectangular building from aerial urban images[C]∥6th International Conference on Signal Processing, August 26-30, 2002, Beijing, China. New York: IEEE, 2002: 143- 146.

[15] WangC. Fast method for rectangle detection[C]∥Proceedings of the 2016 6th International Conference on Machinery, June 11-12, 2016, Tianjin, China.Paris: Atlantis Press, 2016.

路鹭, 杨炯, 梁杰, 蒋玉林. 一种快速高精度的矩形检测算法[J]. 激光与光电子学进展, 2020, 57(18): 181002. Lu Lu, Jiong Yang, Jie Liang, Yulin Jiang. Fast and High-Precision Rectangle Detection Algorithm[J]. Laser & Optoelectronics Progress, 2020, 57(18): 181002.

引用该论文: TXT   |   EndNote

相关论文

加载中...

关于本站 Cookie 的使用提示

中国光学期刊网使用基于 cookie 的技术来更好地为您提供各项服务,点击此处了解我们的隐私策略。 如您需继续使用本网站,请您授权我们使用本地 cookie 来保存部分信息。
全站搜索
您最值得信赖的光电行业旗舰网络服务平台!