掌桥专利:专业的专利平台
掌桥专利
首页

视觉定位方法、装置、服务器及存储介质

文献发布时间:2023-06-19 10:58:46


视觉定位方法、装置、服务器及存储介质

技术领域

本申请涉及自动驾驶技术领域,特别涉及一种视觉定位方法、装置、服务器及存储介质。

背景技术

目前,在自动驾驶领域,主要通过视觉里程计的方法来估计无人驾驶车辆的位姿,根据该位姿对无人驾驶车辆进行导航。视觉里程计方法主要是通过连续帧间的视觉信息,来确定无人驾驶车辆的位姿。

相关技术中,无人驾驶车辆上安装有摄像设备,在无人驾驶车辆行驶过程中,通过摄像设备实时拍摄周围环境的图像,然后从拍摄的相邻两帧图像中提取特征点,将提取的特征点进行匹配,得到特征点对,根据匹配的特征点对确定无人驾驶车辆的位姿。

发明内容

本申请实施例提供了一种视觉定位方法、装置、服务器及存储介质,可以提高视觉定位的准确性。该技术方案如下。

根据本申请实施例的一方面,本申请实施例提供了一种视觉定位方法,所述方法包括:

确定多个摄像设备对应的第一特征信息,所述多个摄像设备均安装在待定位的目标对象上,且任一摄像设备对应的第一特征信息为所述任一摄像设备采集的多帧图像的特征信息;

对于每个摄像设备,基于所述摄像设备对应的第一特征信息,确定所述摄像设备的第二特征信息,所述第二特征信息包括运动物体对应的特征信息;

从所述第一特征信息中过滤所述第二特征信息,得到所述摄像设备对应的第三特征信息,所述第三特征信息为静止物体对应的特征信息;

基于所述多个摄像设备对应的第三特征信息,确定所述目标对象的第一位姿信息,所述第一位姿信息为所述目标对象在当前帧与历史帧之间的相对位姿信息。

在一种可能的实现方式中,所述基于所述摄像设备对应的第一特征信息,确定所述摄像设备的第二特征信息,包括:

基于所述摄像设备对应的第一特征信息,确定所述摄像设备的第二位姿信息,所述第二位姿信息为所述摄像设备在相邻两帧图像之间的相对位姿信息;

基于所述第二位姿信息,确定所述摄像设备的第二特征信息。

在另一种可能的实现方式中,所述第二特征信息还包括误检测的特征点对的位置信息和误匹配的特征点对的位置信息中的至少一个。

在另一种可能的实现方式中,所述基于所述第二位姿信息,确定所述摄像设备的第二特征信息,包括:

基于所述第二位姿信息,确定所述摄像设备在相邻两帧图像中每个匹配的特征点对的第一重投影误差信息,以及其他任一摄像设备在相邻两帧图像中每个匹配的特征点对的第二重投影误差信息;

基于所述第一重投影误差信息和所述第二重投影误差信息,确定所述第二特征信息。

在另一种可能的实现方式中,所述第一特征信息包括所述相邻两帧图像中匹配的特征点对的位置信息;

所述基于所述第二位姿信息,确定所述摄像设备在相邻两帧图像中每个匹配的特征点对的第一重投影误差信息,以及其他任一摄像设备在相邻两帧图像中每个匹配的特征点对的第二重投影误差信息,包括:

基于所述第二位姿信息和所述摄像设备对应的第一特征点对的位置信息,将所述第一特征点对中的第一特征点进行投影,得到第一重投影误差信息,所述第一特征点对为所述摄像设备对应的相邻两帧图像之间匹配的特征点对中的任一特征点对,所述第一特征点为所述第一特征点对中的任一特征点;

基于所述第二位姿信息和其他任一摄像设备对应的第二特征点对的位置信息,将所述第二特征点对中的第二特征点进行投影,得到第二重投影误差信息,所述第二特征点对为所述其他任一摄像设备对应的相邻两帧图像之间匹配的特征点对中的任一特征点对,所述第二特征点为所述第二特征点对中的任一特征点。

在另一种可能的实现方式中,所述基于所述多个摄像设备对应的第三特征信息,确定所述目标对象的第一位姿信息,包括:

基于所述多个摄像设备对应的第三特征信息,确定所述多个摄像设备的稳定系数;

基于所述多个摄像设备的稳定系数,从所述多个摄像设备中确定目标摄像设备,所述目标摄像设备为稳定系数最高的摄像设备;

基于所述目标摄像设备对应的第三特征信息,确定所述目标对象的第一位姿信息。

在另一种可能的实现方式中,所述第三特征信息包括相邻两帧图像中处于静止状态的特征点对的位置信息;

所述基于所述多个摄像设备对应的第三特征信息,确定所述多个摄像设备的稳定系数,包括:

基于每个摄像设备对应的处于静止状态的特征点对的位置信息,确定所述每个摄像设备对应的处于静止状态的特征点对的第一数量,所述第一数量的大小用于表征所述摄像设备的稳定系数。

在另一种可能的实现方式中,所述第三特征信息包括相邻两帧图像中处于静止状态的特征点对的位置信息;

所述基于所述多个摄像设备对应的第三特征信息,确定所述多个摄像设备的稳定系数,包括:

基于所述每个摄像设备对应的处于静止状态的特征点对的位置信息,确定所述每个摄像设备对应的每个处于静止状态的特征点对的第三重投影误差信息;

将每个处于静止状态的特征点对的第三重投影误差信息对应的重投影误差进行求和,得到和值,所述和值的大小用于表征所述摄像设备的稳定系数。

在另一种可能的实现方式中,所述确定多个摄像设备对应的第一特征信息,包括:

对于每个摄像设备采集的每帧图像,对所述图像进行特征点检测,得到多个特征点;

将所述每个摄像设备对应的相邻两帧图像的多个特征点进行匹配,得到匹配的特征点对;

将匹配的特征点对的位置信息作为所述每个摄像设备对应的第一特征信息。

根据本申请实施例的一方面,提供了一种视觉定位装置,所述装置包括:

第一确定模块,用于确定多个摄像设备对应的第一特征信息,所述多个摄像设备均安装在待定位的目标对象上,且任一摄像设备对应的第一特征信息为所述任一摄像设备采集的多帧图像的特征信息;

第二确定模块,用于对于每个摄像设备,基于所述摄像设备对应的第一特征信息,确定所述摄像设备的第二特征信息,所述第二特征信息包括运动物体对应的特征信息;

过滤模块,用于从所述第一特征信息中过滤所述第二特征信息,得到所述摄像设备对应的第三特征信息,所述第三特征信息为静止物体对应的特征信息;

第三确定模块,用于基于所述多个摄像设备对应的第三特征信息,确定所述目标对象的第一位姿信息,所述第一位姿信息为所述目标对象在当前帧与历史帧之间的相对位姿信息。

在一种可能的实现方式中,所述第二确定模块,用于基于所述摄像设备对应的第一特征信息,确定所述摄像设备的第二位姿信息,所述第二位姿信息为所述摄像设备在相邻两帧图像之间的相对位姿信息;基于所述第二位姿信息,确定所述摄像设备的第二特征信息。

在另一种可能的实现方式中,所述第二特征信息还包括误检测的特征点对的位置信息和误匹配的特征点对的位置信息中的至少一个。

在另一种可能的实现方式中,所述第二确定模块,用于基于所述第二位姿信息,确定所述摄像设备在相邻两帧图像中每个匹配的特征点对的第一重投影误差信息,以及其他任一摄像设备在相邻两帧图像中每个匹配的特征点对的第二重投影误差信息;基于所述第一重投影误差信息和所述第二重投影误差信息,确定所述第二特征信息。

在另一种可能的实现方式中,所述第一特征信息包括所述相邻两帧图像中匹配的特征点对的位置信息;

所述第二确定模块,用于基于所述第二位姿信息和所述摄像设备对应的第一特征点对的位置信息,将所述第一特征点对中的第一特征点进行投影,得到第一重投影误差信息,所述第一特征点对为所述摄像设备对应的相邻两帧图像之间匹配的特征点对中的任一特征点对,所述第一特征点为所述第一特征点对中的任一特征点;基于所述第二位姿信息和其他任一摄像设备对应的第二特征点对的位置信息,将所述第二特征点对中的第二特征点进行投影,得到第二重投影误差信息,所述第二特征点对为所述其他任一摄像设备对应的相邻两帧图像之间匹配的特征点对中的任一特征点对,所述第二特征点为所述第二特征点对中的任一特征点。

在另一种可能的实现方式中,所述第三确定模块,用于基于所述多个摄像设备对应的第三特征信息,确定所述多个摄像设备的稳定系数;基于所述多个摄像设备的稳定系数,从所述多个摄像设备中确定目标摄像设备,所述目标摄像设备为稳定系数最高的摄像设备;基于所述目标摄像设备对应的第三特征信息,确定所述目标对象的第一位姿信息。

在另一种可能的实现方式中,所述第三特征信息包括相邻两帧图像中处于静止状态的特征点对的位置信息;

所述第三确定模块,用于基于每个摄像设备对应的处于静止状态的特征点对的位置信息,确定所述每个摄像设备对应的处于静止状态的特征点对的第一数量,所述第一数量的大小用于表征所述摄像设备的稳定系数。

在另一种可能的实现方式中,所述第三特征信息包括相邻两帧图像中处于静止状态的特征点对的位置信息;

所述第三确定模块,用于基于所述每个摄像设备对应的处于静止状态的特征点对的位置信息,确定所述每个摄像设备对应的每个处于静止状态的特征点对的第三重投影误差信息;将每个处于静止状态的特征点对的第三重投影误差信息对应的重投影误差进行求和,得到和值,所述和值的大小用于表征所述摄像设备的稳定系数。

在另一种可能的实现方式中,所述第一确定模块,用于对于每个摄像设备采集的每帧图像,对所述图像进行特征点检测,得到多个特征点;将所述每个摄像设备对应的相邻两帧图像的多个特征点进行匹配,得到匹配的特征点对;将匹配的特征点对的位置信息作为所述每个摄像设备对应的第一特征信息。

根据本申请实施例的一方面,提供了一种服务器,该服务器包括一个或多个处理器和一个或多个存储器,该一个或多个存储器中存储有至少一条程序代码,该至少一条程序代码由该一个或多个处理器加载并执行以实现如上述任一种可能实现方式的视觉定位方法所执行的操作。

根据本申请实施例的一方面,提供了一种计算机可读存储介质,该存储介质中存储有至少一条程序代码,该至少一条程序代码由处理器加载并执行以实现如上述任一种可能实现方式的视觉定位方法所执行的操作。

根据本申请实施例的一方面,提供了一种计算机程序或计算机程序产品,所述计算机程序或计算机程序产品包括:计算机程序代码,所述计算机程序代码被服务器执行时,使得所述服务器实现如上述任一种可能实现方式的视觉定位方法所执行的操作。

本申请实施例提供的视觉定位方法,在对目标对象进行视觉定位时,先根据摄像设备采集的多帧图像的特征信息,确定运动物体的特征信息,然后从该多帧图像的特征信息中过滤掉运动物体的特征信息,得到静止物体的特征信息,这样就可以根据静止物体的特征信息对目标对象进行视觉定位,排除运动物体的影响,从而提高了视觉定位的准确性。

附图说明

为了更清楚地说明本申请实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1是本申请实施例提供的一种视觉定位方法的实施环境的示意图;

图2是本申请实施例提供的一种视觉定位方法的流程图;

图3是本申请实施例提供的一种视觉定位方法的流程图;

图4是本申请实施例提供的一种确定目标摄像设备的示意图;

图5是本申请实施例提供的一种视觉定位装置的结构示意图;

图6是本申请实施例提供的一种服务器的结构框图。

具体实施方式

为使本申请的目的、技术方案和优点更加清楚,下面将结合附图对本申请实施方式作进一步地详细描述。

可以理解,本申请所使用的术语“第一”、“第二”等可在本文中用于描述各种概念,但除非特别说明,这些概念不受这些术语限制。这些术语仅用于将一个概念与另一个概念区分。举例来说,在不脱离本申请的范围的情况下,可以将第一设备称为第二设备,且类似地,可将第二设备称为第一设备。

图1是本申请实施例提供的一种视觉定位方法的实施环境图,参见图1,该实施环境包括:多个摄像设备101和服务器102,每个摄像设备101与服务器102之间可以通过无线或有线网络连接。

该多个摄像设备101均安装在待定位的目标对象上,且该多个摄像设备101之间没有共视关系。例如,该目标对象可以为无人驾驶车辆,摄像设备101的数量为3,这3个摄像设备101可以安装在无人驾驶车辆的前方、左方和右方。该服务器102为目标对象内设置的服务器102。对于任一摄像设备101,该摄像设备101拍摄图像后,可以将其拍摄的图像发送给服务器102,服务器102根据该图像对目标对象进行视觉定位,确定目标对象在当前帧与历史帧之间的相对位姿信息。该相对位姿信息包括相对位置信息以及相对姿态信息。

在本申请实施例中,该视觉定位方法可以应用在多种场景中。例如,该视觉定位方法可以应用于无人驾驶场景、机器人抓取或搬运物体的场景、机器人清洁场景以及无人机飞行等场景。

例如,当该视觉定位方法应用于无人驾驶场景时,目标对象可以为无人驾驶车辆。该无人驾驶车辆的不同位置上安装有多个摄像设备101,在无人驾驶车辆行驶过程中,该多个摄像设备101拍摄图像,向服务器102发送图像,服务器102根据该图像对该无人驾驶车辆进行视觉定位。服务器102可以根据视觉定位得到的相对位姿信息,确定该无人驾驶车辆的移动轨迹,从而对无人驾驶车辆进行导航。再如,当该视觉定位方法应用于机器人抓取或搬运物体的场景时,目标对象可以为机器人。该机器人的不同位置上安装有多个摄像设备101,在机器人抓取物体的过程中,该摄像设备101拍摄图像,向服务器102发送图像,服务器102根据该图像对机器人进行视觉定位。服务器102可以根据视觉定位得到的相对位姿信息,对机器人进行控制,使机器人准确抓取或搬运物体,从而提高抓取或搬运物体的准确度。

摄像设备101可以为单目深度相机,该单目深度相机不仅可以拍摄彩色图像,还可以测量物体到相机的距离,也即深度,从而可以更方便准确地感知周围环境的变化。服务器102可以为一台服务器、由多台服务器组成的服务器集群、云服务器、云计算平台和虚拟化中心中的至少一种。

图2是本申请实施例提供的一种视觉定位方法的流程图,参见图2,该方法包括以下步骤。

步骤201:确定多个摄像设备对应的第一特征信息,多个摄像设备均安装在待定位的目标对象上,且任一摄像设备对应的第一特征信息为任一摄像设备采集的多帧图像的特征信息。

步骤202:对于每个摄像设备,基于该摄像设备对应的第一特征信息,确定该摄像设备的第二特征信息,第二特征信息包括运动物体对应的特征信息。

步骤203:从第一特征信息中过滤第二特征信息,得到该摄像设备对应的第三特征信息,第三特征信息为静止物体对应的特征信息。

步骤204:基于多个摄像设备对应的第三特征信息,确定目标对象的第一位姿信息,第一位姿信息为目标对象在当前帧与历史帧之间的相对位姿信息。

在一种可能的实现方式中,基于该摄像设备对应的第一特征信息,确定该摄像设备的第二特征信息,包括:

基于该摄像设备对应的第一特征信息,确定该摄像设备的第二位姿信息,第二位姿信息为该摄像设备在相邻两帧图像之间的相对位姿信息;

基于第二位姿信息,确定该摄像设备的第二特征信息。

在另一种可能的实现方式中,第二特征信息还包括误检测的特征点对的位置信息和误匹配的特征点对的位置信息中的至少一个。

在另一种可能的实现方式中,基于第二位姿信息,确定该摄像设备的第二特征信息,包括:

基于第二位姿信息,确定该摄像设备在相邻两帧图像中每个匹配的特征点对的第一重投影误差信息,以及其他任一摄像设备在相邻两帧图像中每个匹配的特征点对的第二重投影误差信息;

基于第一重投影误差信息和第二重投影误差信息,确定第二特征信息。

在另一种可能的实现方式中,第一特征信息包括相邻两帧图像中匹配的特征点对的位置信息;

基于第二位姿信息,确定该摄像设备在相邻两帧图像中每个匹配的特征点对的第一重投影误差信息,以及其他任一摄像设备在相邻两帧图像中每个匹配的特征点对的第二重投影误差信息,包括:

基于第二位姿信息和该摄像设备对应的第一特征点对的位置信息,将第一特征点对中的第一特征点进行投影,得到第一重投影误差信息,第一特征点对为该摄像设备对应的相邻两帧图像之间匹配的特征点对中的任一特征点对,第一特征点为第一特征点对中的任一特征点;

基于第二位姿信息和其他任一摄像设备对应的第二特征点对的位置信息,将第二特征点对中的第二特征点进行投影,得到第二重投影误差信息,第二特征点对为其他任一摄像设备对应的相邻两帧图像之间匹配的特征点对中的任一特征点对,第二特征点为第二特征点对中的任一特征点。

在另一种可能的实现方式中,基于多个摄像设备对应的第三特征信息,确定目标对象的第一位姿信息,包括:

基于多个摄像设备对应的第三特征信息,确定多个摄像设备的稳定系数;

基于多个摄像设备的稳定系数,从多个摄像设备中确定目标摄像设备,目标摄像设备为稳定系数最高的摄像设备;

基于目标摄像设备对应的第三特征信息,确定目标对象的第一位姿信息。

在另一种可能的实现方式中,第三特征信息包括相邻两帧图像中处于静止状态的特征点对的位置信息;

基于多个摄像设备对应的第三特征信息,确定多个摄像设备的稳定系数,包括:

基于每个摄像设备对应的处于静止状态的特征点对的位置信息,确定每个摄像设备对应的处于静止状态的特征点对的第一数量,第一数量的大小用于表征摄像设备的稳定系数。

在另一种可能的实现方式中,第三特征信息包括相邻两帧图像中处于静止状态的特征点对的位置信息;

基于多个摄像设备对应的第三特征信息,确定多个摄像设备的稳定系数,包括:

基于每个摄像设备对应的处于静止状态的特征点对的位置信息,确定每个摄像设备对应的每个处于静止状态的特征点对的第三重投影误差信息;

将每个处于静止状态的特征点对的第三重投影误差信息对应的重投影误差进行求和,得到和值,和值的大小用于表征摄像设备的稳定系数。

在另一种可能的实现方式中,确定多个摄像设备对应的第一特征信息,包括:

对于每个摄像设备采集的每帧图像,对图像进行特征点检测,得到多个特征点;

将每个摄像设备对应的相邻两帧图像的多个特征点进行匹配,得到匹配的特征点对;

将匹配的特征点对的位置信息作为每个摄像设备对应的第一特征信息。

本申请实施例提供的视觉定位方法,在对目标对象进行视觉定位时,先根据摄像设备采集的多帧图像的特征信息,确定运动物体的特征信息,然后从该多帧图像的特征信息中过滤掉运动物体的特征信息,得到静止物体的特征信息,这样就可以根据静止物体的特征信息对目标对象进行视觉定位,排除运动物体的影响,从而提高了视觉定位的准确性。

图3是本申请实施例提供的一种视觉定位方法的流程图,该方法由服务器执行,参见图3,该方法包括以下步骤。

步骤301:服务器确定多个摄像设备对应的第一特征信息。

本步骤中,多个摄像设备用于对待定位的目标对象进行视觉定位,且任一摄像设备对应的第一特征信息为该任一摄像设备采集的多帧图像的特征信息。其中,待定位的目标对象可以为无人驾驶车辆、机器人或者无人机等,在本申请实施例中,对此不作具体限定。该多个摄像设备可以安装在目标对象的不同位置,且该多个摄像设备之间没有共视关系。另外,该多个摄像设备均为深度相机,也即该相机不仅可以采集彩色图像,还可以测量物体到相机的距离,也即深度。

本步骤中,服务器可以通过以下步骤(1)至(3)来实现。

(1)对于每个摄像设备采集的每帧图像,服务器对该图像进行特征点检测,得到多个特征点。

本步骤中,服务器可以通过检测一个像素与周围邻域的像素之间灰度值的差别,来提取特征点。当该像素与周围邻域的像素之间的灰度值超过预设灰度阈值时,说明该像素过亮或过暗,则将该像素提取出来作为特征点。或者,服务器还可以通过SIFT(ScaleInvariant Feature Transform,尺度不变特征变换)算法或者SURF(Speeded Up RobustFeatures,加速稳健特征)算法来提取特征点。在本申请实施例中,对提取特征点的方式不作具体限定。

在一种可能的实现方式中,该多个摄像设备的数量可以根据需要进行设置并更改,在本申请实施例中,对此不作具体限定。例如,摄像设备的数量为3,对于这3个摄像设备,服务器采用三个线程分别对每个摄像设备采集的图像进行特征点检测,从而得到每个摄像设备的每帧图像上的特征点。

(2)服务器将每个摄像设备对应的相邻两帧图像的多个特征点进行匹配,得到匹配的特征点对。

在一种可能的实现方式中,对于每个摄像设备采集的相邻两帧图像,服务器可以确定第一帧图像中每个特征点与第二帧图像中每个特征点之间的距离,将距离小于预设距离阈值的两个特征点作为匹配的特征点对,从而得到多个匹配的特征点对。其中,第一帧图像和第二帧图像为相邻的两帧图像,第一帧图像可以为第二帧图像的前一帧图像,也可以为第二帧图像的后一帧图像。并且,特征点之间的距离可以为汉明距离,也可以为欧式距离。在本申请实施例中,对此不作具体限定。

在另一种可能的实现方式中,服务器还可以采用LK(Lucas-Kanade,光流)算法对特征点进行光流跟踪,从而确定匹配的特征点对。

(3)服务器将匹配的特征点对的位置信息作为每个摄像设备对应的第一特征信息。

本步骤中,特征点对的位置信息可以为特征点对的坐标信息。

步骤302:对于每个摄像设备,服务器基于该摄像设备对应的第一特征信息,确定该摄像设备的第二位姿信息。

该第二位姿信息为该摄像设备在相邻两帧图像之间的相对位姿信息。本步骤中,服务器可以根据特征点对的位置信息来确定该摄像设备的第二位姿信息,该过程可以通过以下步骤(4)至(5)实现。

(4)服务器从该摄像设备对应的相邻两帧图像中匹配的特征点对中抽取第二数量的特征点对。

相邻两帧图像中匹配的特征点对的数量有多个,服务器可以从该多个特征点对中随机抽取第二数量的特征点对。例如,匹配的特征点对的数量为100个,服务器可以从100个特征点对中随机抽取10个特征点对。

(5)服务器基于该第二数量的特征点对的位置信息,确定第二位姿信息。

第二位姿信息可以用第一旋转矩阵和第一平移矩阵来表示。第一旋转矩阵是一个三行三列的矩阵,第一平移矩阵是一个三行一列的矩阵。服务器可以基于第二数量的特征点对的位置信息先拟合第一旋转矩阵和第一平移矩阵,以使该第一旋转矩阵和第一平移矩阵可以适用于该第二数量的特征点对的位置信息,然后将该第一旋转矩阵和第一平移矩阵组成该第二位姿信息。

在一种可能的实现方式中,服务器还可以基于多个特征点对中除第二数量的特征点对之外的第三数量的特征点对的位置信息,验证该第一旋转矩阵和第一平移矩阵。若验证通过,则通过该第一旋转矩阵和第一平移矩阵表示该第二位姿信息。若验证不通过,则重新抽取特征点对来确定第一旋转矩阵和第一平移矩阵。

该实现方式中,服务器可以基于第三数量的特征点对中适用于该第一旋转矩阵和第一平移矩阵的特征点对的数量来确定验证是否通过。若该数量超过预设数量阈值,说明该第一旋转矩阵和第一平移矩阵适用于大多数特征点对的位置信息,则确定验证通过。若该数量小于预设数量阈值,说明该第一旋转矩阵和第一平移矩阵不适用多数特征点对的位置信息,则确定验证不通过。

步骤303:服务器基于第二位姿信息,确定该摄像设备的第二特征信息。

本步骤中,第二特征信息包括运动物体的特征信息,运动物体的特征信息可以为处于运动状态的特征点对的位置信息,第二特征信息还可以包括误检测的特征点对的位置信息和误匹配的特征点对的位置信息中的至少一个。其中,误检测的特征点对是指误将图像中的某个像素点作为特征点,然后与其它特征点进行匹配;误匹配的特征点对是指误将两个不匹配的特征点匹配为特征点对。

服务器可以基于该摄像设备的第二位姿信息,通过重投影误差来确定第二特征信息。该过程可以通过以下步骤(6)至(7)实现。

(6)服务器基于第二位姿信息,确定该摄像设备在相邻两帧图像中每个匹配的特征点对的第一重投影误差信息,以及其他任一摄像设备在相邻两帧图像中每个匹配的特征点对的第二重投影误差信息。

本步骤中,服务器可以通过以下步骤(6-1)和(6-2)分别确定第一重投影误差信息和第二重投影误差信息。

(6-1)服务器基于第二位姿信息和该摄像设备对应的第一特征点对的位置信息,将第一特征点对中的第一特征点进行投影,得到第一重投影误差信息。

其中,第一特征点对为摄像设备对应的相邻两帧图像之间匹配的特征点对中的任一特征点对,第一特征点为第一特征点对中的任一特征点。

本步骤中,服务器可以将第一特征点按照该第一位姿信息对应的位姿进行投影,得到第三特征点。服务器确定第三特征点与第四特征点之间的距离,将该距离作为第一重投影误差,从而得到第一重投影误差信息。其中,第四特征点为第一特征点对中与第一特征点匹配的特征点。

(6-2)服务器基于第二位姿信息和其他任一摄像设备对应的第二特征点对的位姿信息,将第二特征点对中的第二特征点进行投影,得到第二重投影误差信息。

其中,第一重投影误差信息和第二重投影误差信息均用于表征匹配的特征点对的状态,也即特征点对处于运动状态或者静止状态。

其中,第二特征点对为其他任一摄像设备对应的相邻两帧图像之间匹配的特征点对中的任一特征点对,第二特征点为第二特征点对中的任一特征点。

本步骤中,服务器可以将第二特征点按照第一位姿信息对应的位姿进行投影,得到第五特征点。服务器确定第五特征点与第六特征点之间的距离,将该距离作为第二重投影误差,从而得到第二重投影误差信息。其中,第六特征点为第二特征点对中与第二特征点匹配的特征点。

例如,摄像设备的数量为3,为了便于区分,分别称为第一摄像设备、第二摄像设备和第三摄像设备,则对于第一摄像设备,服务器可以基于第一摄像设备对应的第一特征信息,确定第一摄像设备的第二位姿信息,基于第一摄像设备的第二位姿信息,确定第一摄像设备在相邻两帧图像中每个匹配的特征点对的第一重投影误差,以及第二摄像设备和第三摄像设备在相邻两帧图像中每个匹配的特征点对的第二重投影误差,从而分别得到第一重投影误差信息和第二重投影误差信息。

需要说明的一点是,若目标对象在运动过程中,周围环境中都是静止的物体,则服务器可以直接根据静止的物体的特征点对来对目标对象进行视觉定位。而当周围环境中存在运动的物体时,运动的物体会影响视觉定位的准确性,因此在对目标对象进行视觉定位之前,需要先过滤掉运动的物体。并且,在检测特征点的过程中以及匹配特征点对的过程中,可能会出现误检和误匹配的情况,而误检测的特征点对以及误匹配的特征点对也会影响视觉定位的准确性。因此,在本申请实施例中,服务器根据特征点对的重投影误差来进行过滤,不仅可以过滤掉运动的物体,还可以过滤到误检测的特征点对以及误匹配的特征点对,从而后续可以根据静止的物体来对目标对象进行视觉定位,提高了视觉定位的鲁棒性。

(7)服务器基于第一重投影误差信息和第二重投影误差信息,确定第二特征信息。

该第二特征信息中不仅包括处于运动状态的特征点对的位置信息,还包括误检测的特征点对的位置信息以及误匹配的特征点对的位置信息。

在一种可能的实现方式中,服务器可以对第一重投影误差信息对应的第一重投影误差和第二重投影误差信息对应的第二重投影误差进行求和,得到和值。若该和值大于第一预设阈值,则从该摄像设备匹配的特征点对中确定第一重投影误差超出预设误差阈值的特征点对,将第一重投影误差超出预设误差阈值的特征点对的位置信息作为第二特征信息。

在另一种可能的实现方式中,服务器还可以先对第一重投影误差信息对应的第一重投影误差和第二重投影误差信息对应的第二重投影误差进行求和,得到和值,然后确定该和值的平均值,若该平均值大于第二预设阈值,则从该摄像设备匹配的特征点对中确定第一重投影误差超出预设误差阈值的特征点对,将第一重投影误差超出预设误差阈值的特征点对的位置信息作为第二特征信息。

在本申请实施例中,服务器在确定该摄像设备的第二特征信息时,其他摄像设备对应的第二重投影误差信息主要起到判断第一旋转矩阵和第一平移矩阵是否正确的作用,并不加入到特征点对的选取中。因此,后续对目标对象进行视觉定位时的特征点对都是来自同一摄像设备的,这样多个摄像设备之间无需标定和传感器同步,因此不要求准确的标定结果和传感器的硬同步,视觉定位更准确。

例如,对于第一摄像设备、第二摄像设备和第三摄像设备,在确定第一摄像设备的第二特征信息时,第二摄像设备和第三摄像设备对应的第二重投影误差信息主要起到判断第一摄像设备对应的旋转矩阵和平移矩阵是否正确的作用,并不加入到第一摄像设备对应的处于运动状态的特征点对、误检测的特征点对以及误匹配的特征点对的选取中。相应的,在确定第二摄像设备的第二特征信息,第一摄像设备和第三摄像设备对应的第二重投影误差信息也是起到判断第二摄像设备对应的旋转矩阵和平移矩阵是否正确的作用,并不加入到第二摄像设备对应的处于运动状态的特征点对、误检测的特征点对以及误匹配的特征点对的选取中。

步骤304:服务器从第一特征信息中过滤第二特征信息,得到该摄像设备对应的第三特征信息。

本步骤中,第一特征信息包括相邻两帧图像中匹配的特征点对的位置信息,第三特征信息为静止物体对应的特征信息,也即处于静止状态的特征点对的位置信息。

若第二特征信息包括运动物体对应的特征信息,也即处于运动状态的特征点对的位置信息,服务器从匹配的特征点对的位置信息中过滤掉处于运动状态的特征点对的位置信息,从而得到处于静止状态的特征点对的位置信息。若第二特征信息还包括误检测的特征点对的位置信息和误匹配的特征点对的位置信息中的至少一个,则服务器还可以过滤掉误检测的特征点对以及误匹配的特征点对,从而进一步提高后续视觉定位的准确性。

步骤305:服务器基于多个摄像设备对应的第三特征信息,确定多个摄像设备的稳定系数。

稳定系数越高,说明该摄像设备在相邻两帧图像中处于静止状态的特征点对越多。

本步骤中,服务器可以通过以下两种实现方式确定多个摄像设备的稳定系数。

第一种实现方式,服务器基于每个摄像设备对应的处于静止状态的特征点对的位置信息,确定每个摄像设备对应的处于静止状态的特征点对的第一数量,第一数量的大小用于表征摄像设备的稳定系数。

第一数量越大,稳定系数越高,说明该摄像设备在相邻两帧图像中处于静止状态的特征点对越多,则后续视觉定位的准确性越高。

该实现方式中,对于每个摄像设备,服务器可以基于每个处于静止状态的特征点对的位置信息,统计处于静止状态的特征点对的第一数量。根据预先建立的数量范围与稳定系数的对应关系,以及第一数量所在的数量范围,确定该第一数量对应的稳定系数。

第二种实现方式,服务器基于每个摄像设备对应的处于静止状态的特征点对的位置信息,确定每个摄像设备对应的每个处于静止状态的特征点对的第三重投影误差信息;将每个处于静止状态的特征点对的第三重投影误差信息对应的重投影误差进行求和,得到和值,该和值的大小用于表征该摄像设备的稳定系数。

和值越大,稳定系数越高,说明该摄像设备在相邻两帧图像中处于静止状态的特征点对越多,则后续视觉定位的准确性越高。

该实现方式中,对于处于静止状态的特征点对中的任一特征点对,服务器可以基于第一位姿信息,将该特征点对中的任一特征点按照该第二位姿信息进行投影,确定该特征点投影后的位置与该特征点匹配的特征点之间的距离,将该距离作为重投影误差,然后确定多个处于静止状态的特征点对的重投影误差的和值。根据预先建立的重投影误差和值范围与稳定系数的对应关系,以及该和值所在的重投影误差和值范围,确定该和值对应的稳定系数。

第三种实现方式,服务器还可以基于第三重投影误差信息对应的重投影误差的平均值,来确定该摄像设备的稳定系数。

平均值越小,稳定系数越高,说明该摄像设备在相邻两帧图像中处于静止状态的特征点对越多,则后续视觉定位的准确性越高。

该实现方式中,服务器确定多个处于静止状态的特征点对的重投影误差的平均值,根据预先建立的重投影误差平均值范围与稳定系数的对应关系,以及该平均值所在的重投影误差平均值范围,确定该平均值对应的稳定系数。

步骤306:服务器基于多个摄像设备的稳定系数,从多个摄像设备中确定目标摄像设备。

目标摄像设备为稳定系数最高的摄像设备。本步骤中,服务器可以将第一数量最多的摄像设备作为目标摄像设备,或者将重投影误差的和值最小的摄像设备作为目标摄像设备,或者将重投影误差的平均值最小的摄像设备作为目标摄像设备。

参见图4,图4仅以目标对象包括第一摄像设备、第二摄像设备和第三摄像设备为例进行说明。从图4中可以看出:对于第一摄像设备、第二摄像设备和第三摄像设备,服务器对每个摄像设备都先从图像中提取特征点,然后将相邻两帧图像的特征点进行匹配,得到匹配的特征点对。对于每个摄像设备,服务器都确定该摄像设备和其他两个摄像设备在相邻两帧图像中匹配的特征点对的第一重投影误差信息和第二重投影误差信息,图4中仅以该摄像设备为第二摄像为例进行说明。对于第二摄像设备,服务器先从第二摄像设备对应的相邻两帧图像中匹配的特征点对中抽取一定数量的特征点对,基于该数量的特征点对的位置信息,确定第二位姿信息。然后通过剩余数量的特征点对该第二位姿信息进行验证,在验证通过时,基于第二位姿信息确定第二摄像设备对应的第一重投影误差信息。并且,还基于第二位姿信息确定第一摄像设备对应的第二重投影误差信息以及第三摄像设备对应的第二重投影误差信息。根据第二摄像设备的第一重投影误差信息、第一摄像设备的第二重投影误差信息和第三摄像设备的第二重投影误差信息,从第二摄像设备对应的第一特征信息中过滤第二特征信息,该第二特征信息不仅包括处于运动状态的特征点对的位置信息,还包括误检测的特征点对的位置信息以及误匹配的特征点对的位置信息,得到第二摄像设备对应的处于静止状态的特征点对的位置信息。通过上述方法依次确定第一摄像设备对应的处于静止状态的特征点对的位置信息以及第三摄像设备对应的处于静止状态的特征点对的位置信息。然后根据多个摄像设备对应的第二特征信息,从多个摄像设备中确定出稳定系数最高的摄像设备作为目标摄像设备。

步骤307:服务器基于目标摄像设备对应的第三特征信息,确定目标对象的第一位姿信息。

第一位姿信息为目标对象在当前帧与历史帧之间的相对位姿信息。其中,历史帧可以为当前帧之前的任一帧,也即历史帧可以为第一帧,也可以为当前帧的前一帧。例如,当前帧为第十帧,历史帧为第二帧,服务器可以确定目标对象在第二帧与第十帧之间的相对位姿信息。或者,当前帧为第九帧,历史帧为第一帧,服务器可以确定目标对象在第一帧与第九帧之间的相对位姿信息。

本步骤中,服务器可以基于目标摄像设备在相邻两帧图像中处于静止状态的特征点对的位置信息,确定第二旋转矩阵和第二平移矩阵。然后根据第二旋转矩阵和第二平移矩阵来确定目标对象的第一位姿信息。

在一种可能的实现方式中,服务器可以通过以下过程确定第二旋转矩阵和第二平移矩阵。该过程可以为:服务器从相邻两帧图像处于静止状态的特征点对中随机抽取第四数量的特征点对,根据第四数量的特征点对的位置信息拟合第二旋转矩阵和第二平移矩阵,以使该第二旋转矩阵和第二平移矩阵可以适用于该第四数量的特征点对的位置信息,然后通过处于静止状态的特征点对中剩余的特征点对对该第二旋转矩阵和第二平移矩阵进行验证。若验证通过,则通过该第二旋转矩阵和第二平移矩阵来表示目标摄像设备在相邻两帧图像之间的第三位姿信息。

服务器通过该方式可以依次确定目标摄像设备在当前帧与历史帧之间的相邻两帧图像的第二旋转矩阵和第二平移矩阵,然后将每相邻两帧图像对应的第二旋转矩阵相乘,得到第三旋转矩阵,将每相邻两帧图像对应的第二平移矩阵相乘,得到第三平移矩阵,将第三旋转矩阵与第三平移矩阵组成第一位姿信息。

例如,当前帧为第四帧,历史帧为第一帧,则服务器可以先确定第一帧与第二帧之间的第二旋转矩阵和第二平移矩阵,第二帧与第三帧之间的第二旋转矩阵和第二平移矩阵,以及第三帧与第四帧之间的第二旋转矩阵和第二平移矩阵,然后将每个第二旋转矩阵相乘,得到第三旋转矩阵,将每个第二平移矩阵相乘,得到第三平移矩阵。采用第三旋转矩阵和第三平移矩阵来表示目标对象在第一帧与第四帧之间的相对位姿信息。

在本申请实施例中,服务器可以对摄像设备之间以及同一摄像设备内部的特征点进行筛选,确定多个摄像设备中最稳定的摄像设备,然后采用最稳定的摄像设备对应的特征点对来确定目标对象的相对位姿信息,多个摄像设备之间无需标定,也无需要求传感器同步的精确性,有非常强的可使用性,在真实环境下能获得更鲁棒的结果。

本申请实施例提供的视觉定位方法,在对目标对象进行视觉定位时,先根据摄像设备采集的多帧图像的特征信息,确定运动物体的特征信息,然后从该多帧图像的特征信息中过滤掉运动物体的特征信息,得到静止物体的特征信息,这样就可以根据静止物体的特征信息对目标对象进行视觉定位,排除运动物体的影响,从而提高了视觉定位的准确性。

图5是本申请实施例提供的一种视觉定位装置的示意图,参见图5,该装置包括:

第一确定模块501,用于确定多个摄像设备对应的第一特征信息,多个摄像设备均安装在待定位的目标对象上,且任一摄像设备对应的第一特征信息为任一摄像设备采集的多帧图像的特征信息;

第二确定模块502,用于对于每个摄像设备,基于该摄像设备对应的第一特征信息,确定摄像设备的第二特征信息,第二特征信息包括运动物体对应的特征信息;

过滤模块503,用于从第一特征信息中过滤第二特征信息,得到该摄像设备对应的第三特征信息,第三特征信息为静止物体对应的特征信息;

第三确定模块504,用于基于多个摄像设备对应的第三特征信息,确定目标对象的第一位姿信息,第一位姿信息为目标对象在当前帧与历史帧之间的相对位姿信息。

在一种可能的实现方式中,第二确定模块502,用于基于该摄像设备对应的第一特征信息,确定该摄像设备的第二位姿信息,第二位姿信息为该摄像设备在相邻两帧图像之间的相对位姿信息;基于第二位姿信息,确定摄像设备的第二特征信息。

在另一种可能的实现方式中,第二特征信息还包括误检测的特征点对的位置信息和误匹配的特征点对的位置信息中的至少一个。

在另一种可能的实现方式中,第二确定模块502,用于基于第二位姿信息,确定该摄像设备在相邻两帧图像中每个匹配的特征点对的第一重投影误差信息,以及其他任一摄像设备在相邻两帧图像中每个匹配的特征点对的第二重投影误差信息;基于第一重投影误差信息和第二重投影误差信息,确定第二特征信息。

在另一种可能的实现方式中,第一特征信息包括相邻两帧图像中匹配的特征点对的位置信息;

第二确定模块502,用于基于第二位姿信息和摄像设备对应的第一特征点对的位置信息,将第一特征点对中的第一特征点进行投影,得到第一重投影误差信息,第一特征点对为该摄像设备对应的相邻两帧图像之间匹配的特征点对中的任一特征点对,第一特征点为第一特征点对中的任一特征点;基于第二位姿信息和其他任一摄像设备对应的第二特征点对的位置信息,将第二特征点对中的第二特征点进行投影,得到第二重投影误差信息,第二特征点对为其他任一摄像设备对应的相邻两帧图像之间匹配的特征点对中的任一特征点对,第二特征点为第二特征点对中的任一特征点。

在另一种可能的实现方式中,第三确定模块504,用于基于多个摄像设备对应的第三特征信息,确定多个摄像设备的稳定系数;基于多个摄像设备的稳定系数,从多个摄像设备中确定目标摄像设备,目标摄像设备为稳定系数最高的摄像设备;基于目标摄像设备对应的第三特征信息,确定目标对象的第一位姿信息。

在另一种可能的实现方式中,第三特征信息包括相邻两帧图像中处于静止状态的特征点对的位置信息;

第三确定模块504,用于基于每个摄像设备对应的处于静止状态的特征点对的位置信息,确定每个摄像设备对应的处于静止状态的特征点对的第一数量,第一数量的大小用于表征摄像设备的稳定系数。

在另一种可能的实现方式中,第三特征信息包括相邻两帧图像中处于静止状态的特征点对的位置信息;

第三确定模块504,用于基于每个摄像设备对应的处于静止状态的特征点对的位置信息,确定每个摄像设备对应的每个处于静止状态的特征点对的第三重投影误差信息;将每个处于静止状态的特征点对的第三重投影误差信息对应的重投影误差进行求和,得到和值,和值的大小用于表征摄像设备的稳定系数。

在另一种可能的实现方式中,第一确定模块501,用于对于每个摄像设备采集的每帧图像,对图像进行特征点检测,得到多个特征点;将每个摄像设备对应的相邻两帧图像的多个特征点进行匹配,得到匹配的特征点对;将匹配的特征点对的位置信息作为每个摄像设备对应的第一特征信息。

本申请实施例提供的视觉定位装置,在对目标对象进行视觉定位时,先根据摄像设备采集的多帧图像的特征信息,确定运动物体的特征信息,然后从该多帧图像的特征信息中过滤掉运动物体的特征信息,得到静止物体的特征信息,这样就可以根据静止物体的特征信息对目标对象进行视觉定位,排除运动物体的影响,从而提高了视觉定位的准确性。

需要说明的是:上述实施例提供的视觉定位装置在视觉定位时,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将服务器的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。另外,上述实施例提供的视觉定位的装置与视觉定位的方法实施例属于同一构思,其具体实现过程详见方法实施例,这里不再赘述。

图6是本申请实施例提供的一种服务器的结构示意图,该服务器600可因配置或性能不同而产生比较大的差异,可以包括一个或一个以上处理器(Central ProcessingUnits,CPU)601和一个或一个以上的存储器602,其中,该存储器602中存储有至少一条程序代码,该至少一条程序代码由该处理器601加载并执行以实现上述各个方法实施例提供的方法。当然,该服务器还可以具有有线或无线网络接口、键盘以及输入输出接口等部件,以便进行输入输出,该服务器还可以包括其他用于实现设备功能的部件,在此不做赘述。

在示例性实施例中,还提供了一种计算机可读存储介质,例如包括程序代码的存储器,上述程序代码可由服务器中的处理器执行以完成上述实施例中视觉定位方法。例如,该计算机可读存储介质可以是ROM、随机存取存储器(RAM)、CD-ROM、磁带、软盘和光数据存储设备等。

在示例性实施例中,还提供了一种计算机程序或计算机程序产品,该计算机程序或计算机程序产品包括计算机程序代码,该计算机程序代码被服务器执行时,使得服务器实现上述实施例中的视觉定位方法。

在示例性实施例中,本申请实施例所涉及的计算机程序可被部署在一个服务器上执行,或者在位于一个地点的多个服务器上执行,又或者,在分布在多个地点且通过通信网络互连的多个服务器上执行,分布在多个地点且通过通信网络互连的多个服务器可以组成区块链系统。

本领域普通技术人员可以理解实现上述实施例的全部或部分步骤可以通过硬件来完成,也可以通过程序来指令相关的硬件完成,该程序可以存储于一种计算机可读存储介质中,上述提到的存储介质可以是只读存储器,磁盘或光盘等。

以上所述仅为本申请的可选实施例,并不用以限制本申请,凡在本申请的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。

相关技术
  • 一种视觉定位方法、装置、服务器及计算机可读存储介质
  • 视觉定位方法、装置、服务器及存储介质
技术分类

06120112756567