CN107038721A - 一种基于lapjv算法的直线检测方法 - Google Patents
一种基于lapjv算法的直线检测方法 Download PDFInfo
- Publication number
- CN107038721A CN107038721A CN201710189398.1A CN201710189398A CN107038721A CN 107038721 A CN107038721 A CN 107038721A CN 201710189398 A CN201710189398 A CN 201710189398A CN 107038721 A CN107038721 A CN 107038721A
- Authority
- CN
- China
- Prior art keywords
- straightway
- line
- straight
- lapjv
- row
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T7/00—Image analysis
- G06T7/60—Analysis of geometric attributes
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F18/00—Pattern recognition
- G06F18/20—Analysing
- G06F18/22—Matching criteria, e.g. proximity measures
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- Data Mining & Analysis (AREA)
- General Physics & Mathematics (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Geometry (AREA)
- Life Sciences & Earth Sciences (AREA)
- Artificial Intelligence (AREA)
- Bioinformatics & Cheminformatics (AREA)
- Bioinformatics & Computational Biology (AREA)
- Evolutionary Biology (AREA)
- Evolutionary Computation (AREA)
- General Engineering & Computer Science (AREA)
- Image Analysis (AREA)
Abstract
本发明提供了一种基于LAPJV算法的直线检测方法,对Edline的直线检测结果进行优化。当Edline检测完一幅图像的直线之后,结果中的直线会有本应在一条直线上的直线段却未能连接起来的情况,严重影响直线检测结果在直线匹配中的应用。本发明的输入是Edline的直线检测结果,对检测直线的长度进行排序,依据排序结果选取合适的直线长度作为筛选阈值。计算所有可能的直线对的相似度,对相似度作用广义线性规划,获得最大优化情况下的匹配直线对。依据匹配直线对结果对所有直线段进行分类。最后通过最小二乘法将不同类的直线进行拟合,获得最终的优化结果。
Description
【技术领域】
本发明提出了一种用于优化图像直线检测结果的方法,具体涉及一种基于LAPJV算法的直线检测方法。
【背景技术】
在图像处理领域,直线检测是必不可少的一环。基于EDline的直线检测结果,会有许多本该在一条直线段的直线在检测结果却是多条分离的直线段。这样的结果对后续的图像处理,比如直线匹配会有很大的负面影响。
基于以上技术问题,本发明提出了基于LAPJV算法的直线检测优化方法。
【发明内容】
本发明提供了一种基于LAPJV算法的直线检测方法,获取的直线较为准确,且对后续的图像处理精度有有利影响。
本发明采用以下技术方案:
一种基于LAPJV算法的直线检测方法,包括以下步骤:
(1)提取直线段的起始点和终止点坐标以及直线段角度;
(2)筛出不符合要求的直线段;
(3)设置相似度参数,并计算保留的每条直线段与其他直线段的相似度,构成row×row矩阵;
(4)根据步骤(3)的结果利用LAPJV算法,获得最大优化情况下的匹配直线段对;
(5)根据步骤(4)匹配的直线段对,对直线段进行分类;
(6)将不同类别的直线段拟合并返回拟合之后的直线结果。
进一步,步骤(2)的具体方法为:首先,计算直线段的长度,将所有直线按照直线长度从小到大进行排序,并设定与直线段数量相关的固定比例因子,筛除直线序号与直线总数量比例小于固定比例因子的直线段。
进一步,所述的固定比例因子为直线段数量的五分之一到八分之一。
进一步,所述的相似度参数包括:距离Δs,距离相似度σ2,角度差Δθ,角度相似度σ1,距离影响力调节参数x1,角度影响力调节参数x2,其中,距离是指:两条直线围起来的不规则四边形的面积,角度差为两条直线角度的相减结果。
进一步,所述的直线段与其他直线段的相似度根据以下公式计算:
进一步,步骤(4)的具体方法为:
(4.1)将row×row矩阵的上三角取负,下三角去负无穷;
(4.2)将步骤(4.1)所得的矩阵利用LAPJV算法计算出匹配的直线段对的序号。
进一步,步骤(5)中,对直线段分类的方法为:
分配矩阵assign是一个1×n的行向量,其中,n表示直线段的数量,当直线段有对应的分配直线时,该行向量的该位值就填写所对应的分配直线的序号;当直线没有对应的分配直线的时候,行向量该位的值为0;
设置一个变量sp,记录每一类直线族开始的直线序号,设置一个中间临时变量ep,用来存放assign的列值,设置一个中间变量s,用来临时存放assign中sp列中的数据,同时设置一个空矩阵resultp,用于存放直线族的信息;
具体方法如下:
(5.1)将i的值赋予sp,同时,设置ep的值为0,i=1,2,3,……column,其中,column为assign的列数;
(5.2)判断assign中第sp列中的数据是否大于0,如果大于0,则将该sp列中的数据赋予ep,同时,将assign中对应sp列的数据赋值为-1,并将ep的值赋值给s;
(5.3)判断s是否大于0,如果s的值大于0,进行以下while循环,如果s的值小于0,则返回步骤(5.1),进入下一个循环:
将assign对应s列的值赋值给ep,将sp和s组合成一个二维行向量[sp,s],并将[sp,s]放入resultp的第m行中(m为resultp的行数+1,当resultp为空矩阵时,resultp的行数为0),然后将assign对应s列的值赋值为-1,最后将ep的值赋值给s;
(5.4)重复步骤(5.3)。
进一步,步骤(6)的具体方法为:
(6.1)将获得不同类直线段序号对应直线的起始点和终止点,按固定距离取点;
(6.2)利用最小二乘法对同类直线段的离散点进行直线拟合;
(6.3)每个分类获得各自的拟合直线。
步骤(6.1)中按固定距离取点指:每一个直线段按照固定距离分为一系列的离散点。
与现有技术相比,本发明至少具有以下有益效果:在本发明方法中,首选筛除掉不符合要求的直线段,其次,设置相似度参数,并据此计算每条直线段与其他直线段之间的相似度,接着,利用LAPJV算法获取匹配直线段对,再对直线段进行分类,最终拟合直线。根据本发明方法获取的直线较为准确,且对后续的图像处理精度有有利影响。
【附图说明】
图1为本发明方法流程图。
【具体实施方式】
本发明基于LAPJV算法,对Edline的直线检测结果进行优化。当Edline检测完一幅图像的直线之后,结果中的直线会有本应在一条直线上的直线段却未能连接起来的情况,严重影响直线检测结果在直线匹配中的应用。本发明的输入是Edline的直线检测结果,对检测直线的长度进行排序,依据排序结果选取合适的直线长度作为筛选阈值。计算所有可能的直线对的相似度,对相似度作用广义线性规划,获得最大优化情况下的匹配直线对。依据匹配直线对结果对所有直线段进行分类。最后通过最小二乘法将不同类的直线进行拟合,获得最终的优化结果。
本发明提供的基于LAPJV算法的直线检测方法,包括以下步骤:
(1)输入基于Edline提取出的直线段信息:包括直线段的起始点和终止点的坐标,直线段的角度;
(2)依据直线段长度筛选阈值,预先筛掉直线长度不符合要求的直线段,具体方法为:
(2.1)获取步骤(1)中直线的起始点和终止点坐标;
(2.2)依据步骤(2.1)中直线的坐标,计算直线的长度;
(2.3)将步骤(2.2)中直线的长度存储;
(2.4)将步骤(2.3)中存储的直线长度进行排序;
(2.5)依据步骤(2.4)中的排序结果,设定固定比例因子,选取合适的直线段长度阈值。设定的固定比例因子为整个直线段数量的五分之一至八分之一,在排好序的直线段中,筛除掉最短的五分之一到八分之一的直线段(例如,一共是160条直线段,若固定比例因子设定为直线段数量的五分之一,为32,则在所有直线段中,筛除掉最短的32条直线段,直线段长度阈值为筛除掉最短的32条直线段后,在保留的直线段中,最短的直线段长度)。
(3)设定相似度参数:距离,距离相似度参数,角度差,角度相似度参数,距离影响力调节参数,角度影响力调节参数:距离是指两条直线围起来的不规则四边形的面积,在相似度公式中用Δs表示;角度差为两条直线角度的相减结果,在公式中用Δθ表示;角度相似度参数,距离相似度参数,距离影响力调节参数,角度影响力调节参数在公式中分别用σ1σ2x1x2表示;
(4)计算描述直线段对相似度的上三角矩阵,具体过程为:
根据步骤(3)中设定的相似度参数,计算每条直线段与其他直线段的相似度similarity:
上式中,x1和x2相当于混合高斯模型中的α1和α2,表示样本集合1类和2类被选中的概率;σ1和σ2相当于混合高斯模型中σ1和σ2乘以一个比例因子,决定了变量频数的分布。
所有直线段的相似度构成一个row×row的矩阵,row为直线段的数量。
相似的两条直线段称为直线段对。
由于直线段对的相似度具有对称性,所以上述row×row矩阵的上三角和下三角是完全相同的。
(5)利用LAPJV算法(详细的LAPJV算法参见1986年发表在“computing”上的文章,文章标题为“A Shortest augementing path algorithm for dense and sparse linearassignment problems”,网址:https://link.springer.com/article/10.1007/BF02278710)结合直线相似度上三角矩阵,获得最大优化情况下的匹配直线段对,具体过程为:
(5.1)将步骤(4)中row×row矩阵的上三角取负,下三角取负无穷;
(5.2)将步骤(5.1)所得的Lapjv算法计算出匹配的直线段对的序号。
(6)依据步骤(5)输出的匹配直线段对对应的序号,将直线段进行分类,具体方法为:
分配矩阵assign是一个1×n的行向量,其中,n表示直线个数。当直线有对应的分配直线的时候,行向量该位的值就填写所对应的分配直线的序号;当直线没有对应的分配直线的时候,行向量该位的值为0。
设置一个变量sp,记录的是每一类直线族开始的直线序号;设置一个中间临时变量ep,用来存放assign的列值;设置一个中间变量s,用来临时存放assign中sp列中的数据;同时设置一个空矩阵resultp,用于存放直线族的信息。
i作为一个for循环计数器,值域是1至column,每次循环i的值加1。
具体过程如下:
(6.1)将i的值赋予sp,同时,设置ep的值为0;
(6.2)判断assign中第sp列中的数据是否大于0,如果大于0,则将该sp列中的数据赋予ep,同时,将assign中对应sp列的数据赋值为-1,并将ep的值赋值给s;
(6.3)判断s是否大于0,如果s的值大于0,进行以下while循环,如果s的值小于0,则返回步骤(6.1),进入下一个循环:
将assign对应s列的值赋值给ep,将sp和s组合成一个二维行向量[sp,s],并将[sp,s]放入resultp的第m行中(m为resultp的行数+1,当resultp为空矩阵时,resultp的行数为0),然后将assign对应s列的值赋值为-1,最后将ep的值赋值给s。
(6.4)重复步骤(6.3)。
经过以上步骤,就可以得出每类直线的分类信息。
(7)将多种直线分类进行最小二乘法直线拟合并返回拟合之后的直线结果,具体过程为:
(7.1)将获得不同类直线段序号对应直线的起始点和终止点,按固定距离取点(将每一个直线段按照固定距离分为一系列的离散点);
(7.2)利用最小二乘法对同类直线段的离散点进行直线拟合;
(7.3)每个分类获得各自的拟合直线。
实施例:
将txt中提取的直线段的信息,直线段的端点坐标,直线段的方向,读取到矩阵M中;
计算矩阵M的行数和列数,并将结果存储在rows和cols中;
计算每条直线段的长度并存储;
对存储的直线段长度进行按从小到大的方法进行排序;
取rows/8处的直线长度作为直线段长度的筛选阈值;
建立一个大小为rows*rows,初始值全部为0的矩阵uptri,存储筛选之后直线段对的相似度,相似度计算参数在本文中的具体数值如下:
角度相似度参数20,距离相似度参数80,距离影响力调节参数0.5,角度影响力调节参数0.5。
将uptri中所有0替换为-INF,然后将uptri所有值取负。
对经过上述处理的uptri作用广义线性规划算法,获得匹配的直线对assign。
基于assign获得直线分类。
每隔距离1将不同类别中的直线打散成多个离散点,基于最小二乘法,对同一类的离散点进行拟合,获得直线优化结果。
以上所述仅为本发明的一种实施方法,不是全部或唯一的实施方式,本领域技术人员通过阅读本发明说明书而对本发明技术方案采取的任何等效的变换,均为本发明的权利要求所涵盖。
Claims (9)
1.一种基于LAPJV算法的直线检测方法,其特征在于:包括以下步骤:
(1)提取直线段的起始点和终止点坐标以及直线段角度;
(2)筛出不符合要求的直线段;
(3)设置相似度参数,并计算保留的每条直线段与其他直线段的相似度,构成row×row矩阵;
(4)根据步骤(3)的结果利用LAPJV算法,获得最大优化情况下的匹配直线段对;
(5)根据步骤(4)匹配的直线段对,对直线段进行分类;
(6)将不同类别的直线段拟合并返回拟合之后的直线结果。
2.根据权利要求1所述的一种基于LAPJV算法的直线检测方法,其特征在于:步骤(2)的具体方法为:首先,计算直线段的长度,将所有直线按照直线长度从小到大进行排序,并设定与直线段数量相关的固定比例因子,筛除直线序号与直线总数量比例小于固定比例因子的直线段。
3.根据权利要求2所述的一种基于LAPJV算法的直线检测方法,其特征在于:所述的固定比例因子为直线段数量的五分之一到八分之一。
4.根据权利要求1所述的一种基于LAPJV算法的直线检测方法,其特征在于:所述的相似度参数包括:距离Δs,距离相似度σ2,角度差Δθ,角度相似度σ1,距离影响力调节参数x1,角度影响力调节参数x2,其中,距离是指:两条直线围起来的不规则四边形的面积,角度差为两条直线角度的相减结果。
5.根据权利要求4所述的一种基于LAPJV算法的直线检测方法,其特征在于:所述的直线段与其他直线段的相似度根据以下公式计算:
6.根据权利要求1所述的一种基于LAPJV算法的直线检测方法,其特征在于:步骤(4)的具体方法为:
(4.1)将row×row矩阵的上三角取负,下三角去负无穷;
(4.2)将步骤(4.1)所得的矩阵利用LAPJV算法计算出匹配的直线段对的序号。
7.根据权利要求1所述的一种基于LAPJV算法的直线检测方法,其特征在于:步骤(5)中,对直线段分类的方法为:分配矩阵assign是一个1×n的行向量,其中,n表示直线段的数量,当直线段有对应的分配直线时,该行向量的该位值就填写所对应的分配直线的序号;当直线没有对应的分配直线的时候,行向量该位的值为0;
设置一个变量sp,记录每一类直线族开始的直线序号,设置一个中间临时变量ep,用来存放assign的列值,设置一个中间变量s,用来临时存放assign中sp列中的数据,同时设置一个空矩阵resultp,用于存放直线族的信息;
具体方法如下:
(5.1)将i的值赋予sp,同时,设置ep的值为0,i=1,2,3,……column,其中,column为assign的列数;
(5.2)判断assign中第sp列中的数据是否大于0,如果大于0,则将该sp列中的数据赋予ep,同时,将assign中对应sp列的数据赋值为-1,并将ep的值赋值给s;
(5.3)判断s是否大于0,如果s的值大于0,进行以下while循环,如果s的值小于0,则返回步骤(5.1),进入下一个循环:
将assign对应s列的值赋值给ep,将sp和s组合成一个二维行向量[sp,s],并将[sp,s]放入resultp的第m行中,然后将assign对应s列的值赋值为-1,最后将ep的值赋值给s;m为resultp的行数+1,当resultp为空矩阵时,resultp的行数为0
(5.4)重复步骤(5.3)。
8.根据权利要求1所述的一种基于LAPJV算法的直线检测方法,其特征在于:步骤(6)的具体方法为:
(6.1)将获得不同类直线段序号对应直线的起始点和终止点,按固定距离取点;
(6.2)利用最小二乘法对同类直线段的离散点进行直线拟合;
(6.3)每个分类获得各自的拟合直线。
9.根据权利要求8所述的一种基于LAPJV算法的直线检测方法,其特征在于:步骤(6.1)中按固定距离取点指:每一个直线段按照固定距离分为一系列的离散点。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710189398.1A CN107038721B (zh) | 2017-03-27 | 2017-03-27 | 一种基于lapjv算法的直线检测方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710189398.1A CN107038721B (zh) | 2017-03-27 | 2017-03-27 | 一种基于lapjv算法的直线检测方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN107038721A true CN107038721A (zh) | 2017-08-11 |
CN107038721B CN107038721B (zh) | 2020-01-10 |
Family
ID=59534602
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710189398.1A Active CN107038721B (zh) | 2017-03-27 | 2017-03-27 | 一种基于lapjv算法的直线检测方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN107038721B (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108615025A (zh) * | 2018-05-02 | 2018-10-02 | 北京进化者机器人科技有限公司 | 家居环境下门识别定位方法、系统以及机器人 |
CN109977910A (zh) * | 2019-04-04 | 2019-07-05 | 厦门商集网络科技有限责任公司 | 基于彩色线段的票据快速定位方法及其系统 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101833767A (zh) * | 2010-05-10 | 2010-09-15 | 河南理工大学 | 数字图像中基于梯度与颜色特征的直线自动匹配方法 |
CN105182535A (zh) * | 2015-09-28 | 2015-12-23 | 大连楼兰科技股份有限公司 | 使用智能眼镜进行汽车维保的方法 |
CN106295652A (zh) * | 2016-07-27 | 2017-01-04 | 中测高科(北京)测绘工程技术有限责任公司 | 一种直线特征匹配方法及系统 |
-
2017
- 2017-03-27 CN CN201710189398.1A patent/CN107038721B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101833767A (zh) * | 2010-05-10 | 2010-09-15 | 河南理工大学 | 数字图像中基于梯度与颜色特征的直线自动匹配方法 |
CN105182535A (zh) * | 2015-09-28 | 2015-12-23 | 大连楼兰科技股份有限公司 | 使用智能眼镜进行汽车维保的方法 |
CN106295652A (zh) * | 2016-07-27 | 2017-01-04 | 中测高科(北京)测绘工程技术有限责任公司 | 一种直线特征匹配方法及系统 |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108615025A (zh) * | 2018-05-02 | 2018-10-02 | 北京进化者机器人科技有限公司 | 家居环境下门识别定位方法、系统以及机器人 |
CN108615025B (zh) * | 2018-05-02 | 2020-11-03 | 北京进化者机器人科技有限公司 | 家居环境下门识别定位方法、系统以及机器人 |
CN109977910A (zh) * | 2019-04-04 | 2019-07-05 | 厦门商集网络科技有限责任公司 | 基于彩色线段的票据快速定位方法及其系统 |
CN109977910B (zh) * | 2019-04-04 | 2021-08-20 | 厦门商集网络科技有限责任公司 | 基于彩色线段的票据快速定位方法及其系统 |
Also Published As
Publication number | Publication date |
---|---|
CN107038721B (zh) | 2020-01-10 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109214948A (zh) | 一种电力系统热负荷预测的方法和装置 | |
CN105786860B (zh) | 一种数据建模中的数据处理方法及装置 | |
CN103473786B (zh) | 基于多目标模糊聚类的灰度图像分割方法 | |
CN106874688A (zh) | 基于卷积神经网络的智能化先导化合物发现方法 | |
CN106447075B (zh) | 行业用电需求预测方法与系统 | |
CN112330050A (zh) | 一种基于双层XGBoost考虑多特征的电力系统负荷预测方法 | |
CN106056136A (zh) | 一种聚类中心快速确定的数据聚类方法 | |
CN108346144A (zh) | 基于计算机视觉的桥梁裂缝自动监测与识别方法 | |
CN104021396A (zh) | 基于集成学习的高光谱遥感数据分类方法 | |
CN108846338A (zh) | 基于面向对象随机森林的极化特征选择及分类方法 | |
CN106327340A (zh) | 一种金融网络的异常节点集合侦测方法及装置 | |
CN107038721A (zh) | 一种基于lapjv算法的直线检测方法 | |
CN114970679A (zh) | 风险评估数据处理方法、装置、设备、介质和程序产品 | |
CN104573339B (zh) | 页岩气储层的地质参数确定方法和装置 | |
CN107203496B (zh) | 粮食分配抽样方法及装置 | |
CN111680740A (zh) | 神经网络的训练方法、装置及用电负荷的判别方法、装置 | |
CN108596390B (zh) | 一种解决车辆路径问题的方法 | |
CN107292531B (zh) | 一种基于bp神经网络和聚类分析法的公交车“两率”检查方法 | |
CN115719453A (zh) | 一种基于深度学习的水稻种植结构遥感提取方法 | |
CN113077070A (zh) | 基于属性预测的动态abc分类仓储策略优化方法及实现系统 | |
CN106651630A (zh) | 关键用电行业识别方法和系统 | |
CN106295711A (zh) | 一种时间序列分类方法及系统 | |
CN108346287A (zh) | 基于影响因素分析的交通流量序列模式匹配方法 | |
CN109977797A (zh) | 基于排序损失函数的一阶目标检测器的优化方法 | |
CN112365039B (zh) | 一种基于纵横相关性进行月度用电量预测的方法及系统 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |