CN112270710A - 位姿确定方法、位姿确定装置、存储介质与电子设备 - Google Patents

位姿确定方法、位姿确定装置、存储介质与电子设备 Download PDF

Info

Publication number
CN112270710A
CN112270710A CN202011281127.7A CN202011281127A CN112270710A CN 112270710 A CN112270710 A CN 112270710A CN 202011281127 A CN202011281127 A CN 202011281127A CN 112270710 A CN112270710 A CN 112270710A
Authority
CN
China
Prior art keywords
image
scene
pose
images
scene images
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.)
Granted
Application number
CN202011281127.7A
Other languages
English (en)
Other versions
CN112270710B (zh
Inventor
高爽
李姬俊男
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Guangdong Oppo Mobile Telecommunications Corp Ltd
Original Assignee
Guangdong Oppo Mobile Telecommunications Corp Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Guangdong Oppo Mobile Telecommunications Corp Ltd filed Critical Guangdong Oppo Mobile Telecommunications Corp Ltd
Priority to CN202011281127.7A priority Critical patent/CN112270710B/zh
Publication of CN112270710A publication Critical patent/CN112270710A/zh
Application granted granted Critical
Publication of CN112270710B publication Critical patent/CN112270710B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/70Determining position or orientation of objects or cameras
    • G06T7/73Determining position or orientation of objects or cameras using feature-based methods
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F18/00Pattern recognition
    • G06F18/20Analysing
    • G06F18/22Matching criteria, e.g. proximity measures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V10/00Arrangements for image or video recognition or understanding
    • G06V10/40Extraction of image or video features
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/10Image acquisition modality
    • G06T2207/10028Range image; Depth image; 3D point clouds
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/30Subject of image; Context of image processing
    • G06T2207/30244Camera pose

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Data Mining & Analysis (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Multimedia (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Artificial Intelligence (AREA)
  • Bioinformatics & Cheminformatics (AREA)
  • Bioinformatics & Computational Biology (AREA)
  • Evolutionary Biology (AREA)
  • Evolutionary Computation (AREA)
  • General Engineering & Computer Science (AREA)
  • Image Analysis (AREA)

Abstract

本公开提供了一种位姿确定方法、位姿确定装置、计算机可读存储介质与电子设备,涉及计算机视觉技术领域。其中,所述位姿确定方法包括:获取针对目标场景采集的多张场景图像,并检测所述场景图像间的匹配关系;根据所述匹配关系,从所述多张场景图像中提取闭环图像组,在所述闭环图像组内,任一场景图像只与其他两张场景图像具有匹配关系;确定所述闭环图像组内场景图像间的相对位姿;基于所述闭环图像组内场景图像间的相对位姿和所述场景图像对应的初始位姿,确定所述场景图像对应的目标位姿。本公开消除了位姿跟踪中的累积误差问题,提高局部定位与建图的精度。

Description

位姿确定方法、位姿确定装置、存储介质与电子设备
技术领域
本公开涉及计算机视觉技术领域,尤其涉及一种位姿确定方法、位姿确定装置、计算机可读存储介质与电子设备。
背景技术
在SLAM(Simultaneous Localization And Mapping,同时定位和建图)、视觉导航等场景中,通常会在拍摄场景图像时跟踪相机位姿,便于将场景图像与三维地图进行匹配,实现进一步的建图或导航等功能。
然而,跟踪相机位姿的过程中存在累积误差的问题,例如采用视觉里程计跟踪相机位姿时,输出当前帧与前一帧的相对位姿,从而累积了每两帧之间的误差,导致跟踪到的相机位姿准确度越来越低,无法实现有效的定位或建图。
发明内容
本公开提供了一种位姿确定方法、位姿确定装置、计算机可读存储介质与电子设备,进而至少在一定程度上改善相关技术中位姿跟踪不准确的问题。
根据本公开的第一方面,提供一种位姿确定方法,包括:获取针对目标场景采集的多张场景图像,并检测所述场景图像间的匹配关系;根据所述匹配关系,从所述多张场景图像中提取闭环图像组,在所述闭环图像组内,任一场景图像只与其他两张场景图像具有匹配关系;确定所述闭环图像组内场景图像间的相对位姿;基于所述闭环图像组内场景图像间的相对位姿和所述场景图像对应的初始位姿,确定所述场景图像对应的目标位姿。
根据本公开的第二方面,提供一种位姿确定装置,包括:图像匹配检测模块,用于获取针对目标场景采集的多张场景图像,并检测所述场景图像间的匹配关系;闭环图像组提取模块,用于从所述多张场景图像中提取闭环图像组,在所述闭环图像组内,任一场景图像只与其他两张场景图像具有匹配关系;相对位姿确定模块,用于确定所述闭环图像组内场景图像间的相对位姿;目标位姿确定模块,用于基于所述闭环图像组内场景图像间的相对位姿和所述场景图像对应的初始位姿,确定所述场景图像对应的目标位姿。
根据本公开的第三方面,提供一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现上述第一方面的位姿确定方法及其可能的实现方式。
根据本公开的第四方面,提供一种电子设备,包括:处理器;以及存储器,用于存储所述处理器的可执行指令;其中,所述处理器配置为经由执行所述可执行指令来执行上述第一方面的位姿确定方法及其可能的实现方式。
本公开的技术方案具有以下有益效果:
对场景图像进行匹配后,根据匹配关系提取闭环图像组,并确定其中场景图像间的相对位姿,再利用闭环图像组内场景图像的全局一致性,通过相对位姿对场景图像对应的初始位姿进行优化,得到精度较高的目标位姿。一方面,在位姿跟踪过程中可以及时对存在误差的初始位姿进行优化,以消除累积误差的问题;对于较大的目标场景,由于局部存在场景图像间的闭环结构,因而可以降低局部的累积误差,提高局部定位与建图的精度。另一方面,本方案是对场景图像之间进行匹配,进而确定相对位姿并进行全局一致性的优化,相较于SFM算法,无需对大量的场景图像与三维场景点云同时优化,也无需反复进行BA处理,因此所需的内存与计算资源大大减少,耗时更短,有利于部署在移动端,实现快速定位与建图。再一方面,本方案通过具备拍摄功能的终端即可实现,无需增加额外的设备,也无需引入深度信息等额外的信息,实现成本较低,实用性较高。
应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本公开。
附图说明
图1示出本示例性实施方式中一种电子设备的结构示意图;
图2示出本示例性实施方式中一种位姿确定方法的流程图;
图3示出本示例性实施方式中一种确定场景图像匹配方法的流程图;
图4示出本示例性实施方式中一种确定候选匹配图像方法的流程图;
图5示出本示例性实施方式中一种匹配关系图的示意图;
图6示出本示例性实施方式中一种三元环的示意图;
图7示出本示例性实施方式中一种提取环的方法的流程图;
图8示出本示例性实施方式中一种确定场景图像相对位姿方法的流程图;
图9示出本示例性实施方式中另一种确定场景图像相对位姿方法的流程图;
图10示出本示例性实施方式中一种确定目标位姿方法的流程图;
图11示出本示例性实施方式中一种建立第一代价函数方法的流程图;
图12示出本示例性实施方式中一种建立第二代价函数方法的流程图;
图13示出本示例性实施方式中另一种建立第二代价函数方法的流程图;
图14示出本示例性实施方式中一种优化代价函数方法的流程图;
图15示出本示例性实施方式中一种生成三维点方法的流程图;
图16示出本示例性实施方式中一种全局特征点的示意图;
图17示出本示例性实施方式中的流程架构图;
图18示出本示例性实施方式中位姿效果对比图;
图19示出本示例性实施方式中三维点云模型的示意图;
图20示出本示例性实施方式中一种位姿确定装置的结构示意图。
具体实施方式
现在将参考附图更全面地描述示例实施方式。然而,示例实施方式能够以多种形式实施,且不应被理解为限于在此阐述的范例;相反,提供这些实施方式使得本公开将更加全面和完整,并将示例实施方式的构思全面地传达给本领域的技术人员。所描述的特征、结构或特性可以以任何合适的方式结合在一个或更多实施方式中。在下面的描述中,提供许多具体细节从而给出对本公开的实施方式的充分理解。然而,本领域技术人员将意识到,可以实践本公开的技术方案而省略所述特定细节中的一个或更多,或者可以采用其它的方法、组元、装置、步骤等。在其它情况下,不详细示出或描述公知技术方案以避免喧宾夺主而使得本公开的各方面变得模糊。
此外,附图仅为本公开的示意性图解,并非一定是按比例绘制。图中相同的附图标记表示相同或类似的部分,因而将省略对它们的重复描述。附图中所示的一些方框图是功能实体,不一定必须与物理或逻辑上独立的实体相对应。可以采用软件形式来实现这些功能实体,或在一个或多个硬件模块或集成电路中实现这些功能实体,或在不同网络和/或处理器装置和/或微控制器装置中实现这些功能实体。
附图中所示的流程图仅是示例性说明,不是必须包括所有的步骤。例如,有的步骤还可以分解,而有的步骤可以合并或部分合并,因此实际执行的顺序有可能根据实际情况改变。
相关技术的一种方案是在SLAM系统中加入回环检测,在回环的位置将当前帧与时间戳距离较远的关键帧匹配,减小累积误差。然而,该方案仍然会导致局部的位姿误差累积,特别是对于较大的场景,回环的周期较长,影响局部建图的精度。
相关技术的另一种方案是采用SFM(Structure-From-Motion,运动恢复结构)算法对相机位姿和三维场景的结构同时进行估计和优化,将误差均匀分散到各相机节点处,以减少累积误差。然而,该方案需要对大量的场景图像与三维场景中的点云进行匹配优化,且通常需要反复进行BA(Bundle Adjustment,光束平差法)处理,消耗大量的内存与计算资源,且耗时较长,实用性差。
鉴于上述问题,本公开的示例性实施方式首先提供一种位姿确定方法,其应用场景包括但不限于:需要对商场室内环境进行建图,用户可以通过具有拍摄功能的终端对场景进行全方位的图像采集,并导出视觉里程计记录的位姿作为初始位姿,采用本示例性实施方式的位姿确定方法对图像和初始位姿进行处理,确定更加准确的目标位姿,进而实现从图像到三维场景的重建;或者将采集的图像和初始位姿上传至云端,由云端执行本示例性实施方式的位姿确定方法,确定终端的目标位姿,并实现建图。
本公开的示例性实施方式还提供一种电子设备,用于执行上述位姿确定方法。该电子设备可以是上述终端或云端的服务器,包括但不限于计算机、智能手机、可穿戴设备(如增强现实眼镜)、机器人、无人机等。一般的,电子设备包括处理器和存储器。存储器用于存储处理器的可执行指令,也可以存储应用数据,如图像数据、视频数据等;处理器配置为经由执行可执行指令来执行本示例性实施方式中的位姿确定方法。
下面以图1中的移动终端100为例,对上述电子设备的构造进行示例性说明。本领域技术人员应当理解,除了特别用于移动目的的部件之外,图1中的构造也能够应用于固定类型的设备。
如图1所示,移动终端100具体可以包括:处理器110、内部存储器121、外部存储器接口122、USB(Universal Serial Bus,通用串行总线)接口130、充电管理模块140、电源管理模块141、电池142、天线1、天线2、移动通信模块150、无线通信模块160、音频模块170、扬声器171、受话器172、麦克风173、耳机接口174、传感器模块180、显示屏190、摄像模组191、指示器192、马达193、按键194以及SIM(Subscriber Identification Module,用户标识模块)卡接口195等。
处理器110可以包括一个或多个处理单元,例如:处理器110可以包括AP(Application Processor,应用处理器)、调制解调处理器、GPU(Graphics ProcessingUnit,图形处理器)、ISP(Image Signal Processor,图像信号处理器)、控制器、编码器、解码器、DSP(Digital Signal Processor,数字信号处理器)、基带处理器和/或NPU(Neural-Network Processing Unit,神经网络处理器)等。
编码器可以对图像或视频数据进行编码(即压缩),例如对拍摄的场景图像进行编码,形成对应的码流数据,以减少数据传输所占的带宽;解码器可以对图像或视频的码流数据进行解码(即解压缩),以还原出图像或视频数据,例如对场景图像的码流数据进行解码,得到完整的图像数据,便于执行本示例性实施方式的定位方法。移动终端100可以支持一种或多种编码器和解码器。这样,移动终端100可以处理多种编码格式的图像或视频,例如:JPEG(Joint Photographic Experts Group,联合图像专家组)、PNG(Portable NetworkGraphics,便携式网络图形)、BMP(Bitmap,位图)等图像格式,MPEG(Moving PictureExperts Group,动态图像专家组)1、MPEG2、H.263、H.264、HEVC(High Efficiency VideoCoding,高效率视频编码)等视频格式。
在一种实施方式中,处理器110可以包括一个或多个接口,通过不同的接口和移动终端100的其他部件形成连接。
内部存储器121可以用于存储计算机可执行程序代码,所述可执行程序代码包括指令。内部存储器121可以包括易失性存储器与非易失性存储器。处理器110通过运行存储在内部存储器121的指令,执行移动终端100的各种功能应用以及数据处理。
外部存储器接口122可以用于连接外部存储器,例如Micro SD卡,实现扩展移动终端100的存储能力。外部存储器通过外部存储器接口122与处理器110通信,实现数据存储功能,例如存储图像,视频等文件。
USB接口130是符合USB标准规范的接口,可以用于连接充电器为移动终端100充电,也可以连接耳机或其他电子设备。
充电管理模块140用于从充电器接收充电输入。充电管理模块140为电池142充电的同时,还可以通过电源管理模块141为设备供电;电源管理模块141还可以监测电池的状态。
移动终端100的无线通信功能可以通过天线1、天线2、移动通信模块150、无线通信模块160、调制解调处理器以及基带处理器等实现。天线1和天线2用于发射和接收电磁波信号。移动通信模块150可以提供应用在移动终端100上的包括2G/3G/4G/5G等无线通信的解决方案。无线通信模块160可以提供应用在移动终端100上的包括WLAN(Wireless LocalArea Networks,无线局域网)(如Wi-Fi(Wireless Fidelity,无线保真)网络)、BT(Bluetooth,蓝牙)、GNSS(Global Navigation Satellite System,全球导航卫星系统)、FM(Frequency Modulation,调频)、NFC(Near Field Communication,近距离无线通信技术)、IR(Infrared,红外技术)等无线通信解决方案。
移动终端100可以通过GPU、显示屏190及AP等实现显示功能,显示用户界面。例如,当用户开启拍摄功能时,移动终端100可以在显示屏190中显示拍摄界面和预览图像等。
移动终端100可以通过ISP、摄像模组191、编码器、解码器、GPU、显示屏190及AP等实现拍摄功能。例如,用户可以启动建图或视觉定位的相关服务,触发开启拍摄功能,此时可以通过摄像模组191采集场景图像,并进行定位。
移动终端100可以通过音频模块170、扬声器171、受话器172、麦克风173、耳机接口174及AP等实现音频功能。
传感器模块180可以包括深度传感器1801、压力传感器1802、陀螺仪传感器1803、气压传感器1804等,以实现相应的感应检测功能。
指示器192可以是指示灯,可以用于指示充电状态,电量变化,也可以用于指示消息,未接来电,通知等。马达193可以产生振动提示,也可以用于触摸振动反馈等。按键194包括开机键,音量键等。
移动终端100可以支持一个或多个SIM卡接口195,用于连接SIM卡,以实现通话与移动通信等功能。
下面结合图2对本示例性实施方式的位姿确定方法进行说明,图2示出了位姿确定方法的示例性流程,可以包括:
步骤S210,获取针对目标场景采集的多张场景图像,并检测场景图像间的匹配关系;
步骤S220,根据上述匹配关系,从上述多张场景图像中提取闭环图像组,在闭环图像组内,任一场景图像只与其他两张场景图像具有匹配关系;
步骤S230,确定闭环图像组内场景图像间的相对位姿;
步骤S240,基于上述闭环图像组内场景图像间的相对位姿和场景图像对应的初始位姿,确定场景图像对应的目标位姿。
通过上述方法,对场景图像进行匹配后,根据匹配关系提取闭环图像组,并确定其中场景图像间的相对位姿,再利用闭环图像组内场景图像的全局一致性,通过相对位姿对场景图像对应的初始位姿进行优化,得到精度较高的目标位姿。一方面,在位姿跟踪过程中可以及时对存在误差的初始位姿进行优化,以消除累积误差的问题;对于较大的目标场景,由于局部存在场景图像间的闭环结构,因而可以降低局部的累积误差,提高局部定位与建图的精度。另一方面,本方案是对场景图像之间进行匹配,进而确定相对位姿并进行全局一致性的优化,相较于SFM算法,无需对大量的场景图像与三维场景点云同时优化,也无需反复进行BA处理,因此所需的内存与计算资源大大减少,耗时更短,有利于部署在移动端,实现快速定位与建图。再一方面,本方案通过具备拍摄功能的终端即可实现,无需增加额外的设备,也无需引入深度信息等额外的信息,实现成本较低,实用性较高。
下面对图2中的步骤进行具体说明。
步骤S210中,获取针对目标场景采集的多张场景图像,并检测场景图像间的匹配关系。
目标场景是终端当前所在的场景,如可以是商场、街道等。本示例性实施方式中,针对目标场景采集多张场景图像,例如终端可以开启视频拍摄功能,采集连续多帧场景图像。需要说明的是,可以设定每采集一定数量的场景图像,执行一次图2的方法流程,以确定场景图像对应的位姿。例如,在SLAM场景中,使终端不断的移动与转动,采集场景图像并建图,可以设定每采集s张场景图像(s可根据经验或实际情况设为任意正整数),触发执行一次图2的方法流程,对这s张场景图像进行位姿优化,从而提高建图精度。或者当检测到位姿跟踪丢失时,以最近一段时间内采集的多张场景图像执行一次图2的方法流程,以重新确定位姿。
在获取场景图像后,需要检测其匹配关系。如果两张场景图像的内容重合度较高,可以认为两张场景图像所拍摄的对象为目标场景中的相同物体,两张场景图像具有匹配关系。
在一种实施方式中,可以计算场景图像间的相似度,例如通过CNN(ConvolutionalNeural Network,卷积神经网络)提取场景图像的特征向量,计算不同场景图像的特征向量间的欧式距离或余弦相似度,以此度量场景图像间的相似度,如果相似度高于预设的第一相似度阈值,则确定对应的两张场景图像具有匹配关系。第一相似度阈值是衡量两张场景图像是否足够相似的标准,可以根据经验或实际情况设定,本公开对此不做限定。
在一种实施方式中,参考图3所示,可以通过以下步骤S310和S320来实现场景图像间的匹配关系检测:
步骤S310,检测两张场景图像间具有匹配关系的特征点,以确定两张场景图像的匹配点对。
特征点是图像中具有代表性的、辨识度较高的点或区域,例如图像中的角点、边界等。在场景图像中,可以检测不同位置的梯度,在梯度较大的位置提取特征点。一般的,提取特征点后需要对其进行描述,例如通过数组来描述特征点周围的像素分布特征,称为特征点的描述信息(或描述符、描述子)。特征点的描述信息可视为场景图像的局部描述信息。
本示例性实施方式可以采用FAST(Features From Accelerated Segment Test,基于加速分割检测的特征)、BRIEF(Binary Robust Independent Elementary Features,二进制鲁棒独立基本特征)、ORB(Oriented FAST and Rotated BRIEF,面向FAST和旋转BRIEF)、SIFT(Scale-Invariant Feature Transform,尺度不变特征变换)、SURF(SpeededUp Robust Features,加速鲁棒特征)、SuperPoint(基于自监督学习的特征点检测和描述符提取)、R2D2(Reliable and Repeatable Detector and Descriptor,可靠可重复的特征点与描述符)等算法提取特征点并对特征点进行描述。其中,SuperPoint和R2D2等属于学习型的算法,可以学习到特征点的语义信息,由此得到特征点描述信息更加全面、准确。
匹配点对是指两张场景图像中的特征点较为相似,认为是目标场景的三维空间中同一物点在两张场景图像上的投影(即同名点)。通过计算两个特征点的描述信息的相似度,可以判断两个特征点是否为匹配点对。一般的,可以将特征点的描述信息表示为向量,计算两个特征点的描述信息向量间的相似度,如通过欧式距离、余弦相似度等进行度量,如果相似度高于预设的第二相似度阈值,则确定对应的两个特征点具有匹配关系,形成匹配点对。第二相似度阈值是衡量两个特征点是否足够相似的标准,可以根据经验或实际情况设定。如果通过SuperPoint算法提取特征点,则可以采用相应的SuperGLUE算法对特征点进行匹配,这样得到的匹配点对更加准确,有利于提升后续的优化精度。
在一种实施方式中,确定不同场景图像间的匹配点对后,可以基于场景图像间的几何约束关系,如对极约束等,利用RANSAC(Random Sample Consensus,随机采样一致性)等算法剔除其中的误匹配点对,以提高特征点匹配与后续场景图像匹配的准确度。
步骤S320,根据匹配点对的数量确定两张场景图像是否具有匹配关系。
匹配点对的数量越多,说明两张场景图像的内容重合度越高,具有匹配关系的概率越高。
在一种实施方式中,当两张场景图像的匹配点对的数量达到预设的第一匹配阈值时,确定两张场景图像具有匹配关系。第一匹配阈值是衡量匹配点对数量是否足够多的标准,可以根据经验或实际情况设定。例如在场景图像中采集特征点的密度越大,场景图像中所拍的物体尺寸较大时,第一匹配阈值越大。本公开对此不做限定。
在一种实施方式中,也可以计算两张场景图像的特征点交并比,两张场景图像的特征点交集即匹配点对,同时对两张场景图像的特征点去并集,计算匹配点对的数量与并集中特征点的数量,即特征点交并比。当特征点交并比达到预设的第二匹配阈值时,确定两张场景图像具有匹配关系。第二匹配阈值是衡量特征点交并比是否足够大的标准,可以根据经验或实际情况设定。
图3的方法可以应用于任意两张场景图像,例如遍历所获取的场景图像的每两张场景图像,通过检测其匹配点对的数量确定两张场景图像是否相似,假设场景图像的数量为s,则需要执行
Figure BDA0002780755800000081
次匹配过程。为了简化匹配过程,在一种实施方式中,参考图4所示,在上述步骤S310之前,可以先执行以下步骤S410和S420:
步骤S410,从上述多张场景图像排列而成的图像序列中依次选取待匹配图像;
步骤S420,在位于待匹配图像之后的场景图像中确定待匹配图像的候选匹配图像。
通常可以按照场景图像的采集时间顺序进行排列,例如按照采集时间从早到晚排列s张场景图像,得到图像序列,其中相邻的场景图像可以是前后连续两帧场景图像。依次选取其中每张场景图像为待匹配图像,将待匹配图像与图像序列中的其他场景图像进行匹配。
在匹配时,无需将待匹配图像与其他每张场景图像均进行匹配。对于图像序列中位于待匹配图像之前的场景图像,已经进行过匹配,因此只需考虑位于待匹配图像之后的场景图像。在位于待匹配图像之后的场景图像中,也无需匹配每张场景图像,而是先确定候选匹配图像,只需将待匹配图像与候选匹配图像进行匹配。
候选匹配图像是指与待匹配图像存在一定匹配概率的图像,换而言之,非候选匹配图像(不包括位于待匹配图像之前,已经确定与待匹配图像匹配的场景图像)则是与待匹配图像的匹配概率较低,可认为与待匹配图像不匹配的图像。
在一种实施方式中,可以对每张场景图像均进行语义分割,得到每张场景图像的语义标签。在步骤S420中,可以比较待匹配图像的语义标签与其后每张场景图像的语义标签,如果存在重合的语义标签,例如待匹配图像的语义标签为{电梯,喷泉,柱子},场景图像的语义标签为{门,栏杆,电梯},两者有重合的标签“电梯”,则确定该场景图像为候选匹配图像,如果不存在重合的语义标签,则确定该场景图像为非候选匹配图像。
在一种实施方式中,可以根据待匹配图像与其他场景图像间的位置关系确定候选匹配图像。具体地,可以将图像序列中位于待匹配图像之后的第1至第m张场景图像确定为待匹配图像的候选匹配图像,m为正整数,其数值可以根据经验并结合终端采集场景图像时的移动或转动速度、采集频率、目标场景的大小等来确定。一般的,位于待匹配图像之后的第1至第m张场景图像,可以是待匹配图像后的连续m帧图像,其与待匹配图像存在较强的空间相关性,所拍摄对象的重合度较高,因此确定这m张场景图像均为候选匹配图像。
在一种实施方式中,可以检测待匹配图像与位于上述第m张场景图像之后的各场景图像的相似度,以从第m张场景图像之后的各场景图像中确定待匹配图像的候选匹配图像。由于第m张场景图像之后的场景图像与待匹配图像之间不存在较强的空间相关性,也就是说这些场景图像可能与待匹配图像所拍摄的是目标场景的不同局部,这样的匹配概率很低。通过检测图像的相似度,可以排除这部分场景图像,找到与待匹配图像可能存在回环的场景图像。本公开对于检测图像相似度的具体方法不做限定,示例性的,可以检测待匹配图像的全局描述信息与位于第m张场景图像之后的各场景图像的全局描述信息之间的相似度。全局描述信息是指对图像整体进行特征提取所形成的信息,例如可以采用包括VLAD(Vector of Locally Aggregated Descriptors,局部聚合向量)层的CNN(如NetVLAD等)从待匹配图像与场景图像中提取全局描述信息,如可以是4096维的全局描述向量,然后计算待匹配图像的全局描述向量与上述各场景图像的全局描述向量间的相似度,如通过欧式距离、余弦相似度等进行度量,如果相似度高于预设的第三相似度阈值,则确定对应的场景图像为候选匹配图像。第三相似度阈值是衡量待匹配图像与场景图像是否存在匹配可能的标准,可以根据经验或实际情况设定,本公开对此不做限定。
需要说明的是,第一相似度阈值和第三相似度阈值都是用于衡量图像相似度的阈值,但两者之间并无关联。一般的,在计算待匹配图像与场景图像的相似度,并通过第三相似度阈值确定候选匹配图像的情况下,后续采用匹配点对的方式来进一步确定待匹配图像与候选匹配图像间的匹配关系,而不采用计算图像相似度以及第一相似度阈值的方式。
在确定候选匹配图像的情况下,步骤S310中可以检测待匹配图像和各候选匹配图像间具有匹配关系的特征点,以确定待匹配图像和各候选匹配图像的匹配点对;步骤S320中可以根据匹配点对的数量确定待匹配图像和各候选匹配图像是否具有匹配关系。由此,无需将每两张场景图像都进行匹配,简化了匹配过程,降低了数据处理量。
继续参考图2,步骤S220中,根据上述匹配关系,从上述多张场景图像中提取闭环图像组,在闭环图像组内,任一场景图像只与其他两张场景图像具有匹配关系。
其中,闭环图像组是具有闭环匹配关系的场景图像所形成的图像集合,属于步骤S210中所采集的多张场景图像的子集。闭环图像组满足:在闭环图像组内,任一场景图像只与其他两张场景图像具有匹配关系。如果闭环图像组中存在一张场景图像,其仅与闭环图像组内其他一张场景图像匹配,或者不与闭环图像组内任意场景图像匹配,则该闭环图像组不满足上述条件,因而不存在这样的闭环图像组。举例来说,有三张场景图像i、j、k,其中i和j具有匹配关系,j和k具有匹配关系,k和i具有匹配关系,则i、j、k形成一个闭环图像组。需要说明的是,本公开可以从上述多张场景图像中提取任意数量的闭环图像组,一般的,所提取的闭环图像组越多,越有利于提高后续位姿优化的精度。
在一种实施方式中,步骤S220可以包括:
生成以场景图像为顶点,以上述匹配关系为边的匹配关系图,从匹配关系图中提取环,以得到闭环图像组。
图5示出了示例性的匹配关系图,其中每个顶点表示一张场景图像,如果两张场景图像具有匹配关系,则对应的两个顶点之间存在一条边。环是图中只有第一个和最后一个顶点重复的非空路径所形成的一个子图。本示例性实施方式中,环包括至少3个顶点,称3个顶点的环为三元环,4个顶点的环为四元环并以此类推。图6示出了一个示例性的三元环,顶点i和顶点j之间存在边,顶点j和顶点k之间存在边,顶点k和顶点i之间存在边,提取这三个顶点对应的场景图像,得到一个闭环图像组。
闭环图像组具有闭环匹配关系,因而其场景图像的位姿具有全局一致性,形成了局部的回环。以图6中的三元环为例,当获得场景图像i、j、k之间的相对位姿,分别记相对旋转矩阵为Rij、Rjk、Rki,则满足以下关系:
RijRjkRki=I (1)
其中I为单位矩阵。
在一种实施方式中,环的顶点数均为3,表示闭环图像组内场景图像的数量均为3。即,从匹配关系图中提取三元环,而不提取其他顶点数量的环。三元环可以形成三角形的路径,其稳定性较好,有利于提升后续的优化精度;并且三元环的结构简单,易于查找,数量也较多。
在一种实施方式中,参考图7所示,可以通过以下步骤S710至S740提取三元环:
步骤S710,依次以匹配关系图中的顶点作为当前顶点;
步骤S720,如果当前顶点所连接的其他顶点数量小于2,则更换新的当前顶点;
步骤S730,如果当前顶点所连接的其他顶点数量大于或等于2,则在当前顶点所连接的其他顶点中查找具有连接关系的顶点对;
步骤S740,将当前顶点分别与每个顶点对形成一个环。
其中,当前顶点所连接的其他顶点数量即当前顶点的边数量。边数量小于2的顶点无法形成环。举例来说,确定顶点i为当前顶点,如果顶点i的边数量小于2,则更换其他顶点为当前顶点;如果顶点i的边数量大于或等于2,则获取与顶点i连接的其他所有顶点,如包括顶点g、h、j、k,在这些顶点中查找具有连接关系的所有顶点对,如g和j相连,得到一个顶点对(g,j),j和k相连,得到另一个顶点对(j,k);再分别将当前顶点i添加到每个顶点对中,形成环(i、g,j),(i、j,k),需要说明的是,不同的环中可能存在相同的顶点,如(i、g,j)与(i、j,k)有两个顶点是相同的;更换新的当前顶点,再重复上述过程,直到遍历匹配关系图的所有顶点,得到匹配关系图中的所有三元环。
在一种实施方式中,也可以将边的数量小于2的顶点从匹配关系图中剔除,然后在剩余的顶点中通过上述方法查找环。
继续参考图2,步骤S230中,确定闭环图像组内场景图像间的相对位姿。
在采集场景图像时,相机具有相应的位姿,即场景图像对应的位姿。两张场景图像对应的位姿不同,因此形成了一定的位姿变换关系,即相对位姿。相对位姿一般包括相对旋转矩阵和相对平移向量,表示从一张场景图像对应位姿变换到另一张场景图像对应的位姿所需的旋转与平移参数。
在一种实施方式中,参考图8所示,步骤S230可以包括:
步骤S810,在上述闭环图像组内获取具有匹配关系的图像对;
步骤S820,确定图像对中的两张场景图像间的相对位姿。
其中,两张具有匹配关系的场景图像形成一个图像对。对于图像对中的两张场景图像,确定其相对位姿。对于不具有匹配关系的两张场景图像,无需确定其相对位姿。
需要说明的是,在闭环图像组外,可能还存在一些具有匹配关系的图像对,对于这些图像对,可以执行步骤S820,确定其两张场景图像间的相对位姿,该相对位姿可以在后续位姿优化过程中形成补充信息,也可以不执行步骤S820,即不对这些图像对的相对位姿进行计算,以减小数据处理量。
在一种实施方式中,参考图9所示,步骤S820可以包括:
步骤S910,获取两张场景图像的匹配点对;
步骤S920,根据匹配点对中的特征点在所属场景图像中的坐标和两张场景图像对应的相机内参,计算两张场景图像间的本征矩阵;
步骤S930,分解本征矩阵,得到两张场景图像间的相对位姿。
以(x,x')表示两张场景图像的任一匹配点对,x为第一张场景图像的特征点,x'为第二张场景图像的特征点。有如下关系:
x′TFx=0 (2)
F为两张场景图像间的基础矩阵,将F表示为3*3矩阵,记特征点x在第一张场景图像中的坐标x=(x,y,1)T,特征点x'在第二张场景图像中的坐标x′=(x′,y′,1)T,有如下关系:
Figure BDA0002780755800000111
对公式(3)展开后,有如下关系:
x′xf11+x′yf12+x′f13+y′xf21+y′yf22+y′f23+xf31+yf32+f33=0 (4)
如果从两张场景图像中获取a个匹配点对,分别表示为(x1,x1')到(xa,xa'),则有如下关系:
Figure BDA0002780755800000121
其中,f=(f11,f12,f13,f21,f22,f23,f31,f32,f33)T
由于F是齐次矩阵,所以矩阵A的自由度一般是8,获取8个匹配点对,可以通过线性算法求解方程(5),得到f,进而得到基础矩阵F。在特征点的坐标存在噪声的情况下,矩阵A的自由度也可能大于8,这样获取8个以上匹配点对,可以求解方程(5)的最小二乘解。例如,通过SVD(Singular Value Decomposition,奇异值分解)方法分解矩阵A,得到A=UDVT,提取矩阵V的最后一列向量,即矩阵A最小奇异值对应的奇异向量,即f的解,这是在约束‖f‖下取‖Af‖最小的解。
如果得到基础矩阵F是非奇异的,则不满足两张场景图像间的对极约束。在一种实施方式中,可以在上述求解过程中增加奇异性约束,例如修正上述算法中求得的矩阵F,设最终的解为F',在满足detF′=0的条件下求范数||F-F′||最小的F',即最终的基础矩阵。该方法实质上使用了SVD分解,若F=UDVT,此时的对角矩阵D=diag(r,s,t),满足r≥s≥t,则F′=Udiag(r,s,0)VT,最小化范数||F-F′||得到最终的解。
在得到基础矩阵F后,将两张场景图像对应的相机内参分别表示为K、K',是拍摄场景图像时可以获得的参数。进而可以得到本征矩阵E为:
Figure BDA0002780755800000122
本征矩阵与两张场景图像间的相对位姿关系如下:
E=t^R (7)
R表示两张场景图像间的相对旋转矩阵,t表示两张场景图像间的相对平移向量。
对本征矩阵E进行SVD分解,可得到E=USVT,设置常量W为:
Figure BDA0002780755800000123
最终可以得到如下解:
Figure BDA0002780755800000124
上面公式(9)提供了四组解(t1,R1)、(t1,R2)、(t2,R1)、(t2,R2),其中仅有一组解满足所有匹配点对在两个相机坐标系中的深度都为正值,通过匹配点对的坐标验证后,即可得到一组正确的相对位姿R、t。
继续参考图2,步骤S240中,基于上述闭环图像组内场景图像间的相对位姿和场景图像对应的初始位姿,确定场景图像对应的目标位姿。
其中,初始位姿是通过本示例性实施方式以外的方法或系统得到的场景图像对应的位姿,如在采集场景图像时,通过视觉里程计或终端内置的IMU(Inertial MeasurementUnit,惯性测量单元)等获取对应的初始位姿,通常是精度较低的位姿,可能存在较大的误差或累积误差。
利用闭环图像组提供的位姿全局一致性,可以对初始位姿进行优化,以消除其中的误差,特别是累积误差,最终得到场景图像对应的目标位姿,目标位姿是精度较高的位姿。
在一种实施方式中,参考图10所示,步骤S240可以包括:
步骤S1010,基于闭环图像组内场景图像间的相对位姿和场景图像对应的位姿变量,建立代价函数;
步骤S1020,将上述场景图像对应的初始位姿代入代价函数,优化代价函数以求解位姿变量,得到场景图像对应的目标位姿。
场景图像对应的位姿变量是指建立的每张场景图像在目标场景的世界坐标系中的位姿变量,如对于场景图像i,其位姿变量可以表示为Ri和ci,Ri为相对旋转变量,表示场景图像i在世界坐标系中的绝对位姿相对于原点的旋转矩阵,ci为相对平移变量,表示场景图像i的光心位置在世界坐标系中的坐标,即场景图像i对应的相机坐标系的原点相对于世界坐标系的原点之间的平移向量。
环内的场景图像间的相对位姿具有稳定性,通过表示相对位姿与位姿变量之间的误差,可以建立代价函数。
在一种实施方式中,参考图11所示,步骤S1010可以包括:
步骤S1110,获取闭环图像组内场景图像间的相对旋转矩阵;
步骤S1120,根据上述场景图像的旋转变量得到场景图像间的相对旋转变量;
步骤S1130,基于相对旋转矩阵与相对旋转变量的距离,建立第一代价函数。
以Ri和Rj分别表示场景图像i和j的相对旋转变量,Rij为场景图像i和j间的相对旋转矩阵,理论上有Rij=RjRi T,以此作为优化目标,可以建立第一代价函数如下:
Figure BDA0002780755800000131
其中,Rrel表示存在相对位姿关系的集合,可以采用上述所有闭环图像组内图像对集合。D表示计算两个位姿矩阵间的距离,采用P范数,如P可以设为1、2等。第一代价函数针对旋转变量的优化,当第一代价函数取得最小值时,Ri和Rj分别为场景图像i和j的全局最优的旋转矩阵。
在一种实施方式中,参考图12所示,步骤S1010还可以包括:
步骤S1210,获取闭环图像组内场景图像间的相对平移向量;
步骤S1220,根据上述场景图像的光心位置变量和场景图像的旋转变量,得到场景图像间的相对平移变量;
步骤S1230,基于相对平移向量与相对平移变量的距离,建立第二代价函数。
其中,光心位置即相机坐标系的原点,其在世界坐标系中的位置体现了场景图像对应的位姿相对于世界坐标系原点的平移向量。以ci和cj分别表示场景图像i和j的光心位置变量,通过世界坐标系中的位姿计算场景图像i和j件的相对平移为Rj(ci-cj),称为相对平移变量;tij表示场景图像i和j间的相对平移向量,理论上有tij=Rj(ci-cj),以此作为优化目标,可以建立第二代价函数,第二代价函数针对平移变量的优化。
在一种实施方式中,参考图13所示,步骤S1230可以包括:
步骤S1310,基于相对平移向量与相对平移变量的距离,确定第一平移误差项;
步骤S1320,基于目标场景的三维点在场景图像对应的相机坐标系中的坐标,以及三维点在世界坐标系中与场景图像对应的光心位置变量的距离,确定第二平移误差项;
步骤S1330,建立包含第一平移误差项和第二平移误差项的第二代价函数。
上述tij与Rj(ci-cj)间的误差,形成第一平移误差项。此外还可以引入第二平移误差项,可以在已经建立的目标场景模型中选取三维点,例如可以选取质量较高的三维点,找到其在场景图像中对应的坐标,同时建立三维点在世界坐标系中与场景图像对应的光心位置变量的距离,两者之间的误差即第二平移误差项。由此,可以得到第二代价函数如下:
Figure BDA0002780755800000141
其中,Xj为三维点j在世界坐标系中的坐标,uij是三维点j在场景图像i对应相机坐标系下的坐标;Trel表示存在相对位姿关系的集合,和上述Rrel一般相同,Urel表示存在场景图像的特征点与目标场景的三维点匹配关系的集合。第二代价函数针对平移变量的优化,当第二代价函数取得最小值时,ci和cj分别为场景图像i和j的全局最优的光心位置,即相对于世界坐标系原点的平移向量。
基于上述第一代价函数和第二代价函数,其优化求解过程可以包括图14中的步骤S1410至S1440:
步骤S1410,将场景图像对应的初始位姿代入第一代价函数中的旋转变量;
步骤S1420,优化第一代价函数的最小值,得到场景图像对应的目标旋转矩阵;
步骤S1430,将场景图像对应的初始位姿代入第二代价函数中的光心位置变量,以及将场景图像对应的目标旋转矩阵代入第二代价函数中的旋转变量;
步骤S1440,优化第二代价函数的最小值,得到场景图像对应的目标平移向量。
在公式(10)中可知,第一代价函数的变量为Ri和Rj,通过优化第一代价函数的最小值,得到变量Ri和Rj的全局最优解,实际上得到大部分场景图像的最优旋转矩阵;在公式(11)中,第二代价函数的变量为ci和cj,代入Ri和Rj后,通过优化第二代价函数的最小值,得到变量ci和cj的全局最优解,实际上得到大部分场景图像的最优平移向量。最优旋转矩阵与最优平移向量即场景图像对应的目标位姿,其精度相较于初始位姿大大提高,消除了累积误差的影响。
在一种实施方式中,确定场景图像对应的目标位姿后,还可以利用目标位姿对场景图像进行三维重建处理,生成目标场景的三维点。例如,利用目标位姿将场景图像中的特征点转换到目标场景的世界坐标系中,生成三维点。
在一种实施方式中,参考图15所示,上述生成三维点的过程可以包括:
步骤S1510,从场景图像中提取共视图像组,共视图像组内的每个场景图像均具有全局特征点,全局特征点为与共视图像组内的其他场景图像均形成匹配点对的特征点;
步骤S1540,利用共视图像组内的场景图像对应的目标位姿与相机内参,建立全局特征点对应的三维点的线性约束矩阵;
步骤S1550,分解线性约束矩阵,得到三维点。
共视图像组是指具有共视关系的场景图像所形成的图像集合,共视图像组内场景图像具有至少一个共视点,即全局特征点。参考图16所示,三张场景图像中分别有特征点p1、p2、p3,其中p1、p2、p3之间两两可以形成匹配点对,则称p1、p2、p3为全局特征点,这三张场景图像形成一个共视图像组,一般的,认为特征点p1、p2、p3对应于目标场景内的同一点P。共视图像组中的场景图像数量至少为2,数量越多,越有利于后续的三维重建。
以图16为例,假设三维点P在世界坐标系下的齐次坐标为X=[x,y,z]T,相应的,在两张场景图像中的投影点分别为p1和p2,其在各自相机坐标系下的坐标为
Figure BDA0002780755800000151
两张场景图像对应的相机投影矩阵分别为P1和P2,其中,P1=[P11,P12,P13]T,P2=[P21,P22,P23]T,P11、P12、P13分别对应投影矩阵P1的第1-3行,P21、P22、P23分别对应投影矩阵P2的第1-3行,在理想状态下,有
Figure BDA0002780755800000152
Figure BDA0002780755800000153
对于
Figure BDA0002780755800000154
在其两侧分别叉乘其本身,可得:
Figure BDA0002780755800000155
即:
Figure BDA0002780755800000156
进一步的,可以得到:
Figure BDA0002780755800000157
其中,公式(14)可以由公式(12)和(13)通过线性变换得到,因此,在一张场景图像对应相机视角下,可以得到两个约束条件,联合另一张场景图像对应的相机视角,可得:BX=0,其中:
Figure BDA0002780755800000161
B即为三维点P的线性约束矩阵。通过分解分解线性约束矩阵,可以得到三维点P的坐标,例如可以采用SVD分解。
需要说明的是,两张场景图像是建立线性约束矩阵,求解三维点坐标的必要条件,如果共视图像组中的场景图像数量多于两张,则可以在整个图像组上进行优化,以减小误差。在一种实施方式中,步骤S1510后,还可以执行以下步骤:
步骤S1520,在共视图像组内的场景图像间的匹配点对中检测误匹配点对,以剔除由误匹配点对产生的无效的全局特征点;
步骤S1530,从共视图像组中剔除不具有全局特征点的场景图像,以优化共视图像组。
例如,可以采用RANSAC算法对共视图像组内所有的匹配点对进行估计,检测出误匹配点对,进而剔除由误匹配点对所形成的无效的全局特征点。在剔除一部分无效的全局特征点后,共视图像组中的部分场景图像可能不具有全局特征点,则将其从共视图像组中剔除,从而实现共视图像组的优化。再执行共视图像组内的三维重建,有利于提高生成的三维点的精度。
如果共视图像组内的场景图像数量或匹配点对数量较少,也可以跳过上述步骤S1520和S1530,本公开对此不做限定。
在一种实施方式中,还可以在后续增加BA处理,以同时优化场景图像对应的目标位姿和三维点坐标,由于在前面已经优化了目标位姿,这里无需反复BA,节约了时间与计算量,有利于得到完整的三维点云模型。
图17示出了本示例性实施方式的流程架构,包括:
步骤S1701,采集场景图像,形成场景图像集;
步骤S1702,通过视觉里程计输出场景图像对应的初始位姿;
步骤S1703,对场景图像的特征进行提取与匹配,以确定场景图像间的相对位姿;
步骤S1704,利用闭环图像组的全局一致性对场景图像的位姿进行全局旋转优化和全局平移优化,得到场景图像对应的目标位姿;
步骤S1705,根据场景图像对应的目标位姿,对场景图像进行三角化处理,以求解三维点云坐标,并进行BA优化;
步骤S1706,将三维点云添加到地图数据中,得到最终的三维地图。
基于上述方法,可以实现高精度、快速的视觉定位与建图。
图18中左图为常规SLAM系统得到的位姿实例图,可见存在一定的累积误差,在回环处未产生闭合;图18中右图为采用本示例性实施方式进行位姿优化的实例图,在左右回环处对应的部分产生闭合,可见消除了累积误差,其位姿精度更高。图19是在图18中右图基础上建立的目标场景的三维点云模型,其与实际场景结构非常接近。
本公开的示例性实施方式还提供了一种位姿确定装置。参考图20所示,该位姿确定装置2000可以包括:
图像匹配检测模块2010,用于获取针对目标场景采集的多张场景图像,并检测场景图像间的匹配关系;
闭环图像组提取模块2020,用于从上述多张场景图像中提取闭环图像组,在闭环图像组内,任一场景图像只与其他两张场景图像具有匹配关系;
相对位姿确定模块2030,用于确定闭环图像组内场景图像间的相对位姿;
目标位姿确定模块2040,用于基于闭环图像组内场景图像间的相对位姿和场景图像对应的初始位姿,确定场景图像对应的目标位姿。
在一种实施方式中,图像匹配检测模块2010,被配置为:
检测两张场景图像间具有匹配关系的特征点,以确定两张场景图像的匹配点对;
根据匹配点对的数量确定两张场景图像是否具有匹配关系。
在一种实施方式中,图像匹配检测模块2010,被配置为:
从多张场景图像排列而成的图像序列中依次选取待匹配图像;
在位于待匹配图像之后的场景图像中确定待匹配图像的候选匹配图像;
检测两张场景图像间具有匹配关系的特征点,以确定两张场景图像的匹配点对,包括:
检测待匹配图像和各候选匹配图像间具有匹配关系的特征点,以确定待匹配图像和各候选匹配图像的匹配点对。
在一种实施方式中,图像匹配检测模块2010,被配置为:
将图像序列中位于待匹配图像之后的第1至第m张场景图像确定为待匹配图像的候选匹配图像,m为正整数。
在一种实施方式中,图像匹配检测模块2010,被配置为:
检测待匹配图像与位于第m张场景图像之后的各场景图像的相似度,以从第m张场景图像之后的各场景图像中确定待匹配图像的候选匹配图像。
在一种实施方式中,图像匹配检测模块2010,被配置为:
检测待匹配图像的全局描述信息与位于第m张场景图像之后的各场景图像的全局描述信息之间的相似度。
在一种实施方式中,闭环图像组提取模块2020,被配置为:
生成以场景图像为顶点,以上述匹配关系为边的匹配关系图,从所配关系图中提取环,以得到闭环图像组;环包括至少3个顶点。
在一种实施方式中,环的顶点数均为3。
在一种实施方式中,闭环图像组提取模块2020,被配置为:
依次以匹配关系图中的顶点作为当前顶点;
如果当前顶点所连接的其他顶点数量小于2,则更换新的当前顶点;
如果当前顶点所连接的其他顶点数量大于或等于2,则在当前顶点所连接的其他顶点中查找具有连接关系的顶点对;
将当前顶点分别与每个顶点对形成一个环。
在一种实施方式中,相对位姿确定模块2030,被配置为:
在闭环图像组内获取具有匹配关系的图像对;
确定图像对中的两张场景图像间的相对位姿。
在一种实施方式中,相对位姿确定模块2030,被配置为:
获取两张场景图像的匹配点对;
根据匹配点对中的特征点在所属场景图像中的坐标和两张场景图像对应的相机内参,计算两张场景图像间的本征矩阵;
分解本征矩阵,得到两张场景图像间的相对位姿。
在一种实施方式中,目标位姿确定模块2040,被配置为:
基于闭环图像组内场景图像间的相对位姿和场景图像对应的位姿变量,建立代价函数;
将场景图像对应的初始位姿代入代价函数,优化代价函数以求解位姿变量,得到场景图像对应的目标位姿。
在一种实施方式中,位姿变量包括旋转变量;目标位姿确定模块2040,被配置为:
获取闭环图像组内场景图像间的相对旋转矩阵;
根据场景图像的旋转变量得到场景图像间的相对旋转变量;
基于相对旋转矩阵与相对旋转变量的距离,建立第一代价函数。
在一种实施方式中,位姿变量包括光心位置变量;目标位姿确定模块2040,被配置为:
获取闭环图像组内场景图像间的相对平移向量;
根据场景图像的光心位置变量和场景图像的旋转变量,得到场景图像间的相对平移变量;
基于相对平移向量与相对平移变量的距离,建立第二代价函数。
在一种实施方式中,目标位姿确定模块2040,被配置为:
基于相对平移向量与相对平移变量的距离,确定第一平移误差项;
基于目标场景的三维点在场景图像对应的相机坐标系中的坐标,以及三维点在世界坐标系中与场景图像对应的光心位置变量的距离,确定第二平移误差项;
建立包含第一平移误差项和第二平移误差项的第二代价函数。
在一种实施方式中,目标位姿确定模块2040,被配置为:
将场景图像对应的初始位姿代入代价函数,优化代价函数以求解位姿变量,得到场景图像对应的目标位姿,包括:
将场景图像对应的初始位姿代入第一代价函数中的旋转变量;
优化第一代价函数的最小值,得到场景图像对应的目标旋转矩阵;
将场景图像对应的初始位姿代入第二代价函数中的光心位置变量,以及将场景图像对应的目标旋转矩阵代入第二代价函数中的旋转变量;
优化第二代价函数的最小值,得到场景图像对应的目标平移向量。
在一种实施方式中,位姿确定装置2000还可以包括三维重建模块,被配置为:
利用场景图像对应的目标位姿,对场景图像进行三维重建处理,生成目标场景的三维点。
在一种实施方式中,三维重建模块,被配置为:
从场景图像中提取共视图像组,共视图像组内的每个场景图像均具有全局特征点,全局特征点为与共视图像组内的其他场景图像均形成匹配点对的特征点;
利用共视图像组内的场景图像对应的目标位姿与相机内参,建立全局特征点对应的三维点的线性约束矩阵;
分解线性约束矩阵,得到三维点。
在一种实施方式中,三维重建模块,被配置为:
在共视图像组内的场景图像间的匹配点对中检测误匹配点对,以剔除由误匹配点对产生的无效的全局特征点;
从共视图像组中剔除不具有全局特征点的场景图像,以优化共视图像组。
在一种实施方式中,图像匹配检测模块2010,被配置为:
通过视觉里程计获取场景图像对应的初始位姿。
上述装置中各部分的细节在方法部分实施方式中已经详细说明,因而不再赘述。
本公开的示例性实施方式还提供了一种计算机可读存储介质,可以实现为一种程序产品的形式,其包括程序代码,当程序产品在电子设备上运行时,程序代码用于使电子设备执行本说明书上述“示例性方法”部分中描述的根据本公开各种示例性实施方式的步骤。在一种实施方式中,该程序产品可以实现为便携式紧凑盘只读存储器(CD-ROM)并包括程序代码,并可以在电子设备,例如个人电脑上运行。然而,本公开的程序产品不限于此,在本文件中,可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。
程序产品可以采用一个或多个可读介质的任意组合。可读介质可以是可读信号介质或者可读存储介质。可读存储介质例如可以为但不限于电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。
计算机可读信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了可读程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。可读信号介质还可以是可读存储介质以外的任何可读介质,该可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。
可读介质上包含的程序代码可以用任何适当的介质传输,包括但不限于无线、有线、光缆、RF等等,或者上述的任意合适的组合。
可以以一种或多种程序设计语言的任意组合来编写用于执行本公开操作的程序代码,程序设计语言包括面向对象的程序设计语言—诸如Java、C++等,还包括常规的过程式程序设计语言—诸如“C”语言或类似的程序设计语言。程序代码可以完全地在用户计算设备上执行、部分地在用户设备上执行、作为一个独立的软件包执行、部分在用户计算设备上部分在远程计算设备上执行、或者完全在远程计算设备或服务器上执行。在涉及远程计算设备的情形中,远程计算设备可以通过任意种类的网络,包括局域网(LAN)或广域网(WAN),连接到用户计算设备,或者,可以连接到外部计算设备(例如利用因特网服务提供商来通过因特网连接)。
应当注意,尽管在上文详细描述中提及了用于动作执行的设备的若干模块或者单元,但是这种划分并非强制性的。实际上,根据本公开的示例性实施方式,上文描述的两个或更多模块或者单元的特征和功能可以在一个模块或者单元中具体化。反之,上文描述的一个模块或者单元的特征和功能可以进一步划分为由多个模块或者单元来具体化。
所属技术领域的技术人员能够理解,本公开的各个方面可以实现为系统、方法或程序产品。因此,本公开的各个方面可以具体实现为以下形式,即:完全的硬件实施方式、完全的软件实施方式(包括固件、微代码等),或硬件和软件方面结合的实施方式,这里可以统称为“电路”、“模块”或“系统”。本领域技术人员在考虑说明书及实践这里公开的发明后,将容易想到本公开的其他实施方式。本申请旨在涵盖本公开的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本公开的一般性原理并包括本公开未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施方式仅被视为示例性的,本公开的真正范围和精神由权利要求指出。
应当理解的是,本公开并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本公开的范围仅由所附的权利要求来限定。

Claims (23)

1.一种位姿确定方法,其特征在于,包括:
获取针对目标场景采集的多张场景图像,并检测所述场景图像间的匹配关系;
根据所述匹配关系,从所述多张场景图像中提取闭环图像组,在所述闭环图像组内,任一场景图像只与其他两张场景图像具有匹配关系;
确定所述闭环图像组内场景图像间的相对位姿;
基于所述闭环图像组内场景图像间的相对位姿和所述场景图像对应的初始位姿,确定所述场景图像对应的目标位姿。
2.根据权利要求1所述的方法,其特征在于,所述检测所述场景图像间的匹配关系,包括:
检测两张场景图像间具有匹配关系的特征点,以确定所述两张场景图像的匹配点对;
根据所述匹配点对的数量确定所述两张场景图像是否具有匹配关系。
3.根据权利要求2所述的方法,其特征在于,所述检测所述场景图像间的匹配关系,还包括:
从所述多张场景图像排列而成的图像序列中依次选取待匹配图像;
在位于所述待匹配图像之后的场景图像中确定所述待匹配图像的候选匹配图像;
所述检测两张场景图像间具有匹配关系的特征点,以确定所述两张场景图像的匹配点对,包括:
检测所述待匹配图像和各候选匹配图像间具有匹配关系的特征点,以确定所述待匹配图像和各候选匹配图像的匹配点对。
4.根据权利要求3所述的方法,其特征在于,所述在位于所述待匹配图像之后的场景图像中确定所述待匹配图像的候选匹配图像,包括:
将所述图像序列中位于所述待匹配图像之后的第1至第m张场景图像确定为所述待匹配图像的候选匹配图像,m为正整数。
5.根据权利要求4所述的方法,其特征在于,所述在位于所述待匹配图像之后的场景图像中确定所述待匹配图像的候选匹配图像,还包括:
检测所述待匹配图像与位于所述第m张场景图像之后的各场景图像的相似度,以从所述第m张场景图像之后的各场景图像中确定所述待匹配图像的候选匹配图像。
6.根据权利要求5所述的方法,其特征在于,所述检测所述待匹配图像与位于所述第m张场景图像之后的各场景图像的相似度,包括:
检测所述待匹配图像的全局描述信息与位于所述第m张场景图像之后的各场景图像的全局描述信息之间的相似度。
7.根据权利要求1所述的方法,其特征在于,所述根据所述匹配关系,从所述多张场景图像中提取闭环图像组,包括:
生成以所述场景图像为顶点,以所述匹配关系为边的匹配关系图,从所述匹配关系图中提取环,以得到所述闭环图像组;所述环包括至少3个顶点。
8.根据权利要求7所述的方法,其特征在于,所述环的顶点数均为3。
9.根据权利要求8所述的方法,其特征在于,所述从所述匹配关系图中提取环,包括:
依次以所述匹配关系图中的顶点作为当前顶点;
如果所述当前顶点所连接的其他顶点数量小于2,则更换新的当前顶点;
如果所述当前顶点所连接的其他顶点数量大于或等于2,则在所述当前顶点所连接的其他顶点中查找具有连接关系的顶点对;
将所述当前顶点分别与每个所述顶点对形成一个环。
10.根据权利要求1所述的方法,其特征在于,所述确定所述闭环图像组内场景图像间的相对位姿,包括:
在所述闭环图像组内获取具有匹配关系的图像对;
确定所述图像对中的两张场景图像间的相对位姿。
11.根据权利要求10所述的方法,其特征在于,所述确定所述图像对中的两张场景图像间的相对位姿,包括:
获取所述两张场景图像的匹配点对;
根据所述匹配点对中的特征点在所属场景图像中的坐标和所述两张场景图像对应的相机内参,计算所述两张场景图像间的本征矩阵;
分解所述本征矩阵,得到所述两张场景图像间的相对位姿。
12.根据权利要求1所述的方法,其特征在于,所述基于所述闭环图像组内场景图像间的相对位姿和所述场景图像对应的初始位姿,确定所述场景图像对应的目标位姿,包括:
基于所述闭环图像组内场景图像间的相对位姿和所述场景图像对应的位姿变量,建立代价函数;
将所述场景图像对应的初始位姿代入所述代价函数,优化所述代价函数以求解所述位姿变量,得到所述场景图像对应的目标位姿。
13.根据权利要求12所述的方法,其特征在于,所述位姿变量包括旋转变量;
所述基于所述闭环图像组内场景图像间的相对位姿和所述场景图像对应的位姿变量,建立代价函数,包括:
获取所述闭环图像组内场景图像间的相对旋转矩阵;
根据所述场景图像的旋转变量得到所述场景图像间的相对旋转变量;
基于所述相对旋转矩阵与所述相对旋转变量的距离,建立第一代价函数。
14.根据权利要求13所述的方法,其特征在于,所述位姿变量包括光心位置变量;
所述基于所述闭环图像组内场景图像间的相对位姿和所述场景图像对应的位姿变量,建立代价函数,还包括:
获取所述闭环图像组内的景图像间的相对平移向量;
根据所述场景图像的光心位置变量和所述场景图像的旋转变量,得到所述场景图像间的相对平移变量;
基于所述相对平移向量与所述相对平移变量的距离,建立第二代价函数。
15.根据权利要求14所述的方法,其特征在于,所述基于所述相对平移向量与所述相对平移变量的距离,建立第二代价函数,包括:
基于所述相对平移向量与所述相对平移变量的距离,确定第一平移误差项;
基于所述目标场景的三维点在所述场景图像对应的相机坐标系中的坐标,以及所述三维点在世界坐标系中与所述场景图像对应的光心位置变量的距离,确定第二平移误差项;
建立包含所述第一平移误差项和所述第二平移误差项的所述第二代价函数。
16.根据权利要求14所述的方法,其特征在于,所述目标位姿包括目标旋转矩阵和目标平移向量;
所述将所述场景图像对应的初始位姿代入所述代价函数,优化所述代价函数以求解所述位姿变量,得到所述场景图像对应的目标位姿,包括:
将所述场景图像对应的初始位姿代入所述第一代价函数中的旋转变量;
优化所述第一代价函数的最小值,得到所述场景图像对应的目标旋转矩阵;
将所述场景图像对应的初始位姿代入所述第二代价函数中的光心位置变量,以及将所述场景图像对应的目标旋转矩阵代入所述第二代价函数中的旋转变量;
优化所述第二代价函数的最小值,得到所述场景图像对应的目标平移向量。
17.根据权利要求1所述的方法,其特征在于,在确定所述场景图像对应的目标位姿后,所述方法还包括:
利用所述场景图像对应的目标位姿,对所述场景图像进行三维重建处理,生成所述目标场景的三维点。
18.根据权利要求17所述的方法,其特征在于,所述利用所述场景图像对应的目标位姿,对所述场景图像进行三维重建处理,生成所述目标场景的三维点,包括:
从所述场景图像中提取共视图像组,所述共视图像组内每个场景图像均具有全局特征点,所述全局特征点为与所述图像组内其他场景图像均形成匹配点对的特征点;
利用所述共视图像组内场景图像对应的目标位姿与相机内参,建立所述全局特征点对应的三维点的线性约束矩阵;
分解所述线性约束矩阵,得到所述三维点。
19.根据权利要求18所述的方法,其特征在于,在从所述场景图像中提取共视图像组后,所述方法还包括:
在所述共视图像组内的场景图像间的匹配点对中检测误匹配点对,以剔除由所述误匹配点对产生的无效的全局特征点;
从所述共视图像组中剔除不具有全局特征点的场景图像,以优化所述共视图像组。
20.根据权利要求1至19任一项所述的方法,其特征在于,所述方法还包括:
通过视觉里程计获取所述场景图像对应的初始位姿。
21.一种位姿确定装置,其特征在于,包括:
图像匹配检测模块,用于获取针对目标场景采集的多张场景图像,并检测所述场景图像间的匹配关系;
闭环图像组提取模块,用于从所述多张场景图像中提取闭环图像组,在所述闭环图像组内,任一场景图像只与其他两张场景图像具有匹配关系;
相对位姿确定模块,用于确定所述闭环图像组内场景图像间的相对位姿;
目标位姿确定模块,用于基于所述闭环图像组内场景图像间的相对位姿和所述场景图像对应的初始位姿,确定所述场景图像对应的目标位姿。
22.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1至20任一项所述的方法。
23.一种电子设备,其特征在于,包括:
处理器;以及
存储器,用于存储所述处理器的可执行指令;
其中,所述处理器配置为经由执行所述可执行指令来执行权利要求1至20任一项所述的方法。
CN202011281127.7A 2020-11-16 2020-11-16 位姿确定方法、位姿确定装置、存储介质与电子设备 Active CN112270710B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202011281127.7A CN112270710B (zh) 2020-11-16 2020-11-16 位姿确定方法、位姿确定装置、存储介质与电子设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202011281127.7A CN112270710B (zh) 2020-11-16 2020-11-16 位姿确定方法、位姿确定装置、存储介质与电子设备

Publications (2)

Publication Number Publication Date
CN112270710A true CN112270710A (zh) 2021-01-26
CN112270710B CN112270710B (zh) 2023-12-19

Family

ID=74340733

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202011281127.7A Active CN112270710B (zh) 2020-11-16 2020-11-16 位姿确定方法、位姿确定装置、存储介质与电子设备

Country Status (1)

Country Link
CN (1) CN112270710B (zh)

Cited By (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112923852A (zh) * 2021-01-29 2021-06-08 江南大学 基于动态角点定位的sd卡位姿检测方法
CN113343920A (zh) * 2021-07-01 2021-09-03 中诚信征信有限公司 人脸识别照片的分类方法、装置、电子设备和存储介质
CN114674328A (zh) * 2022-03-31 2022-06-28 北京百度网讯科技有限公司 地图生成方法、装置、电子设备、存储介质、及车辆
WO2022179047A1 (zh) * 2021-02-26 2022-09-01 魔门塔(苏州)科技有限公司 一种状态信息估计方法及装置
CN115661472A (zh) * 2022-11-15 2023-01-31 中国平安财产保险股份有限公司 图像查重方法、装置、计算机设备及存储介质
WO2023151251A1 (zh) * 2022-02-09 2023-08-17 上海商汤智能科技有限公司 地图构建方法、位姿确定方法、装置、设备及计算机程序产品
WO2023246537A1 (zh) * 2022-06-22 2023-12-28 华为技术有限公司 导航、视觉定位以及导航地图构建方法和电子设备
WO2024001849A1 (zh) * 2022-06-28 2024-01-04 中兴通讯股份有限公司 视觉定位的位姿确定方法、装置以及电子设备
CN117808881A (zh) * 2024-01-12 2024-04-02 国家国防科技工业局新闻宣传中心 摄像设备相对位姿信息生成方法、装置、设备和可读介质

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102087711A (zh) * 2010-12-03 2011-06-08 黄晓峰 闭环的图像比较系统
CN109035334A (zh) * 2018-06-27 2018-12-18 腾讯科技(深圳)有限公司 位姿的确定方法和装置、存储介质及电子装置
CN110335316A (zh) * 2019-06-28 2019-10-15 Oppo广东移动通信有限公司 基于深度信息的位姿确定方法、装置、介质与电子设备
US20200184668A1 (en) * 2018-12-05 2020-06-11 Qualcomm Incorporated Systems and methods for three-dimensional pose determination
CN111445526A (zh) * 2020-04-22 2020-07-24 清华大学 一种图像帧之间位姿的估计方法、估计装置和存储介质

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102087711A (zh) * 2010-12-03 2011-06-08 黄晓峰 闭环的图像比较系统
CN109035334A (zh) * 2018-06-27 2018-12-18 腾讯科技(深圳)有限公司 位姿的确定方法和装置、存储介质及电子装置
US20200184668A1 (en) * 2018-12-05 2020-06-11 Qualcomm Incorporated Systems and methods for three-dimensional pose determination
CN110335316A (zh) * 2019-06-28 2019-10-15 Oppo广东移动通信有限公司 基于深度信息的位姿确定方法、装置、介质与电子设备
CN111445526A (zh) * 2020-04-22 2020-07-24 清华大学 一种图像帧之间位姿的估计方法、估计装置和存储介质

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
李维鹏;张国良;姚二亮;徐君;林志林;: "基于场景显著区域的改进闭环检测算法", 机器人, no. 01 *

Cited By (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112923852A (zh) * 2021-01-29 2021-06-08 江南大学 基于动态角点定位的sd卡位姿检测方法
WO2022179047A1 (zh) * 2021-02-26 2022-09-01 魔门塔(苏州)科技有限公司 一种状态信息估计方法及装置
CN113343920A (zh) * 2021-07-01 2021-09-03 中诚信征信有限公司 人脸识别照片的分类方法、装置、电子设备和存储介质
WO2023151251A1 (zh) * 2022-02-09 2023-08-17 上海商汤智能科技有限公司 地图构建方法、位姿确定方法、装置、设备及计算机程序产品
CN114674328A (zh) * 2022-03-31 2022-06-28 北京百度网讯科技有限公司 地图生成方法、装置、电子设备、存储介质、及车辆
CN114674328B (zh) * 2022-03-31 2023-04-18 北京百度网讯科技有限公司 地图生成方法、装置、电子设备、存储介质、及车辆
WO2023246537A1 (zh) * 2022-06-22 2023-12-28 华为技术有限公司 导航、视觉定位以及导航地图构建方法和电子设备
WO2024001849A1 (zh) * 2022-06-28 2024-01-04 中兴通讯股份有限公司 视觉定位的位姿确定方法、装置以及电子设备
CN115661472A (zh) * 2022-11-15 2023-01-31 中国平安财产保险股份有限公司 图像查重方法、装置、计算机设备及存储介质
CN117808881A (zh) * 2024-01-12 2024-04-02 国家国防科技工业局新闻宣传中心 摄像设备相对位姿信息生成方法、装置、设备和可读介质

Also Published As

Publication number Publication date
CN112270710B (zh) 2023-12-19

Similar Documents

Publication Publication Date Title
CN112270710B (zh) 位姿确定方法、位姿确定装置、存储介质与电子设备
CN112269851B (zh) 地图数据更新方法、装置、存储介质与电子设备
CN112381828B (zh) 基于语义和深度信息的定位方法、装置、介质与设备
CN112270755B (zh) 三维场景构建方法、装置、存储介质与电子设备
CN111598776A (zh) 图像处理方法、图像处理装置、存储介质与电子设备
CN113096185B (zh) 视觉定位方法、视觉定位装置、存储介质与电子设备
CN109063549B (zh) 基于深度神经网络的高分辨率航拍视频运动目标检测方法
CN112288816B (zh) 位姿优化方法、位姿优化装置、存储介质与电子设备
KR20160032137A (ko) 특징 기반 영상 집합 압축
CN112749350A (zh) 推荐对象的信息处理方法、装置、存储介质与电子设备
CN112927281A (zh) 深度检测方法、深度检测装置、存储介质与电子设备
CN114556425A (zh) 定位的方法、设备、无人机和存储介质
CN118015290B (zh) 图像特征处理方法、图像对比方法、模型训练方法及装置
CN115222974A (zh) 特征点匹配方法及装置、存储介质及电子设备
CN114170554A (zh) 视频检测方法、视频检测装置、存储介质与电子设备
CN113269823A (zh) 深度数据获取方法、装置、存储介质与电子设备
US20230053952A1 (en) Method and apparatus for evaluating motion state of traffic tool, device, and medium
CN114241039A (zh) 地图数据处理方法、装置、存储介质与电子设备
CN110263881A (zh) 一种结合局部不对称几何的多模型拟合方法
CN112598732B (zh) 目标设备定位方法、地图构建方法及装置、介质、设备
CN114419189A (zh) 地图构建方法及装置、电子设备、存储介质
KR20220169472A (ko) 센서 캘리브레이트 방법 및 장치, 전자 기기와 저장 매체
KR102571876B1 (ko) 적어도 하나의 플렌옵틱 비디오를 리포커싱하기 위한 방법 및 디바이스
CN111859001B (zh) 图像相似度检测方法、装置、存储介质与电子设备
Hasegawa et al. Distortion-Aware Self-Supervised 360 {\deg} Depth Estimation from A Single Equirectangular Projection Image

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
GR01 Patent grant
GR01 Patent grant