CN107038721B - 一种基于lapjv算法的直线检测方法 - Google Patents

一种基于lapjv算法的直线检测方法 Download PDF

Info

Publication number
CN107038721B
CN107038721B CN201710189398.1A CN201710189398A CN107038721B CN 107038721 B CN107038721 B CN 107038721B CN 201710189398 A CN201710189398 A CN 201710189398A CN 107038721 B CN107038721 B CN 107038721B
Authority
CN
China
Prior art keywords
straight line
lapjv
algorithm
value
straight
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.)
Active
Application number
CN201710189398.1A
Other languages
English (en)
Other versions
CN107038721A (zh
Inventor
王飞
程剑华
周晓
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Xian Jiaotong University
Original Assignee
Xian Jiaotong University
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Xian Jiaotong University filed Critical Xian Jiaotong University
Priority to CN201710189398.1A priority Critical patent/CN107038721B/zh
Publication of CN107038721A publication Critical patent/CN107038721A/zh
Application granted granted Critical
Publication of CN107038721B publication Critical patent/CN107038721B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/60Analysis of geometric attributes
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F18/00Pattern recognition
    • G06F18/20Analysing
    • G06F18/22Matching 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算法的直线检测方法
【技术领域】
本发明提出了一种用于优化图像直线检测结果的方法,具体涉及一种基于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:
Figure BDA0001255802960000051
上式中,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 (7)

1.一种基于LAPJV算法的直线检测方法,其特征在于:包括以下步骤:
(1)提取直线段的起始点和终止点坐标以及直线段角度;
(2)筛出不符合要求的直线段;
(3)设置相似度参数,并计算保留的每条直线段与其他直线段的相似度,构成row×row矩阵;
(4)根据步骤(3)的结果利用LAPJV算法,获得最大优化情况下的匹配直线段对;
(5)根据步骤(4)匹配的直线段对,对直线段进行分类;
(6)将不同类别的直线段拟合并返回拟合之后的直线结果;
所述的相似度参数包括:距离Δs,距离相似度σ2,角度差Δθ,角度相似度σ1,距离影响力调节参数x1,角度影响力调节参数x2,其中,距离是指:两条直线围起来的不规则四边形的面积,角度差为两条直线角度的相减结果;
所述的直线段与其他直线段的相似度根据以下公式计算:
Figure FDA0002209140470000011
2.根据权利要求1所述的一种基于LAPJV算法的直线检测方法,其特征在于:步骤(2)的具体方法为:首先,计算直线段的长度,将所有直线按照直线长度从小到大进行排序,并设定与直线段数量相关的固定比例因子,筛除直线序号与直线总数量比例小于固定比例因子的直线段。
3.根据权利要求2所述的一种基于LAPJV算法的直线检测方法,其特征在于:所述的固定比例因子为直线段数量的五分之一到八分之一。
4.根据权利要求1所述的一种基于LAPJV算法的直线检测方法,其特征在于:步骤(4)的具体方法为:
(4.1)将row×row矩阵的上三角取负,下三角去负无穷;
(4.2)将步骤(4.1)所得的矩阵利用LAPJV算法计算出匹配的直线段对的序号。
5.根据权利要求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)。
6.根据权利要求1所述的一种基于LAPJV算法的直线检测方法,其特征在于:步骤(6)的具体方法为:
(6.1)将获得不同类直线段序号对应直线的起始点和终止点,按固定距离取点;
(6.2)利用最小二乘法对同类直线段的离散点进行直线拟合;
(6.3)每个分类获得各自的拟合直线。
7.根据权利要求6所述的一种基于LAPJV算法的直线检测方法,其特征在于:步骤(6.1)中按固定距离取点指:每一个直线段按照固定距离分为一系列的离散点。
CN201710189398.1A 2017-03-27 2017-03-27 一种基于lapjv算法的直线检测方法 Active CN107038721B (zh)

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 CN107038721A (zh) 2017-08-11
CN107038721B true 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)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108615025B (zh) * 2018-05-02 2020-11-03 北京进化者机器人科技有限公司 家居环境下门识别定位方法、系统以及机器人
CN109977910B (zh) * 2019-04-04 2021-08-20 厦门商集网络科技有限责任公司 基于彩色线段的票据快速定位方法及其系统

Citations (3)

* Cited by examiner, † Cited by third party
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 中测高科(北京)测绘工程技术有限责任公司 一种直线特征匹配方法及系统

Patent Citations (3)

* Cited by examiner, † Cited by third party
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 中测高科(北京)测绘工程技术有限责任公司 一种直线特征匹配方法及系统

Also Published As

Publication number Publication date
CN107038721A (zh) 2017-08-11

Similar Documents

Publication Publication Date Title
CN110738207A (zh) 一种融合文字图像中文字区域边缘信息的文字检测方法
CN109740606B (zh) 一种图像识别方法及装置
CN109815979B (zh) 一种弱标签语义分割标定数据生成方法及系统
CN103164701B (zh) 手写体数字识别方法及装置
CN112307820B (zh) 文本识别方法、装置、设备和计算机可读介质
CN108154158B (zh) 一种面向增强现实应用的建筑物图像分割方法
CN111798447B (zh) 一种基于Faster RCNN的深度学习塑化材料缺陷检测方法
CN103366367A (zh) 基于像素数聚类的模糊c-均值灰度图像分割方法
US20130219216A1 (en) Hybrid Memory Failure Bitmap Classification
CN105718943A (zh) 基于粒子群优化算法的特征选择方法
CN111311702B (zh) 一种基于BlockGAN的图像生成和识别模块及方法
CN111738367B (zh) 一种基于图像识别的零件分类方法
CN111539444A (zh) 一种修正式模式识别及统计建模的高斯混合模型方法
CN107038721B (zh) 一种基于lapjv算法的直线检测方法
CN106529397A (zh) 一种非约束环境中的人脸特征点定位方法及系统
CN112364974A (zh) 一种基于激活函数改进的YOLOv3算法
CN114626524A (zh) 目标业务网络确定方法、业务处理方法及装置
CN106355588A (zh) 一种基于核方法的高光谱图像分割方法
CN110969260A (zh) 不平衡数据过采样方法、装置及存储介质
CN107194402A (zh) 一种并行细化骨架提取方法
CN113743443A (zh) 一种图像证据分类和识别方法及装置
CN108537249A (zh) 一种密度峰值聚类的工业过程数据聚类方法
CN106997473A (zh) 一种基于神经网络的图像识别方法
CN113780069B (zh) 一种汇流场景下的车道线分离绘制方法及装置
CN116452845A (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