一种复杂环境直线检测和筛选方法及应用该方法的机器人的制作方法

文档序号:9397531阅读:270来源:国知局
一种复杂环境直线检测和筛选方法及应用该方法的机器人的制作方法
【技术领域】
[0001] 本发明涉及复杂环境中机器人通过视觉进行环境感知,尤其涉及一种复杂环境直 线检测和筛选方法。
【背景技术】
[0002] 在一些复杂环境中,例如仓库环境中,地面上通常存在人工粘贴的标志物,例如黄 色胶带,辅助仓库中的货物可以更加规整的摆放,这些直线通常规整的粘贴在地面上,例如 沿走廊粘贴在走廊边上,直线之间通常相互垂直或平行,具有结构化的信息,因此提取和检 测这些直线对于机器人的运行具有重要的价值。
[0003] 通常已有的直线检测算法致力于提取出机器人当前视野中的所有直线,例如使用 边缘检测算法提取边缘,再使用霍夫变换通过这些边缘点投票得到直线。这种方法得到的 直线精度不高,甚至在真实世界的一条直线上检测得到多个直线,不符合机器人应用场景 中的直线需精确定位的需求。现有的直线检测算法专注于对视野中的直线进行检测,没有 涉及到如何筛选出具有应用价值的直线。

【发明内容】

[0004] 本发明的目的在于针对现有技术的不足,提供一种复杂环境直线检测和筛选方法 及应用该方法的机器人。
[0005] 本发明的目的是通过以下技术方案来实现的:一种复杂环境下直线检测和筛选的 方法,包括以下步骤:
[0006] 步骤Sl :对采集到的图像进行预处理,包括图像去畸变和滤波处理;
[0007] 步骤S2 :使用线段提取算法提取预处理后的图像中的线段;
[0008] 步骤S3 :选定两条直线分别作为母直线和子直线,并利用设定阈值判定母直线和 子直线是否可以融合;若小于设定阈值则可以融合;
[0009] 步骤S4 :对步骤S3中判定能融合的直线进行融合,得到融合后的直线;
[0010] 步骤S5 :重复步骤S3、S4,直到剩余直线不能融合;
[0011] 步骤S6 :对步骤S5中剩余的不能融合的直线进行评分,根据评分筛选出的直线作 为目标直线;
[0012] 所述复杂环境下直线检测和筛选的方法还包括步骤:将融合后直线与图像边缘的 交点加入到各自的直线属性;该步骤在每次步骤S4得到融合后的直线后进行或者步骤S5 直到剩余直线不能融合后进行。
[0013] 进一步地,步骤S2的线段提取算法包括如下步骤:
[0014] 步骤S21 :计算图像每个像素点的梯度,并定义水平线方向为与梯度垂直的方向;
[0015] 步骤S22 :使用区域增长算法将图像分割为若干个连通域,每个连通域内允许两 两像素之间水平线方向的最大差值为τ ;
[0016] 步骤S23 :对于每一个连通域选取一个最小矩形包围该区域,则矩形的长轴方向 为线段的方向,并返回线段的两个端点。
[0017] 进一步地,所述设定的阈值包括距离和阈值、角度差阈值和截距误差阈值,具体判 定步骤包括:
[0018] (1)当子直线只包含一个线段:计算子直线的两个端点到母直线的距离和,若小 于设定距离和阈值,则可以融合;
[0019] (2)当子直线包含多个线段:计算子直线与母直线角度差和截距误差同时小于设 定的角度差阈值和截距误差阈值时,则判定子直线与母直线可以融合。
[0020] 进一步地,所述步骤S4中直线融合方法为对母直线与子直线中的每个线段采样; 将所有采样点经过最小二乘拟合得到新的直线。
[0021] 进一步地,每个线段采样点的数目为线段长度值。
[0022] 进一步地,步骤S6的具体方法如下:
[0023] 步骤S61 :选取描述特征,所述描述特征为沿垂直于直线的方向所有对称的采样 点颜色值差值的均值;
[0024] 步骤S62 :训练高斯模型;选取位于目标直线上的点,提取步骤S61中的特征,提取 高斯模型,得均值特征向量以及协方差矩阵;
[0025] 步骤S63 :筛选直线:对于经过融合后的任意一条直线,对每一点提取步骤S61中 所述特征;使用马氏距离度量每一点特征与步骤S62得到的高斯模型之间的距离计算得 分,得到目标直线。进一步地,所述评分S的计算方法为
,其中,起始点 (xs, ys),终止点(Xf3, yj,采样点P总数为Z,D (p)为马氏距离。
[0026] 一种具有直线检测和筛选功能的机器人,所述机器人包括控制器,所述控制器通 过上述的方法实现直线检测和筛选。
[0027] 本发明的有益效果是:本发明采用了基于线段融合的直线检测算法,大大提高了 直线检测检测的精度,能够实现准确的提取边缘直线;采用了基于高斯模型的直线筛选算 法,对所有检测到的直线进行筛选,从而保留目标直线,剔除无关直线。并且当目标直线存 在部分遮挡或者局部曝光过度问题时,依然能够检测并筛选出来,极具实用价值。
【具体实施方式】
[0028] 本发明提出一种复杂环境下直线检测和筛选的方法,包括以下步骤:
[0029] 步骤Sl :对采集到的图像进行预处理,包括图像去畸变和滤波处理;
[0030] 步骤S2 :使用线段提取算法提取预处理后的图像中的线段;
[0031] 步骤S3 :选定两条直线作为母直线和子直线,并利用设定阈值判定母直线和子直 线是否可以融合;若小于设定阈值则可以融合;
[0032] 步骤S4 :对步骤S3中判定能融合的直线进行融合,得到融合后的直线;
[0033] 步骤S5 :重复步骤S3、S4,直到剩余直线不能融合;
[0034] 步骤S6 :对步骤S5中剩余的不能融合的直线进行评分,根据评分筛选出的直线作 为目标直线;
[0035] 其中,
[0036] 步骤Sl :对采集到的图像进行预处理,包括图像去畸变和滤波处理;
[0037] 通过摄像头在包含目标直线的场景中进行图像采集,所述目标直线是指人为粘贴 的具有特定颜色属性的直线,或者场景中已经存在的具有特定颜色属性的直线;对采集到 的图像进行预处理,包括图像去畸变和滤波处理;并定义图像坐标系,以图像左上角的点为 坐标原点,以像素为坐标单位:
[0038] 步骤S2 :使用线段提取算法提取预处理后的图像中的线段;
[0039] 所述线段包含起始点与终止点,并且起始点与终止点均在图像区域;
[0040] 优选的,LSD线段提取算法包括以下子步骤:
[0041] 步骤S21 :计算每个像素点的梯度,并定义水平线方向为与梯度垂直的方向;
[0042] 步骤S22 :使用区域增长算法将图像分割为若干个连通域,每个连通域内允许两 两像素之间水平线方向的最大差值为τ ;
[0043] 步骤S23 :对于每一个连通域选取一个最小矩形包围该区域,则矩形的长轴方向 为线段的方向,并返回线段的两个端点;
[0044] 用直线方程Ax+By+C = 0表示步骤S21中得到的每条线段,其中A,B,C为直线一 般式的三个参数。该直线包括如下属性:包含线段的起始点、终止点和线段长度。
[0045] 步骤S3 :选定两条直线作为母直线和子直线,并利用设定阈值判定母直线和子直 线是否可以融合;
[0046] 选定一条为母直线,子直线可以为除选定母直线外的任意线段,本实例中通过给 线段长度的降序排列,有顺序地选择母直线和子直线,也可通过任意随机方式选择或者根 据线段长度升序排列,再顺序选择母直线和子直线的方式,
[0047] 本实施例具体选择母直线和子直线的方式如下:
[0048] 步骤S31 :根据直线属性中的线段长度,对所有直线进行排序,长度依次递减;并 设置直线融合标志为〇 ;
[0049] 步骤S32 :选取母直线,以第i条直线为母直线;
[0050] ① N条直线,初始取i的数值为1 ;
[0051 ] ②若j大于N,i的值加一;
[0052] ③若i大于N,判定直线融合标志是否为1,如果为1则重复步骤S31、S32、S33,S 则计算直线与图像边缘的交点;
[0053] 所述直线与图像边缘的交点表示为(xs, ys),(Xf3, yj,将两个交点加入到直线属 性;
[0054] 也可以在得到剩余的若干不能再融合的直线之后计算每条剩余直线与图像边缘 的交点,并将两个交点加入各自的直线属性;
[0055] 步骤S33 :选取子直线,以第j条直线为子直线;
[0056] ①初始取j的数值为i+Ι ;
[0057] ②若直线可以融合,融合后删除用于融合的子直线,设置直线融合标志为1,j的 值不变,用第j+Ι条直线至第N条直线分别代替第j条直线至第N-I条直线,或者当直线不 可融合时,
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1