一种同步检测图像中平行直线和平行曲线特征的方法转让专利

申请号 : CN202110209482.1

文献号 : CN112802045B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 丁伟利王志宇华长春

申请人 : 燕山大学

摘要 :

本发明提供一种同步检测图像中平行直线和平行曲线特征的方法,其包括如下步骤:将输入图像转化为灰度图像,获取边缘图像的链条集合;将链条集合分解为直线边缘链条集合和平滑曲线边缘链条集合;并分别构建平行直线模型和平行曲线模型:根据模型分别对直线边缘链条集合和平滑曲线边缘链条集合进行处理和判断,获取到平行直线对集合和平行曲线对集合。本发明能检测图像中存在的平行结构,并能适用于多种环境场景,具有较好的灵活性和移植性,可为后续不同类型的图像检测任务提供特征依据。

权利要求 :

1.一种同步检测图像中平行直线和平行曲线特征的方法,其特征在于,其包括以下步骤:

步骤1:将输入图像转化为灰度图像,获取边缘图像的链条集合E={e1,e2,...,em};

步骤2:将链条集合E={e1,e2,...,em}分解为直线边缘链条集合L={L1,L2,...,Ll}和平滑曲线边缘链条集合C={C1,C2,...,CC};

对每一条提取的连续边缘链条从其第h个像素点开始依次对边缘像素点局部进行角点检测和主方向估计,将边缘链条在角点处断开,并获取边缘链条方向编码数据,接着对光滑的边缘链条进行全局处理,从而将光滑的边缘链条分为两类,即直线边缘链条和平滑曲线边缘链条;

步骤3:对直线边缘链条集合L={L1,L2,...,Ll}进行处理和判断,获取平行直线对集合PL;

构建平行直线模型:

在笛卡尔坐标中,将满足如下准则的一对直线L1、L2定义为平行直线:其中, 为L1的角度, 为L2的角度,λθ为角度差阈值; 为斜率相似性准则;k1、k2表示L1端点,k3、k4表示L2端点,∠k4k1k2为端点k4、k1、k2组成的角度且k1为顶点,∠k3k2k1为端点k3、k2、k1组成的角度且k2为顶点, 为空间重叠性准则,当L1、L2之间夹角满足∠k4k1k2<90°与∠k3k2k1<90°时,说明L1、L2在空间中相互垂直投影具有重叠部分,即满足空间重叠性准则;

根据构建的平行直线模型对直线边缘链条集合L={L1,L2,...,Ll}进行平行性判断;获得直线边缘链条的角度信息,利用该信息判断两边缘链条的斜率差异是否小于所设角度差阈值λθ,若小于所设角度差阈值λθ,则进一步判断这两直线边缘链条在空间上相互投影是否具有重叠部分,若存在,则说明两直线边缘链条是平行的;

步骤4:对平滑曲线边缘链条集合C={C1,C2,...,CC}进行处理和判断,获取平行曲线对集合PC;

构建平行曲线模型:

在笛卡尔坐标系中,将满足如下准则的一对曲线C1与曲线C2定义为平行曲线:对于一对曲线C1与C2,在曲线C1上任意两点p1、p2,在曲线C2上总存在与其切线方向相同的对应点q1、q2,那么应当满足如下准则:其中,p1p2为p1、p2的连接线,q1q2为q1、q2的连接线,||p1p2‑q1q2||2为直线p1p2到直线q1q2的距离; 为直线p1p2的角度, 为直线q1q2的角度, 为角度差阈值;向量v1为直线p1p2所对应的弧段中心指向直线p1p2中心所形成的向量,向量v2为直线q1q2所对应的弧段中心指向直线q1q2中心所形成的向量,θv1v2为向量v1与向量v2的夹角;min||p1p2‑q1q2||2为最近邻准则、 为余弦相似性准则、θv1v2<90°为凹凸一致性准则;

根据构建的平行曲线模型对平滑曲线边缘链条集合C={C1,C2,...,CC}进行平行性判断;首先获得最近邻的曲线边缘链条对,然后分别对曲线边缘链条进行多边形化,由此获得对应弧线段的直线编码;将两曲线的直线编码数据分别进行相似性匹配,并对相似性较高的两直线段所对应的曲线段进行凹凸一致性的判断,若具有一致的凹凸性,则说明两直线段所对应的曲线段平行。

2.根据权利要求1所述的同步检测图像中平行直线和平行曲线特征的方法,其特征在于,所述步骤1具体步骤如下:

步骤1.1:将输入图像转化为灰度图像;

步骤1.2:对灰度图像进行平滑处理;

步骤1.3:获取平滑灰度图像的梯度幅值图以及其边缘方向图;

步骤1.4:获取锚点图像;

步骤1.5:通过智能路由进行锚点连接,绘制最终的边缘图像,获取边缘图像的链条集合E={e1,e2,...,em}。

3.根据权利要求1所述的同步检测图像中平行直线和平行曲线特征的方法,其特征在于,所述步骤2具体步骤如下:

步骤2.1:确定角点检测和主方向判断标准;

角点检测:对于边缘上任意像素(xj,yj)选择其左右相邻的h‑1个边缘像素点组成一个小邻域边缘像素数据;获取邻域像素的协方差矩阵,计算协方差矩阵S1的特征值λs11、λs12(λs11>λs12),若最小特征值λs12小于所设阈值Th1,则说明该边缘像素点邻域能拟合为直线段;若最小特征值λs12大于所设阈值Th1,则说明该边缘邻域像素点不能拟合为直线段,其中,(xj,yj)即为要检测的角点,将边缘链条在此处断开;

主方向:

或 θj∈(0,180]

其中,θj为第j个像素邻域的主方向,λs11、λs12(λs11>λs12)为第j个像素邻域协方差矩阵的特征值,xj为第j个像素邻域中第i个像素横坐标,为第j个像素邻域中2h‑1个像素横坐标均值,yj为第j个像素邻域中第i个像素纵坐标, 为第j个像素邻域中2h‑1个像素纵坐标T

均值,n为小邻域边缘像素点数,Xs为n个像素的零均值化横坐标矩阵,Xs为n个像素的零均T

值化横坐标转置矩阵,Ys为n个像素的零均值化纵坐标矩阵,Ys为n个像素的零均值化纵坐标转置矩阵;

已知该邻域像素曲率与其两个特征值的乘积成正比关系:2

κsj∝λs11λs12

其中,κsj为第j个像素邻域的曲率,因此曲率近似表示为:κsj=λs11λs12

步骤2.2:根据步骤2.1对所有边缘链条e1,e2,...,em进行角点检测,并依次计算每个像素邻域方向角度,将边缘链条在角点处断开,获得一系列光滑的边缘链条方向编码数据集SE={se1,se2,...,sen},其中,sei=(xi,yi,θi,ksi);

步骤2.3:对每一条边缘链条整体进行直线边缘和曲线边缘的判断,将光滑的边缘链条分别输入直线边缘链条集合L以及曲线边缘链条集合C;

步骤2.4:将曲线边缘链条集合C中的光滑曲线边缘链条进行曲率变化统计,若有一组连续的曲线边缘像素曲率出现突变,且从曲线起始点到曲率突变点之间的边缘长度大于20~30像素,那么将根据步骤2.3判断这段曲线边缘像素是否能够拟合为直线边缘链条,若满足将该段曲线边缘像素补充到直线边缘链条集合L;

步骤2.5:遍历所有的光滑边缘链条,根据步骤2.3进行分类,并根据步骤2.4对直线边缘链条进行补充,获得最终的直线边缘链条集合L和平滑曲线边缘链条集合C。

4.根据权利要求1所述的同步检测图像中平行直线和平行曲线特征的方法,其特征在于,所述步骤3具体步骤如下:

步骤3.1:构建平行直线模型:

在笛卡尔坐标中,将满足如下准则的一对直线L1、L2定义为平行直线:其中, 为L1的角度, 为L2的角度,λθ为角度差阈值; 为斜率相似性准则; 为空间重叠性准则;

步骤3.2:根据步骤3.1构建的平行直线模型,首先对输入的直线边缘链条集合L进行斜率相似性判断;

步骤3.3:根据步骤3.1的平行直线模型,满足斜率相似性准则的直线对进一步判断是否满足空间重叠性准则;两条斜率相似的直线之间夹角若满足∠k4k1k2<90°与∠k3k2k1<

90°,则说明两直线在空间上相互投影具有重叠部分,即两直线的平行是有效的,输入平行直线集合PL;

步骤3.4:遍历直线边缘链条集合L提取满足上述步骤3.2与3.3的直线对,获得最终的平行直线对集合PL。

5.根据权利要求1所述的同步检测图像中平行直线和平行曲线特征的方法,其特征在于,所述步骤4具体步骤如下:

步骤4.1:构建平行曲线模型:

在笛卡尔坐标系中,将满足如下准则的一对曲线C1与曲线C2定义为平行曲线:对于一对曲线C1与C2,在曲线C1上任意两点p1、p2,在曲线C2上总存在与其切线方向相同的对应点q1、q2,那么应当满足如下准则:其中,p1p2为p1、p2的连接线,q1q2为q1、q2的连接线,||p1p2‑q1q2||2为直线p1p2到直线q1q2的距离; 为直线p1p2的角度, 为直线q1q2的角度, 为角度差阈值;向量v1为直线p1p2所对应的弧段中心指向直线p1p2中心所形成的向量,向量v2为直线q1q2所对应的弧段中心指向直线q1q2中心所形成的向量,θv1v2为向量v1与向量v2的夹角;min||p1p2‑q1q2||2为最近邻准则、 为余弦相似性准则、θv1v2<90°为凹凸一致性准则;

步骤4.2:对每条曲线边缘链条进行顺序标号;按照曲线的存储顺序,分别将每个曲线所对应像素点赋值为当前曲线的顺序标号;

步骤4.3:选取每条曲线边缘链条上的局部曲率最大点;利用步骤2.3获得曲线边缘链条的曲率编码数据,曲率大于相邻曲线边缘像点曲率的点即为所需的局部曲率最大点;

步骤4.4:获取最近邻曲线边缘链条对;

步骤4.5:分别对最近邻曲线边缘链条对进行曲线多边形化,获得对应的直线编码数据;

步骤4.6:将曲线多边形化后的最近邻曲线对进行余弦相似性度量;

步骤4.7:对满足余弦相似的曲线段进行凹凸一致性的判断;

步骤4.8:曲线边缘链条段的匹配与融合,获得最终的平行曲线对,并将该曲线对输入平行曲线对集合PC;

步骤4.9:对所有最近邻平滑曲线对进行上述步骤检测,获得最终的平行曲线对集合PC。

6.根据权利要求3所述的同步检测图像中平行直线和平行曲线特征的方法,其特征在于,所述步骤2中h取值5。

7.根据权利要求3所述的同步检测图像中平行直线和平行曲线特征的方法,其特征在于,所述步骤2中阈值Th1取值0.25。

说明书 :

一种同步检测图像中平行直线和平行曲线特征的方法

技术领域

[0001] 本发明涉及视觉特征提取和视觉感知技术领域,具体涉及一种同步检测图像中平行直线和平行曲线特征的方法。

背景技术

[0002] 在计算机视觉特征提取过程中,如何提取到被检测物体的有效特征一直是众多计算机视觉任务的重要环节。平行性作为格式塔组织原则的重要组成部分,是人类视觉感知
周围世界三维结构信息的重要基本特征。与纷繁的线段相比,平行线含有更为丰富的语义
信息,是对图像中人造场景或物体进行高级描述的基础,也是人类估计景深等信息的关键
要素,可为识别具有丰富平行结构的物体提供良好的线索支持。因此平行线的检测工作在
计算机视觉中起着至关重要的作用,如:消失点的检测、车道线检测、文本定位、遥感道路检
测等。
[0003] 目前平行线的检测方法主要有针对于平行直线的检测、针对于平行曲线的检测、利用平行结构进行平行直线和平行曲线的共同提取。平行直线的检测主要分为两类,一类
是通过将直线边缘从笛卡尔坐标系转换到极坐标系中进行表示,利用投票的原则进行平行
直线组的提取,如专利CN111141208A所提出的方法以及文献《基于Hough变换的平行直线检
测改进算法研究》所提出的方法,缺点在于易受噪声干扰且需大量的计算时间以及内存需
求。另一类是通过对边缘像素点拟合获取直线边缘轮廓,计算直线斜率进行平行线组的判
断。如专利CN106251332B所提出的方法,缺点在于对边缘像素拟合需很大的计算成本,且对
拟合后的直线边缘进行斜率的求取会存在一定误差,结果依赖于斜率判定的参数选择。平
行曲线的检测是主要是通过选择合适的曲线对,利用一系列判断准则进行曲线的提取,如
文献《Harbor Detection in Polarimetric SAR Images Based on the Characteristics 
of Parallel Curves》所提出的方法,缺点在于两方面,一方面在提取合适的曲线对时,通
过设置一个搜索窗口进行合适曲线对的搜索,这种方式依赖于搜索窗口大小的阈值设定,
会出现漏检误检的情况并需要大量的计算时间;另一方面在于忽略了曲线对之间的几何关
系。利用平行结构进行平行直线和平行曲线的共同提取,主要是通过建立平行结构模型进
行平行性判定,如文献《基于边缘检测的SAR图像平行线特征提取算法》所提出的方法,缺点
在于由于依赖于点对之间的距离信息,在复杂场景中需要较大的计算成本进行平行结构筛
选,而且真实环境中的平行关系大多为近似平行,因此参数的选取很大程度影响了最终的
检测结果。综上所述,想要检测图像中平行线特征存在如下的不足之处:
[0004] (1)检测窗口的大小依赖于阈值的设置,对于不同检测场景需用不同尺寸大小的检测窗口进行检测;
[0005] (2)依赖坐标变换的平行直线检测方法其时间复杂度和空间复杂度都很高,并且在检测过程中只能确定直线对方向,而无直线对的长度信息,即无法确认直线对的平行有
效性。
[0006] 依赖点对之间的距离信息进行平行直线以及平行曲线判断的算法时间复杂度和空间复杂度都很高,且只能对规则平行结构进行提取,对于现实生活中的类平行结构很难
成功提取。

发明内容

[0007] 本发明的目的主要是公开一种同步检测图像中平行直线和平行曲线特征的方法,它能检测图像中存在的平行结构,并能适用于多种环境场景,具有较好的灵活性和移植性,
可为后续不同类型的图像检测任务提供特征依据。
[0008] 本发明的一个方式的同步检测图像中平行直线和平行曲线特征的方法,其包括以下步骤:
[0009] 步骤1:将输入图像转化为灰度图像,获取边缘图像的链条集合E={e1,e2,...,em};
[0010] 步骤2:将链条集合E={e1,e2,...,em}分解为直线边缘链条集合L={L1,L2,...,Ll}和平滑曲线边缘链条集合C={C1,C2,...,CC};
[0011] 对每一条提取的连续边缘链条从其第h个像素点开始依次对边缘像素点局部进行角点检测和主方向估计,将边缘链条在角点处断开,并获取边缘链条方向编码数据,接着对
光滑的边缘链条进行全局处理,从而将光滑的边缘链条分为两类,即直线边缘链条和平滑
曲线边缘链条;
[0012] 步骤3:对直线边缘链条集合L={L1,L2,...,Ll}进行处理和判断,获取平行直线对集合PL;
[0013] 构建平行直线模型:
[0014] 在笛卡尔坐标中,将满足如下准则的一对直线L1、L2定义为平行直线:
[0015]
[0016] 其中, 为L1的角度, 为L2的角度,λθ为角度差阈值; 为斜率相似性准则; 为空间重叠性准则;
[0017] 根据构建的平行直线模型对直线边缘链条集合L={L1,L2,...,Ll}进行平行性判断;获得直线边缘链条的角度信息,利用该信息判断两边缘链条的斜率差异是否小于所设
阈值λθ,若小于所设阈值λθ,则进一步判断这两直线边缘链条在空间上相互投影是否具有重
叠部分,若存在,则说明两直线边缘链条是平行的;
[0018] 步骤4:对平滑曲线边缘链条集合C={C1,C2,...,CC}进行处理和判断,获取平行曲线对集合PC;
[0019] 构建平行曲线模型:
[0020] 在笛卡尔坐标系中,将满足如下准则的一对曲线C1与曲线C2定义为平行曲线:
[0021] 对于一对曲线C1与C2,在曲线C1上任意两点p1、p2,在曲线C2上总存在与其切线方向相同的对应点q1、q2,那么应当满足如下准则:
[0022]
[0023] 其中,p1p2为p1、p2的连接线,q1q2为q1、q2的连接线,||p1p2‑q1q2||2为直线p1p2到直线q1q2的距离; 为直线p1p2的角度, 为直线q1q2的角度, 为角度差阈值;向量v1为
直线p1p2所对应的弧段中心指向直线p1p2中心所形成的向量,向量v2为直线q1q2所对应的弧
段中心指向直线q1q2中心所形成的向量,θv1v2为向量v1与向量v2的夹角;min||p1p2‑q1q2||2
为最近邻准则、 为余弦相似性准则、θv1v2<90°为凹凸一致性准则;
[0024] 根据构建的平行曲线模型对平滑曲线边缘链条集合C={C1,C2,...,CC}进行平行性判断;首先获得最近邻的曲线边缘链条对,然后分别对曲线边缘链条进行多边形化,由此
获得对应弧线段的直线编码;将两曲线的直线编码数据分别进行相似性匹配,并对相似性
较高的两直线段所对应的曲线段进行凹凸一致性的判断,若具有一致的凹凸性,则说明两
直线段所对应的曲线段平行。
[0025] 进一步地,所述步骤1具体步骤如下:
[0026] 步骤1.1:将输入图像转化为灰度图像;
[0027] 步骤1.2:对灰度图像进行平滑处理;
[0028] 步骤1.3:获取平滑灰度图像的梯度幅值图以及其边缘方向图;
[0029] 步骤1.4:获取锚点图像;
[0030] 步骤1.5:通过智能路由进行锚点连接,绘制最终的边缘图像,获取边缘图像的链条集合E={e1,e2,...,em}。
[0031] 进一步地,所述步骤2具体步骤如下:
[0032] 步骤2.1:确定角点检测和主方向判断标准;
[0033] 角点检测:对于边缘上任意像素(xj,yj)选择其左右相邻的h‑1个边缘像素点组成一个小邻域边缘像素数据;获取邻域像素的协方差矩阵,计算协方差矩阵S1的特征值λs11、
λs12(λs11>λs12),若最小特征值λs12小于所设阈值Th1,则说明该边缘像素点邻域能拟合为直
线段;若最小特征值λs12大于所设阈值Th1,则说明该边缘邻域像素点不能拟合为直线段,其
中,(xj,yj)即为要检测的角点,将边缘链条在此处断开;
[0034] 主方向:
[0035]
[0036]
[0037]
[0038] 其中,θj为第j个像素邻域的主方向,λs11、λs12(λs11>λs12)为第j个像素邻域协方差矩阵的特征值,xj为第j个像素邻域中第i个像素横坐标,为第j个像素邻域中2h‑1个像素
横坐标均值,yj为第j个像素邻域中第i个像素纵坐标, 为第j个像素邻域中2h‑1个像素纵
T
坐标均值,n为小邻域边缘像素点数,Xs为n个像素的零均值化横坐标矩阵,Xs 为n个像素的
T
零均值化横坐标转置矩阵,Ys为n个像素的零均值化纵坐标矩阵,Ys 为n个像素的零均值化
纵坐标转置矩阵;
[0039] 已知该邻域像素曲率与其两个特征值的乘积成正比关系:
[0040] κsj2∝λs11λs12
[0041] 其中,κsj为第j个像素邻域的曲率,因此曲率近似表示为:
[0042] κsj=λs11λs12
[0043] 步骤2.2:根据步骤2.1对所有边缘链条e1,e2,...,em进行角点检测,并依次计算每个像素邻域方向角度,将边缘链条在角点处断开,获得一系列光滑的边缘链条方向编码数
据集SE={se1,se2,...,sen},其中,sei=(xi,yi,θi,ksi);
[0044] 步骤2.3:对每一条边缘链条整体进行直线边缘和曲线边缘的判断,将光滑的边缘链条分别输入直线边缘链条集合L以及曲线边缘链条集合C;
[0045] 步骤2.4:将曲线边缘链条集合C中的光滑曲线边缘链条进行曲率变化统计,若有一组连续的曲线边缘像素曲率出现突变,且从曲线起始点到曲率突变点之间的边缘长度大
于20~30像素,那么将根据步骤2.3判断这段曲线边缘像素是否能够拟合为直线边缘链条,
若满足将该段曲线边缘像素补充到直线边缘链条集合L;
[0046] 步骤2.5:遍历所有的光滑边缘链条,根据步骤2.3进行分类,并根据步骤2.4对直线边缘链条进行补充,获得最终的直线边缘链条集合L和平滑曲线边缘链条集合C。
[0047] 进一步地,所述步骤3具体步骤如下:
[0048] 步骤3.1:构建平行直线模型:
[0049] 在笛卡尔坐标中,将满足如下准则的一对直线L1、L2定义为平行直线:
[0050]
[0051] 其中, 为L1的角度, 为L2的角度,λθ为角度差阈值; 为斜率相似性准则; 为空间重叠性准则;
[0052] 步骤3.2:根据步骤3.1构建的平行直线模型,首先对输入的直线边缘链条集合L进行斜率相似性判断;
[0053] 步骤3.3:根据步骤3.1的平行直线模型,满足斜率相似性准则的直线对进一步判断是否满足空间重叠性准则;两条斜率相似的直线之间夹角若满足∠k4k1k2<90°与∠
k3k2k1<90°,则说明两直线在空间上相互投影具有重叠部分,即两直线的平行是有效的,输
入平行直线集合PL;
[0054] 步骤3.4:遍历直线边缘链条集合L提取满足上述步骤3.2与3.3的直线对,获得最终的平行直线对集合PL。
[0055] 进一步地,所述步骤4具体步骤如下:
[0056] 步骤4.1:构建平行曲线模型:
[0057] 在笛卡尔坐标系中,将满足如下准则的一对曲线C1与曲线C2定义为平行曲线:
[0058] 对于一对曲线C1与C2,在曲线C1上任意两点p1、p2,在曲线C2上总存在与其切线方向相同的对应点q1、q2,那么应当满足如下准则:
[0059]
[0060] 其中,p1p2为p1、p2的连接线,q1q2为q1、q2的连接线,||p1p2‑q1q2||2为直线p1p2到直线q1q2的距离; 为直线p1p2的角度, 为直线q1q2的角度, 为角度差阈值;向量v1为
直线p1p2所对应的弧段中心指向直线p1p2中心所形成的向量,向量v2为直线q1q2所对应的弧
段中心指向直线q1q2中心所形成的向量,θv1v2为向量v1与向量v2的夹角;min||p1p2‑q1q2||2
为最近邻准则、 为余弦相似性准则、θv1v2<90°为凹凸一致性准则;
[0061] 步骤4.2:对每条曲线边缘链条进行顺序标号;按照曲线的存储顺序,分别将每个曲线所对应像素点赋值为当前曲线的顺序标号;
[0062] 步骤4.3:选取每条曲线边缘链条上的局部曲率最大点;利用步骤2.3获得曲线边缘链条的曲率编码数据,曲率大于相邻曲线边缘像点曲率的点即为所需的局部曲率最大
点;
[0063] 步骤4.4:获取最近邻曲线边缘链条对;
[0064] 步骤4.5:分别对最近邻曲线边缘链条对进行曲线多边形化,获得对应的直线编码数据;
[0065] 步骤4.6:将曲线多边形化后的最近邻曲线对进行余弦相似性度量;
[0066] 步骤4.7:对满足余弦相似的曲线段进行凹凸一致性的判断;
[0067] 步骤4.8:曲线边缘链条段的匹配与融合,获得最终的平行曲线对,并将该曲线对输入平行曲线对集合PC;
[0068] 步骤4.9:对所有最近邻平滑曲线对进行上述步骤检测,获得最终的平行曲线对集合PC。
[0069] 进一步地,所述步骤2中h取值5。
[0070] 进一步地,所述步骤2中阈值Th1取值0.25。
[0071] 本发明的有益效果如下:
[0072] 1、利用PCA算法将边缘链条分解为直线边缘链条以及平滑曲线边缘链条,通过这样的方式将平行线检测问题转换为平行直线检测问题以及平行曲线检测问题,可同步进
行;
[0073] 2、定义平行直线模型,利用斜率相似性以及空间重叠性原则对直线对的平行性进行判断,解决了判断平行有效性问题;
[0074] 3、定义平行曲线模型,利用近似法线方向生长的方式进行最邻近曲线的获取,无需进行检测窗口的设定,使算法具有通用性。此外,通过曲线多边形化将平行曲线的检测问
题转换为匹配问题,降低了算法的空间复杂度和时间复杂度。

附图说明

[0075] 图1是本发明一种同步检测图像中平行直线和平行曲线特征的方法不同Th1取值下的角点检测结果图;
[0076] 图2是本发明不同Th2取值下的直线曲线的分类结果图;
[0077] 图3是本发明斜率相似的两直线空间关系图;
[0078] 图4是本发明平行直线模型示意图;
[0079] 图5是本发明平行曲线模型示意图;
[0080] 图6是本发明曲线近似法线方向生长算法示意图;
[0081] 图7是本发明曲线多边形化示意图;
[0082] 图8是本发明判断曲线段余弦相似性示意图;
[0083] 图9是本发明判断曲线段凹凸一致性示意图;
[0084] 图10是本发明具体实施例示意图;
[0085] 图11是本发明的流程图。

具体实施方式

[0086] 下面根据附图1‑11对本发明的具体实施方法进行详细的说明。
[0087] 本发明主要通过将边缘链条分解为直线边缘链条和曲线边缘链条,将平行线检测问题分解为平行直线检测问题以及平行曲线检测问题,最终获取图像中的平行特征,流程
如图11所示。
[0088] 步骤1,输入RGB图像,使用EDrawing算法得到边缘图像。
[0089] 步骤1.1:将输入RGB图像转化为灰度图像。根据输入图像每个像素所对应的R、G、B三通道值,由公式可得当前像素灰度值gn:
[0090] gn=0.299×R+0.587×G+0.114×B
[0091] 其中,n为输入图像像素个数。
[0092] 遍历所有像素值即可将输入RGB图像转化为灰度图像。
[0093] 步骤1.2:使用大小为5×5,标准差为σ=1的高斯核对灰度图像进行平滑处理。
[0094] 步骤1.3:同时获取平滑灰度图像的梯度幅值图以及其边缘方向图。基于平滑的图像,使用Sobel算子分别计算像素的水平梯度以及垂直梯度。第n个像素点的梯度Gn:
[0095] Gn=|Gnx|+|Gny|
[0096] 其中,Gnx为第n个像素点的水平梯度,Gny为第n个像素点的垂直梯度。遍历所有图像像素进行上述操作即可获取图像梯度幅值图。
[0097] 与此同时,比较每个像素点处的水平梯度Gnx以及垂直梯度Gny。若满足|Gnx|≥|Gny|,则认为该像素点的边缘方向为垂直方向,若满足|Gnx|<|Gny|,则认为该像素点的边缘方
向为水平方向,如此便可获取图像的边缘方向图。
[0098] 步骤1.4:获取锚点图像。对于输入图像的任意像素(xn,yn),根据图像的边缘方向图可知当前检测像素点的边缘方向,当像素(xn,yn)的边缘为水平方向时,若满足:
[0099]
[0100] 其中,G[xn,yn]为(xn,yn)的梯度幅值,G[xn,yn‑1]为(xn,yn‑1)的梯度幅值,G[xn,yn+1]为坐标(xn,yn+1)处像素点的梯度幅值,Thanchor为锚点阈值。那么该像素(xn,yn)为锚点。
当像素(xn,yn)边缘为垂直方向时,若满足:
[0101]
[0102] 其中,G[xn‑1,yn]为(xn‑1,yn)的梯度幅值,G[xn+1,yn]为(xn+1,yn)的梯度幅值,Thanchor为锚点阈值。那么该像素(xn,yn)为锚点。
[0103] 对输入图像的所有像素进行上述操作即可获取锚点图像。
[0104] 步骤1.5:通过智能路由进行锚点连接,绘制最终的边缘图像。首先初始化边缘链条集合E={e1,e2,...,em}=0,对任意锚点(xn,yn)的8邻域像素点进行搜索,若假设像素边
缘方向为水平方向,即初始搜索路径为水平方向,若G[xn,yn]>0且e[xn,yn]≠1,则对6个水
平邻域搜索,先搜索(xn‑1,yn‑1),(xn‑1,yn)和(xn‑1,yn+1),判断G[xn‑1,yn‑1]、G[xn‑1,yn]
与G[xn‑1,yn+1]中的最大值,选择具有最大梯度幅值的邻域像素点,若该像素点不属于边缘
像素,则将其加入边缘像素集合,并作为新的搜索起点重复进行上述操作。若无符合条件的
目标,则搜索(xn+1,yn‑1),(xn+1,yn)和(xn+1,yn+1),重复上述操作。若当前像素边缘方向为
垂直方向,则对6个垂直邻域搜索,先搜索(xn‑1,yn+1),(xn,yn+1)和(xn+1,yn+1),判断G[xn+
1,yn+1]、G[xn‑1,yn]与G[xn‑1,yn+1]中的最大值,选择具有最大梯度幅值的邻域像素点作为
新的搜索起点,直到无符合条件的目标,则搜索(xn‑1,yn+1),(xn,yn+1)和(xn+1,yn+1)并重
复上述操作。重复上述操作即可获得一系列边缘链条E。
[0105] 步骤2:输入由步骤1获取的边缘链条集合E={e1,e2,...,em},将其分解为直线边缘链条集合L={L1,L2,...,Ll}以及平滑曲线边缘链条C={C1,C2,...,CC}。对每一条提取的
连续边缘链条从其第5个像素点开始依次对边缘像素点局部使用PCA算法进行角点检测和
主方向估计,将边缘链条在角点处断开,并获取边缘链条方向编码数据。接着对光滑的边缘
链条使用PCA和多边形化融合方法进行全局处理,从而将光滑的边缘链条分为两类,即直线
边缘链条和平滑曲线边缘链条,具体步骤如下:
[0106] 步骤2.1:角点检测。输入由步骤1获取的边缘链条集合E={e1,e2,...,em},对于任意边缘em,从其第5个像素点开始依次对边缘像素点进行判断,若满足条件则将当前检测像
素存储至新的光滑边缘链条集合sei中,直到不满足条件则将原边缘em在此点处断开,并把
当前边缘链条集合sei存入集合SE中。继续对边缘像素点进行上述操作,直到到达当前边缘
em倒数第5个像素点时检测结束,并将当前边缘链条集合存入集合SE中。具体判断步骤如下
所示。对于边缘上任意像素(xj,yj)将进行如下判断,选择其左右相邻的4个边缘像素点
(xj‑4,yj‑4)、(xj‑3,yj‑3)、(xj‑2,yj‑2)、(xj‑1,yj‑1)、(xj+1,yj+1)、(xj+2,yj+2)、(xj+3,yj+3)、(xj+4,
yj+4)组成一个小邻域边缘像素数据。这9个像素的零均值化横坐标矩阵为
其中, 零均值化纵坐标矩阵为
其中, 获取邻域像素的协方
差矩阵 计算协方差矩阵S1的特征值λs11、λs12(λs11>λs12),若最小特征
值λs12大于所设阈值Th1,则说明该边缘邻域像素点不能拟合为直线段,其中,(xj,yj)即为要
检测的角点,将边缘链条在此处断开。图1为选择不同阈值Th1时角点的检测结果,当Th1=
0.25时角点检测结果最佳,因此本发明Th1取值0.25。
[0107] 若最小特征值λs12小于所设阈值Th1=0.25,则说明该边缘像素点邻域能拟合为直线段,其方向可计算为:
[0108]
[0109]
[0110]
[0111] 其中,θj为第j个像素邻域的主方向,λs11、λs12(λs11>λs12)为第j个像素邻域协方差矩阵的特征值,xj为第j个像素邻域中第i个像素横坐标,为第j个像素邻域中9个像素横坐
标均值,yj为第j个像素邻域中第i个像素纵坐标, 为第j个像素邻域中9个像素纵坐标均
T
值,n为小邻域边缘像素点数,Xs为n个像素的零均值化横坐标矩阵,Xs 为n个像素的零均值
T
化横坐标转置矩阵,Ys为n个像素的零均值化纵坐标矩阵,Ys为n个像素的零均值化纵坐标
转置矩阵。
[0112] 已知该邻域像素曲率与其两个特征值的乘积成正比关系:
[0113] κsj2∝λs11λs12
[0114] 其中,κsj为第j个像素邻域的曲率,因此曲率可近似表示为:
[0115] κsj=λs11λs12
[0116] 步骤2.2:根据步骤2.1对所有边缘链条e1,e2,...,em进行角点检测,并依次计算每个像素邻域方向角度,那么该像素即可包含位置及方向信息,由(xj,yj,θj,ksj)表示,将边缘
链条在角点处断开,便可获得一系列光滑的边缘链条方向编码数据集SE={se1,se2,...,
sen},其中,sei=(xi,yi,θi,ksi)。
[0117] 步骤2.3:对于每条光滑的边缘链条se,其边缘像素坐标可表示为(xi,yi),i=1,2,...,m,其中,xi为第i个像素横坐标,yi为第i个像素纵坐标,m为该边缘链条的像素总数。
对每一条边缘链条se整体使用PCA算法进行直线边缘和曲线边缘的判断,将光滑的边缘链
条分别输入直线边缘链条集合L以及曲线边缘链条集合C,具体判断步骤如下。对于每条光
滑边缘均获取其零均值化横坐标矩阵 其中,为所有像素横坐
标均值。获取零均值化纵坐标矩阵 其中, 为所有像素纵坐标
均值。获取该边缘链条的像素协方差矩阵 计算其协方差矩阵S2的特
征值λs21、λs22。图2为在不同阈值Th2时对原图(a)的曲线与直线分类的检测结果,当0.2<Th2
<0.35时曲线与直线分类结果最符合实际情况,本发明选择阈值Th2取值为0.25。
[0118] 若最小特征值λs22小于所设阈值Th2=0.25,则说明该边缘链条可近似拟合为直线,即该边缘链条被检测为直线边缘链条,输入直线边缘链条集合L,其方向角可计算为:
[0119]
[0120]
[0121]
[0122] 其中,θk为第k条光滑边缘链条的主方向,λs21、λs22(λs21>λs22)为第k条光滑边缘链条协方差矩阵的特征值,xi为第k条光滑边缘链条中第i个像素横坐标,为第k条光滑边缘
链条所有像素横坐标均值,yi为第k条光滑边缘链条中第i个像素纵坐标, 为第k条光滑边
缘链条所有像素纵坐标均值。
[0123] 若最小特征值大于所设阈值Th2=0.25,则说明该边缘链条不可近似拟合为直线,即该边缘链条将被检测为平滑曲线边缘链条,将其输入曲线边缘链条集合C;
[0124] 步骤2.4:将光滑的曲线边缘链条C进行曲率变化统计,若有一组连续的曲线边缘像素曲率出现突变,且从曲线起始点到曲率突变点之间的边缘长度大于20~30像素,那么
将根据步骤2.3判断这段曲线边缘像素是否可拟合为直线边缘链条,若满足将该段曲线边
缘像素补充到直线边缘链条集合L。
[0125] 步骤2.5:遍历所有的光滑边缘链条,根据步骤2.3进行分类,并根据步骤2.4对直线边缘链条进行补充,获得最终的直线边缘链条集合L和平滑曲线边缘链条集合C。
[0126] 步骤3:对直线边缘链条进行处理,即将直线边缘链条集合L放入定义的平行直线模型进行平行性判断。通过步骤2.3获得直线边缘链条的角度信息,利用该信息判断两边缘
链条的斜率差异是否小于所设阈值,若小于所设阈值则进一步判断这两直线边缘链条在空
间上相互投影是否具有重叠部分,若存在则说明两直线边缘链条是平行的。具体步骤如下:
[0127] 步骤3.1:定义平行直线模型。平行直线模型具体如下:
[0128] 图3所示是斜率相似的两直线之间的空间关系。情形a与情形b为L1、L2在空间中相互垂直投影无重叠部分,情形c、d、e为L1、L2在空间中相互垂直投影具有重叠部分。分别用
k1、k2表示的L1端点,k3、k4表示的L2端点。当L1、L2之间夹角满足∠k4k1k2<90°与∠k3k2k1<
90°时,其中,∠k4k1k2为端点k4、k1、k2组成的角度且k1为顶点,∠k3k2k1为端点k3、k2、k1组成
的角度且k2为顶点。说明L1,L2在空间中相互垂直投影具有重叠部分,即满足空间重叠性准
则。
[0129] 结合图3可得平行直线的模型建立,如图4所示。对于图像中的一条线段L,在其两侧可能存在两条线段L+、L‑。在笛卡尔坐标中,我们将满足如下准则的一对直线L1、L2定义为
平行直线:
[0130]
[0131] 其中, 为L1的角度, 为L2的角度,λθ为角度差阈值; 为斜率相似性准则。 为空间重叠性准则;
[0132] 步骤3.2:根据步骤3.1定义的平行直线模型,首先对输入的直线边缘链条集合L进行斜率相似性判断。通过步骤2.3可计算直线角度,将直线对进行角度对比。由于现实场景
中会存在大量近似平行结构,设置角度阈值λθ=5°。若两直线的角度差异小于λθ则认为是满
足直线平行的必要条件。
[0133] 步骤3.3:根据步骤3.1的平行直线模型,满足斜率相似性准则的直线对进一步判断是否满足空间重叠性准则。两条斜率相似的直线之间夹角若满足∠k4k1k2<90°与∠
k3k2k1<90°,则说明两直线在空间上相互投影具有重叠部分,即两直线的平行是有效的,输
入平行直线集合PL。
[0134] 步骤3.4:遍历直线边缘链条集合L提取满足上述步骤3.2与3.3的直线对,获得最终的平行直线对集合PL。
[0135] 步骤4:对平滑曲线边缘链条进行处理,即将平滑曲线边缘链条集合C放入定义的平行曲线模型进行平行性判断。首先获得最近邻的曲线边缘链条对,然后分别对曲线边缘
链条进行多边形化,由此可获得对应弧线段的直线编码。将两曲线的直线编码数据分别进
行相似性匹配,并对相似性较高的两直线段所对应的曲线段进行凹凸一致性的判断,若具
有一致的凹凸性,则说明两直线段所对应的曲线段平行。如此遍历便可获得最终的平行曲
线边缘链条。具体步骤如下:
[0136] 步骤4.1:定义平行曲线模型。平行曲线模型具体如下:
[0137] 图5所示是建立的平行曲线模型示意图。对于图像中的一条平滑曲线段C,在其两侧可能存在两条线段C+、C‑。在笛卡尔坐标系中,对于一对曲线C1与C2,在曲线C1上任意两点
p1、p2,在曲线C2上总存在与其切线方向相同的对应点q1、q2,那么应当满足如下准则:
[0138]
[0139] 其中,p1p2为p1、p2的连接线,q1q2为q1、q2的连接线,||p1p2‑q1q2||2为直线p1p2到直线q1q2的距离; 为直线p1p2的角度, 为直线q1q2的角度, 为角度差阈值;向量v1为
直线p1p2所对应的弧段中心指向直线p1p2中心所形成的向量,向量v2为直线q1q2所对应的弧
段中心指向直线q1q2中心所形成的向量,θv1v2为向量v1与向量v2的夹角;min||p1p2‑q1q2||2
为最近邻准则、 为余弦相似性准则、θv1v2<90°为凹凸一致性准则;
[0140] 若满足上述准则,我们称曲线C1与曲线C2为一对平滑曲线段。
[0141] 步骤4.2:对每条曲线边缘链条进行顺序标号。按照曲线的存储顺序,分别将每个曲线所对应像素点赋值为当前曲线的顺序标号。
[0142] 步骤4.3:选取每条曲线边缘链条上的局部曲率最大点。利用步骤2.3可获得曲线边缘链条的曲率编码数据,曲率大于相邻曲线边缘像点曲率的点即为所需的局部曲率最大
点。
[0143] 步骤4.4:获取最近邻曲线边缘链条对。如图6所示的曲线边缘链条C0、C1、C2、C3,当前检测曲线边缘链条为C0,由步骤4.2获得C0的局部曲率最大点,由步骤2.3可得局部曲率最
大点处的切线方向数据。在C0的每个局部曲率最大点处选择与其切线方向近似垂直的像素
方向进行生长,在与其他曲线相交或与图像边界相交便停止生长。图中所示按照近似垂直
的像素方向生长将与曲线C1、C2相交,其中与曲线C1相交1次,与曲线C2相交4次。因此C2即为
要找寻的与曲线C0最邻近的曲线。
[0144] 步骤4.5:分别对最近邻曲线边缘链条对进行曲线多边形化,如图7所示。对于任意曲线C,设曲线C的起点为Cstart,终点为Cend。将起点Cstart与终点Cend连接,连线由 表
示,Cmid1为到 距离最大点,其距离为h1。若h1>hth,其中,hth=5为所设距离阈值,那
么Cmid1将原曲线分割为两个曲线段 和 对于 上像素
点到Cstart与Cmid1连线的最远距离为h2,若满足0<h2<hth,那么可作为曲线 的近似,
将 表示为曲线段c1,对应的直线编码用l1表示。对于 由于 与
存在交点Cmid2,那么Cmid2将 分为两个曲线段 和
上像素点到Cmid1与Cmid2连线的最远距离h3若满足0<h3<hth,将 表示为曲
线段c2,对应的直线编码用l2表示。同上述操作, 可表示为曲线段c3,对应的直线编
码用l3表示。综合上述步骤可将曲线C分解为曲线段{c1,c2,c3},其对应的直线编码为{l1,
l2,l3}。将所有曲线段按上述步骤进行操作即可获得对应的直线编码数据。
[0145] 步骤4.6:将曲线多边形化后的最近邻曲线对进行余弦相似性度量。选择像素点数较少的曲线边缘链条作为模板,依次选择像素点数较少的曲线边缘链条的直线编码数据与
像素点数较多的曲线边缘链条的直线编码数据分别进行余弦相似性度量,如图8所示。曲线
段 对应的直线编码分别为虚线 若 与 之间的夹角 满足 其中,
那么说明 与 余弦相似,即 满足平行必要条件之一,否则不满足。
[0146] 步骤4.7:对满足余弦相似的曲线段进一步进行凹凸一致性的判断,如图9所示。曲线段 对应的直线编码分别为虚线 由步骤4.6得 与 余弦相似,那么其对应
的曲线段 满足平行的必要条件。曲线段 的空间位置关系主要由图9所示,情形
a为满足凹凸一致性原则的情况,情形b、c为不满足凹凸一致性原则的情况。图中p1为曲线
段 上的中心点,其坐标可表示为 其中, 为p1的横坐标, 为p1的纵坐标,相对
应的直线 上的中心点坐标p1′可表示为 其中, 为p1′的横坐标, 为p1′的纵坐
标,p1与p1′连接形成向量v1。p2为曲线段 上的中心点,其坐标可表示为 其中,
为p2的横坐标, 为p2的纵坐标,相对应的直线 上的中心点坐标p′2可表示为 其
中, 为p′2的横坐标, 为p′2的纵坐标,p2与p′2连接形成向量v2。计算向量v1与向量v2之
间的夹角θv1v2,在情形a时,θv1v2<90°;在情形b、c时,θv1v2>90°。综上所述,当向量v1与向量
v2之间的夹角θv1v2满足θv1v2<90°时说明曲线 与 满足凹凸一致性准则,即曲线 与 满
足平行的必要条件,否则不满足。
[0147] 若两曲线段满足凹凸一致性准则,那么两曲线段可判断为平行关系,将匹配编号存入数组M={m1,m2,...,mn}中,其中, 表示曲线对C1、C2中匹配的
曲线段,n表示最近邻曲线对数。
[0148] 步骤4.8:曲线边缘链条段的匹配与融合。将两条曲线边缘链条按照直线编码的顺序,以像素点较少的曲线边缘链条作为模板,依次根据步骤4.6以及步骤4.7与像素点较多
的曲线边缘链条进行判断,记录满足条件的曲线边缘链条的直线编码
对于曲线C1将其对应的曲线线段 进行连接,对于曲线
C2将其对应的曲线线段 进行连接,获得最终的平行曲线对,并将该曲线对输入平
行曲线对集合PC。
[0149] 步骤4.9:对所有最近邻平滑曲线对进行上述步骤检测,获得最终的平行曲线对集合PC。
[0150] 图10为按照具体实施方式所提的步骤,同步检测遥感道路图像中的平行直线和平行曲线特征。以遥感道路图像为例,首先根据步骤一获取遥感道路边缘图像,如图10(a)所
示;然后根据步骤二将遥感道路边缘线条分解为直线边缘链条以及曲线边缘链条,分别如
图10(b)、10(c)所示;接着根据步骤三对直线边缘链条进行处理,获得平行直线特征,如图
10(d)所示,根据步骤四对曲线边缘链条进行处理,获得平行曲线特征,如图10(e)所示。图
10(f)为最终遥感道路图像的平行线特征图。
[0151] 本发明通过分析图像中的边缘信息,找出图像中所包含的平行特征,主要应用于包含平行特征的物体识别、重建和机器人导航领域,如遥感道路识别、复杂环境文字识别、
人造场景消失点检测和基于直线的SLAM导航等。
[0152] 以上所述的实施例仅是对本发明的优选实施方式进行描述,并非对本发明的范围进行限定,在不脱离本发明设计精神的前提下,本领域普通技术人员对本发明的技术方案
做出的各种变形和改进,均应落入本发明权利要求书确定的保护范围内。