用于定位的方法、装置、设备和计算机可读存储介质
技术领域
本公开的实施例总体涉及定位领域,并且更具体地,涉及用于定位的方法、装置、设备和计算机可读存储介质。
背景技术
高精度定位技术是无人驾驶技术的重要组成部分,也是无人驾驶交通工具进行路径规划、控制决策以及感知的基础。传统的定位方案主要包括基于全球定位系统(GPS)/惯性测量单元(IMU)的定位方案、基于激光雷达的定位方案以及基于相机的定位方案。
基于GPS/IMU的定位方案能够在GPS信号良好的情况下提供高精度定位服务,但是现实道路中存在大量不具有GPS信号或者GPS信号较弱的场景,导致这种方案的误差快速累积而无法获得稳定的高精度定位。基于激光雷达的方案能够利用雷达来精确测量每个地点的位置和深度,通过与点云地图进行匹配能够获得高精度的定位。然而,雷达本身价格昂贵无法大规模普及,并且点云地图更新周期短、维护成本高。基于相机的定位方案通常通过对图像中的特征点进行匹配来确定前后帧之间的相对位姿,并且通过优化设定的目标函数来得到位姿估计。然而,由于光照、视角等问题,这种方案所提取的特征不够稳定并且存在累计误差,因此无法实现满足自动驾驶要求的高精度定位。
发明内容
根据本公开的示例实施例,提供了用于定位的方案。
在本公开的第一方面中,提供了一种用于定位的方法。该方法包括获取关于运动物体所在的地理区域的视觉特征地图。该视觉特征地图包括第一组视觉特征,并且第一组视觉特征包括垂直于地理区域的路面的第一视觉特征。该方法还包括获取当运动物体在地理区域中运动期间由耦合至运动物体的相机捕获的至少一个图像。该方法还包括从至少一个图像中提取与第一组视觉特征相对应的第二组视觉特征。此外,该方法还包括至少基于视觉特征地图和第二组视觉特征,来确定运动物体在运动期间的至少一个位姿。
在本公开的第二方面中,提供了一种用于定位的装置。该装置包括:地图获取模块,被配置为获取关于运动物体所在的地理区域的视觉特征地图,该视觉特征地图包括第一组视觉特征,并且第一组视觉特征包括垂直于地理区域的路面的第一视觉特征;图像获取模块,被配置为获取当运动物体在地理区域中运动期间由耦合至该运动物体的相机捕获的至少一个图像;特征提取模块,被配置为从至少一个图像中提取与第一组视觉特征相对应的第二组视觉特征;以及位姿确定模块,被配置为至少基于视觉特征地图和第二组视觉特征,来确定运动物体在运动期间的至少一个位姿。
在本公开的第三方面中,提供了一种电子设备,包括一个或多个处理器和存储装置。存储装置用于存储一个或多个程序。当一个或多个程序被一个或多个处理器执行时,使得一个或多个处理器执行根据本公开的第一方面的方法。
在本公开的第四方面中,提供了一种计算机可读介质,其上存储有计算机程序,该计算机程序在被处理器执行时实现根据本公开的第一方面的方法。
应当理解,发明内容部分中所描述的内容并非旨在限定本公开的实施例的关键或重要特征,亦非用于限制本公开的范围。本公开的其它特征将通过以下的描述变得容易理解。
附图说明
结合附图并参考以下详细说明,本公开各实施例的上述和其他特征、优点及方面将变得更加明显。在附图中,相同或相似的附图标记表示相同或相似的元素,其中:
图1示出了本公开的实施例能够在其中实现的示例环境的示意图;
图2示出了根据本公开的实施例的用于定位的示例方法的流程图;
图3示出了根据本公开的实施例的视觉特征地图的示意图;
图4示出了根据本公开实施例的从图像中提取的视觉特征的示意图;
图5示出了根据本公开的实施例的用于确定运动物体在运动期间的位姿的示例方法的流程图;
图6示出了根据本公开的实施例的粒子滤波的示例过程的流程图;
图7示出了根据本公开的实施例的用于多个粒子在某时刻处的相应状态和相应权重的示例方法的流程图;
图8示出了根据本公开实施例的用于确定粒子在某时刻的权重的示例方法的流程图;
图9A和图9B示出了根据本公开的实施例的包括被投影的视觉特征和被提取的视觉特征的图像的示意图;
图9示出了根据本公开实施例的用于对驾驶场景数据进行分类的装置的示意性框图;
图10示出了根据本公开实施例的用于定位的装置的示意性框图;以及
图11示出了能够实施本公开的多个实施例的计算设备的框图。
具体实施方式
下面将参照附图更详细地描述本公开的实施例。虽然附图中显示了本公开的某些实施例,然而应当理解的是,本公开可以通过各种形式来实现,而且不应该被解释为限于这里阐述的实施例,相反提供这些实施例是为了更加透彻和完整地理解本公开。应当理解的是,本公开的附图及实施例仅用于示例性作用,并非用于限制本公开的保护范围。
在本公开的实施例的描述中,术语“包括”及其类似用语应当理解为开放性包含,即“包括但不限于”。术语“基于”应当理解为“至少部分地基于”。术语“一个实施例”或“该实施例”应当理解为“至少一个实施例”。术语“第一”、“第二”等可以指代不同的或相同的对象。下文还可能包括其他明确的和隐含的定义。
如以上提及的,期望实现高精度定位以满足无人驾驶的要求。传统的定位方案主要包括基于全球定位系统(GPS)/惯性测量单元(IMU)的定位方案、基于激光雷达的定位方案以及基于相机的定位方案。
基于GPS/IMU的定位方案能够在GPS信号良好的情况下提供高精度定位服务,但是现实道路中存在大量不具有GPS信号或者GPS信号较差的场景,导致这种方案的误差快速累积而无法获得稳定的高精度定位。基于激光雷达的方案能够利用雷达来精确测量每个地点的位置和深度,通过与点云地图进行匹配能够获得高精度的定位。然而,雷达本身价格昂贵无法大规模普及,并且点云地图更新周期短、维护成本高。基于相机的定位方案通常通过对图像中的特征点进行匹配来确定前后帧之间的相对位姿,并且通过优化设定的目标函数来得到位姿估计。然而,由于光照、视角等问题,这种方案所提取的特征很不稳定并且存在累计误差,因此无法实现满足自动驾驶要求的高精度定位。
根据本公开的实施例,提出了一种用于高精度定位的方案。该方案涉及通过安装在运动物体上的运动测量装置来估计物体在不同时刻间的相对运动,从而根据物体在前一时刻的位姿和相对运动来预测该物体在当前时刻的位姿。将从当前时刻捕获的图像中检测到的视觉特征与视觉特征地图中对应于所预测的当前位姿的视觉特征进行匹配,由此来确定物体在当前时刻的最终位姿。本方案能够适用于不具有GPS信号或者GPS信号较差的场景,并且能够以较低成本实现满足L4级别自动驾驶要求的高精度定位。
以下将参照附图来具体描述本公开的实施例。在本文中,术语“位姿”指代物体在特定坐标系中的位置和姿势。例如,在二维坐标系中,物体的位姿可以利用二维坐标和航向角来表示。在三维坐标系中,物体的位姿可以利用三维坐标、俯仰角、航向角和旋转角来表示。在下文中,将以二维坐标系中的位姿为例来讨论本公开的实施例。然而应当理解,这仅仅出于示例的目的,而无意于限制本公开的范围。本公开的实施例也可以适用于例如三维坐标系中的位姿。此外,术语“运动物体”指代要对其进行定位的任何交通工具或其他物体。在下文中,将以行驶中的车辆作为运动物体的示例。然而应当理解,这仅仅出于示例的目的,而无意于限制本公开的范围。本公开的实施例也可以被类似地应用于其他运动物体,诸如飞行器等。
图1示出了本公开的实施例能够在其中实现的示例环境100的示意图。环境100总体上可以包括运动物体110和定位装置120。尽管在图1中将定位装置120示出为与运动物体110分离,然而这仅仅是出于示例的目的。在一些实施例中,定位装置120也可以被包括在运动物体110中。例如,当运动物体110为自动驾驶的车辆时,定位装置120可以是该车辆中的计算装置。应当理解,在图1中仅出于示例性的目的描述环境100的结构和功能,而不暗示对于本公开的范围的任何限制。本公开的实施例还可以被应用到具有不同的结构和/或功能的环境中。
定位装置120被配置为确定运动物体110在运动期间的位姿。如图1所示,定位装置120可以获取关于运动物体110所在的地理区域的视觉特征地图101。在此所述的“视觉特征”指代可以通过视觉观察到的特定对象,并且“视觉特征地图”指代记录与地理区域内的视觉特征有关的信息(例如,位置和起始点的坐标等)的地图。在一些实施例中,视觉特征地图101可以从点云地图中被生成(以下将结合图3进一步描述),并且以栅格的形式被存储在耦合至定位装置120或者远离定位装置120的存储设备(图1中未示出)中。定位装置120可以从存储视觉特征地图101的存储设备来获取视觉特征地图101。
视觉特征地图101可以包括一组视觉特征(本文中也称为“第一组视觉特征”)。考虑到高精度定位的稳定性和可靠性要求,视觉特征地图101所包括的第一组视觉特征需要具有足够的鲁棒性,以便在不同光照和天气条件下能够稳定地被检测,同时能够提供足够的定位约束。
在一些实施例中,第一组视觉特征可以包括垂直于路面的第一视觉特征。例如,第一视觉特征的示例可以包括但不限于垂直于路面的杆状物,诸如路灯、电线杆、交通指示牌等。附加地或者备选地,第一组视觉特征还可以包括在路面中的第二视觉特征。例如,第二视觉特征的示例可以包括但不限于各种道路标志线,诸如车道线等。这些杆状或线状的视觉特征能够在不同光照和天气条件下被稳定地检测,同时能够提供足够的定位约束。
第一组视觉特征可以以实线或者虚线的形式被表示在视觉特征地图101中。例如,视觉特征地图101中可以记录表示各个视觉特征的线段的位置以及起始点的坐标。以虚线形式来表示诸如车道线的视觉特征能够提供附加的益处。例如,随着运动物体110的运动,由虚线表示的车道线特征将是变化的,由此能够为运动物体110的定位提供更多约束。
如图1所示,运动物体110上可以安装有运动测量装置111和相机112。在此所述的“运动测量装置”可以指代能够获得与运动物体110的运动有关的信息的任何传感器或测量装置,包括但不限于IMU(诸如包括加速度计、陀螺仪等)和速度传感器(诸如轮速计)等。在此所述的“相机”可以包括用于拍摄图像的摄像头、高精相机、全景相机、单目相机等。
当运动物体110在地理区域中运动时,运动测量装置111可以测量与运动物体110的运动有关的信息103,运动信息103例如可以包括但不限于运动物体110的角速度、速度(例如,车轮转速)、加速度等。与此同时,相机112可以在运动物体110的运动期间捕获至少一个图像102。所捕获的至少一个图像102例如可以包括与视觉特征地图101中的第一组视觉特征相对应的第二组视觉特征。
在一些实施例中,第二组视觉特征可以包括与第一视觉特征相对应的第三视觉特征(也即,垂直于路面的视觉特征)。例如,第三视觉特征的示例可以包括但不限于垂直于路面的杆状物,诸如路灯、电线杆、交通指示牌等。附加地或者备选地,第二组视觉特征还可以包括与第二视觉特征相对应的第四视觉特征(也即,路面中的视觉特征)。例如,第四视觉特征的示例可以包括但不限于各种道路标志线,诸如车道线等。
定位装置120可以获取运动信息103和图像102,并且基于视觉特征地图101、图像102和运动信息103来确定运动物体110的位姿。在一些实施例中,定位装置120可以基于运动信息103来估计运动物体110的运动,从而根据运动物体110在前一时刻的位姿和运动来预测该物体110在当前时刻的位姿。定位装置120可以从图像102中提取与第一组视觉特征相对应的第二组视觉特征,并且将从当前时刻的图像中提取的视觉特征与视觉特征地图101中对应于所预测的当前位姿的视觉特征进行匹配。通过视觉特征匹配,定位装置120能够确定运动物体110在运动期间的位姿,并且输出定位结果104。定位结果104例如可以被呈现给用户(例如,驾驶由运动物体110所表示的交通工具的司机)或者可以被用于自动驾驶中的路径规划和/或控制决策等。
以下将进一步结合附图来详细描述如图1所示的定位装置120的工作原理。
图2示出了根据本公开的实施例的用于定位的示例方法200的流程图。例如,方法200可以由如图1所示的定位装置120来执行。以下将结合图1来详细描述方法200的各个动作。应当理解,方法200还可以包括未示出的附加动作和/或可以省略所示出的动作。本公开的范围在此方面不受限制。
在框210,定位装置120获取关于运动物体110所在的地理区域的视觉特征地图101。
在一些实施例中,视觉特征地图101可以从点云地图中被生成,并且以栅格的形式被存储在耦合至定位装置120或者远离定位装置120的存储设备中。定位装置120可以从该存储设备中获取视觉特征地图101。
图3示出了根据本公开的实施例的视觉特征地图101的示意图。如图3所示,视觉特征地图101可以从点云地图310被生成。点云地图310是通过雷达扫描而得到的关于地理区域的三维地图。点云地图310可以通过二维投影被转换成二维反射地图320。此外,点云地图310可以通过去除其中的动态物体而被转换成三维静态地图330。在一些实施例中,可以应用自动提取算法从静态地图330中获得垂直于路面的视觉特征340(也即,第一视觉特征),诸如路灯、电线杆、交通指示牌等。附加地或者备选地,可以应用自动提取算法从反射地图320中提取路面中的视觉特征350(也即,第二视觉特征),诸如车道线等。
所提取的第一视觉特征340和/或第二视觉特征350可以以实线或者虚线的形式被表示在视觉特征地图101中。例如,视觉特征地图101中可以记录表示各个视觉特征的线段的位置以及起始点的坐标。如图3所示,视觉特征地图101可以以栅格的形式被存储,以便于后续管理和使用。例如,其中的单元格可以表示特定大小的地理区域(例如,128米×128米)。
尽管在图3中示出了包括垂直于路面的第一视觉特征340和路面中的第二视觉特征350的视觉特征地图101,然而应当理解,这仅仅出于示例的目的,而无意于限制本公开的范围。在一些实施例中,视觉特征地图101可以仅包括垂直于路面的第一视觉特征340、或者仅包括路面中的第二视觉特征350、或者包括两者的组合。在另一些实施例中,除了第一视觉特征340和第二视觉特征350之外,视觉特征地图101还可以包括其他视觉特征、或者可以包括各种视觉特征的任意组合。本公开的范围在此方面不受限制。
在框220,定位装置120获取当运动物体110在地理区域中运动期间由耦合至运动物体110的相机112捕获的至少一个图像102。例如,定位装置120可以从相机112获取至少一个图像102,并且至少一个图像102可以包括与视觉特征地图101中的第一组视觉特征相对应的第二组视觉特征。在框230,定位装置120从至少一个图像102中提取与第一组视觉特征相对应的第二组视觉特征。
在一些实施例中,第一组视觉特征可以包括垂直于路面的第一视觉特征,并且第一视觉特征可以包括垂直于路面的杆状物,诸如路灯、电线杆、交通指示牌等。定位装置120可以从至少一个图像102中提取与第一视觉特征相对应的第三视觉特征。
附加地或者备选地,在另一些实施例中,第一组视觉特征包括垂直于路面的第一视觉特征和路面中的第二视觉特征的组合,其中第一视觉特征包括垂直于路面的杆状物(诸如路灯、电线杆、交通指示牌等)并且第二视觉特征包括路面中的道路标志线(诸如车道线等)。定位装置120分别可以从至少一个图像102中提取与第一视觉特征相对应的第三视觉特征和与第二视觉特征相对应的第四视觉特征。
在一些实施例中,从至少一个图像102中提取视觉特征的过程可以包括解析过程和特征拟合过程。例如,解析过程可以使用神经网络(诸如卷积神经网络)对至少一个图像102中的每个图像中的特征进行像素级的语义分割。分割后的图像可以仅在存在特征的像素处具有像素值。特征拟合过程可以对解析后的像素前景点采用霍夫(Hough)变换来提取其中的直线特征。以上描述的仅是对图像102进行特征提取的一些示例。应当理解,可以利用任何已有或者将要开发的视觉特征提取算法来从至少一个图像102中提取与第一组视觉特征相对应的第二组视觉特征。本公开的范围在此方面不受限制。
图4示出了根据本公开实施例的从至少一个图像102之一中提取的视觉特征的示意图。图像400例如是至少一个图像102中的一幅图像。在图4中,利用白色实线来表示从图像400中提取的垂直于路面的视觉特征(例如,杆状物410),并且利用白色虚线来表示从图像400中提取的路面中的视觉特征(例如,车道线420)。
返回到图2,方法200进行至框240,其中定位装置120至少基于视觉特征地图101和从至少一个图像102中提取的第二组视觉特征来确定运动物体110在运动期间的至少一个位姿。
图5示出了根据本公开的实施例的用于确定运动物体110在运动期间的至少一个位姿的方法500的流程图。例如,方法500可以被视为如图2所示的方法200中的框240的一种示例实现。应当理解,方法500还可以包括未示出的附加动作和/或可以省略所示出的动作。本公开的范围在此方面不受限制。
在框510,定位装置120获取与运动物体110的运动有关的信息103。在一些实施例中,运动信息103由运动测量装置111采集。运动测量装置111例如可以包括但不限于IMU(诸如包括加速度计、陀螺仪等)和速度传感器(诸如轮速计)等,并且运动信息103例如可以包括但不限于运动物体110的角速度、速度(例如,车轮转速)、加速度等。
在框520,定位装置120基于视觉特征地图101、从图像102中提取的第二组视觉特征以及信息103,利用粒子滤波来确定运动物体110在运动期间的位姿。
图像102中的视觉特征是比较稀疏的,例如在单个图像中能够观察到的杆状物的数量可能十分有限甚至没有,或者车道线特征在地图中可能存在重复的现象(例如,相邻车道或者以实线表示的车道等)。此外,杆状或者线状视觉特征的匹配通常是非线性的,因此难以建立稳定的观测模型。在一些实施例中,可以利用粒子滤波来解决上述问题以及其他潜在问题。粒子滤波的基本原理是利用一系列随机样本来表示各种可能的状态,通过计算每个样本的后验概率来近似地模拟状态的概率密度分布。
图6示出了根据本公开的实施例的粒子滤波的示例过程600的流程图。例如,过程600可以被视为如图5所示的方法500中的框520的一种示例实现。应当理解,过程600还可以包括未示出的附加动作和/或可以省略所示出的动作。本公开的范围在此方面不受限制。
在框610,定位装置120利用多个粒子来表示运动物体110在运动期间的一个时刻的多个可能位姿。
在一些实施例中,在初始时刻,可以利用GPS信号(或者其他方式)来确定运动物体110的初始位姿。假定运动物体110的初始状态以及该初始状态的协方差已知,可以基于该协方差在初始状态附近随机采样K次,以生成K个粒子,其中每个粒子的状态表示一种可能的位姿。以二维坐标系中的位姿为例,例如每个粒子的状态可以包括航向角和位置坐标(x,y)。例如,K个粒子中的第i个粒子的初始状态可以被表示为其中1≤i≤K并且i表示该粒子的索引。此外,每个粒子可以被分配有初始权重,例如1/K。随着时间推移,每个粒子的状态和权重可以被随之更新。
在框620,定位装置120确定多个粒子在时刻k处的相应状态和相应权重。图7示出了根据本公开的实施例的用于多个粒子在时刻k处的相应状态和相应权重的方法700的流程图。例如,方法700可以被视为如图6所示的过程600中的框620的一种示例实现。应当理解,方法700还可以包括未示出的附加动作和/或可以省略所示出的动作。本公开的范围在此方面不受限制。
在框710,针对K个粒子中的第i个粒子,定位装置120确定该粒子在时刻k的前一时刻k-1处的第一状态和第一权重。然后,在框720处,定位装置120基于运动信息103和第一状态来估计该粒子在时刻k处的第二状态。
在一些实施例中,可以根据运动模型和粒子在时刻k的前一时刻k-1处的第一状态来估计粒子在当前时刻k处的第二状态。例如,定位装置120可以基于如下公式(1)来确定粒子在当前时刻k处的第二状态:
其中表示基于在时刻k-1处的状态而预测的当前时刻k处的第i个粒子的状态,表示该粒子在时刻k-1处的状态,并且ΔX表示该粒子从时刻k-1到时刻k的状态变化。在以上公式(1)中,表示该粒子在时刻k-1处的航向角,表示该粒子在时刻k-1处的横坐标,表示该粒子在时刻k-1处的纵坐标,并且Δt表示从时刻k-1到时刻k的时间间隔。和分别表示角速度和速度,它们来自由运动测量装置111测量得到的运动信息103。
在一些实施例中,由于测量过程可能存在噪声,可以利用高斯噪声来进行近似,例如:
其中ωgyro是例如由运动测量装置111中的IMU测量得到的角速度,vwheel是例如由运动测量装置111中的轮速计测量得到的速度,和分别是对角速度和速度噪声的采样。
在框730,定位装置120基于第一权重和第二状态来确定该粒子在时刻k处的第二权重。
在一些实施例中,经过如框720所示的时间更新步骤,能够确定粒子i在时刻k处的预测状态即运动物体110的一种可能的预测位姿。此时,定位装置120可以将视觉特征地图101中的视觉特征通过坐标变换投影当在时刻k处捕获的图像中,通过计算从该图像中提取的视觉特征与投影的视觉特征的匹配程度来更新粒子的后验概率,从而确定该粒子在时刻k处的第二权重。
例如,粒子i在时刻k处的第二权重可以基于如下公式(3)来被确定:
其中,表示粒子i在时刻k-1处的第一权重,表示粒子i在时刻k处的第二权重,是根据匹配程度算出的该粒子的当前概率。在一些实施例中,为了更好的区分开粒子的权重,可以采用高斯函数拟合概率,也即:
其中均值μ=min(Ei),方差σ2=(∑(Ei-μ)2)/K。Ei表示针对粒子i的匹配程度,以下将结合图8进行详细描述如何确定Ei。
图8示出了根据本公开实施例的用于确定粒子i在时刻k处的第二权重的方法800的流程图。例如,方法800可以被视为如图7所示的方法700中的框730的一种示例实现。应当理解,方法800还可以包括未示出的附加动作和/或可以省略所示出的动作。本公开的范围在此方面不受限制。
在框810,定位装置120基于粒子在当前时刻k处的第二状态和视觉特征地图101,来确定在时刻k处捕获的图像(本文中也称为“第一图像”)中预期出现的至少一个视觉特征。
在一些实施例中,定位装置120可以粒子i在时刻k处的预测状态将视觉特征地图101中的视觉特征(例如,第一视觉特征和/或第二视觉特征)通过坐标变换投影到在时刻k处捕获的第一图像中。视觉特征地图101中的被投影到第一图像中的视觉特征即为第一图像中预期出现的视觉特征。例如,图9A示出了根据本公开的实施例的包括被投影的视觉特征和被提取的视觉特征的第一图像900的示意图。在图9A中,利用白色实线和虚线来表示从图像900中提取的视觉特征(例如,包括垂直于路面的视觉特征和路面中的视觉特征)。此外,在图9A中,利用黑色实线来表示视觉特征地图101中的被投影到第一图像900中的视觉特征(例如,包括垂直于路面的视觉特征和路面中的视觉特征)。
在框820,定位装置120确定在第一图像中预期出现的至少一个视觉特征与从第一图像中提取的至少一个视觉特征之间的匹配程度。
为了描述如何确定被投影在第一图像中的视觉特征和从第一图像中提取的视觉特征的匹配程度,图9A中示出了示例区域910。如图9A所示,在示例区域910中,既包括被投影在第一图像900中的车道线也包括原本出现在第一图像900中的被提取的车道线。为了便于说明,图9B对图9A中的示例区域910进行了放大显示。
如图9B所示,示例区域910中包括原本出现在第一图像900中的被提取的车道线特征901(在以下公式中利用下标p来表示)和从视觉特征地图101被投影在第一图像900中的车道线特征902(在以下公式中利用下标q来表示)。特征901和902之间的误差度量可以包括三个部分:角度误差θerr、距离误差derr以及重合长度l。特征901和902的最终匹配程度可以基于以上公式(5)来被确定:
Epq=l-derr-ratio*l*θerr 公式(5)
其中,Epq表示匹配程度,该值越大表明匹配程度越高。公式(5)中的参数ratio为预定义系数。
假设第一图像中所提取的特征总数为M,而投影到第一图像的地图特征的总数为N。在一些实施例中,针对第一图像中所提取的M个视觉特征中的每一个,可以与投影后的相应特征进行匹配,并确定相应的匹配程度。以此方式,能够得到值最大的Epq,其可以被认为是特征p的匹配程度,即
Ep=max(Epq),1≤q≤N 公式(6)
在一些实施例中,考虑到对于杆状物可能存在遮挡等情况从而导致只能检测到一部分,在计算匹配程度时可以不考虑重合长度l。
然后,可以针对第一图像中的所有特征的匹配程度进行求和,由此可以得到针对粒子i的匹配程度:
在框830,定位装置120基于粒子i在时刻k-1处的第一权重和匹配程度,来确定粒子i在时刻k处的第二权重。
在一些实施例中,例如定位装置120可以基于以上公式(3)~公式(7)来确定粒子i在时刻k处的第二权重在一些实施例中,可以对所确定的粒子的权重进行归一化处理,也即使得所有粒子的权重之和为1。
以此方式,定位装置120能够确定多个粒子在时刻k处的相应状态和相应权重。
返回至图6,过程600进行至框630,其中定位装置120基于多个粒子在时刻k处的相应状态和相应权重,来确定运动物体110在该时刻k处的位姿。
在一些实施例中,定位装置120可以根据所有粒子的分布状态对粒子进行聚类,以将所有粒子分为多个簇。定位装置120可以进一步确定每个簇中的粒子的权重之和,从而确定权重之和最大的簇。假设权重之和最大的簇中包含粒子集合Φ,则运动物体110在该时刻k处的位姿可以被确定为:
在一些实施例中,在上述粒子滤波过程中,为了避免粒子退化(即,其概率变为零)而导致权重分布不均衡,可以对粒子进行重采样,以保证大部分粒子的概率处于有效范围内。
例如,可以在如下公式(9)被满足的情况进行重采样:
其中,K表示粒子的数量。
图6-8示出了根据本公开的实施例的粒子滤波过程。如上所述,粒子滤波能够克服图像102中的视觉特征比较稀疏的问题。在一些实施例中,定位装置120还可以对粒子滤波的结果进行附加的处理。例如,粒子滤波的结果和运动信息103(例如,由IMU测量的信息)可以被提供给扩展卡尔曼滤波器,以进一步提高定位结果的质量。出于简化的目的,在本文中不再赘述。
以此方式,本公开的实施例能够克服传统定位方案中的种种问题。例如,本公开的实施例能够在GPS信号或者GPS信号较差的场景下实现高精度定位,从而以较低成本满足L4级别自动驾驶要求。
图10示出了根据本公开实施例的用于定位的装置1000的示意性框图。如图10所示,装置1000可以包括地图获取模块1010,其被配置为获取关于运动物体所在的地理区域的视觉特征地图。该视觉特征地图包括第一组视觉特征,并且第一组视觉特征包括垂直于地理区域的路面的第一视觉特征。装置1000还可以包括图像获取模块1020,其被配置为获取当运动物体在地理区域中运动期间由耦合至运动物体的相机捕获的至少一个图像。装置1000还可以包括结果提供模块1030,其被配置为从至少一个图像中提取与第一组视觉特征相对应的第二组视觉特征。此外,装置1000还可以包括位姿确定模块1040,其被配置为至少基于视觉特征地图和第二组视觉特征,来确定运动物体在运动期间的至少一个位姿。
在一些实施例中,第一视觉特征包括垂直于所述地理区域的路面的杆状物。
在一些实施例中,第一组视觉特征还包括在地理区域的路面中的第二视觉特征。
在一些实施例中,第二视觉特征包括在地理区域的路面中的道路标志线。
在一些实施例中,特征提取模块还被配置为:从至少一个图像中提取与第一视觉特征和第二视觉特征分别对应的第三视觉特征和第四视觉特征。位姿确定模块还被配置为:至少基于视觉特征地图以及第三视觉特征和第四视觉特征,来确定运动物体在运动期间的至少一个位姿。
在一些实施例中,位姿确定模块包括:信息获取单元,被配置为获取与运动物体的运动有关的信息;以及粒子滤波单元,被配置为基于视觉特征地图、第二组视觉特征以及信息,利用粒子滤波来确定运动物体在运动期间的至少一个位姿。
在一些实施例中,信息获取单元还被配置为:从耦合至运动物体的惯性测量单元和速度传感器中的至少一项来获取信息。
在一些实施例中,该信息包括运动物体的角速度和速度中的至少一项。
在一些实施例中,粒子滤波单元还被配置为:利用多个粒子来表示运动物体在运动期间的一个时刻的多个可能位姿;确定多个粒子在该时刻的相应状态和相应权重;以及基于多个粒子在该时刻的相应状态和相应权重,来确定运动物体在该时刻的位姿。
在一些实施例中,粒子滤波单元还被配置为通过以下操作来确定多个粒子在该时刻的相应状态和相应权重:针对多个粒子中的一个粒子,确定该粒子在该时刻的前一时刻的第一状态和第一权重;基于信息和第一状态,来估计该粒子在该时刻的第二状态;以及基于第一权重和第二状态,来确定该粒子在该时刻的第二权重。
在一些实施例中,粒子滤波单元还被配置为通过以下操作来确定该粒子在该时刻的第二权重:基于第二状态和视觉特征地图,来确定在至少一个图像中的第一图像中预期出现的第一组视觉特征中的至少一个视觉特征,其中第一图像由耦合至运动物体的相机在该时刻捕获;确定在第一图像中预期出现的至少一个视觉特征与从第一图像中提取的第二组视觉特征中的至少一个视觉特征之间的匹配程度;以及基于第一权重和匹配程度,来确定第二权重。
图11示出了可以用来实施本公开的实施例的示例设备1100的示意性框图。设备1100可以用于实现如图1所述的定位装置120。如图所示,设备1100包括中央处理单元(CPU)1101,其可以根据存储在只读存储器(ROM)1102中的计算机程序指令或者从存储单元1108加载到随机访问存储器(RAM)1103中的计算机程序指令,来执行各种适当的动作和处理。在RAM 1103中,还可存储设备1100操作所需的各种程序和数据。CPU 1101、ROM 1102以及RAM1103通过总线1104彼此相连。输入/输出(I/O)接口1105也连接至总线1104。
设备1100中的多个部件连接至I/O接口1105,包括:输入单元1106,例如键盘、鼠标等;输出单元1107,例如各种类型的显示器、扬声器等;存储单元1108,例如磁盘、光盘等;以及通信单元1109,例如网卡、调制解调器、无线通信收发机等。通信单元1109允许设备1100通过诸如因特网的计算机网络和/或各种电信网络与其他设备交换信息/数据。
处理单元1101执行上文所描述的各个方法和处理,例如方法200、500、600、700和/或800。例如,在一些实施例中,方法200、500、600、700和/或800可被实现为计算机软件程序,其被有形地包含于机器可读介质,例如存储单元1108。在一些实施例中,计算机程序的部分或者全部可以经由ROM 1102和/或通信单元1109而被载入和/或安装到设备1100上。当计算机程序加载到RAM 1103并由CPU 1101执行时,可以执行上文描述的方法200、500、600、700和/或800的一个或多个步骤。备选地,在其他实施例中,CPU 1101可以通过其他任何适当的方式(例如,借助于固件)而被配置为执行方法200、500、600、700和/或800。
本文中以上描述的功能可以至少部分地由一个或多个硬件逻辑部件来执行。例如,非限制性地,可以使用的示范类型的硬件逻辑部件包括:场可编程门阵列(FPGA)、专用集成电路(ASIC)、专用标准产品(ASSP)、芯片上系统的系统(SOC)、负载可编程逻辑设备(CPLD)等。
用于实施本公开的方法的程序代码可以采用一个或多个编程语言的任何组合来编写。这些程序代码可以提供给通用计算机、专用计算机或其他可编程数据处理装置的处理器或控制器,使得程序代码当由处理器或控制器执行时使流程图和/或框图中所规定的功能/操作被实施。程序代码可以完全在机器上执行、部分地在机器上执行,作为独立软件包部分地在机器上执行且部分地在远程机器上执行或完全在远程机器或服务器上执行。
在本公开的上下文中,机器可读介质可以是有形的介质,其可以包含或存储以供指令执行系统、装置或设备使用或与指令执行系统、装置或设备结合地使用的程序。机器可读介质可以是机器可读信号介质或机器可读储存介质。机器可读介质可以包括但不限于电子的、磁性的、光学的、电磁的、红外的、或半导体系统、装置或设备,或者上述内容的任何合适组合。机器可读存储介质的更具体示例会包括基于一个或多个线的电气连接、便携式计算机盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦除可编程只读存储器(EPROM或快闪存储器)、光纤、便捷式紧凑盘只读存储器(CD-ROM)、光学储存设备、磁储存设备、或上述内容的任何合适组合。
此外,虽然采用特定次序描绘了各操作,但是这应当理解为要求这样操作以所示出的特定次序或以顺序次序执行,或者要求所有图示的操作应被执行以取得期望的结果。在一定环境下,多任务和并行处理可能是有利的。同样地,虽然在上面论述中包含了若干具体实现细节,但是这些不应当被解释为对本公开的范围的限制。在单独的实施例的上下文中描述的某些特征还可以组合地实现在单个实现中。相反地,在单个实现的上下文中描述的各种特征也可以单独地或以任何合适的子组合的方式实现在多个实现中。
尽管已经采用特定于结构特征和/或方法逻辑动作的语言描述了本主题,但是应当理解所附权利要求书中所限定的主题未必局限于上面描述的特定特征或动作。相反,上面所描述的特定特征和动作仅仅是实现权利要求书的示例形式。