CN112348889B - 视觉定位方法及相关装置、设备 - Google Patents
视觉定位方法及相关装置、设备 Download PDFInfo
- Publication number
- CN112348889B CN112348889B CN202011148780.6A CN202011148780A CN112348889B CN 112348889 B CN112348889 B CN 112348889B CN 202011148780 A CN202011148780 A CN 202011148780A CN 112348889 B CN112348889 B CN 112348889B
- Authority
- CN
- China
- Prior art keywords
- image
- parameters
- camera
- processed
- current image
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
- 230000000007 visual effect Effects 0.000 title claims abstract description 68
- 238000000034 method Methods 0.000 title claims abstract description 55
- 230000005484 gravity Effects 0.000 claims abstract description 131
- 230000033001 locomotion Effects 0.000 claims abstract description 54
- 230000009466 transformation Effects 0.000 claims description 74
- 239000013598 vector Substances 0.000 claims description 54
- 230000001133 acceleration Effects 0.000 claims description 43
- 230000006870 function Effects 0.000 claims description 38
- 238000006073 displacement reaction Methods 0.000 claims description 31
- 238000012545 processing Methods 0.000 claims description 12
- 230000004044 response Effects 0.000 claims description 11
- 230000004807 localization Effects 0.000 claims description 4
- 238000005516 engineering process Methods 0.000 abstract description 23
- 238000005457 optimization Methods 0.000 description 13
- 238000010586 diagram Methods 0.000 description 8
- 238000001514 detection method Methods 0.000 description 7
- 230000009286 beneficial effect Effects 0.000 description 6
- 230000008569 process Effects 0.000 description 5
- 230000003068 static effect Effects 0.000 description 4
- 230000008878 coupling Effects 0.000 description 3
- 238000010168 coupling process Methods 0.000 description 3
- 238000005859 coupling reaction Methods 0.000 description 3
- 230000008859 change Effects 0.000 description 2
- 238000004891 communication Methods 0.000 description 2
- 238000010276 construction Methods 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 238000005286 illumination Methods 0.000 description 2
- 238000013507 mapping Methods 0.000 description 2
- 238000005259 measurement Methods 0.000 description 2
- 238000012360 testing method Methods 0.000 description 2
- PXFBZOLANLWPMH-UHFFFAOYSA-N 16-Epiaffinine Natural products C1C(C2=CC=CC=C2N2)=C2C(=O)CC2C(=CC)CN(C)C1C2CO PXFBZOLANLWPMH-UHFFFAOYSA-N 0.000 description 1
- 241000282326 Felis catus Species 0.000 description 1
- 230000002159 abnormal effect Effects 0.000 description 1
- 230000003190 augmentative effect Effects 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 239000011159 matrix material Substances 0.000 description 1
- 239000000203 mixture Substances 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000001131 transforming effect Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T7/00—Image analysis
- G06T7/70—Determining position or orientation of objects or cameras
- G06T7/73—Determining position or orientation of objects or cameras using feature-based methods
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F17/00—Digital computing or data processing equipment or methods, specially adapted for specific functions
- G06F17/10—Complex mathematical operations
- G06F17/16—Matrix or vector computation, e.g. matrix-matrix or matrix-vector multiplication, matrix factorization
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T2207/00—Indexing scheme for image analysis or image enhancement
- G06T2207/30—Subject of image; Context of image processing
- G06T2207/30244—Camera pose
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Mathematical Physics (AREA)
- Theoretical Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Mathematical Optimization (AREA)
- Mathematical Analysis (AREA)
- Pure & Applied Mathematics (AREA)
- Computational Mathematics (AREA)
- Software Systems (AREA)
- Databases & Information Systems (AREA)
- Computing Systems (AREA)
- General Engineering & Computer Science (AREA)
- Algebra (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Image Analysis (AREA)
- Manufacturing Optical Record Carriers (AREA)
- Optical Recording Or Reproduction (AREA)
- Automatic Disk Changers (AREA)
- Length Measuring Devices By Optical Means (AREA)
Abstract
本申请公开了一种视觉定位方法及相关装置、设备,其中,视觉定位方法包括:获取相机的重力信息;利用重力信息,获取相机在预设运动状态下拍摄的当前图像的相机位姿参数;基于当前图像的相机位姿参数,获取当前图像之后的待处理图像的相机位姿参数。上述方案,降低视觉定位技术的使用成本、扩大视觉定位技术的使用范围。
Description
技术领域
本申请涉及计算机视觉技术领域,特别是涉及一种视觉定位方法及相关装置、设备。
背景技术
随着电子信息技术的发展,SLAM(Simultaneous Localization And Mapping,即时定位与地图构建)等视觉定位技术已逐渐应用于自动驾驶、室内导航、AR(AugmentedReality,增强现实)、VR(Virtual Reality,虚拟现实)等领域。
SLAM等视觉定位技术通过获取移动设备的相机位姿,完成移动设备的自主定位、导航等任务,其本质上是复杂的数学问题。目前,SLAM等视觉定位技术在硬件上依赖于传感器,通常需要相机、加速度计、重力计、IMU(Inertial Measurement Unit,惯性测量单元)等传感器。然而,在实际应用中,一般只有中高端移动设备才完整地配置上述传感器。低端移动设备所配置的传感器一般较少,且一般不会配置IMU,从而导致现有的视觉定位技术的使用成本较高,且使用范围较窄。有鉴于此,如何降低视觉定位技术的使用成本、扩大视觉定位技术的使用范围成为亟待解决的问题。
发明内容
本申请提供一种视觉定位方法及相关装置、设备。
本申请第一方面提供了一种视觉定位方法,包括:获取相机的重力信息;利用重力信息,获取相机在预设运动状态下拍摄的当前图像的相机位姿参数;基于当前图像的相机位姿参数,获取当前图像之后的待处理图像的相机位姿参数。
因此,通过获取相机的重力信息,从而利用重力信息,获取相机在预设运动状态下拍摄的当前图像的相机位姿参数,并基于当前图像的相机位姿参数,获取当前图像之后的待处理图像的相机位姿参数,进而能够只依赖于相机和重力信息来进行视觉定位,故能够降低视觉定位技术的使用成本,扩大视觉定位技术的使用范围。
其中,重力信息包括重力方向信息,基于当前图像的相机位姿参数,获取当前图像之后的待处理图像的相机位姿参数之前,还包括:获取当前图像中的特征点的特征方向信息;利用特征点的特征方向信息和重力方向信息,得到当前图像中特征点的深度信息;基于当前图像的相机位姿参数,获取当前图像之后的待处理图像的相机位姿参数包括:基于当前图像中特征点的深度信息和当前图像的相机位姿参数,获取当前图像之后的待处理图像中特征点的深度信息和待处理图像的相机位姿参数。
因此,通过获取当前图像中特征点的特征方向信息,并利用特征点的特征方向信息和重力信息所包含的重力方向信息,得到当前图像中特征点的深度信息,故能够仅基于当前图像来初始化当前图像中特征点的深度信息和当前图像的相机位姿参数,且能够基于当前图像中特征点的深度信息和当前图像的相机位姿参数,获取当前图像之后的待处理图像中特征点的深度信息和待处理图像的相机位姿参数,而无需扫描多帧图像来进行初始化工作,从而能够提高视觉定位的响应速度。
其中,特征方向信息包括特征点的方向向量,重力方向信息包括重力向量,深度信息包括特征点的深度值;利用特征点的特征方向信息和重力方向信息,得到当前图像中特征点的深度信息包括:对特征点的方向向量和重力向量进行第一预设运算,得到特征点的方向向量和重力向量之间的夹角;对相机的预设高度和夹角进行第二预设运算,得到特征点的深度值。
因此,特征方向信息设置为包括特征点的方向向量,重力方向信息设置为包括重力向量,深度信息设置为包括特征点的深度值,从而对特征点的方向向量和重力向量进行第一预设运算,得到特征点的方向向量和重力向量之间的夹角,从而对相机的预设高度和夹角进行第二预设运算,得到特征点的深度值,故能够有利于降低获取特征点深度值的计算复杂度。
其中,第一预设运算包括内积运算,和/或,第二预设运算包括将预设高度除以夹角的余弦值。
因此,将第一预设运算设置为包括内积运算,能够有利于降低获取方向向量和重力向量之间夹角的复杂度,将第二预设运算设置为包括将预设高度除以夹角的余弦值,能够有利于降低获取深度值的复杂度。
其中,基于当前图像中特征点的深度信息和当前图像的相机位姿参数,获取当前图像之后的待处理图像中特征点的深度信息和待处理图像的相机位姿参数包括:利用预设位姿跟踪方式对当前图像中特征点的深度信息、当前图像的相机位姿参数进行跟踪处理,得到当前图像的下一帧图像中特征点的深度信息和下一帧图像的相机位姿参数;将下一帧图像作为当前图像,并重新执行利用预设位姿跟踪方式对当前图像中特征点的深度信息、当前图像的相机位姿参数进行跟踪处理的步骤以及后续步骤。
因此,利用预设位姿跟踪方式对当前图像中特征点的深度信息、当前图像的相机位姿参数进行跟踪处理,得到当前图像的下一帧图像中特征点的深度信息和下一帧图像的相机位姿参数,从而将下一帧图像作为当前图像,并重新执行利用预设位姿跟踪方式对当前图像中特征点的深度信息、当前图像的相机位姿参数进行跟踪处理的步骤以及后续步骤,进而能够逐帧计算相机位姿参数,有利于降低相机位姿参数的累积误差。
其中,利用预设位姿跟踪方式对当前图像中特征点的深度信息、当前图像的相机位姿参数进行跟踪处理,得到当前图像的下一帧图像中特征点的深度信息和下一帧图像的相机位姿参数,包括:利用当前图像中特征点的深度信息,确定特征点在下一帧图像中的投影点,基于特征点在当前图像中局部区域的像素值和投影点在下一帧图像中局部区域的像素值之间的差异,得到当前图像与下一帧图像之间的位姿变换参数,利用位姿变换参数和当前图像的相机位姿参数,得到下一帧图像的相机位姿参数,利用已经收敛的三维点,优化下一帧图像的相机位姿参数,获取特征点的深度信息的概率分布,并利用概率分布,得到下一帧图像中特征点的深度信息。
因此,通过利用当前图像中特征点的深度信息,确定特征点在下一帧图像中的投影点,从而基于特征点在当前图像中局部区域的像素值和投影点在下一帧图像中局部区域的像素值之间的差异,得到当前图像与下一帧图像之间的位姿变换参数,并利用位姿变换参数和当前图像的相机位姿参数,得到下一帧图像的相机位姿参数,利用已经收敛的三维点,优化下一帧图像的相机位姿参数,从而可以对相机位姿参数进行进一步的优化,有利于提高相机位姿参数的准确性;而通过获取特征点的深度信息的概率分布,并利用概率分布,得到下一帧图像中特征点的深度信息,从而能够基于深度信息的分布概率,在拍摄过程中对深度信息进行优化。
其中,相机位姿参数包括旋转参数和位移参数;基于当前图像的相机位姿参数,获取当前图像之后的待处理图像的相机位姿参数之后,方法还包括:响应于待处理图像的相机位姿参数不满足预设稳定状态条件,确定无法获取待处理图像的位移参数;以及,利用待处理图像的上一帧图像的像素值和上一帧图像的相机位姿参数,得到待处理图像的旋转参数。
因此,相机位姿参数设置为包括旋转参数和位移参数,且在获取当前图像之后的待处理图像的相机位姿参数之后,响应于待处理图像的相机位姿参数不满足预设稳定状态条件,确定无法获取待处理图像的位移参数,从而利用待处理图像的上一帧图像的像素值和上一帧图像的相机位姿参数,得到待处理图像的旋转参数,进而能够在相机位姿参数不准确时,直接利用图像像素,估计旋转参数,能够有利于降低因旋转参数无法更新而导致的诸如虚拟现实中虚拟物体贴屏等问题发生的概率。
其中,利用待处理图像的上一帧图像的像素值和上一帧图像的相机位姿参数,得到待处理图像的旋转参数包括:利用待处理图像和上一帧图像之间的位姿变换参数对上一帧图像中的至少部分像素点进行投影变换,得到至少部分像素点在待处理图像的投影点;利用至少部分像素点在上一帧图像中的像素值和与至少部分像素点对应的投影点在待处理图像中的像素值的差异,构建关于位姿变换参数的目标函数;利用求解目标函数得到的位姿变换参数对上一帧图像的相机位姿参数进行变换处理,得到待处理图像的旋转参数。
因此,利用待处理图像和上一帧图像之间的位姿变换参数对上一帧图像中的至少部分像素点进行投影变换,得到至少部分像素点在待处理图像的投影点,并利用至少部分像素点在上一帧图像中的像素值和至少部分像素点对应的投影点在待处理图像中的像素值的差异,构建关于位姿变换参数的目标函数,从而利用求解目标函数得到的位姿变换参数对上一帧图像的相机位姿参数进行变换处理,得到待处理图像的旋转参数,故能够基于至少部分像素点求得旋转参数,能够有利于降低计算旋转参数的计算量。
其中,利用待处理图像和上一帧图像之间的位姿变换参数对上一帧图像中的至少部分像素点进行投影变换,得到至少部分像素点在待处理图像的投影点之前,方法还包括:将上一帧图像进行降采样处理,得到上一帧图像的缩略图像;利用待处理图像和上一帧图像之间的位姿变换参数对待处理图像中的至少部分像素点进行投影变换,得到至少部分像素点在待处理图像的投影点包括:利用待处理图像和上一帧图像之间的位姿变换参数对缩略图像中的像素点进行投影变换,得到缩略图像中的像素点在待处理图像的投影点。
因此,通过将上一帧图像进行降采样处理,得到上一帧图像的缩略图像,从而利用待处理图像的上一帧图像之间的位姿变换参数对缩略图像中的像素点进行投影变换,得到缩略图像中的像素点在待处理图像的投影点,以进行后续的目标函数构建以及求解,能够有利于降低计算旋转参数的计算量。
其中,利用待处理图像的上一帧图像的像素值和上一帧图像的相机位姿参数,得到待处理图像的旋转参数之后,方法还包括:检测相机当前的加速度信息,并判断加速度信息是否处于预设运动状态;若是,则重新执行获取相机的重力信息的步骤以及后续步骤;若否,则重新执行检测相机当前的加速度信息的步骤以及后续步骤。
因此,在得到待处理图像的旋转参数之后,进一步检测相机当前的加速度信息,并判断加速度信息是否处于预设运动状态,从而在处于预设运动状态时,重新执行获取相机的重力信息的步骤以及后续步骤,并在不处于预设运动状态时,重新执行检测相机当前的加速度信息的步骤以及后续步骤,进而能够有利于提高视觉定位的鲁棒性。
其中,重力信息包括重力方向信息,相机位姿参数包括旋转参数和位移参数,利用重力信息,获取相机在预设运动状态下拍摄的当前图像的相机位姿参数包括:利用重力方向信息,获取相机分别相对于世界坐标系x坐标轴、y坐标轴和z坐标轴的旋转角度;其中,相机按照旋转角度旋转后的重力方向与z坐标轴的反方向相同;利用旋转角度,得到旋转参数,并将位移参数设置为预设数值。
因此,通过利用重力方向信息,获取相机分别相对于世界坐标系x坐标轴、y坐标轴和z坐标轴的旋转角度,且相机按照旋转角度旋转后的重力方向与z坐标轴的反方向相同,从而利用旋转角度,得到旋转参数,并将位移参数设置为预设数值,能够通过重力对齐得到旋转参数,进而初始化相机位姿参数,有利于降低相机位姿参数初始化的计算量。
其中,世界坐标系的原点为相机拍摄当前图像时所在的位置,预设数值为0。
因此,将世界坐标系的原点设置为相机拍摄当前图像时所在的位置,预设数值设置为0,能够有利于降低初始化位移参数的复杂度。
其中,预设运动状态为静止状态或匀速运动状态;和/或,重力信息是利用相机在预设状态下的加速度信息得到的。
因此,将预设运动状态设置为静止状态或匀速运动状态,能够有利于提高初始化当前图像的相机位姿参数的准确性;而利用相机在预设状态下的加速度信息得到重力信息,能够仅利用加速度计得到重力信息,从而能够有利于进一步降低视觉定位技术的使用成本,扩大视觉定位技术的使用范围。
本申请第二方面提供了一种视觉定位装置,包括:重力信息获取模块、第一位姿获取模块和第二位姿获取模块,重力信息获取模块用于获取相机的重力信息;第一位姿获取模块用于利用重力信息,获取相机在预设运动状态下拍摄的当前图像的相机位姿参数;第二位姿获取模块用于基于当前图像的相机位姿参数,获取当前图像之后的待处理图像的相机位姿参数。
本申请第三方面提供了一种电子设备,包括相互耦接的存储器和处理器,处理器用于执行存储器中存储的程序指令,以实现上述第一方面中的视觉定位方法。
本申请第四方面提供了一种计算机可读存储介质,其上存储有程序指令,程序指令被处理器执行时实现上述第一方面中的视觉定位方法。
上述方案,通过获取相机的重力信息,从而利用重力信息,获取相机在预设运动状态下拍摄的当前图像的相机位姿参数,并基于当前图像的相机位姿参数,获取当前图像之后的待处理图像的相机位姿参数,进而能够只依赖于相机和重力信息来进行视觉定位,故能够降低视觉定位技术的使用成本,扩大视觉定位技术的使用范围。
附图说明
图1是本申请视觉定位方法一实施例的流程示意图;
图2是获取深度信息一实施例的示意图;
图3是图1中步骤S13一实施例的流程示意图;
图4是本申请视觉跟踪方法另一实施例的流程示意图;
图5是图4中步骤S45一实施例的流程示意图;
图6是本申请视觉定位装置一实施例的框架示意图;
图7是本申请电子设备一实施例的框架示意图;
图8是本申请计算机可读存储介质一实施例的框架示意图。
具体实施方式
下面结合说明书附图,对本申请实施例的方案进行详细说明。
以下描述中,为了说明而不是为了限定,提出了诸如特定系统结构、接口、技术之类的具体细节,以便透彻理解本申请。
本文中术语“系统”和“网络”在本文中常被可互换使用。本文中术语“和/或”,仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。另外,本文中字符“/”,一般表示前后关联对象是一种“或”的关系。此外,本文中的“多”表示两个或者多于两个。
请参阅图1,图1是本申请视觉定位方法一实施例的流程示意图。具体而言,可以包括如下步骤:
步骤S11:获取相机的重力信息。
相机可以集成于移动设备中,移动设备可以包括但不限于:手机、平板电脑、机器人等。具体地,本公开实施例以及下述公开实施例中的步骤可以由移动设备执行。此外,移动设备还可以集成有其他传感器,例如,加速度计、重力计、IMU等,具体可以根据实际应用场景进行设置,在此不做限定。例如,受成本限制,低端移动设备可以仅集成有相机和加速度计;或者,也可以集成有相机和重力计,此外,中高端移动设备还可以集成有相机、加速度计、IMU等,在此不做限定。
在一个实施场景中,重力信息可以是利用相机在预设运动状态下的加速度信息得到的,从而能够无需IMU,仅依靠加速度计得到重力信息。具体地,预设运动状态为静止状态或匀速运动状态。例如,预设运动状态下检测得到的相机加速度与重力加速度之间的差异在预设范围内,例如,重力加速度为9.8m/s2,预设范围为0~1m/s2,当检测得到的相机加速度为10m/s2时,可以认为相机在预设运动状态,预设范围具体可以根据实际应用需要进行设置,在此不做限定。此外,在移动设备集成有重力计的情况下,也可以无需IMU,直接通过重力计获取重力信息。
在一个具体的实施场景中,还可以根据检测得到的相机加速度来判断是否处于静止状态或匀速运动状态,例如,当检测得到的相机加速度接近于重力加速度时,可以认为处于静止状态或匀速运动状态。具体地,当配置有加速度计时,可以计算加速度计在三轴上的加速度分量(如,ax,ay,az)平方和的根,作为相机加速度acamera,即
在另一个具体的实施场景中,当检测到相机不处于预设运动状态时,可以重新进行检测,直至检测得到相机处于预设运动状态为止。具体地,检测的频率可以和相机拍摄的频率一致,例如,相机每秒拍摄25张图像,则可以相应地每秒检测25次是否处于预设运动状态,具体可以根据实际应用需要进行设置,在此不做限定。
在一个实施场景中,相机的重力信息具体可以包括重力方向信息,具体地,重力方向信息可以包括重力向量。在一个具体的实施场景中,当配置有加速度计时,可以计算加速度计在三轴上的加速度分量的向量和(即),并将向量和作为重力向量,或者,还可以将与向量和同方向的单位向量作为重力向量,具体可以根据实际应用需要进行设置,在此不做限定。
步骤S12:利用重力信息,获取相机在预设运动状态下拍摄的当前图像的相机位姿参数。
在一个实施场景中,相机位姿参数具体可以包括位移参数和旋转参数,从而可以利用重力方向信息,获取相机分别相对于世界坐标系x坐标轴、y坐标轴和z坐标轴的旋转角度,且相机按照旋转角度旋转后的重力方向与z坐标轴的反方向相同,进而可以利用旋转角度,得到旋转参数,并将位移参数设置为预设数值,故可以通过重力对齐简化初始化当前图像的相机位姿参数,降低计算量。
在一个具体的实施场景中,相机相对于x坐标轴的旋转角度可以表示为θ、相机相对于y坐标轴的旋转角度可以表示为相机相对于z坐标轴的旋转角度可以表示为φ,则相机相对于世界坐标系x坐标轴的旋转参数Rx,相对于世界坐标系y坐标轴的旋转参数Ry,相对于世界坐标系z坐标轴的旋转参数Rz可以分别表示为:
旋转参数R可以由相对于世界坐标系x坐标轴的旋转参数Rx,相对于世界坐标系y坐标轴的旋转参数Ry,相对于世界坐标系z坐标轴的旋转参数Rz求得,具体可以将上述旋转参数Rx、旋转参数Ry和旋转参数Rz的乘积,作为旋转参数R,即旋转参数R可以表示为:
R=RxRyRz……(2)
在另一个具体的实施场景中,可以将世界坐标系的原点作为相机拍摄当前图像时所在的位置,即相机相对于x坐标轴、y坐标轴、z坐标轴的位移均为0,故可以将预设数值设置为0,即位移参数可以设置为0。
步骤S13:基于当前图像的相机位姿参数,获取当前图像之后的待处理图像的相机位姿参数。
在一个实施场景中,可以扫描获取多帧图像,并利用三角化方式对当前图像和当前图像的相邻图像中相互匹配的特征点进行处理,得到匹配的特征点的深度信息,具体地,深度信息可以包括特征点的深度值,从而利用计算得到的深度值,可以得到特征点在世界坐标系中的三维坐标,进而可以利用当前图像的下一帧图像与当前图像之间的位姿变换参数,将特征点的三维坐标重投影至下一帧图像中,得到在下一帧图像的投影点,从而利用投影点在下一帧图像的像素值以及对应的特征点在当前图像的像素值之间的差异,构建关于位姿变换参数的目标函数,通过最小化该目标函数,可以求得位姿变换参数,并利用位姿变换参数和当前图像的相机位姿参数,可以得到下一帧图像的相机位姿参数,以此类推,可以逐帧获取当前图像之后的待处理图像的相机位姿参数。在一个具体的实施场景中,三角化方式是指在不同的位置观测同一个三维点,且已知在不同位置处观测到的三维点的二维投影点,利用三角关系,恢复出三维点的深度信息,具体方式在此不再赘述。
在另一个实施场景中,为了减少扫描多帧图像所带来的额外响应时间,提高视觉定位的响应速度,还可以通过当前图像中特征点的特征方向信息和重力方向信息,得到当前图像中特征点的深度信息,从而基于当前图像中特征点的深度信息和当前图像的相机位姿参数,获取当前图像之后的待处理图像中特征点的深度信息和待处理图像的相机位姿参数,进而能够仅需当前图像即可初始化深度信息,故能够免于扫描多帧图像,有利于提高视觉定位的响应速度。
在一个具体的实施场景中,特征方向信息可以包括特征点的方向向量,重力方向信息包括重力向量,具体地,方向向量和重力向量可以为单位向量,深度信息包括特征点的深度值。具体地,特征点可以包括能够描述图像特征的像素点,例如,可以包括图像中轮廓边缘像素点、像素值突变的像素点等等,具体可以根据实际需要进行设置,在此不做限定。例如,可以通过FAST(Features from Accelerated Segment Test,加速段测试的特征)、BRIEF(Binary Robust Independent Elementary Features,二进制鲁棒独立特征描述子)、SIFT(Scale Invariant Feature Transform,尺度不变特征变换)、ORB等检测方式,得到特征点以及特征点的方向向量,具体可以根据实际应用需要选择特征点检测方式,在此不做限定。
在另一个具体的实施场景中,请结合参阅图2,图2是获取深度信息一实施例的示意图,可以对特征点的方向向量和重力向量/>进行第一预设运算,得到特征点的方向向量/>和重力向量/>之间的夹角,第一预设运算可以包括内积运算,即方向向量/>和重力向量之间的夹角α可以表示为:
在得到夹角α之后,可以对相机的预设高度h和夹角α进行第二预设运算,得到特征点的深度值z,第二预设运算包括将预设高度除以夹角的余弦值,预设高度可以根据实际应用情况进行设置,以AR应用为例,可以根据虚拟物体的大小进行设置,例如,虚拟物体为一般体型的猫、狗等宠物,则可以将预设高度设置为0.5米~1米,其他应用情况可以根据实际情况进行设置,在此不再一一举例。具体地,深度值z可以表示为:
在一个实施场景中,本公开实施例以及下述公开实施例中的步骤可以集成于移动设备运行的室内导航、自动驾驶、AR、VR等应用程序、网页中,具体可以根据实际应用需要进行设置,在此不做限定。
上述方案,通过获取相机的重力信息,从而利用重力信息,获取相机在预设运动状态下拍摄的当前图像的相机位姿参数,并基于当前图像的相机位姿参数,获取当前图像之后的待处理图像的相机位姿参数,进而能够只依赖于相机和重力信息来进行视觉定位,故能够降低视觉定位技术的使用成本,扩大视觉定位技术的使用范围。
请参阅图3,图3是图1中步骤S13一实施例的流程示意图。具体地,图3是基于当前图像中特征点的深度信息和当前图像的相机位姿参数,获取当前图像之后的待处理图像中特征点的深度信息和待处理图像的相机位姿参数一实施例的流程示意图。具体地,可以包括如下步骤:
步骤S131:利用预设位姿跟踪方式对当前图像中特征点的深度信息、当前图像的相机位姿参数进行跟踪处理,得到当前图像的下一帧图像中特征点的深度信息和下一帧图像的相机位姿参数。
预设位姿跟踪方式可以根据实际应用需要进行设置。本公开实施例中,预设位姿跟踪方式具体可以包括稀疏图像对齐、特征点对齐、位姿优化等步骤,从而通过上述步骤处理得到下一帧图像的相机位姿参数,此外,预设位姿跟踪方式还可以具体包括图点优化步骤,从而通过图点优化等步骤处理得到下一帧图像中特征点的深度信息。
在一个具体的实施场景中,在进行稀疏图像对齐时,可以先利用所述当前图像中所述特征点的深度信息,确定所述特征点在所述下一帧图像中的投影点,具体可以包括:利用二维到三维的反投影函数π-1,将包含特征点坐标u和特征点深度值du的第一坐标信息(u,du)反投影至三维空间,得到特征点的三维坐标π-1(u,du),并利用当前图像k-1和下一帧图像k之间的位姿变换参数T和三维到二维的投影函数π将当前图像特征点的三维坐标π-1(u,du)投影至下一帧图像k,得到特征点在下一帧图像k中的投影点π(T·π-1(u,du)),从而投影点在下一帧图像k中的局部区域的像素值Wk(π(T·π-1(u,du)))以及对应于当前图像k-1的特征点局域区域的像素值Wk-1(u)之间存在差异,进而可以基于该差异,得到当前图像k-1和下一帧图像k之间的位姿变换参数。具体地,局部区域可以是以特征点(或投影点)为中心的一矩形区域(如,3*3区域、4*4区域、8*8区域等等),具体如下式所示:
r(T,u)=Wk(π(T·π-1(u,du)))-Wk-1(u)……(5)
具体地,特征点的数量一般有多个,故可以对多个特征点计算上述差异,并进行求和,进一步构建目标函数,如下式所示:
上述公式(6)中,表示目标函数,其中,ρ表示鲁棒函数,用于降低噪声影响,||·||表示范数运算,/>表示以位姿变换参数T为优化对象最小化目标函数,Tk,k-1表示求解目标函数所得到的位姿变换参数。
在计算得到的位姿变换参数Tk,k-1之后,可以利用位姿变换参数Tk,k-1和当前图像k-1的相机位姿参数Tk-1,得到下一帧图像的相机位姿参数Tk。具体地,可以将位姿变换参数Tk,k-1乘以当前图像k-1的相机位姿参数Tk-1,得到下一帧图像的相机位姿参数Tk。
此外,为了降低稀疏图像对齐的计算复杂度,还可以对当前图像k-1和下一帧图像k进行下采样处理,得到当前图像k-1和下一帧图像k的金字塔图像,并取金字塔图像中分辨率为预设分辨率的一层图像或多层图像进行上述稀疏图像对齐的处理,从而可以降低计算复杂度。
在一个具体的实施场景中,上述稀疏图像对齐的操作不可避免地会带来累计误差,从而导致所获取的下一帧图像的相机位姿参数Tk精度较低,为了提高精度,可以利用已经收敛的三维点(例如,三维模型中三维点),优化下一帧图像的相机位姿参数Tk。具体可以利用已经收敛的三维点进行匹配对齐得到投影点,再利用投影点对上述稀疏图像对齐所得到的下一帧图像的相机位姿参数Tk进行优化特征点对齐的具体步骤可以包括:在已经收敛的三维点中选取能够投影至下一帧图像k的三维点,作为目标三维点,并从已经拍摄的图像中选取目标三维点能够投影的图像中,最早拍摄的图像,作为参考图像,并获取目标三维点在参考图像中局部区域像素值Wr(ui),利用上述粗略估计的下一帧图像的相机位姿参数Tk将目标三维点投影至下一帧图像中,得到目标三维点在下一帧图像的投影点u′i,从而获取投影点u′i在下一帧图像中局部区域像素值Wk(u′i),进而可以利用局部区域像素值Wr(ui)和局部区域像素值Wk(u′i),构建关于投影点u′i的目标函数,具体可以参阅下式:
上述公式(7)中,表示目标函数,其中,||·||表示范数运算,Ai表示仿射变换矩阵,用于补偿不同视角带来的图像扭曲,/>表示以投影点u′i的位置为优化对象最小化目标函数。
在得到投影点u′i之后,可以基于上述特征点对齐所得到的投影点u′i可以对上述稀疏图像对齐所得到的下一帧图像的相机位姿参数Tk进行优化,最终优化得到下一帧图像的相机位姿参数Tw,k。位姿优化的步骤具体可以包括:利用下一帧图像的相机位姿参数Tw,k和三维到二维的投影函数π将目标三维点wpi重投影至下一帧图像k中,得到投影点并利用投影点/>和特征点对齐步骤中优化得到的下一帧图像的投影点u′i之间的位置差异,构建关于相机位姿参数Tw,k目标函数,具体可以参阅下式:
上述公式(8)中,表示目标函数,其中,ρ表示鲁棒函数,用于降低噪声影响,||·||表示范数运算,/>表示以Tw,k为优化对象最小化目标函数。
通过求解公式(8)所示的目标函数,最终能够得到下一帧图像的相机位姿参数Tw,k。
在一个具体的实施场景中,图点优化的本质是对首次观测到三维点的参考图像上对应位置的逆深度(即深度值的倒数)优化。具体可以获取特征点的深度信息的概率分布,而特征点的内点概率γ和逆深度值z,近似符合贝塔和高斯的混合模型分布(BetaGaussian Mixture Model Distribution),具体可以参阅下式:
其中,上述公式(9)中表示对于某一个特征点p第k次观测后的概率分布,ak,bk表示贝塔分布的参数,表示逆深度高斯分布的均值和方差。在得到概率分布之后,可以利用获取到的概率分布,得到下一帧图像中特征点的深度信息。例如,当逆深度高斯分布的方差/>小于一预设深度范围(如,1/200),则可以认为深度值收敛,取此时逆深度高斯分布的均值μk的倒数作为特征点的深度值,从而可以在拍摄过程中,对特征点的深度值不断进行优化。
步骤S132:将下一帧图像作为当前图像。
在得到下一帧图像的相机位姿参数和特征点的深度信息之后,可以将下一帧图像作为当前图像,并重新执行上述步骤S131以及后续步骤,从而可以逐帧计算图像的相机位姿参数和图像中特征点的深度信息。
步骤S133:重新执行步骤S131以及后续步骤。
区别于前述实施例,利用预设位姿跟踪方式对当前图像中特征点的深度信息、当前图像的相机位姿参数进行跟踪处理,得到当前图像的下一帧图像中特征点的深度信息和下一帧图像的相机位姿参数,从而将下一帧图像作为当前图像,并重新执行利用预设位姿跟踪方式对当前图像中特征点的深度信息、当前图像的相机位姿参数进行跟踪处理的步骤以及后续步骤,进而能够逐帧计算相机位姿参数,有利于降低相机位姿参数的累积误差。
请参阅图4,图4是本申请视觉跟踪方法另一实施例的流程示意图,具体而言,可以包括如下步骤:
步骤S41:获取相机的重力信息。
具体请参阅前述实施例中相关步骤。
步骤S42:利用重力信息,获取相机在预设运动状态下拍摄的当前图像的相机位姿参数。
具体请参阅前述实施例中相关步骤。
步骤S43:基于当前图像的相机位姿参数,获取当前图像之后的待处理图像的相机位姿参数。
具体请参阅前述实施例中相关步骤。
步骤S44:判断待处理图像的相机位姿参数是否满足预设稳定状态条件,若否,则执行步骤S45,若是,则执行步骤S46。
预设稳定状态条件可以包括以下至少一者:相机位姿参数无异常值,待处理图像的相机位姿参数与待处理图像上一帧的相机位姿参数之间的差异在预设范围内。在一个具体的实施场景中,异常值可以包括大于位移阈值的位移参数,大于旋转阈值的旋转参数,位移阈值、旋转阈值和预设范围具体可以根据实际应用需要进行设置,在此不做限定。
步骤S45:确定无法获取待处理图像的位移参数,并利用待处理图像的上一帧图像的像素值和上一帧图像的相机位姿参数,得到待处理图像的旋转参数。
在实际应用过程中,快速运动、光照条件剧烈变化等因素均会导致相机位姿参数不准确,从而导致视觉定位不准确,为了提高视觉定位的鲁棒性,当判断处理图像的相机位姿参数不满足预设稳定状态条件时,可以确定通过上述步骤所获取到的相机位姿参数不准确性,特别是位移参数。故此,为了降低旋转参数更新失败而导致的虚拟物体贴屏等问题,可以利用待处理图像的上一帧图像的像素值和上一帧图像的相机位姿参数,得到待处理图像的旋转参数,从而保持对旋转参数的更新。
在一个具体的实施场景中,请结合参阅图5,图5是图4中步骤S45一实施例的流程示意图。具体可以包括如下步骤:
步骤S451:利用待处理图像和上一帧图像之间的位姿变换参数对上一帧图像中的至少部分像素点进行投影变换,得到至少部分像素点在待处理图像的投影点。
为了便于描述,可以将待处理图像表示为k,将上一帧图像表示为k-1,位姿变换参数表示为Tk,k-1,上一帧图像中的至少部分像素点的二维坐标表示为u,至少部分像素点的深度值表示为du,二维到三维的逆投影函数可以表示为π-1,三维到二维的投影函数可以表示为π,则投影点可以表示为π(Tk,k-1·π-1(u,du)),具体可以参阅前述实施例中的相关步骤,在此不再赘述。
在一个具体的实施场景中,为了降低运算复杂度,还可以将上一帧图像进行降采样,得到上一帧图像的缩略图像(如,40*30或更小的图像),从而利用待处理图像和上一帧图像之间的位姿变换参数对缩略图像中的像素点进行投影变换,得到缩略图像中的像素点在待处理图像的投影点。在另一个具体的实施场景中,为了降低运算复杂度,还可以将缩略图像中的像素点投影至单位球上,即可以将缩略图像中的像素点的深度值统一设置为1,此外,还可以根据实际应用需要将深度值统一设置为其他数值,在此不做限定。
步骤S452:利用至少部分像素点在上一帧图像中的像素值和与至少部分像素点对应的投影点在待处理图像中的像素值的差异,构建关于位姿变换参数的目标函数。
在一个具体的实施场景中,可以利用至少部分像素点在上一帧图像中局部区域像素值Wk-1(u),以及至少部分像素点对应的投影点π(Tk,k-1·π-1(u,du))在待处理图像中局部区域像素值Wk(π(Tk,k-1·π-1(u,du)))的差异,构建关于位姿变换参数的目标函数。
在另一个具体的实施场景中,当对上一帧图像进行降采样时,可以利用缩略图像中像素点的像素值和这些像素值对应的投影点在待处理图像中的像素值的差异,构建关于位姿变换参数的目标函数。
具体地,目标函数具体可以参阅前述实施例中的相关步骤,在此不再赘述。
步骤S453:利用求解目标函数得到的位姿变换参数对上一帧图像的相机位姿参数进行变换处理,得到待处理图像的旋转参数。
对上述目标函数进行优化求解,在优化求解过程中,可以仅优化旋转参数,从而利用求解得到的位姿变换参数对上一帧图像的相机位姿参数进行变换处理,得到待处理图像的相机位姿参数,并提取相机位姿参数中的旋转参数,作为待处理图像的旋转参数。
在一个实施场景中,为了提高视觉定位的鲁棒性,在得到待处理图像的旋转参数之后,可以继续检测相机当前的加速度信息,并判断加速度信息是否处于预设运动状态,获取加速度信息以及判断加速度信息是否处于预设运动状态的步骤可以参阅前述公开实施例中相关步骤,在此不再赘述。若处于预设运动状态,则可以认为此时相机处于静止状态或匀速运动状态,则可以重新执行获取相机的重力信息的步骤以及后续步骤,若不处于预设运动状态,则可以认为此时相机仍然处于剧烈运动的状态,则可以重新执行检测相机当前的加速度信息的步骤以及后续步骤。通过在视觉定位不准确时,重复检测相机当前的加速度信息,并判断加速度信息是否处于预设运动状态,并在处于预设运动状态时,重新执行获取相机的重力信息的步骤以及后续步骤,能够提高视觉定位的鲁棒性。
步骤S46:将待处理图像作为当前图像。
在得到待处理图像的旋转参数之后,可以将待处理图像作为当前图像,并重新执行上述基于当前图像的相机位姿参数,获取当前图像之后的待处理图像的相机位姿参数的步骤以及后续步骤,以在剧烈运动或光照条件剧烈变化的情况下,仍然能够持续更新旋转参数。
步骤S47:重新执行步骤S43以及后续步骤。
区别于前述实施例,相机位姿参数设置为包括旋转参数和位移参数,且在获取当前图像之后的待处理图像的相机位姿参数之后,响应于待处理图像的相机位姿参数不满足预设稳定状态条件,确定无法获取待处理图像的位移参数,从而利用待处理图像的上一帧图像的像素值和上一帧图像的相机位姿参数,得到待处理图像的旋转参数,进而能够在相机位姿参数不准确时,直接利用图像像素,估计旋转参数,能够有利于避免旋转参数无法更新而导致的诸如虚拟现实中虚拟物体贴屏等问题。
请参阅图6,图6是本申请视觉定位装置60一实施例的框架示意图。视觉定位装置60包括重力信息获取模块61、第一位姿获取模块62和第二位姿获取模块63,重力信息获取模块61用于获取相机的重力信息;第一位姿获取模块62用于利用重力信息,获取相机在预设运动状态下拍摄的当前图像的相机位姿参数;第二位姿获取模块63用于基于当前图像的相机位姿参数,获取当前图像之后的待处理图像的相机位姿参数。
上述方案,通过获取相机的重力信息,从而利用重力信息,获取相机在预设运动状态下拍摄的当前图像的相机位姿参数,并基于当前图像的相机位姿参数,获取当前图像之后的待处理图像的相机位姿参数,进而能够只依赖于相机和重力信息来进行视觉定位,故能够降低视觉定位技术的使用成本,扩大视觉定位技术的使用范围。
在一些公开实施例中,重力信息包括重力方向信息,视觉定位装置60还包括特征方向获取模块,用于获取当前图像中的特征点的特征方向信息,视觉定位装置60还包括深度信息获取模块,用于利用特征点的特征方向信息和重力方向信息,得到当前图像中特征点的深度信息,第二位姿获取模块63具体用于基于当前图像中特征点的深度信息和当前图像的相机位姿参数,获取当前图像之后的待处理图像中特征点的深度信息和待处理图像的相机位姿参数。
区别于前述实施例,通过获取当前图像中特征点的特征方向信息,并利用特征点的特征方向信息和重力信息所包含的重力方向信息,得到当前图像中特征点的深度信息,故能够仅基于当前图像来初始化当前图像中特征点的深度信息和当前图像的相机位姿参数,且能够基于当前图像中特征点的深度信息和当前图像的相机位姿参数,获取当前图像之后的待处理图像中特征点的深度信息和待处理图像的相机位姿参数,而无需扫描多帧图像来进行初始化工作,从而能够提高视觉定位的响应速度。
在一些公开实施例中,特征方向信息包括特征点的方向向量,重力方向信息包括重力向量,深度信息包括特征点的深度值,深度信息获取模块包括第一运算子模块,用于对特征点的方向向量和重力向量进行第一预设运算,得到特征点的方向向量和重力向量之间的夹角,深度信息获取模块第二运算子模块,用于对相机的预设高度和夹角进行第二预设运算,得到特征点的深度值。
区别于前述实施例,特征方向信息设置为包括特征点的方向向量,重力方向信息设置为包括重力向量,深度信息设置为包括特征点的深度值,从而对特征点的方向向量和重力向量进行第一预设运算,得到特征点的方向向量和重力向量之间的夹角,从而对相机的预设高度和夹角进行第二预设运算,得到特征点的深度值,故能够有利于降低获取特征点深度值的计算复杂度。
在一些公开实施例中,第一预设运算包括内积运算,和/或,第二预设运算包括将预设高度除以夹角的余弦值。
区别于前述实施例,将第一预设运算设置为包括内积运算,能够有利于降低获取方向向量和重力向量之间夹角的复杂度,将第二预设运算设置为包括将预设高度除以夹角的余弦值,能够有利于降低获取深度值的复杂度。
在一些公开实施例中,第二位姿获取模块63具体包括位姿跟踪子模块,用于利用预设位姿跟踪方式对当前图像中特征点的深度信息、当前图像的相机位姿参数进行跟踪处理,得到当前图像的下一帧图像中特征点的深度信息和下一帧图像的相机位姿参数,第二位姿获取模块63具体包括重复执行子模块,用于将下一帧图像作为当前图像,并重新执行利用预设位姿跟踪方式对当前图像中特征点的深度信息、当前图像的相机位姿参数进行跟踪处理的步骤以及后续步骤。
区别于前述实施例,利用预设位姿跟踪方式对当前图像中特征点的深度信息、当前图像的相机位姿参数进行跟踪处理,得到当前图像的下一帧图像中特征点的深度信息和下一帧图像的相机位姿参数,从而将下一帧图像作为当前图像,并重新执行利用预设位姿跟踪方式对当前图像中特征点的深度信息、当前图像的相机位姿参数进行跟踪处理的步骤以及后续步骤,进而能够逐帧计算相机位姿参数,有利于降低相机位姿参数的累积误差。
在一些公开实施例中,位姿跟踪子模块包括:特征点投影单元,用于利用当前图像中特征点的深度信息,确定特征点在下一帧图像中的投影点;位姿变换参数计算单元,用于基于特征点在当前图像中局部区域的像素值和投影点在下一帧图像中局部区域的像素值之间的差异,得到当前图像与下一帧图像之间的位姿变换参数;相机位姿参数计算单元,用于利用位姿变换参数和当前图像的相机位姿参数,得到下一帧图像的相机位姿参数;相机位姿参数优化单元,用于利用已经收敛的三维点,优化下一帧图像的相机位姿参数;深度信息获取单元,用于获取特征点的深度信息的概率分布,并利用概率分布,得到下一帧图像中特征点的深度信息。
区别于前述实施例,通过利用当前图像中特征点的深度信息,确定特征点在下一帧图像中的投影点,从而基于特征点在当前图像中局部区域的像素值和投影点在下一帧图像中局部区域的像素值之间的差异,得到当前图像与下一帧图像之间的位姿变换参数,并利用位姿变换参数和当前图像的相机位姿参数,得到下一帧图像的相机位姿参数,利用已经收敛的三维点,优化下一帧图像的相机位姿参数,从而可以对相机位姿参数进行进一步的优化,有利于提高相机位姿参数的准确性;而通过获取特征点的深度信息的概率分布,并利用概率分布,得到下一帧图像中特征点的深度信息,从而能够基于深度信息的分布概率,在拍摄过程中对深度信息进行优化。
在一些公开实施例中,相机位姿参数包括旋转参数和位移参数,视觉定位装置60还包括相机位姿检测模块,用于响应于待处理图像的相机位姿参数不满足预设稳定状态条件,确定无法获取待处理图像的位移参数,视觉定位装置60还包括旋转参数更新模块,用于利用待处理图像的上一帧图像的像素值和上一帧图像的相机位姿参数,得到待处理图像的旋转参数。
区别于前述实施例,相机位姿参数设置为包括旋转参数和位移参数,且在获取当前图像之后的待处理图像的相机位姿参数之后,响应于待处理图像的相机位姿参数不满足预设稳定状态条件,确定无法获取待处理图像的位移参数,从而利用待处理图像的上一帧图像的像素值和上一帧图像的相机位姿参数,得到待处理图像的旋转参数,进而能够在相机位姿参数不准确时,直接利用图像像素,估计旋转参数,能够有利于降低因旋转参数无法更新而导致的诸如虚拟现实中虚拟物体贴屏等问题发生的概率。
在一些公开实施例中,旋转参数更新模块包括投影变换子模块,用于利用待处理图像和上一帧图像之间的位姿变换参数对上一帧图像中的至少部分像素点进行投影变换,得到至少部分像素点在待处理图像的投影点,旋转参数更新模块包括函数构建子模块,用于利用至少部分像素点在上一帧图像中的像素值和与至少部分像素点对应的投影点在待处理图像中的像素值的差异,构建关于位姿变换参数的目标函数,旋转参数更新模块包括参数获取子模块,用于利用求解目标函数得到的位姿变换参数对上一帧图像的相机位姿参数进行变换处理,得到待处理图像的旋转参数。
区别于前述实施例,利用待处理图像和上一帧图像之间的位姿变换参数对上一帧图像中的至少部分像素点进行投影变换,得到至少部分像素点在待处理图像的投影点,并利用至少部分像素点在上一帧图像中的像素值和至少部分像素点对应的投影点在待处理图像中的像素值的差异,构建关于位姿变换参数的目标函数,从而利用求解目标函数得到的位姿变换参数对上一帧图像的相机位姿参数进行变换处理,得到待处理图像的旋转参数,故能够基于至少部分像素点求得旋转参数,能够有利于降低计算旋转参数的计算量。
在一些公开实施例中,旋转参数更新模块包括降采样子模块,用于将上一帧图像进行降采样处理,得到上一帧图像的缩略图像,投影变换子模块具体用于利用待处理图像和上一帧图像之间的位姿变换参数对缩略图像中的像素点进行投影变换,得到缩略图像中的像素点在待处理图像的投影点。
区别于前述实施例,通过将上一帧图像进行降采样处理,得到上一帧图像的缩略图像,从而利用待处理图像的上一帧图像之间的位姿变换参数对缩略图像中的像素点进行投影变换,得到缩略图像中的像素点在待处理图像的投影点,以进行后续的目标函数构建以及求解,能够有利于降低计算旋转参数的计算量。
在一些公开实施例中,视觉定位装置60还包括加速度检测模块,用于检测相机当前的加速度信息,并判断加速度信息是否处于预设运动状态,重力信息获取模块61、第一位姿获取模块62和第二位姿获取模块63具体用于在判断结果为是时重新执行获取相机的重力信息的步骤以及后续步骤,加速度检测模块还用于在判断结果为否时,重新执行检测相机当前的加速度信息的步骤以及后续步骤。
区别于前述实施例,在得到待处理图像的旋转参数之后,进一步检测相机当前的加速度信息,并判断加速度信息是否处于预设运动状态,从而在处于预设运动状态时,重新执行获取相机的重力信息的步骤以及后续步骤,并在不处于预设运动状态时,重新执行检测相机当前的加速度信息的步骤以及后续步骤,进而能够有利于提高视觉定位的鲁棒性。
在一些公开实施例中,重力信息包括重力方向信息,相机位姿参数包括旋转参数和位移参数,第一位姿获取模块62包括旋转角度获取子模块,用于利用重力方向信息,获取相机分别相对于世界坐标系x坐标轴、y坐标轴和z坐标轴的旋转角度;且相机按照旋转角度旋转后的重力方向与z坐标轴的反方向相同,第一位姿获取模块62参数初始化子模块,用于利用旋转角度,得到旋转参数,并将位移参数设置为预设数值。
区别于前述实施例,通过利用重力方向信息,获取相机分别相对于世界坐标系x坐标轴、y坐标轴和z坐标轴的旋转角度,且相机按照旋转角度旋转后的重力方向与z坐标轴的反方向相同,从而利用旋转角度,得到旋转参数,并将位移参数设置为预设数值,能够通过重力对齐得到旋转参数,进而初始化相机位姿参数,有利于降低相机位姿参数初始化的计算量。
在一些公开实施例中,世界坐标系的原点为相机拍摄当前图像时所在的位置,预设数值为0。
区别于前述实施例,将世界坐标系的原点设置为相机拍摄当前图像时所在的位置,预设数值设置为0,能够有利于降低初始化位移参数的复杂度
在一些公开实施例中,预设运动状态为静止状态或匀速运动状态;和/或,重力信息是利用相机在预设状态下的加速度信息得到的。
区别于前述实施例,将预设运动状态设置为静止状态或匀速运动状态,能够有利于提高初始化当前图像的相机位姿参数的准确性;而利用相机在预设状态下的加速度信息得到重力信息,能够仅利用加速度计得到重力信息,从而能够有利于进一步降低视觉定位技术的使用成本,扩大视觉定位技术的使用范围。
请参阅图7,图7是本申请电子设备70一实施例的框架示意图。电子设备70包括相互耦接的存储器71和处理器72,处理器72用于执行存储器71中存储的程序指令,以实现上述任一视觉定位方法实施例的步骤。在一个具体的实施场景中,电子设备70可以包括但不限于:手机、平板电脑、机器人等移动设备,在此不做限定。
具体而言,处理器72用于控制其自身以及存储器71以实现上述任一视觉定位方法实施例的步骤。处理器72还可以称为CPU(Central Processing Unit,中央处理单元)。处理器72可能是一种集成电路芯片,具有信号的处理能力。处理器72还可以是通用处理器、数字信号处理器(Digital Signal Processor,DSP)、专用集成电路(Application SpecificIntegrated Circuit,ASIC)、现场可编程门阵列(Field-Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。另外,处理器72可以由集成电路芯片共同实现。
上述方案,能够降低视觉定位技术的使用成本,扩大视觉定位技术的使用范围。
请参阅图8,图8为本申请计算机可读存储介质80一实施例的框架示意图。计算机可读存储介质80存储有能够被处理器运行的程序指令801,程序指令801用于实现上述任一视觉定位方法实施例的步骤。
上述方案,能够降低视觉定位技术的使用成本,扩大视觉定位技术的使用范围。
在本申请所提供的几个实施例中,应该理解到,所揭露的方法和装置,可以通过其它的方式实现。例如,以上所描述的装置实施方式仅仅是示意性的,例如,模块或单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性、机械或其它的形式。
作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施方式方案的目的。
另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)或处理器(processor)执行本申请各个实施方式方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
Claims (14)
1.一种视觉定位方法,其特征在于,包括:
获取相机的重力信息;所述重力信息包括重力方向信息;
利用所述重力信息,获取所述相机在预设运动状态下拍摄的当前图像的相机位姿参数;
获取所述当前图像中的特征点的特征方向信息;
利用所述特征点的特征方向信息和所述重力方向信息,得到所述当前图像中所述特征点的深度信息;
基于所述当前图像的相机位姿参数,获取所述当前图像之后的待处理图像的相机位姿参数,其中包括:利用预设位姿跟踪方式对所述当前图像中所述特征点的深度信息、所述当前图像的相机位姿参数进行跟踪处理,得到所述当前图像的下一帧图像中所述特征点的深度信息和所述下一帧图像的相机位姿参数;
将所述下一帧图像作为所述当前图像,并重新执行所述利用预设位姿跟踪方式对所述当前图像中所述特征点的深度信息、所述当前图像的相机位姿参数进行跟踪处理的步骤以及后续步骤。
2.根据权利要求1所述的方法,其特征在于,所述特征方向信息包括所述特征点的方向向量,所述重力方向信息包括重力向量,所述深度信息包括所述特征点的深度值;
所述利用所述特征点的特征方向信息和所述重力方向信息,得到所述当前图像中所述特征点的深度信息包括:
对所述特征点的所述方向向量和所述重力向量进行第一预设运算,得到所述特征点的所述方向向量和所述重力向量之间的夹角;
对所述相机的预设高度和所述夹角进行第二预设运算,得到所述特征点的深度值。
3.根据权利要求2所述的方法,其特征在于,所述第一预设运算包括内积运算;
和/或,所述第二预设运算包括将所述预设高度除以所述夹角的余弦值。
4.根据权利要求1所述的方法,其特征在于,所述利用预设位姿跟踪方式对所述当前图像中所述特征点的深度信息、所述当前图像的相机位姿参数进行跟踪处理,得到所述当前图像的下一帧图像中所述特征点的深度信息和所述下一帧图像的相机位姿参数,包括:
利用所述当前图像中所述特征点的深度信息,确定所述特征点在所述下一帧图像中的投影点;
基于所述特征点在所述当前图像中局部区域的像素值与所述投影点在所述下一帧图像中局部区域的像素值之间的差异,得到所述当前图像与所述下一帧图像之间的位姿变换参数;
利用所述位姿变换参数和所述当前图像的相机位姿参数,得到所述下一帧图像的相机位姿参数;
利用已经收敛的三维点,优化所述下一帧图像的相机位姿参数;
获取所述特征点的深度信息的概率分布,并利用所述概率分布,得到下一帧图像中所述特征点的深度信息。
5.根据权利要求1所述的方法,其特征在于,所述相机位姿参数包括旋转参数和位移参数;
所述基于所述当前图像的相机位姿参数,获取所述当前图像之后的待处理图像的相机位姿参数之后,所述方法还包括:
响应于所述待处理图像的相机位姿参数不满足预设稳定状态条件,确定无法获取所述待处理图像的位移参数;以及,
利用所述待处理图像的上一帧图像的像素值和所述上一帧图像的相机位姿参数,得到所述待处理图像的旋转参数。
6.根据权利要求5所述的方法,其特征在于,所述利用所述待处理图像的上一帧图像的像素值和所述上一帧图像的相机位姿参数,得到所述待处理图像的旋转参数包括:
利用所述待处理图像和所述上一帧图像之间的位姿变换参数对所述上一帧图像中的至少部分像素点进行投影变换,得到所述至少部分像素点在所述待处理图像的投影点;
利用所述至少部分像素点在所述上一帧图像中的像素值和与所述至少部分像素点对应的所述投影点在所述待处理图像中的像素值的差异,构建关于所述位姿变换参数的目标函数;
利用求解所述目标函数得到的所述位姿变换参数对所述上一帧图像的相机位姿参数进行变换处理,得到所述待处理图像的旋转参数。
7.根据权利要求6所述的方法,其特征在于,所述利用所述待处理图像和所述上一帧图像之间的位姿变换参数对所述上一帧图像中的至少部分像素点进行投影变换,得到所述至少部分像素点在所述待处理图像的投影点之前,所述方法还包括:
将所述上一帧图像进行降采样处理,得到所述上一帧图像的缩略图像;
所述利用所述待处理图像和所述上一帧图像之间的位姿变换参数对所述待处理图像中的至少部分像素点进行投影变换,得到所述至少部分像素点在所述待处理图像的投影点包括:
利用所述待处理图像和所述上一帧图像之间的位姿变换参数对所述缩略图像中的像素点进行投影变换,得到所述缩略图像中的像素点在所述待处理图像的投影点。
8.根据权利要求5所述的方法,其特征在于,所述利用所述待处理图像的上一帧图像的像素值和所述上一帧图像的相机位姿参数,得到所述待处理图像的旋转参数之后,所述方法还包括:
检测所述相机当前的加速度信息,并判断所述加速度信息是否处于所述预设运动状态;
若是,则重新执行所述获取相机的重力信息的步骤以及后续步骤;
若否,则重新执行所述检测所述相机当前的加速度信息的步骤以及后续步骤。
9.根据权利要求1所述的方法,其特征在于,所述重力信息包括重力方向信息,所述相机位姿参数包括旋转参数和位移参数,所述利用所述重力信息,获取所述相机在预设运动状态下拍摄的当前图像的相机位姿参数包括:
利用所述重力方向信息,获取所述相机分别相对于世界坐标系x坐标轴、y坐标轴和z坐标轴的旋转角度;其中,所述相机按照所述旋转角度旋转后的重力方向与所述z坐标轴的反方向相同;
利用所述旋转角度,得到所述旋转参数,并将所述位移参数设置为预设数值。
10.根据权利要求9所述的方法,其特征在于,所述世界坐标系的原点为所述相机拍摄所述当前图像时所在的位置,所述预设数值为0。
11.根据权利要求1至10任一项所述的方法,其特征在于,所述预设运动状态为静止状态或匀速运动状态;
和/或,所述重力信息是利用所述相机在所述预设运动状态下的加速度信息得到的。
12.一种视觉定位装置,其特征在于,包括:
重力信息获取模块,用于获取相机的重力信息;所述重力信息包括重力方向信息;
第一位姿获取模块,用于利用所述重力信息,获取所述相机在预设运动状态下拍摄的当前图像的相机位姿参数;
第二位姿获取模块,用于获取所述当前图像中的特征点的特征方向信息;利用所述特征点的特征方向信息和所述重力方向信息,得到所述当前图像中所述特征点的深度信息;
以及基于所述当前图像的相机位姿参数,获取所述当前图像之后的待处理图像的相机位姿参数,其中包括利用预设位姿跟踪方式对所述当前图像中所述特征点的深度信息、所述当前图像的相机位姿参数进行跟踪处理,得到所述当前图像的下一帧图像中所述特征点的深度信息和所述下一帧图像的相机位姿参数;将所述下一帧图像作为所述当前图像,并重新执行所述利用预设位姿跟踪方式对所述当前图像中所述特征点的深度信息、所述当前图像的相机位姿参数进行跟踪处理的步骤以及后续步骤。
13.一种电子设备,其特征在于,包括相互耦接的存储器和处理器,所述处理器用于执行所述存储器中存储的程序指令,以实现权利要求1至11任一项所述的视觉定位方法。
14.一种计算机可读存储介质,其上存储有程序指令,其特征在于,所述程序指令被处理器执行时实现权利要求1至11任一项所述的视觉定位方法。
Priority Applications (5)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011148780.6A CN112348889B (zh) | 2020-10-23 | 2020-10-23 | 视觉定位方法及相关装置、设备 |
JP2021569000A JP7280385B2 (ja) | 2020-10-23 | 2021-02-19 | 視覚的ポジショニング方法および関連装置、機器並びにコンピュータ可読記憶媒体 |
PCT/CN2021/076957 WO2022083038A1 (zh) | 2020-10-23 | 2021-02-19 | 视觉定位方法及相关装置、设备和计算机可读存储介质 |
KR1020227003202A KR20220054582A (ko) | 2020-10-23 | 2021-02-19 | 시각 포지셔닝 방법 및 관련 장치, 기기와 컴퓨터 판독 가능한 저장 매체 |
TW110131503A TWI795885B (zh) | 2020-10-23 | 2021-08-25 | 視覺定位方法、設備和電腦可讀儲存介質 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011148780.6A CN112348889B (zh) | 2020-10-23 | 2020-10-23 | 视觉定位方法及相关装置、设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112348889A CN112348889A (zh) | 2021-02-09 |
CN112348889B true CN112348889B (zh) | 2024-06-07 |
Family
ID=74360141
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011148780.6A Active CN112348889B (zh) | 2020-10-23 | 2020-10-23 | 视觉定位方法及相关装置、设备 |
Country Status (5)
Country | Link |
---|---|
JP (1) | JP7280385B2 (zh) |
KR (1) | KR20220054582A (zh) |
CN (1) | CN112348889B (zh) |
TW (1) | TWI795885B (zh) |
WO (1) | WO2022083038A1 (zh) |
Families Citing this family (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112348889B (zh) * | 2020-10-23 | 2024-06-07 | 浙江商汤科技开发有限公司 | 视觉定位方法及相关装置、设备 |
CN112884840A (zh) * | 2021-03-29 | 2021-06-01 | 湖南国科微电子股份有限公司 | 一种视觉定位方法、装置、设备及存储介质 |
CN115641648B (zh) * | 2022-12-26 | 2023-08-18 | 苏州飞蝶虚拟现实科技有限公司 | 基于视觉对重复动作分析过滤的3d远程互动处理系统 |
CN116429094B (zh) * | 2023-06-15 | 2023-09-26 | 小米汽车科技有限公司 | 定位方法、装置、电子设备及存储介质 |
CN117058209B (zh) * | 2023-10-11 | 2024-01-23 | 山东欧龙电子科技有限公司 | 一种基于三维地图的飞行汽车视觉图像深度信息计算方法 |
KR102711526B1 (ko) * | 2024-02-28 | 2024-09-30 | 고려대학교 산학협력단 | 실내 환경에서의 bim 기반 카메라 트래킹 방법 및 장치 |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2017108370A (ja) * | 2015-07-06 | 2017-06-15 | セイコーエプソン株式会社 | 頭部装着型表示装置およびコンピュータープログラム |
CN110335316A (zh) * | 2019-06-28 | 2019-10-15 | Oppo广东移动通信有限公司 | 基于深度信息的位姿确定方法、装置、介质与电子设备 |
CN110349213A (zh) * | 2019-06-28 | 2019-10-18 | Oppo广东移动通信有限公司 | 基于深度信息的位姿确定方法、装置、介质与电子设备 |
CN110720113A (zh) * | 2018-08-01 | 2020-01-21 | 深圳市大疆创新科技有限公司 | 一种参数处理方法、装置及摄像设备、飞行器 |
JP2020042575A (ja) * | 2018-09-11 | 2020-03-19 | 富士通株式会社 | 情報処理装置、位置合わせ方法、及びプログラム |
CN111696162A (zh) * | 2020-06-11 | 2020-09-22 | 中国科学院地理科学与资源研究所 | 一种双目立体视觉精细地形测量系统及方法 |
CN111709984A (zh) * | 2020-06-08 | 2020-09-25 | 亮风台(上海)信息科技有限公司 | 位姿深度预测方法、视觉里程计方法、装置、设备及介质 |
Family Cites Families (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103733229A (zh) | 2011-08-24 | 2014-04-16 | 索尼公司 | 信息处理设备、信息处理方法及程序 |
US10664993B1 (en) * | 2017-03-13 | 2020-05-26 | Occipital, Inc. | System for determining a pose of an object |
CN108305317B (zh) * | 2017-08-04 | 2020-03-17 | 腾讯科技(深圳)有限公司 | 一种图像处理方法、装置及存储介质 |
JP7421505B2 (ja) | 2018-06-08 | 2024-01-24 | マジック リープ, インコーポレイテッド | 自動化された表面選択設置およびコンテンツ配向設置を用いた拡張現実ビューア |
JP7107166B2 (ja) | 2018-10-26 | 2022-07-27 | 富士通株式会社 | 床面検出プログラム、床面検出方法及び端末装置 |
CN111210463B (zh) * | 2020-01-15 | 2022-07-15 | 上海交通大学 | 基于特征点辅助匹配的虚拟宽视角视觉里程计方法及系统 |
CN112348889B (zh) * | 2020-10-23 | 2024-06-07 | 浙江商汤科技开发有限公司 | 视觉定位方法及相关装置、设备 |
-
2020
- 2020-10-23 CN CN202011148780.6A patent/CN112348889B/zh active Active
-
2021
- 2021-02-19 KR KR1020227003202A patent/KR20220054582A/ko unknown
- 2021-02-19 WO PCT/CN2021/076957 patent/WO2022083038A1/zh active Application Filing
- 2021-02-19 JP JP2021569000A patent/JP7280385B2/ja active Active
- 2021-08-25 TW TW110131503A patent/TWI795885B/zh active
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2017108370A (ja) * | 2015-07-06 | 2017-06-15 | セイコーエプソン株式会社 | 頭部装着型表示装置およびコンピュータープログラム |
CN110720113A (zh) * | 2018-08-01 | 2020-01-21 | 深圳市大疆创新科技有限公司 | 一种参数处理方法、装置及摄像设备、飞行器 |
JP2020042575A (ja) * | 2018-09-11 | 2020-03-19 | 富士通株式会社 | 情報処理装置、位置合わせ方法、及びプログラム |
CN110335316A (zh) * | 2019-06-28 | 2019-10-15 | Oppo广东移动通信有限公司 | 基于深度信息的位姿确定方法、装置、介质与电子设备 |
CN110349213A (zh) * | 2019-06-28 | 2019-10-18 | Oppo广东移动通信有限公司 | 基于深度信息的位姿确定方法、装置、介质与电子设备 |
CN111709984A (zh) * | 2020-06-08 | 2020-09-25 | 亮风台(上海)信息科技有限公司 | 位姿深度预测方法、视觉里程计方法、装置、设备及介质 |
CN111696162A (zh) * | 2020-06-11 | 2020-09-22 | 中国科学院地理科学与资源研究所 | 一种双目立体视觉精细地形测量系统及方法 |
Also Published As
Publication number | Publication date |
---|---|
CN112348889A (zh) | 2021-02-09 |
JP7280385B2 (ja) | 2023-05-23 |
TWI795885B (zh) | 2023-03-11 |
WO2022083038A1 (zh) | 2022-04-28 |
JP2023502192A (ja) | 2023-01-23 |
KR20220054582A (ko) | 2022-05-03 |
TW202217755A (zh) | 2022-05-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN112348889B (zh) | 视觉定位方法及相关装置、设备 | |
CN111145238B (zh) | 单目内窥镜图像的三维重建方法、装置及终端设备 | |
EP3028252B1 (en) | Rolling sequential bundle adjustment | |
US9635251B2 (en) | Visual tracking using panoramas on mobile devices | |
US8223146B2 (en) | Image processing apparatus and image processing method | |
CN110111388B (zh) | 三维物体位姿参数估计方法及视觉设备 | |
US11138742B2 (en) | Event-based feature tracking | |
EP3236424B1 (en) | Information processing apparatus and method of controlling the same | |
CN113409391B (zh) | 视觉定位方法及相关装置、设备和存储介质 | |
EP2399239A1 (en) | Estimation of panoramic camera orientation relative to a vehicle coordinate frame | |
WO2018142533A1 (ja) | 位置姿勢推定装置および位置姿勢推定方法 | |
Frahm et al. | Camera calibration with known rotation | |
JP6922348B2 (ja) | 情報処理装置、方法、及びプログラム | |
CN112396634B (zh) | 运动目标检测方法、装置、车辆及存储介质 | |
EP3904995A1 (en) | Localization device | |
Mair et al. | Efficient camera-based pose estimation for real-time applications | |
CN111489376A (zh) | 跟踪交互设备的方法、装置、终端设备及存储介质 | |
CN114187344A (zh) | 一种地图构建方法、装置及设备 | |
CN110660134B (zh) | 三维地图构建方法、三维地图构建装置及终端设备 | |
JP2024097690A (ja) | 情報処理装置、情報処理方法、及びプログラム | |
CN118936452A (zh) | 基于序列球面影像的城市场景视觉地理定位方法及设备 | |
CN117649619A (zh) | 无人机视觉导航定位回收方法、系统、装置及可读存储介质 | |
CN117745757A (zh) | 目标跟踪的方法、装置、终端设备及存储介质 | |
Saracchini et al. | VOPT: Robust Visual Odometry by Simultaneous Feature Matching and Camera Calibration. | |
Jiang | The extraction, restoration and tracking of image features |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
REG | Reference to a national code |
Ref country code: HK Ref legal event code: DE Ref document number: 40036460 Country of ref document: HK |
|
GR01 | Patent grant |