一种路面检测方法、装置、云端服务器及计算机程序产品与流程

文档序号:14941146发布日期:2018-07-13 20:50阅读:188来源:国知局

本申请涉及导航技术,特别涉及一种路面检测方法、装置、云端服务器及计算机程序产品。



背景技术:

因为视觉感知障碍,所以视障人士的日常生活和出行均非常不便。他们除了在亲人的帮助下,通常依赖传统的盲杖和导盲犬进行辅助。

传统的盲杖具有三大局限性,一是探测距离有限,通常在前方一米范围之内;二是探测范围狭窄,通常只比盲人肩宽稍宽;三是探测高度有限,通常只能探测地面一米以下的障碍;上述局限性通常都会对盲人的出行安全造成极大的威胁。而传统的导盲犬,则因成本太高导致普及率过低,且在某些特定场合,如机场、车站、地铁等公共场所,公众对导盲犬的接受程度也不高,使得导盲犬的应用也非常有限。

为了解决上述问题,现有技术中提出利用图像识别进行路面及障碍检测的方法。在这些方法中,通常依赖先验的颜色、形状的一致性信息,以及强烈的边缘信息进行分割和比对进行路面和障碍检测,比如深色路面及路边的白线、人体形状、桌椅形状、汽车形状等,发明人认为,这些现有技术中的路面及障碍检测方式仅能适应一些简单的应用场景,在复杂环境下,路面检测准确度不高。



技术实现要素:

本申请实施例中提供了一种路面检测方法、装置、云端服务器及计算机程序产品,用于解决现有技术中路面检测准确度不高的问题。

根据本申请实施例的第一个方面,提供了一种路面检测方法,包括:接收深度传感器获取的图像,其中,所述图像是深度传感器坐标系下的深度图;将深度传感器坐标系下的深度图转换为世界坐标系下的深度图;其中,所述世界坐标系下的深度图中每个像素点的值包括各像素点到所述深度传感器的水平距离;确定所述世界坐标系下的深度图的行均值;根据所述行均值确定所述图像中是否包括路面。

根据本申请实施例的第二个方面,提供了一种路面检测装置,包括:接收模块,用于接收深度传感器获取的图像,其中,所述图像是深度传感器坐标系下的深度图;深度图处理模块,用于将深度传感器坐标系下的深度图转换为世界坐标系下的深度图;其中,所述世界坐标系下的深度图中每个像素点的值包括各像素点到所述深度传感器的水平距离;行均值确定模块,用于确定所述世界坐标系下的深度图的行均值;路面检测模块,用于根据所述行均值确定所述图像中是否包括路面。

根据本申请实施例的第三个方面,还提供了一种云端服务器,包括:显示器,存储器,一个或多个处理器;以及一个或多个模块,该一个或多个模块被存储在存储器中,并被配置成由一个或多个处理器执行,该一个或多个模块包括用于执行根据本申请第一个方面中的路面检测方法中各个步骤的指令。

根据本申请实施例的第三个方面,还提供了一种计算机程序产品,该计算机程序产品对用于执行一种过程的指令进行编码,该过程包括根据本申请第一个方面中的路面检测方法。

采用本申请实施例中的路面检测方法,采用深度传感器获得传感器坐标系下的深度图,再转换为世界坐标系下的深度图,然后再通过计算世界坐标系下的深度图的行均值来判断图像中是否包括路面,与现有技术中的路面检测方法相比,准确度更高。

附图说明

此处所说明的附图用来提供对本申请的进一步理解,构成本申请的一部分,本申请的示意性实施例及其说明用于解释本申请,并不构成对本申请的不当限定。在附图中:

图1中示出了根据本申请实施例一的路面检测方法流程图;

图2中示出了本申请实施例一中建立的世界坐标系的示意图;

图3中示出了本申请实施例一中传感器坐标系、图像坐标系及像素坐标系之间的映射关系示意图;

图4示出了本申请实施例一中的一个深度图的示意图;

图5示出了本申请实施例一中的一个行均值图的示意图;

图6示出了本申请实施例一中预处理后的行均值图的示意图;

图7示出了根据本申请实施例二的路面检测装置的结构示意图;

图8示出了根据本申请实施例三的云端服务器的结构示意图。

具体实施方式

在实现本申请的过程中,发明人发现,现有技术中的利用图像识别进行路面及障碍检测的方法中,通常依赖先验的颜色、形状的一致性信息,以及强烈的边缘信息进行分割和比对进行路面和障碍检测,比如深色路面及路边的白线、人体形状、桌椅形状、汽车形状等,发明人认为,这些现有技术中的地面及障碍检测方式仅能适应一些简单的应用场景,在复杂环境下,因为二维图像丢失了三维环境的深度信息,所以无法提供地面的坡度及障碍的距离信息,路面检测准确度不高。

发明人发现,在相关技术中,还存在以下路面检测方法:一,采用种子点区域生长方法来检测水平路面及障碍物的方法,但发明人认为该方法计算复杂,且只能检测水平地面,无法检测存在坡度的上下坡面;二,采用随机点最小二乘法平面拟合方法来获取路面坡度,该方法计算复杂,受随机点选取的影响,地面坡度容易误判,且检测范围较窄(仅能检测正前方宽度为1~1.5米范围的坡面);三,采用随机采样一致性方法提取路面,该方法计算复杂,计算量大,无法满足实时性需求。

针对上述问题,本申请实施例中提供了一种路面检测的方法、装置、云端服务器及计算机程序产品,采用深度传感器获得传感器坐标系下的深度图,再转换为世界坐标系下的深度图,然后再通过计算世界坐标系下的深度图的行均值来判断图像中是否包括路面,与现有技术中的路面检测方法相比,准确度更高。

根据本申请实施例中的方案,提供了一种基于深度图的路面和障碍检测方法,能够实时的检测出前方路面、路面坡度、障碍方位及距离,实现路面坡度提醒、障碍预警功能,检测结果可以辅助视障人士出行,也可供机器人避障和无人驾驶避障等有避障及通路检测需求的场景使用。

采用本申请实施例中的路面检测方法,基于深度传感器获取深度图,并基于深度传感器的内参和姿态角,将相机坐标系(即,深度传感器坐标系)下的深度图转换为以光心为原点的世界坐标系下的深度图;然后计算深度图中的行均值,根据行数-行均值生成行均值图,在行均值图中检测出路面,并计算出路面坡度;最后在深度图中检测出前方障碍,并根据检测到的路面去除虚报干扰。与传统导盲装置和其他辅助方法相比,根据深度图的有效范围,本发明的探测距离可达前方5至8米范围,为路况提醒、障碍预警、通路提示预留了充足的反应时间,大大提升了视障人士的出行安全。

采用本申请实施例中的路面检测方法,与传统导盲装置和其他辅助方法相比,根据深度相机镜头视场角,本发明可以探测前方全视场角范围的区域,一般在60°至120°范围之间。较宽的探测范围,为视障人士提供更多的安全空间的同时,也为通路提示提供了更多更灵活的选择,使得视障人士出行避障更加灵活。

采用本申请实施例中的路面检测方法,与传统导盲装置和其他辅助方法相比,本发明因为计算简易、计算量小,在普通嵌入式设备或移动终端上均能达30fps以上的实时计算帧率,故不仅能检测出前方固定不动的障碍(如花台、树木、电杆等),还能检测出低速运动的障碍(如行人、手推车等),对高速运动的障碍(如汽车等)也有一定的适应能力。

采用本申请实施例中的路面检测方法,与传统导盲装置和其他辅助方法相比,本发明因为采用行均值图的方式检测路面及路面坡度,其对深度图噪声具有极高的鲁棒性,能够准确的检测出路面,并给出路面坡度,同时根据路面检测结果能够有效的去除障碍检测中的路面虚报干扰,使得障碍检测的结果更可靠。

为了使本申请实施例中的技术方案及优点更加清楚明白,以下结合附图对本申请的示例性实施例进行进一步详细的说明,显然,所描述的实施例仅是本申请的一部分实施例,而不是所有实施例的穷举。需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。

实施例一

图1中示出了根据本申请实施例一的路面检测方法流程图。如图1所示,包括以下步骤:

s101,接收深度传感器获取的图像,其中,图像是深度传感器坐标系下的深度图。

在具体实施时,本申请中的深度传感器(又称为深度相机)通常可以包括以下三类:基于结构光的三维传感器,如kinect、realsense、leapmotion、orbbec等;或者基于双目立体视觉的三维传感器,如zed、inuitive、human+司眸等;或者基于tof原理的深度传感器,如pmd、panasonic等。

接下来,可以在上述各类深度传感器提供的丰富的三维环境信息,即,深度图的基础上,实现路面检测、坡度检测、障碍检测等多种检测。

s102,将深度传感器坐标系下的深度图转换为世界坐标系下的深度图;其中,所述世界坐标系下的深度图中每个像素点的值包括各像素点到所述深度传感器的水平距离。

在具体实施时,可以以深度传感器光心为世界坐标系原点,选取水平向右为xw轴正方向,垂直向下为yw轴正方向,垂直于xwyw平面并指向正前方为zw轴正方向,建立如图2所示的世界坐标系。因为世界坐标系与深度传感器坐标系原点重合,故两个坐标系之间只存在旋转关系,没有平移关系,所以可以根据深度传感器的姿态角将深度传感器坐标系下的点p(xc,yc,zc)转换到世界坐标系下的点p(xw,yw,zw),计算公式为:

其中,xw为图像中各像素点在世界坐标系的x轴坐标值;yw为图像中各像素点在世界坐标系的y轴坐标值;zw为图像中各像素点在世界坐标系的z轴坐标值;α,β,γ是深度传感器的姿态角,分别表示所述深度传感器的x、y、z轴绕世界坐标系的x、y、z轴的旋转角;xc为图像中各像素点在深度传感器坐标系的x轴坐标值;yc为图像中各像素点在深度传感器坐标系的y轴坐标值;zc为图像中各像素点在深度传感器坐标系的z轴坐标值。

在具体实施时,可以通过惯性测量单元imu获取深度传感器的姿态角。

在具体实施时,由于深度传感器坐标系下的三维点p(xc,yc,zc)到像素坐标系下二维点p(u,v)之间存在如图3所示的映射关系;因此,图像中各像素点在深度传感器坐标系的坐标值xc、yc和zc可以根据深度传感器坐标系下三维点p(xc,yc,zc)到像素坐标系下二维点p(u,v)之间的映射关系:以及预先获得的深度传感器的内参矩阵m3×4、图像中各像素点(u,v)的深度值d(u,v)变形得到:

其中,m3×4是深度传感器的内参矩阵;u0=m3×4(0,2),v0=m3×4(1,2),表示深度传感器的光心在像素坐标系下的坐标;fu=m3×4(0,0),fv=m3×4(1,1),表示深度传感器分别在像素坐标系下u方向和v方向上的等效焦距;d(u,v)为图像中坐标(u,v)处的深度值。

应当理解,在s102的另一种具体实施方式中,当图像拍摄时刻的深度相机的z轴与世界坐标系的z轴平行时,也可以不进行坐标轴的转换,直接根据该图像中各像素点在深度传感器坐标系的z轴坐标值,得到深度图;本申请对此不作限制。

至此,已经得到了世界坐标系下的深度图。

s103,确定所述世界坐标系下的深度图的行均值。

具体的,假如深度图zw如图4所示;可以对世界坐标系下的深度图zw进行预处理,然后计算行均值,并以行数-行均值建立行均值图irowsmean,如图5所示。具体地,该预处理可以包括平滑、滤波、去噪等处理。

s104,根据该行均值确定该图像中是否包括路面。

在具体实施时,s104可以采用以下子步骤实施:

s1041,根据该行均值得到该行均值列向量。

具体地,可以先对行均值图irowsmean进行预处理,具体可以是:由于路面通常在世界坐标系中的深度值zw由近及远具有单调递增的特性,因此可以先去除行均值图irowsmean中从下往上非单调递增的行均值,然后对剩下的行均值进行孤点滤除,微小断裂带连接操作,得到如图6所示的预处理后的行均值图。

然后将行均值图重组为行均值列向量vrowsmean。

s1042,根据该行均值列向量确定疑似路面区域。

具体地,可以将该深度图中、行均值列向量中值为0的行置0;并将该深度图中各像素点的深度值与该行均值列向量相应值的差,大于等于预先设定的路面起伏容忍度的位置的值置0;将该深度图中不为0的位置确定为疑似路面区域。

具体地,若vrowsmean第v行对应的值为0,则将深度图zw中第v行置零;若|zw(u,v)-vrowsmean[v]|<δ,其中,δ为设定的路面起伏容忍度;则保留深度图zw中(u,v)坐标位置的值,否则置零;然后从下往上逐行扫描,最后得到疑似路面区域。

s1043,根据预设的主平面位置阈值确定该疑似路面区域对应的主平面。

在具体实施时,在本步骤之前,还可以包括:对疑似路面区域进行形态学处理,滤除小的孤岛并连接小的断裂带的步骤。

在具体实施时,可以对形态学处理之后的疑似路面进行主平面筛选,具体选取策略可以预先设定。例如,选取面积最大,且选定区域最下方距离深度图zw最下方不超过εrows行的区域。具体地,可以设置其中εrows为设定的主平面位置阈值,为深度图zw的高。

s1044,对该主平面上各点进行拟合,得到该主平面的法向与世界坐标系y轴正向方的夹角。

在具体实施时,可以用最小二乘法对选定的主平面上的所有点p(xw,yw,zw)拟合平面ax+by+cz+d=0,得到平面的法向然后计算法向与世界坐标系y轴正方向的夹角θ。

s1045,根据该夹角的大小判断该疑似路面区域是否包括路面。

在具体实施时,当该夹角的绝对值大于设定值时,可以判断该主平面不是路面,该疑似路面区域不包括路面;此时该疑似路面可能是楼梯、墙面等非路面的其他事物;当该夹角绝对值小于等于设定值时,判断该主平面是路面,该疑似路面区域包括路面。该设定值可以是预先设定的角度值,表示最大路面倾角阈值;例如,30度、25度等。

进一步地,当夹角大于第一值,且小于设定值时,还可以判断路面为上坡路;当夹角小于第二值,且大于负的设定值时,判断路面为下坡路;其中,第二值为负值。具体地,该第一值和第二值可以互为相反数;该第一值可以是例如0度,3度,5度等小的角度。而当夹角大于等于第二值,小于等于第一值时,可以判断路面为水平路面。

例如,令θ0为设定的最大路面倾角阈值,若|θ|>θ0,则判断该主平面不是路面;若0<θ<θ0,则判断该路面为坡度为θ角的上坡路;若-θ0<θ<0,则该路面为坡度为θ角的下坡路。

至此,完成了路面检测、路面坡度检测。

s105,障碍检测。

具体地,如果图像中包括路面,则可以从深度图中去除路面;并根据去除路面后的深度图,执行障碍检测;如果图像中不包括路面,则可以直接根据深度图,执行障碍检测。

在具体实施时,s105可以采用以下子步骤实施:

s1051,用设定的最大最小检测距离dmax,dmin对s101中获取的图像进行阈值截断,仅保留dmin≤d≤dmax的深度值。

具体地,最大最小检测距离可以由用户根据障碍提示的需要预先设定,当用户未进行设置时,也可以由系统自带默认设置。一般可以设置最小检测距离为30厘米;最大检测距离可以设置为例如,3米,4米,5米,8米等;本申请对此均不作限制。

s1052,在drange中去除s104中检测出的路面,避免在后续提取障碍物边缘时将路面误检为障碍。

应当理解,当s104中检测出图像中不包括路面时,也可以不执行s1052。

在本步骤执行之前,还可以对截断后的深度图drange进行平滑滤波,减少噪声对后续提取障碍物边缘时的影响。

s1053,障碍物轮廓提取,选取轮廓封闭且轮廓内面积大于设定阈值minarea的轮廓为候选障碍物。

在本步骤执行之前,还可以对上述去除路面干扰、去除检测距离范围之外的深度图进行形态学处理,进一步去除边缘毛刺及孤岛等噪声对后续提取障碍物边缘时的影响。

s1054,根据选定的障碍物轮廓,获取障碍物的基本信息:用最小外包矩形将障碍轮廓框选,用此框表示障碍物的位置;用轮廓内的所有非零像素值的平均值表示障碍物的平均距离;得到障碍物离深度传感器的距离。

s1055,以障碍物外包矩形的非零中心或离零值中心最近的非零点的坐标(u,v)为障碍物中心,根据深度相机的内参矩阵m3×4计算障碍物在相机坐标系中的水平偏转角和垂直偏转角计算公式为:

得到障碍物在得到障碍物在深度传感器坐标系中的位置。

至此,确定了障碍物的距离和位置;完成了障碍物检测。

在具体实施时,还可以进一步的根据障碍物的轮廓,识别障碍物;例如,识别出障碍物是自行车、花坛等。

在具体实施时,还可以将路面检测、障碍检测的结果对用户进行提示,例如,可以提示用户路面的位置、障碍的距离和/或位置等。

应当理解,在具体实施时,本申请实施例中的路面检测方法可以在终端侧实现,也可以在云端服务器中实现;还可以由终端侧和云端服务器配合实现,本申请对此均不作限制。

采用本申请实施例中的路面检测方法,采用深度传感器获得传感器坐标系下的深度图,再转换为世界坐标系下的深度图,然后再通过计算世界坐标系下的深度图的行均值来判断图像中是否包括路面,与现有技术中的路面检测方法相比,准确度更高。

基于同一发明构思,本申请实施例中还提供了一种路面检测装置,由于该装置解决问题的原理与本申请实施例一所提供的方法相似,因此该装置的实施可以参见方法的实施,重复之处不再赘述。

实施例二

图7示出了根据本申请实施例二的路面检测装置的结构示意图。

如图7所示,根据本申请实施例二的路面检测装置700,包括:接收模块701,用于接收深度传感器获取的图像,其中,所述图像是深度传感器坐标系下的深度图;坐标转换模块702,用于将深度传感器坐标系下的深度图转换为世界坐标系下的深度图;其中,所述世界坐标系下的深度图中每个像素点的值包括各像素点到所述深度传感器的水平距离;行均值确定模块703,用于确定所述世界坐标系下的深度图的行均值;路面检测模块704,用于根据所述行均值确定所述图像中是否包括路面。

在具体实施时,路面检测模块具体可以包括:第一计算单元,用于计算计算该深度图的行均值;第二计算单元,用于根据该行均值得到该行均值列向量;第一确定单元,用于根据该行均值列向量确定疑似路面区域;第二确定单元,用于根据预设的主平面位置阈值确定该疑似路面区域对应的主平面;夹角确定单元,用于对该主平面上各点进行拟合,得到该主平面的法向与世界坐标系y轴正向方的夹角;判断单元,用于根据该夹角的大小判断该疑似路面区域是否包括路面。

在具体实施时,第一确定单元具体可以用于:将所述世界坐标系下的深度图中、行均值列向量中值为0的行置0;并将所述世界坐标系下的深度图中各像素点的深度值与所述行均值列向量相应值的差,大于等于预先设定的路面起伏容忍度的位置的值置0;将所述世界坐标系下的深度图中不为0的位置确定为疑似路面区域。

在具体实施时,判断单元具体可以用于:当该夹角的绝对值大于设定值时,判断该主平面不是路面,该疑似路面区域不包括路面;当该夹角绝对值小于等于设定值时,判断该主平面是路面,该疑似路面区域包括路面。

在具体实施时,判断单元还可以用于:当该夹角大于第一值,且小于该设定值时,判断该路面为上坡路;当该夹角小于第二值,且大于负的该设定值时,判断该路面为下坡路;其中,该第二值为负值。

在具体实施时,根据本申请实施例的路面检测装置还可以包括:障碍检测模块,用于在图像中包括路面时,从世界坐标系下的深度图中去除路面;并根据去除路面后的深度图,执行障碍检测;以及在图像中不包括路面时,则根据世界坐标系下的深度图,执行障碍检测。

实施例三

基于同一发明构思,本申请实施例中还提供了如图8所示的一种云端服务器800。

该云端服务器800包括:显示器801,存储器802,一个或多个处理器803;以及一个或多个模块,该一个或多个模块被存储在存储器802中,并被配置成由一个或多个处理器803执行,该一个或多个模块包括用于执行本申请实施例一中的路面检测方法中各个步骤的指令。

由于该云端服务器中运行的方法解决问题的原理与本申请实施例一所提供的方法相似,因此该云端服务器的实施可以参见方法的实施,重复之处不再赘述。

实施例四

基于同一发明构思,本申请实施例中还提供了一种计算机程序产品,该计算机程序产品对用于执行一种过程的指令进行编码,该过程包括本申请实施例一中的路面检测方法。

由于该计算机程序产品运行的方法解决问题的原理与本申请实施例一所提供的方法相似,因此该计算机程序产品的实施可以参见方法的实施,重复之处不再赘述。

本领域内的技术人员应明白,本申请的实施例可提供为方法、系统、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、cd-rom、光学存储器等)上实施的计算机程序产品的形式。

本申请是参照根据本申请实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。

这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。

这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。

尽管已描述了本申请的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例作出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本申请范围的所有变更和修改。

显然,本领域的技术人员可以对本申请进行各种改动和变型而不脱离本申请的精神和范围。这样,倘若本申请的这些修改和变型属于本申请权利要求及其等同技术的范围之内,则本申请也意图包含这些改动和变型在内。

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