一种视觉定位方法、装置、计算机设备和存储介质

文档序号:1243122 发布日期:2020-08-18 浏览:5次 >En<

阅读说明:本技术 一种视觉定位方法、装置、计算机设备和存储介质 (Visual positioning method and device, computer equipment and storage medium ) 是由 王溯恺 黄淮扬 王恒立 蔡培德 薛博桓 于洋 王鲁佳 刘明 于 2020-04-01 设计创作,主要内容包括:本申请涉及一种视觉定位方法、装置、计算机设备和存储介质。所述方法包括:获取运动物体视区范围内路标的第一位置坐标,所述第一位置坐标为世界坐标系的坐标;获取由取像器采集的所述视区范围内路标的图像;计算所述图像中路标特征点的像素坐标;根据所述像素坐标和所述第一位置坐标确定所述取像器的位姿;根据所述位姿以及所述取像器与所述运动物体之间的位姿变换关系计算所述运动物体在所述世界坐标系下的第二位置坐标。采用本方法能够提高视觉定位的准确性。(The application relates to a visual positioning method, a visual positioning device, computer equipment and a storage medium. The method comprises the following steps: acquiring a first position coordinate of a road sign in a visual area range of a moving object, wherein the first position coordinate is a coordinate of a world coordinate system; acquiring an image of the road sign in the visual area range acquired by an image acquirer; calculating pixel coordinates of the road sign feature points in the image; determining the pose of the image capture device according to the pixel coordinates and the first position coordinates; and calculating a second position coordinate of the moving object under the world coordinate system according to the pose and the pose transformation relation between the image capture device and the moving object. The method can improve the accuracy of visual positioning.)

一种视觉定位方法、装置、计算机设备和存储介质

技术领域

本申请涉及计算机视觉技术领域,特别是涉及一种基于路标的视觉定位方法、装置、计算机设备和存储介质。

背景技术

随着计算机和数字图像处理技术的发展,出现了视觉定位技术。视觉定位技术在机器人、无人驾驶、无人机等领域有广泛的应用。目前常用的基于连续帧的视觉里程计方法,定位误差会随着系统运行时间增加而逐渐增大,从而导致定位不准确的问题。

发明内容

基于此,有必要针对上述技术问题,提供一种能够在缺少稳定且独特的视觉特征点的应用环境中精确定位的视觉定位方法、装置、计算机设备和存储介质。

一种视觉定位方法,其特征在于,所述方法包括:

获取运动物体视区范围内路标的第一位置坐标,所述第一位置坐标为世界坐标系的坐标;

获取由取像器采集的所述视区范围内路标的图像;

计算所述图像中路标特征点的像素坐标;

根据所述像素坐标和所述第一位置坐标确定所述取像器的位姿;

根据所述位姿以及所述取像器与所述运动物体之间的位姿变换关系计算所述运动物体在所述世界坐标系下的第二位置坐标。

在一个实施例中,所述获取运动物体视区范围内路标的第一位置坐标之前,还包括:

通过传感器检测所述运动物体的角速度和加速度;

根据所述角速度、所述加速度及所述运动物体的初始位置计算所述运动物体的预估位置;

所述获取运动物体视区范围内路标的第一位置坐标包括:

确定所述运动物体预估位置视区范围内路标编号;

获取所述编号路标的第一位置坐标。

在一个实施例中,所述计算所述运动物体在世界坐标系下的第二位置坐标之后,还包括:

利用所述第二位置坐标对所述预估位置进行更新。

所述计算所述图像中路标特征点的像素坐标包括:

在所述图像中按照所述预估位置确定感兴趣区域;

按照所述感兴趣区域从所述图像中提取感兴趣区域图像;

判断所述感兴趣区域图像中是否包含完整的路标;

若否,则调整感兴趣区域,并重新提取包含完整路标的感兴趣区域图像;

根据重新提取的所述感兴趣区域图像计算路标特征点的像素坐标。

在一个实施例中,所述判断所述感兴趣区域图像中是否包含完整的路标包括:

对所述感兴趣区域图像进行二值化处理,得到二值化图像;

从所述二值化图像中提取路标图像特征;

根据所提取的路标图像特征与预设路标特征进行对比;

根据对比结果确定所述感兴趣区域图像中是否包含完整的路标。

在一个实施例中,所述调整感兴趣区域,并重新提取包含完整路标的感兴趣区域图像包括:

确定所述二值化图像中路标图形的重心;

在所述二值化图像中平移所述感兴趣区域,并按照平移后的感兴趣区域从所述二值化图像提取包含完整路标的感兴趣区域图像。

在一个实施例中,所述取像器为双目摄像机;所述根据所述像素坐标和所述第一位置坐标确定所述取像器的位姿包括:

计算所述双目摄像机的左右目重投影误差;

根据所述重投影误差计算所述取像器的位姿。

一种视觉定位装置,所述装置包括:

获取模块,用于获取运动物体视区范围内路标的第一位置坐标,所述第一位置坐标为世界坐标系的坐标;

所述获取模块还用于获取由取像器采集的所述视区范围内路标的图像;

计算模块,用于计算所述图像中路标特征点的像素坐标;

确定模块,用于根据所述像素坐标和所述第一位置坐标确定所述取像器的位姿;

所述计算模块还用于根据所述位姿以及所述取像器与所述运动物体之间的位姿变换关系计算所述运动物体在所述世界坐标系下的第二位置坐标。

在一个实施例中,所述装置还包括:

检测模块,用于通过传感器检测所述运动物体的角速度和加速度;

所述计算模块还用于根据所述角速度、所述加速度及所述运动物体的初始位置计算所述运动物体的预估位置;

所述获取模块还用于确定所述运动物体预估位置视区范围内路标编号;获取所述编号路标的第一位置坐标。

在一个实施例中,所述装置还包括:

更新模块,用于利用所述第二位置坐标对所述预估位置进行更新。

在一个实施例中,所述计算模块,还用于:

在所述图像中按照所述预估位置确定感兴趣区域;

按照所述感兴趣区域从所述图像中提取感兴趣区域图像;

判断所述感兴趣区域图像中是否包含完整的路标;

若否,则调整感兴趣区域,并重新提取包含完整路标的感兴趣区域图像;

根据重新提取的所述感兴趣区域图像计算路标特征点的像素坐标。

在一个实施例中,所述计算模块还用于:

对所述感兴趣区域图像进行二值化处理,得到二值化图像;

从所述二值化图像中提取路标图像特征;

根据所提取的路标图像特征与预设路标特征进行对比;

根据对比结果确定所述感兴趣区域图像中是否包含完整的路标。

在一个实施例中,所述计算模块还用于:

确定所述二值化图像中路标图形的重心;

在所述二值化图像中平移所述感兴趣区域,并按照平移后的感兴趣区域从所述二值化图像提取包含完整路标的感兴趣区域图像。

在一个实施例中,所述取像器为双目摄像机;所述计算模块还用于:

计算所述双目摄像机的左右目重投影误差;

根据所述重投影误差计算所述取像器的位姿。

一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,其特征在于,所述处理器执行所述计算机程序时实现如下视觉定位方法:

获取运动物体视区范围内路标的第一位置坐标,所述第一位置坐标为世界坐标系的坐标;

获取由取像器采集的所述视区范围内路标的图像;

计算所述图像中路标特征点的像素坐标;

根据所述像素坐标和所述第一位置坐标确定所述取像器的位姿;

根据所述位姿以及所述取像器与所述运动物体之间的位姿变换关系计算所述运动物体在所述世界坐标系下的第二位置坐标。

在一个实施例中,所述获取运动物体视区范围内路标的第一位置坐标之前,还包括:

通过传感器检测所述运动物体的角速度和加速度;

根据所述角速度、所述加速度及所述运动物体的初始位置计算所述运动物体的预估位置;

所述获取运动物体视区范围内路标的第一位置坐标包括:

确定所述运动物体预估位置视区范围内路标编号;

获取所述编号路标的第一位置坐标。

在一个实施例中,所述计算所述运动物体在世界坐标系下的第二位置坐标之后,还包括:

利用所述第二位置坐标对所述预估位置进行更新。

所述计算所述图像中路标特征点的像素坐标包括:

在所述图像中按照所述预估位置确定感兴趣区域;

按照所述感兴趣区域从所述图像中提取感兴趣区域图像;

判断所述感兴趣区域图像中是否包含完整的路标;

若否,则调整感兴趣区域,并重新提取包含完整路标的感兴趣区域图像;

根据重新提取的所述感兴趣区域图像计算路标特征点的像素坐标。

在一个实施例中,所述判断所述感兴趣区域图像中是否包含完整的路标包括:

对所述感兴趣区域图像进行二值化处理,得到二值化图像;

从所述二值化图像中提取路标图像特征;

根据所提取的路标图像特征与预设路标特征进行对比;

根据对比结果确定所述感兴趣区域图像中是否包含完整的路标。

在一个实施例中,所述调整感兴趣区域,并重新提取包含完整路标的感兴趣区域图像包括:

确定所述二值化图像中路标图形的重心;

在所述二值化图像中平移所述感兴趣区域,并按照平移后的感兴趣区域从所述二值化图像提取包含完整路标的感兴趣区域图像。

在一个实施例中,所述取像器为双目摄像机;所述根据所述像素坐标和所述第一位置坐标确定所述取像器的位姿包括:

计算所述双目摄像机的左右目重投影误差;

根据所述重投影误差计算所述取像器的位姿。

一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如下视觉定位方法:

获取运动物体视区范围内路标的第一位置坐标,所述第一位置坐标为世界坐标系的坐标;

获取由取像器采集的所述视区范围内路标的图像;

计算所述图像中路标特征点的像素坐标;

根据所述像素坐标和所述第一位置坐标确定所述取像器的位姿;

根据所述位姿以及所述取像器与所述运动物体之间的位姿变换关系计算所述运动物体在所述世界坐标系下的第二位置坐标。

在一个实施例中,所述获取运动物体视区范围内路标的第一位置坐标之前,还包括:

通过传感器检测所述运动物体的角速度和加速度;

根据所述角速度、所述加速度及所述运动物体的初始位置计算所述运动物体的预估位置;

所述获取运动物体视区范围内路标的第一位置坐标包括:

确定所述运动物体预估位置视区范围内路标编号;

获取所述编号路标的第一位置坐标。

在一个实施例中,所述计算所述运动物体在世界坐标系下的第二位置坐标之后,还包括:

利用所述第二位置坐标对所述预估位置进行更新。

所述计算所述图像中路标特征点的像素坐标包括:

在所述图像中按照所述预估位置确定感兴趣区域;

按照所述感兴趣区域从所述图像中提取感兴趣区域图像;

判断所述感兴趣区域图像中是否包含完整的路标;

若否,则调整感兴趣区域,并重新提取包含完整路标的感兴趣区域图像;

根据重新提取的所述感兴趣区域图像计算路标特征点的像素坐标。

在一个实施例中,所述判断所述感兴趣区域图像中是否包含完整的路标包括:

对所述感兴趣区域图像进行二值化处理,得到二值化图像;

从所述二值化图像中提取路标图像特征;

根据所提取的路标图像特征与预设路标特征进行对比;

根据对比结果确定所述感兴趣区域图像中是否包含完整的路标。

在一个实施例中,所述调整感兴趣区域,并重新提取包含完整路标的感兴趣区域图像包括:

确定所述二值化图像中路标图形的重心;

在所述二值化图像中平移所述感兴趣区域,并按照平移后的感兴趣区域从所述二值化图像提取包含完整路标的感兴趣区域图像。

在一个实施例中,所述取像器为双目摄像机;所述根据所述像素坐标和所述第一位置坐标确定所述取像器的位姿包括:

计算所述双目摄像机的左右目重投影误差;

根据所述重投影误差计算所述取像器的位姿。

上述视觉定位方法、装置、计算机设备和存储介质,通过取像器采集视区范围内路标的图像,提取出图像中路标的像素坐标。该路标像素坐标和事先确定的世界坐标系坐标通过运算即可得到取像器的位姿,继而通过取像器的位姿以及取像器与运动物体之间的位姿变换关系计算得到运动物体在世界坐标系下的位置坐标。由于计算出来的位置坐标是基于运动物体视区范围内的路标计算而来的,而在物体运动过程中视区范围内的路标是实时更新的,因此所计算出来的运动物体的位置坐标是不会累积产生误差积累。此外,不同的路标之间通常间隔固定一段距离,通过间隔固定距离的路标进行视觉定位,即便运动物体的视觉范围内其它特征点少,也可以根据间隔固定距离的路标计算出该运动物体的位置坐标,从而可以适用于不存在稳定且独特的视觉特征点的环境,系统运行稳定,定位准确性高。

附图说明

图1为一个实施例中视觉定位方法的应用环境示意图;

图2为一个实施例中视觉定位方法的流程示意图;

图3为一个实施例中视觉定位系统示意图;

图4为一个实施例中判断图像中是否包含完整路标的流程示意图;

图5为一个实施例中视觉定位方法的流程示意图;

图6为另一个实施例中视觉定位方法的流程示意图;

图7为一个实施例中视觉定位装置的结构框图;

图8为一个实施例中计算机设备的结构框图。

具体实施方式

为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。

本申请提供的视觉定位方法,可以应用于如图1所示的应用环境中。其中,该应用环境中包含有运动物体102和路标104。运动物体102获取运动物体视区范围内路标104的第一位置坐标,第一位置坐标为世界坐标系的坐标;获取由取像器采集的视区范围内路标104的图像;计算图像中路标特征点的像素坐标;根据像素坐标和第一位置坐标确定取像器的位姿;根据位姿以及取像器与运动物体之间的位姿变换关系计算运动物体在世界坐标系下的第二位置坐标。

其中,运动物体102可以是无人车、无人机、机器人或者无人驾驶的船舶。路标104是可以具有指示作用的标志。路标可以是地面上绘制的各种不同的图形(如图1中的菱形路标),或是立在地面上的指示牌,又或是以浮标形式漂浮于水面上,还可以是悬挂等其他方式。

在一个实施例中,如图2所示,对运动物体进行视觉定位的方法,包括以下步骤:

S202,获取运动物体视区范围内路标的第一位置坐标,第一位置坐标为世界坐标系的坐标。

其中,运动物体视区范围内路标的第一位置坐标为世界坐标系中的坐标。世界坐标系的坐标是一种绝对坐标,在没有建立用户坐标系之前,画面上所有点的坐标都是以该世界坐标系的原点来确定各自的位置的。

视区范围是运动物体上摄像头所能拍摄到的范围,或者是运动物体上雷达所能扫描到的范围。

在一个实施例中,路标可以是菱形路标。对应的,运动物体获取自身视区范围内菱形路标的第一位置坐标。

在一个实施例中,运动物体通过内置的GPS定位系统、或置于该运动物体中的移动终端对运动物体进行定位,得到运动物体的位置信息,根据运动物体的位置信息可以确定出处于该运动物体视区范围内路标的编号,根据该编号获取该路标的第一位置坐标。

在另一个实施例中,路标上标注有编号,每个编号都对应有事先测量好的第一位置坐标。运动物体通过取像器采集视区范围内路标的图像,通过数字图像处理技术对该图像的编号进行识别,得到该视区范围内路标的编号,进而根据该编号获取该视区范围内路标的第一位置坐标。

在一个实施例中,S202之前,还包括如下步骤:运动物体通过传感器获得运动物体的角速度和加速度;根据角速度、加速度及运动物体的初始位置获得运动物体的预估位置;确定运动物体预估位置视区范围内路标编号;获取编号路标的第一位置坐标。

其中,传感器是一种运动数据检测装置,可以检测被测运动物体的角速度和加速度。通过传感器测量出的角速度和加速度可以计算出运动物体相对于初始位置的位移,继而获得运动物体的位置(即为上述的预估位置)。上述的角速度可以是运动物体轮子的转动速度。

在一个实施例中,运动物体将角速度转换为线速度,根据线速度、加速度及运动物体的初始位置获得运动物体的预估位置。

在一个实施例中,传感器包括陀螺仪和加速度计。陀螺仪根据角动量守恒的原理测量出X,Y,Z三轴的角速度。加速度计测量X,Y,Z三轴的加速度。

在一个实施例中,运动物体根据预估位置获得此预估位置前方距离运动物体最近的路标的编号。

在一个实施例中,当路标的编号和对应的位置坐标存储于运动物体时,运动物体在获取到路标的编号之后,根据路标的编号从存储区域中获取对应的第一位置坐标。

在一个实施例中,当路标的编号和对应的位置坐标存储于服务器时,运动物体生成携带有编号的位置坐标获取请求,并将该位置坐标获取请求发送至服务器,以使该服务器根据位置坐标获取请求中的编号获取对应的第一位置坐标,并将该第一位置坐标发送给运动物体。

S204,获取由取像器采集的视区范围内路标的图像。

取像器属于运动物体的视觉定位系统中的一部分,是用于获得路标图像的装置。其中,视觉定位系统除了包括取像器302,还可以包括传感器304和处理器306,如图3所示。

在一个实施例中,运动物体通过取像器302采集路标的图像。传感器306采集运动数据。取像器302和传感器304将采集的数据传输到处理器306进行处理。

在一个实施例中,取像器可以是摄像机。摄像机通过感光元件把光信号转变为电信号。

在一个实施例中,取像器可以是激光雷达。运动物体通过激光雷达中的激光发射器发射一束激光,然后激光投射到运动物体上发生反射。运动物体通过激光雷达中的激光接收器接收反射的激光,通过接收的反射激光感知外界环境,读取周围环境的点云数据。运动物体对点云数据进行处理得到运动物体的灰度图像。

在一个实施例中,取像器可以是双目摄像机,双目摄像机可以是具有两个摄像头的摄像机,两个摄像头拍摄的图像类似人的左眼和右眼看到的图像,两幅图像具有视差,物体距离越远,视差越小;反之,视差越大。同一点在双目摄像机的左目和右目图像中具有不同的像素位置。运动物体根据物体在左目和右目图像中的像素位置可以计算出物体距离取像器的距离。

取像器具有一定的视区范围,其能够采集到的区域是受到限制的。为了能够在尽可能多的时间清楚地看到距离运动物体最近的路标,在一个实施例中,取像器安装的角度略微向下倾斜。

S206,计算图像中路标特征点的像素坐标。

路标特征点的像素坐标是路标特征点在取像器所采集图像中的相对坐标。

在一个实施例中,运动物体首先对图像进行边缘检测提取出路标的轮廓。运动物体从轮廓中提取出路标特征点,并计算出该路标征点在图像中的像素坐标。

在另一个实施例中,当取像器采集到视区范围内图像之后,运动物体对采集的图像进行图像锐化,以增强图像的边缘及灰度跳变的部分,使图像轮廓变得清晰。运动物体采用边缘检测算法从锐化后的图像中提取出关于路标的轮廓。运动物体从轮廓中提取出路标特征点,并计算出该路标征点在图像中的像素坐标。其中,边缘检测算法可以是sobel算子、Roberts算子、Canny算子、Prewitt算子或者Laplacian算子等。

在一个实施例中,用FAST(Features From Accelerated Segment Test)算法提取图像中的路标特征点。FAST算法基于候选特征点与周围像素点的灰度值的差值来判断候选特征点是否可以充当特征点。

由于取像器采集的图像中不仅包含路标而且包含其他不相关的背景。为了降低其他不相关背景对算法的干扰,在一个实施例中,运动物体首先预估路标所在图像中的区域,并将预估的路标所在图像中的区域作为感兴趣区域。运动物体利用数字图像处理技术对感兴趣区域进行边缘检测和特征提取,得到路标特征点,然后计算路标特征点的像素坐标。

在一个实施例中,运动物体根据路标的第一位置坐标确定图像中的感兴趣区域。

在一个实施例中,运动物体根据运动物体的预估位置确定感兴趣区域。运动物体在获得预估位置之后,可以判断视区范围内距离运动物体最近的路标的第一位置坐标。运动物体然后根据该第一位置坐标确定图像中的感兴趣区域。

对于拍摄的图像,可能会出现路标的一部分位于感兴趣区域之内,另一部分位于感兴趣区域之外的情况。如果根据预估位置选取的感兴趣区域并不包含完整的路标,则运动物体对感兴趣区域进行调整,使得路标位于感兴趣区域图像中,便于下一步进行路标检测。

在一个实施例中,运动物体依照感兴趣区域从取像器采集的图像中提取出感兴趣区域图像。然后执行如图4中的S402,即执行判断感兴趣区域图像中是否包含完整的路标。若否,执行S404,即执行调整感兴趣区域,并重新提取包含完整路标的感兴趣区域图像。如果已经包含完整路标,则执行S406,即执行计算路标的视觉特征点像素坐标。

在一个实施例中,运动物体按照提取规则提取出感兴趣区域图像中路标的所有特征点,如果提取出的路标特征点数量小于预设数量,则确定感兴趣区域图像中没有包含完整的路标。

在另一个实施例中,判断感兴趣区域图像中是否包含完整的路标的步骤,具体包括:运动物体对感兴趣区域图像进行二值化处理,得到二值化图像。从二值化图像中提取路标图像特征。根据所提取的路标图像特征与预设路标特征进行对比。根据对比结果确定感兴趣区域图像中是否包含完整的路标。如果提取出的路标特征与预设特征完全相同,则取像器所采集的图像中包含完整的路标,如果提取出的路标特征与预设特征不完全相同,则说明取像器所采集的图像中没有包含完整的路标。

二值化算法是以一定的阈值确定一个像素点是属于背景还是前景,如果是背景,则将该点赋值为0,反之则将其赋值为1(或255)。由于路标的颜色和亮度和背景区域有较大差别,对感兴趣区域图像进行二值化处理,得到二值化的图像,可以将路标从背景中分离出来。在一个实施例中,运动物体用自适应阈值算法对感兴趣区域图像进行二值化处理。自适应阈值算法是指通过判断和计算取得该图像区域的平均阈值进行迭代,对不同部分采用不同的阈值,具有较强鲁棒性。

S208,根据像素坐标和第一位置坐标确定取像器的位姿。

路标的像素坐标是路标在取像器采集的视区范围内图像中的坐标,而路标的第一位置坐标是其在世界坐标系的绝对坐标。

在一个实施例中,摄像机是双目摄像机,运动物体根据双目摄像机拍摄的路标的左右两幅图像的视差可以计算出路标距离摄像机的距离。由于路标的第一位置坐标是已知的,所以根据路标距离摄像机的位置可以计算出摄像机的位姿。

在一个实施例中,采用菱形的路标,菱形的路标具有计算复杂度小,实时性好的特点;取像器位姿的计算方法如下:

已知路标菱形的四个角点在世界坐标系下的坐标是p1,p2,p3,p4。其在双目摄像机采集的左右目图像中对应的像素坐标为通过最小化三维点到图像的重投影误差计算相机在世界坐标系下的位姿左右目重投影误差分别表示如下:

其中,Kl和Kr分别为左右相机的内参矩阵,为事先标定的左目到右目的变换。通过ceres-solver求解这个非线性最小二乘问题,求解得到位姿,该位姿的表达式如下:

其中,是通过优化方式求解得到摄像机位姿的估计值,估计值近似等于真值

S210,根据位姿以及取像器与运动物体之间的位姿变换关系计算运动物体在世界坐标系下的第二位置坐标。

在一个实施例中,取像器的位姿与运动物体的中心位置存在一定的位姿变换关系,在取得取像器的位姿之后,即可根据上述位姿变换关系得到运动物体的位姿。

上述实施例中,通过取像器采集视区范围内路标的图像,提取出图像中路标的像素坐标。该路标像素坐标和事先确定的世界坐标系坐标通过运算即可得到取像器的位姿,继而通过取像器的位姿以及取像器与运动物体之间的位姿变换关系计算得到运动物体在世界坐标系下的位置坐标。由于计算出来的位置坐标是基于运动物体视区范围内的路标计算而来的,而在物体运动过程中视区范围内的路标是实时更新的,因此所计算出来的运动物体的位置坐标是不会累积产生误差积累。此外,不同的路标之间通常间隔固定一段距离,通过间隔固定距离的路标进行视觉定位,即便运动物体的视觉范围内其它特征点少,也可以根据间隔固定距离的路标计算出该运动物体的位置坐标,从而可以适用于不存在稳定且独特的视觉特征点的环境,系统运行稳定,定位准确性高。

在一个实施例中,如图5所示,对运动物体进行视觉定位的方法,包括以下步骤:

S502,通过传感器检测运动物体的角速度和加速度。

S504,根据角速度、加速度及运动物体的初始位置计算运动物体的预估位置。

S506,确定运动物体预估位置视区范围内路标编号。

S508,获取编号路标的第一位置坐标。

S510,获取由取像器采集的视区范围内路标的图像。

S512,计算图像中路标特征点的像素坐标。

S514,根据像素坐标和第一位置坐标确定取像器的位姿。

S516,根据位姿以及取像器与运动物体之间的位姿变换关系计算运动物体在世界坐标系下的第二位置坐标。

S502至S516,运动物体计算得到第二位置坐标的方法如上文所述。

S518,计算路标特征点的可靠性。

由于运动物体根据传感器采集的运动物体的角速度和加速度计算出来的运动物体的预估位置具有一定的误差,并且这种误差随着时间的推移会不断累积,所以要对预估位置进行更新以提高定位的精确性。运动物体在运动过程中,由于取像器的视区范围有限,并不能保证时刻采集到完整的路标。并且通过图像处理技术得到的路标轮廓可能和实际的轮廓并不相同,所以提取出的路标的特征点可能并不可靠。以至于运动物体根据路标特征点在感兴趣区域图像中的像素坐标和其第一位置坐标计算得到的取像器位姿可能并不准确。所以,首先计算路标特征点的可靠性。

在一个实施例中,路标的形状为菱形。路标特征点的可靠性的衡量标准是检测得到的路标轮廓与通过顶点得到的理想路标的轮廓的像素差。具体而言,算法可以输出路标轮廓,但是这个轮廓的四边并不完全是直线,而通过这个轮廓的四个顶点可以构造出四边是直线的图形,经验上讲,这两个轮廓越接近,说明检测得到的菱形的可靠性越高。因此采用这两个轮廓的像素差的平均值作为衡量标准。

S520,判断路标特征点的可靠性是否大于预设的阈值。

在一个实施例中,选取的阈值为5个像素,即如果两个轮廓的像素差的平均值小于5个像素,则认为此时检测到的菱形为可靠的,可以用于计算运动物体的位置。

如果大于预设的阈值,则认为路标的可靠性高,执行S522,利用第二位置坐标对预估位置进行更新;如果小于预设的阈值,则认为路标的可靠性低,以预估位置对运动物体进行定位。

在路标的可靠性大于一个阈值时,运动物体计算第二位置坐标,并且选择两个路标之间路标的可靠性大于预设的阈值时更新运动物体第二位置坐标。也就是说,在路标的可靠性低的时候采用传感器采集的运动信息估算运动物体的位置。但是由于这种估算的方法随着时间的推移,误差会逐渐增大。所以在一段时间之后对运动物体的预估位置进行更新,可以减少预估位置坐标的累积误差,提高对运动物体定位的精确性。

在一个实施例中,如图6所示,S602至S612的方法如上文所述。如果路标的可靠性大于预设的阈值,则执行S616至S620,计算运动物体的第二位置坐标,S616至S620的方法如上文所述。然后执行S622,判断运动物体是否经过新路标。每经过一个路标,选择从上一个路标到经过这个路标过程中可靠性最高的定位结果更新运动物体的第二位置坐标。

采用运动物体在两个路标之间路标的可靠性最高时的第二位置坐标对预估位置进行更新,可以最大限度的提高定位的精确性。

应该理解的是,虽然图2-4的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,图2-4中的至少一部分步骤可以包括多个步骤或者多个阶段,这些步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤中的步骤或者阶段的至少一部分轮流或者交替地执行。

在一个实施例中,提供了一种视觉定位装置,该视觉定位装置具体包括:获取模块702、确定模块704和计算模块706;其中:

获取模块702,用于获取运动物体视区范围内路标的第一位置坐标,第一位置坐标为世界坐标系的坐标;

获取模块702还用于获取由取像器采集的视区范围内路标的图像;

计算模块706,用于计算图像中路标特征点的像素坐标;

确定模块704,用于根据像素坐标和第一位置坐标确定取像器的位姿;

计算模块706还用于根据位姿以及取像器与运动物体之间的位姿变换关系计算运动物体在世界坐标系下的第二位置坐标。

在一个实施例中,如图7所示,装置还包括:

检测模块708,用于通过传感器检测运动物体的角速度和加速度;

计算模块706,还用于根据角速度、加速度及运动物体的初始位置计算运动物体的预估位置;

获取模块702还用于确定运动物体预估位置视区范围内路标编号;获取编号路标的第一位置坐标。

在一个实施例中,如图7所示,装置还包括:

更新模块710,用于利用第二位置坐标对预估位置进行更新。

在一个实施例中,计算模块706还用于:

在图像中按照预估位置确定感兴趣区域;

按照感兴趣区域从图像中提取感兴趣区域图像;

判断感兴趣区域图像中是否包含完整的路标;

若否,则调整感兴趣区域,并重新提取包含完整路标的感兴趣区域图像;

根据重新提取的感兴趣区域图像计算路标特征点的像素坐标。

在一个实施例中,计算模块706还用于:

对感兴趣区域图像进行二值化处理,得到二值化图像;

从二值化图像中提取路标图像特征;

根据所提取的路标图像特征与预设路标特征进行对比;

根据对比结果确定感兴趣区域图像中是否包含完整的路标。

在一个实施例中,计算模块706还用于:

确定二值化图像中路标图形的重心;

在二值化图像中平移感兴趣区域,并按照平移后的感兴趣区域从二值化图像提取包含完整路标的感兴趣区域图像。

在一个实施例中,取像器为双目摄像机;计算模块还用于:

计算双目摄像机的左右目重投影误差;

根据重投影误差计算取像器的位姿。

关于视觉定位装置的具体限定可以参见上文中对于视觉定位方法的限定,在此不再赘述。上述视觉定位装置中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。

如图8所示,在一个实施例中,提供了一种计算机设备,包括存储器和处理器,存储器存储有计算机程序,计算机程序被处理器执行时,使得处理器执行上述视觉定位方法的步骤。

在一个实施例中,提供了一种计算机设备,该计算机设备可以是运动物体,其内部结构图可以如图8所示。该计算机设备包括通过系统总线连接的处理器、存储器、显示屏、输入装置、通信接口。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作系统和计算机程序。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该计算机设备的通信接口用于与外部的终端进行有线或无线方式的通信,无线方式可通过WIFI、运营商网络、NFC(近场通信)或其他技术实现。该计算机程序被处理器执行时以实现一种视觉定位方法。该计算机设备的显示屏可以是液晶显示屏或者电子墨水显示屏,该计算机设备的输入装置可以是显示屏上覆盖的触摸层,也可以是计算机设备外壳上设置的按键、轨迹球或触控板,还可以是外接的键盘、触控板或鼠标等。

本领域技术人员可以理解,图8中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的计算机设备的限定,具体的计算机设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。

在一个实施例中,提供了一种计算机设备,包括存储器和处理器,存储器中存储有计算机程序,该处理器执行计算机程序时实现以下步骤:获取运动物体视区范围内路标的第一位置坐标,第一位置坐标为世界坐标系的坐标;获取由取像器采集的视区范围内路标的图像;计算图像中路标特征点的像素坐标;根据像素坐标和第一位置坐标确定取像器的位姿;根据位姿以及取像器与运动物体之间的位姿变换关系计算运动物体在世界坐标系下的第二位置坐标。

在一个实施例中,处理器执行计算机程序时还实现以下步骤:通过传感器检测运动物体的角速度和加速度;根据角速度、加速度及运动物体的初始位置计算运动物体的预估位置;确定运动物体预估位置视区范围内路标编号;获取编号路标的第一位置坐标。

在一个实施例中,处理器执行计算机程序时还实现以下步骤:利用第二位置坐标对预估位置进行更新。

在一个实施例中,处理器执行计算机程序时还实现以下步骤:在图像中按照预估位置确定感兴趣区域;按照感兴趣区域从图像中提取感兴趣区域图像;判断感兴趣区域图像中是否包含完整的路标;若否,则调整感兴趣区域,并重新提取包含完整路标的感兴趣区域图像;根据重新提取的感兴趣区域图像计算路标特征点的像素坐标。

在一个实施例中,处理器执行计算机程序时还实现以下步骤:对感兴趣区域图像进行二值化处理,得到二值化图像;从二值化图像中提取路标图像特征;根据所提取的路标图像特征与预设路标特征进行对比;根据对比结果确定感兴趣区域图像中是否包含完整的路标。

在一个实施例中,处理器执行计算机程序时还实现以下步骤:确定二值化图像中路标图形的重心;在二值化图像中平移感兴趣区域,并按照平移后的感兴趣区域从二值化图像提取包含完整路标的感兴趣区域图像。

在一个实施例中,处理器执行计算机程序时还实现以下步骤:计算双目摄像机的左右目重投影误差;根据重投影误差计算取像器的位姿。

在一个实施例中,提供了一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现以下步骤:

获取运动物体视区范围内路标的第一位置坐标,第一位置坐标为世界坐标系的坐标;获取由取像器采集的视区范围内路标的图像;计算图像中路标特征点的像素坐标;根据像素坐标和第一位置坐标确定取像器的位姿;根据位姿以及取像器与运动物体之间的位姿变换关系计算运动物体在世界坐标系下的第二位置坐标。

在一个实施例中,计算机程序被处理器执行时还实现以下步骤:通过传感器检测运动物体的角速度和加速度;根据角速度、加速度及运动物体的初始位置计算运动物体的预估位置;获取运动物体视区范围内路标的第一位置坐标包括:确定运动物体预估位置视区范围内路标编号;获取编号路标的第一位置坐标。

在一个实施例中,计算机程序被处理器执行时还实现以下步骤:利用第二位置坐标对预估位置进行更新。

在一个实施例中,计算机程序被处理器执行时还实现以下步骤:在图像中按照预估位置确定感兴趣区域;按照感兴趣区域从图像中提取感兴趣区域图像;判断感兴趣区域图像中是否包含完整的路标;若否,则调整感兴趣区域,并重新提取包含完整路标的感兴趣区域图像;根据重新提取的感兴趣区域图像计算路标特征点的像素坐标。

在一个实施例中,计算机程序被处理器执行时还实现以下步骤:对感兴趣区域图像进行二值化处理,得到二值化图像;从二值化图像中提取路标图像特征;根据所提取的路标图像特征与预设路标特征进行对比;根据对比结果确定感兴趣区域图像中是否包含完整的路标。

在一个实施例中,计算机程序被处理器执行时还实现以下步骤:确定二值化图像中路标图形的重心;在二值化图像中平移感兴趣区域,并按照平移后的感兴趣区域从二值化图像提取包含完整路标的感兴趣区域图像。

在一个实施例中,计算机程序被处理器执行时还实现以下步骤:计算双目摄像机的左右目重投影误差;根据重投影误差计算取像器的位姿。

本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的各实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和易失性存储器中的至少一种。非易失性存储器可包括只读存储器(Read-OnlyMemory,ROM)、磁带、软盘、闪存或光存储器等。易失性存储器可包括随机存取存储器(Random Access Memory,RAM)或外部高速缓冲存储器。作为说明而非局限,RAM可以是多种形式,比如静态随机存取存储器(Static Random Access Memory,SRAM)或动态随机存取存储器(Dynamic Random Access Memory,DRAM)等。

以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。

以上实施例仅表达了本申请的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本申请构思的前提下,还可以做出若干变形和改进,这些都属于本申请的保护范围。因此,本申请专利的保护范围应以所附权利要求为准。

21页详细技术资料下载
上一篇:一种医用注射器针头装配设备
下一篇:一种激光点云特征的提取方法

网友询问留言

已有0条留言

还没有人留言评论。精彩留言会获得点赞!

精彩留言,会给你点赞!