基于自适应划分网格的IAA直线检测方法与流程

文档序号:16323115发布日期:2018-12-19 05:47阅读:448来源:国知局
基于自适应划分网格的IAA直线检测方法与流程

本发明属于图像处理技术领域,具体涉及一种基于自适应划分网格的iaa直线检测方法。

背景技术

直线检测是机器视觉和图像处理领域中广泛存在的问题,例如自动驾驶中马路上双黄线检测、直拉硅单晶生长过程中的晶体形状检测等。霍夫变换是直线检测领域较为常用的方法,该方法虽然精度较高,但实时性较差。利用迭代自适应法(iterativeadaptiveapproach,iaa)检测直线的方法近年来被学者提出,具有较高的精度和鲁棒性,但迭代自适应法最大的问题是检测分辨率和算法复杂度相矛盾。如果检测分辨率要求高,需要划分大量的网格,这样就会增加算法的复杂度,影响算法的实时性。因此,如何解决iaa检测直线的检测分辨率和算法复杂度的矛盾就显得极为重要了。



技术实现要素:

本发明的目的是提供一种基于自适应划分网格的iaa直线检测方法,解决了现有iaa直线检测技术中存在的检测分辨率与算法实时性相矛盾的问题。

本发明所采用的技术方案是,基于自适应划分网格的iaa直线检测方法,具体按照以下步骤实施:

步骤1、将图像传感器拍摄的图像进行图像分割和边缘提取得到仅含直线的二值化图像d,即直线所在点像素值为1,背景点为0;

步骤2、利用预先定义的向量右乘二值图像d,转换为虚拟均匀线性阵列接收的单快拍远场信号,在入射角范围内先均匀划分少量网格,利用iaa对单快拍远场信号进行检测,得到功率谱最大的角度;

步骤3、在步骤2得到的角度附近根据倾斜角检测分辨率的要求划分网格,再次使用iaa方法对单快拍远场信号进行检测,根据已知直线的数量得到功率谱最大的角度的个数和角度值,从而求得所有直线的倾斜角;

步骤4、根据步骤3求得的倾斜角构造虚拟均匀线性阵列接收的单快拍近场信号,在直线偏移量范围内划分少量网格,利用iaa对单快拍近场信号进行检测,得到每个倾斜角下功率谱最大的偏移量,在每个倾斜角下刚刚检测到的偏移量附近,根据分辨率的要求划分网格,再次使用iaa方法对单快拍近场信号进行检测,得到每个倾斜角下功率谱最大的偏移量,从而求得每个倾斜角对应的偏移量。

本发明的特点还在于,

步骤1具体如下:

设二值化图像d大小为m×m,m为正整数,图像左上角的点定义为坐标原点,水平向右方向为x轴正方向,垂直向下为y轴正方向,二值化图像d中有d条直线,d为正整数,直线上的点坐标为(x,y),x,y均为整数,0≤x≤m-1,0≤y≤m-1,直线倾斜角为θ=θ1,θ2,...,θd,其中θ1,θ2,...,θd为[-90°,90°]范围内的实数,直线偏移量为其中为[-m,m]范围内的整数,θ与一一对应,即当θ=θi时,i=1,2,...,d,则直线方程为

步骤2具体按照以下步骤实施:

步骤2.1、定义复数向量u1=[1,e,ej2μ,,...,ej(m-1)μ]t,其中j为虚数单位,μ为预先设定的参数,对二值化图像d根据下式进行转换:

式中,

步骤2.2、使用iaa搜索倾斜角范围,假设d条直线的倾斜角范围均为[-90°,90°],首先将[-90°,90°]划分为n1个网格,n1由倾斜角检测分辨率决定,取[1,50]内的整数,则第v1个网格上的角度取值表示如下,其中v1=1,2,...,n1:

则基于上述公式构造的角度集为则令信号z在角度集上写为

z=a1s1+n1(4)

式中,为角度集对应的信号幅值,n1为未知噪声;

步骤2.3、设置迭代次数为l,l为10~20之间的整数,利用下式对进行初始化:

同时令w1=1;

步骤2.4、根据下式计算

然后根据下式计算p1(w1-1)

式中,

是以为对角线的方阵;

再根据下式计算r1(w1-1)

最后根据下式计算

步骤2.5、令w1=w1+1,如果w1≤l,则转到步骤2.4;否则根据式(6)计算然后搜索中所有大于pth的峰值对应的网格k为满足条件的峰值数量,pth为预先设定的阈值,pth取中最大峰值的0.1~0.9倍。

步骤3具体按照以下步骤实施:

步骤3.1、第二次使用iaa搜索精确的角度值,基于所述步骤2.5搜索到的角度集设定区间,再次划分间隙均匀的网格,设定区间为其中,i'=1,...,k,δθ为预先设定的参数,设定网格数量为n2,n2由倾斜角检测分辨率决定,选取中第v2个网格上的角度取值表示如下,其中,v2=1,2,...,n2,

则基于上述公式构造的角度集为:

信号z在角度集上写为:

z=a2s2+n1(11)

式中,为角度集对应的信号幅值;

步骤3.2、利用下式对进行初始化:

同时令w2=1;

步骤3.3、根据下式计算

然后根据下式计算p2(w2-1):

式中,

为以为对角线的方阵;

再根据下式计算r2(w2-1):

最后根据下式计算

步骤3.4、令w2=w2+1,如果w2≤l,则转到步骤3.3;否则根据式(13)计算搜索中最大的前d个峰值对应的网格上的角度为d条直线对应的倾斜角θ=θ1,θ2,...,θd的估计值。

步骤4具体按照以下步骤实施:

步骤4.1、预先设定参数μ1,且μ1≠μ,再次将二值图像d进行转换:

式中,d(x,y)为二值图像d中(x,y)坐标点的像素值;

式中,

是以为对角线的方阵,

步骤4.2、第三次使用iaa搜索偏移量范围,假设每一个对应的偏移量范围均为[-m,m],定义网格数量n3,n3由偏移量检测分辨率决定,取[1,50]内的正整数,在[-m,m]上根据下式产生对应网格上的偏移量取值表示如下,其中v3=1,2,...,n3:

则基于上述公式构造的每一个倾斜角对应的偏移量集为则令

定义b=[b1,b2,...,bd],则r写为

r=bs3+n2(21)

式中,n2为噪声;

步骤4.3、利用下式对进行初始化

同时令w3=1;

步骤4.4、根据下式计算

然后根据下式计算p3(w3-1):

式中,

是以为对角线的方阵;

再根据下式计算r3(w3-1);

r3(w3-1)=bp3(w3-1)bh(25)

最后根据下式计算

步骤4.5、令w3=w3+1,如果w3≤l,则转到步骤4.4;否则根据式(23)计算搜索每一组中最大峰值对应的偏移量

步骤4.6、第四次使用iaa搜索偏移量精确值,对步骤4.5搜索到的偏移量设定区间再次划间隙均匀的网格,为预先设定的偏移量范围,设定网格数量为n4,n4由偏移量检测分辨率决定,选取上第v4个网格的偏移量取值表示如下,其中v4=1,2,...,n4:

则基于上述公式构造的对应的偏移量集为则令b′=[b′1,b′2,...,b′d],信号r在偏移量集上写为

r=b's4+n2(28)

式中,

步骤4.7、利用下式对进行初始化

同时令w4=1;

步骤4.8、根据下式计算p″iv4(w4-1)

p″iv4(w4-1)=|s″iv4(w4-1)|2(30)

然后根据下式计算p4(w4-1)

式中,

是以为对角线的方阵;

再根据下式计算r4(w4-1)

r4(w4-1)=b'p4(w4-1)b'h(32)

最后根据下式计算

步骤4.9、令v4=v4+1,如果v4≤l,则转到步骤4.8;否则根据式(30)计算p″iv4(w4-1),搜索每一组中最大峰值对应的偏移量将最终得到的每条直线的倾斜角和偏移量输出

本发明的有益效果是,基于自适应划分网格的iaa直线检测方法,首先将图像传感器拍摄的图像进行图像分割和边缘提取得到仅含直线的二值化图像;然后利用预先定义的向量右乘二值图像,转换为虚拟均匀线性阵列接收单快拍远场信号,在入射角范围内先均匀划分少量网格,利用iaa对单快拍远场信号进行检测,得到功率谱最大的角度,再在此角度附近根据倾斜角分辨率的要求划分网格,再次使用iaa方法对单快拍远场信号进行检测,根据已知直线的数量得到功率谱最大的角度的个数和角度值,从而求得所有直线的角度;再根据求得角度构造虚拟均匀线性阵列接收单快拍近场信号,在直线偏移量范围内划分少量网格,利用iaa对单快拍近场信号进行检测,得到每个角度下功率谱最大的偏移量,在每个角度下偏移量附近根据分辨率的要求划分网格,再次使用iaa方法对单快拍近场信号进行检测,根据每个角度下的直线数量得到功率谱最大的偏移量的个数和偏移量,从而求得每个角度下所有直线的偏移量,在保持算法检测分辨率不变的前提下,大大降低了划分网格的数量,从而提高了算法的实时性。

附图说明

图1是本发明基于自适应划分网格的iaa直线检测方法图像中一条直线模型的示意图;

图2是本发明基于自适应划分网格的iaa直线检测方法仅包含一条直线的图像;

图3是本发明基于自适应划分网格的iaa直线检测方法包含两条直线的图像。

具体实施方式

下面结合附图和具体实施方式对本发明进行详细说明。

本发明所采用的技术方案是,基于自适应划分网格的iaa直线检测方法,具体按照以下步骤实施:

步骤1、将图像传感器拍摄的图像进行图像分割和边缘提取得到仅含直线的二值化图像d,即直线所在点像素值为1,背景点为0,具体如下:

设二值化图像d大小为m×m,m为正整数,如图1所示,图像左上角的点定义为坐标原点,水平向右方向为x轴正方向,垂直向下为y轴正方向,二值化图像d中有d条直线,d为正整数,直线上的点坐标为(x,y),x,y均为整数,0≤x≤m-1,0≤y≤m-1,直线倾斜角为θ=θ1,θ2,...,θd,其中θ1,θ2,...,θd为[-90°,90°]范围内的实数,直线偏移量为其中为[-m,m]范围内的整数,θ与一一对应,即当θ=θi时,i=1,2,...,d,则直线方程为

步骤2、利用预先定义的向量右乘二值图像d,转换为虚拟均匀线性阵列接收的单快拍远场信号,在入射角范围内先均匀划分少量网格,利用iaa对单快拍远场信号进行检测,得到功率谱最大的角度,具体按照以下步骤实施:

步骤2.1、定义复数向量u1=[1,e,ej2μ,,...,ej(m-1)μ]t,其中j为虚数单位,μ为预先设定的参数,对二值化图像d根据下式进行转换:

式中,

步骤2.2、使用iaa搜索倾斜角范围,假设d条直线的倾斜角范围均为[-90°,90°],首先将[-90°,90°]划分为n1个网格,n1由倾斜角检测分辨率决定,取[1,50]内的整数,则第v1个网格上的角度取值表示如下,其中v1=1,2,...,n1:

则基于上述公式构造的角度集为则令信号z在角度集上写为

z=a1s1+n1(4)

式中,为角度集对应的信号幅值,n1为未知噪声;

步骤2.3、设置迭代次数为l,l为10~20之间的整数,利用下式对进行初始化:

同时令w1=1;

步骤2.4、根据下式计算

然后根据下式计算p1(w1-1)

式中,

是以为对角线的方阵;

再根据下式计算r1(w1-1)

最后根据下式计算

步骤2.5、令w1=w1+1,如果w1≤l,则转到步骤2.4;否则根据式(6)计算然后搜索中所有大于pth的峰值对应的网格k为满足条件的峰值数量,pth为预先设定的阈值,pth取中最大峰值的0.1~0.9倍;

步骤3、在步骤2得到的角度附近根据分辨率的精度要求划分网格,再次使用iaa方法对单快拍远场信号进行检测,根据已知直线的数量得到功率谱最大的角度的个数和角度值,从而求得所有直线的倾斜角,具体按照以下步骤实施:

步骤3.1、第二次使用iaa搜索精确的角度值,基于所述步骤2.5搜索到的角度集设定区间,再次划分间隙均匀的网格,设定区间为其中,i'=1,...,k,δθ为预先设定的参数,设定网格数量为n2,n2由倾斜角检测分辨率决定,选取中第v2个网格上的角度取值表示如下,其中,v2=1,2,...,n2,

则基于上述公式构造的角度集为:

信号z在角度集上写为:

z=a2s2+n1(11)

式中,为角度集对应的信号幅值;

步骤3.2、利用下式对进行初始化:

同时令w2=1;

步骤3.3、根据下式计算

然后根据下式计算p2(w2-1):

式中,

为以为对角线的方阵;

再根据下式计算r2(w2-1):

最后根据下式计算

步骤3.4、令w2=w2+1,如果w2≤l,则转到步骤3.3;否则根据式(13)计算搜索中最大的前d个峰值对应的网格上的角度为d条直线对应的倾斜角θ=θ1,θ2,...,θd的估计值;

步骤4、根据步骤3求得的倾斜角构造虚拟均匀线性阵列接收的单快拍近场信号,在直线偏移量范围内划分少量网格,利用iaa对单快拍近场信号进行检测,得到每个倾斜角下功率谱最大的偏移量,在每个倾斜角下刚刚检测到的偏移量附近,根据分辨率的精度要求划分网格,再次使用iaa方法对单快拍近场信号进行检测,得到每个倾斜角下功率谱最大的偏移量,从而求得每个倾斜角对应的偏移量,具体按照以下步骤实施:

步骤4.1、预先设定参数μ1,且μ1≠μ,再次将二值图像d进行转换:

式中,d(x,y)为二值图像d中(x,y)坐标点的像素值;

式中,

是以为对角线的方阵,

步骤4.2、第三次使用iaa搜索偏移量范围,假设每一个对应的偏移量范围均为[-m,m],定义网格数量n3,n3由偏移量检测分辨率决定,取[1,50]内的正整数,在[-m,m]上根据下式产生对应网格上的偏移量取值表示如下,其中v3=1,2,...,n3:

则基于上述公式构造的每一个倾斜角对应的偏移量集为则令

定义b=[b1,b2,...,bd],则r写为

r=bs3+n2(21)

式中,n2为噪声;

步骤4.3、利用下式对进行初始化

同时令w3=1;

步骤4.4、根据下式计算

然后根据下式计算p3(w3-1):

式中,

是以为对角线的方阵;

再根据下式计算r3(w3-1);

r3(w3-1)=bp3(w3-1)bh(25)

最后根据下式计算

步骤4.5、令w3=w3+1,如果w3≤l,则转到步骤4.4;否则根据式(23)计算搜索每一组中最大峰值对应的偏移量

步骤4.6、第四次使用iaa搜索偏移量精确值,对步骤4.5搜索到的偏移量设定区间再次划间隙均匀的网格,为预先设定的偏移量范围,设定网格数量为n4,n4由偏移量检测分辨率决定,选取上第v4个网格的偏移量取值表示如下,其中v4=1,2,...,n4:

则基于上述公式构造的对应的偏移量集为则令b′=[b′1,b′2,...,b′d],信号r在偏移量集上写为

r=b's4+n2(28)

式中,

步骤4.7、利用下式对进行初始化

同时令w4=1;

步骤4.8、根据下式计算p″iv4(w4-1)

p″iv4(w4-1)=|s″iv4(w4-1)|2(30)

然后根据下式计算p4(w4-1)

式中,

是以为对角线的方阵;

再根据下式计算r4(w4-1)

r4(w4-1)=b'p4(w4-1)b'h(32)

最后根据下式计算

步骤4.9、令v4=v4+1,如果v4≤l,则转到步骤4.8;否则根据式(30)计算p″iv4(w4-1),搜索每一组中最大峰值对应的偏移量将最终得到的每条直线的倾斜角和偏移量输出

实施例1

利用本发明对只包含1条直线的图像进行检测,图像如图2所示,图像大小为256×256,即m=256,直线的倾斜角θ=18°,偏移量

首先,设置搜索倾斜角θ的相关初值:d=1,μ=0.6,第一次倾斜角网格数n1=19,pth为最大峰值的1/3,l=12,δθ=10°,第二次倾斜角网格数量为n2=21,倾斜角检测分辨率达到1°;

其次,设置搜索偏移量的相关初值:μ1=0.004,第一次偏移量网格数n3=52,l=12,第二次偏移量网格数量为n4=21,偏移量分辨率达到1像素点。

表1为本发明与改进前的iaa的检测结果,iaa的角度设定分辨率和偏移量设定分辨率与本发明相同,倾斜角为1°,偏移量为1像素点,角度和偏移量搜索范围与本发明均相同,运行环境也与本发明相同。由表1的结果可以看出来,在检测单条直线时,本发明在保持iaa检测直线分辨率不变的前提下,大大提高了运行速度,运行速度提高达83.31%。

表1本发明与改进前的iaa对单条直线的检测结果

实施例2

利用本发明对只包含2条直线的图进行检测,图像如图3所示,图像大小为256×256,即m=256,直线1的倾斜角θ1=36°,偏移量直线2的倾斜角θ2=-18°,偏移量

首先,设置搜索倾斜角θ的相关初值:d=2,μ=0.6,第一次倾斜角网格数n1=19,pth为最大峰值的1/3,l=12,δθ=10°,第二次倾斜角网格数量为n2=21,倾斜角检测分辨率达到1°;

其次,设置搜索偏移量的相关初值:μ1=0.004,第一次偏移量网格数n3=52,l=12,第二次偏移量网格数量为n4=21,偏移量分辨率达到1像素点。

表2为本发明与改进前的iaa的检测结果,iaa的角度设定分辨率和偏移量设定分辨率与本发明相同,倾斜角为1°,偏移量为1像素点,角度和偏移量搜索范围与本发明均相同,运行环境也与本发明相同。由表1的结果可以看出来,在检测单条直线时,本发明在保持iaa检测直线分辨率不变的前提下,大大提高了运行速度,运行速度提高达79.30%。

表2本发明与改进前的iaa对多条直线的检测结果

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1