CN113096185B - 视觉定位方法、视觉定位装置、存储介质与电子设备 - Google Patents

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

Info

Publication number
CN113096185B
CN113096185B CN202110336267.8A CN202110336267A CN113096185B CN 113096185 B CN113096185 B CN 113096185B CN 202110336267 A CN202110336267 A CN 202110336267A CN 113096185 B CN113096185 B CN 113096185B
Authority
CN
China
Prior art keywords
frame image
coordinate system
current frame
transformation parameter
normal vector
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
Application number
CN202110336267.8A
Other languages
English (en)
Other versions
CN113096185A (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 CN202110336267.8A priority Critical patent/CN113096185B/zh
Publication of CN113096185A publication Critical patent/CN113096185A/zh
Priority to PCT/CN2022/078435 priority patent/WO2022206255A1/zh
Application granted granted Critical
Publication of CN113096185B publication Critical patent/CN113096185B/zh
Priority to US18/372,477 priority patent/US20240029297A1/en
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
    • G06T7/74Determining position or orientation of objects or cameras using feature-based methods involving reference images or patches
    • 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
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/30Determination of transform parameters for the alignment of images, i.e. image registration
    • G06T7/33Determination of transform parameters for the alignment of images, i.e. image registration using feature-based methods
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/60Analysis of geometric attributes
    • G06T7/66Analysis of geometric attributes of image moments or centre of gravity
    • 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
    • G06V10/46Descriptors for shape, contour or point-related descriptors, e.g. scale invariant feature transform [SIFT] or bags of words [BoW]; Salient regional features
    • G06V10/462Salient features, e.g. scale invariant feature transforms [SIFT]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V10/00Arrangements for image or video recognition or understanding
    • G06V10/70Arrangements for image or video recognition or understanding using pattern recognition or machine learning
    • G06V10/74Image or video pattern matching; Proximity measures in feature spaces
    • G06V10/75Organisation of the matching processes, e.g. simultaneous or sequential comparisons of image or video features; Coarse-fine approaches, e.g. multi-scale approaches; using context analysis; Selection of dictionaries
    • G06V10/757Matching configurations of points or 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/20Special algorithmic details
    • G06T2207/20084Artificial neural networks [ANN]
    • 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

Abstract

本公开提供了一种视觉定位方法、装置、计算机可读存储介质与电子设备,涉及计算机视觉技术领域。其中,所述方法包括:获取当前帧图像的表面法向量;通过将所述表面法向量投影至曼哈顿坐标系,确定所述当前帧图像与参考帧图像间的第一变换参数;匹配所述当前帧图像的特征点与所述参考帧图像的特征点,根据匹配结果确定所述当前帧图像与所述参考帧图像间的第二变换参数;基于所述第一变换参数与所述第二变换参数,确定目标变换参数;根据所述目标变换参数输出所述当前帧图像对应的视觉定位结果。本公开降低了视觉定位对图像特征质量的依赖,解决了弱纹理环境下的视觉定位问题,并具有较低的实现成本。

Description

视觉定位方法、视觉定位装置、存储介质与电子设备
技术领域
本公开涉及计算机视觉技术领域,尤其涉及一种视觉定位方法、视觉定位装置、计算机可读存储介质与电子设备。
背景技术
视觉定位是一种新型的定位技术,通过图像采集设备(如手机、RGB相机等)采集环境图像,配合图像算法和数学推理来实时计算与更新当前位姿,具有高速、高精度、易使用等优点,已广泛应用于AR(AugmentedReality,增强现实)、室内导航等场景下。
相关技术中,在进行视觉定位时,通常需要对图像进行特征提取与特征匹配,以计算位姿。可见,其定位结果极大地依赖于图像中的特征质量。然而,当视觉环境出现弱纹理的情况时,将影响所提取的图像特征质量,导致定位漂移甚至定位失败。
发明内容
本公开提供了一种视觉定位方法、视觉定位装置、计算机可读存储介质与电子设备,进而至少在一定程度上改善相关技术中在弱纹理环境下定位不准确的问题。
根据本公开的第一方面,提供一种视觉定位方法,包括:获取当前帧图像的表面法向量;通过将所述表面法向量投影至曼哈顿坐标系,确定所述当前帧图像与参考帧图像间的第一变换参数;匹配所述当前帧图像的特征点与所述参考帧图像的特征点,根据匹配结果确定所述当前帧图像与所述参考帧图像间的第二变换参数;基于所述第一变换参数与所述第二变换参数,确定目标变换参数;根据所述目标变换参数输出所述当前帧图像对应的视觉定位结果。
根据本公开的第二方面,提供一种视觉定位装置,包括:表面法向量获取模块,被配置为获取当前帧图像的表面法向量;第一变换参数确定模块,被配置为通过将所述表面法向量投影至曼哈顿坐标系,确定所述当前帧图像与参考帧图像间的第一变换参数;第二变换参数确定模块,被配置为匹配所述当前帧图像的特征点与所述参考帧图像的特征点,根据匹配结果确定所述当前帧图像与所述参考帧图像间的第二变换参数;目标变换参数确定模块,被配置为基于所述第一变换参数与所述第二变换参数,确定目标变换参数;视觉定位结果输出模块,被配置为根据所述目标变换参数输出所述当前帧图像对应的视觉定位结果。
根据本公开的第三方面,提供一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现上述第一方面的视觉定位方法及其可能的实现方式。
根据本公开的第四方面,提供一种电子设备,包括:处理器;以及存储器,用于存储所述处理器的可执行指令;其中,所述处理器配置为经由执行所述可执行指令来执行上述第一方面的视觉定位方法及其可能的实现方式。
本公开的技术方案具有以下有益效果:
利用当前帧图像中的表面法向量在曼哈顿坐标系中的投影,确定当前帧图像与参考帧图像间的第一变换参数,由此对通过特征点匹配所得到的第二变换参数进行优化,根据优化后得到的目标变换参数输出视觉定位结果。一方面,本方案通过表面法向量的投影与特征点的匹配两方面来确定变换参数,并结合两方面的结果以进行视觉定位,降低了对单方面的依赖性,提高了方案的鲁棒性。特别是降低了对图像中特征质量的依赖,即使在弱纹理环境下,也能够通过优化第二变换参数,提高目标变换参数与最终视觉定位结果的准确性,从而解决弱纹理环境下的视觉定位问题。另一方面,本方案采用特征点匹配的方式确定第二变换参数,特征点的提取与匹配处理所需的计算量较低,有利于提高响应速度与视觉定位的实时性。再一方面,本方案基于普通的单目RGB相机即可实现,无需增加辅助传感器,具有较低的实现成本。
应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本公开。
附图说明
图1示出本示例性实施方式中一种电子设备的结构示意图;
图2示出本示例性实施方式中一种视觉定位方法的流程图;
图3示出本示例性实施方式中当前帧图像与表面法向量的示意图;
图4示出本示例性实施方式中通过表面法向量估计网络进行处理的示意图;
图5示出本示例性实施方式中一种获取表面法向量的流程图;
图6示出本示例性实施方式中一种确定第一变换参数的流程图;
图7示出本示例性实施方式中一种确定当前帧图像对应的相机坐标系-曼哈顿坐标系变换参数的示意图;
图8示出本示例性实施方式中一种特征点匹配的流程图;
图9示出本示例性实施方式中一种特征点匹配的示意图;
图10示出本示例性实施方式中一种输出视觉定位结果的流程图;
图11示出本示例性实施方式中对三维点云进行投影的示意图;
图12示出本示例性实施方式中一种特征点与投影点匹配的流程图;
图13示出本示例性实施方式中目标场景的三维点云示意图;
图14示出本示例性实施方式中一种视觉定位初始化的流程图;
图15示出本示例性实施方式中确定第i帧目标变换参数的流程图;
图16示出本示例性实施方式中确定第i帧目标变换参数的示意图;
图17示出本示例性实施方式中一种视觉定位装置的结构示意图。
具体实施方式
现在将参考附图更全面地描述示例实施方式。然而,示例实施方式能够以多种形式实施,且不应被理解为限于在此阐述的范例;相反,提供这些实施方式使得本公开将更加全面和完整,并将示例实施方式的构思全面地传达给本领域的技术人员。所描述的特征、结构或特性可以以任何合适的方式结合在一个或更多实施方式中。在下面的描述中,提供许多具体细节从而给出对本公开的实施方式的充分理解。然而,本领域技术人员将意识到,可以实践本公开的技术方案而省略所述特定细节中的一个或更多,或者可以采用其它的方法、组元、装置、步骤等。在其它情况下,不详细示出或描述公知技术方案以避免喧宾夺主而使得本公开的各方面变得模糊。
此外,附图仅为本公开的示意性图解,并非一定是按比例绘制。图中相同的附图标记表示相同或类似的部分,因而将省略对它们的重复描述。附图中所示的一些方框图是功能实体,不一定必须与物理或逻辑上独立的实体相对应。可以采用软件形式来实现这些功能实体,或在一个或多个硬件模块或集成电路中实现这些功能实体,或在不同网络和/或处理器装置和/或微控制器装置中实现这些功能实体。
附图中所示的流程图仅是示例性说明,不是必须包括所有的步骤。例如,有的步骤还可以分解,而有的步骤可以合并或部分合并,因此实际执行的顺序有可能根据实际情况改变。
为了提高在弱纹理环境下视觉定位的准确性,相关技术中出现了采用辅助传感器的方案。例如,采用激光传感器(如激光雷达)、深度传感器(如RGB-D相机)等直接获取图像像素对应位置处的深度信息,从而恢复出三维点云信息来进行视觉定位。但是这样增加了方案实现的硬件成本。
鉴于上述问题,本公开的示例性实施方式首先提供一种视觉定位方法,其应用场景包括但不限于:用户处于商场内部,需要室内导航时,可以通过具有拍摄功能的终端对环境进行拍摄,终端对环境图像进行特征点提取,并上传至云端,由云端执行本示例性实施方式的视觉定位方法,确定终端的定位结果,提供室内导航服务。
本公开的示例性实施方式还提供一种电子设备,用于执行上述视觉定位方法。该电子设备可以是上述终端或云端的服务器,包括但不限于计算机、智能手机、可穿戴设备(如增强现实眼镜)、机器人、无人机等。一般的,电子设备包括处理器和存储器。存储器用于存储处理器的可执行指令,也可以存储应用数据,如图像数据、视频数据等;处理器配置为经由执行可执行指令来执行本示例性实施方式中的视觉定位方法。
下面以图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,利用第一变换参数优化第二变换参数,得到目标变换参数;
步骤S250,根据目标变换参数输出当前帧图像对应的视觉定位结果。
基于上述方法,利用当前帧图像中的表面法向量在曼哈顿坐标系中的投影,确定当前帧图像与参考帧图像间的第一变换参数,由此对通过特征点匹配所得到的第二变换参数进行优化,根据优化后得到的目标变换参数输出视觉定位结果。一方面,本示例性实施方式通过表面法向量的投影与特征点的匹配两方面来确定变换参数,并结合两方面的结果以进行视觉定位,降低了对单方面的依赖性,提高了方案的鲁棒性。特别是降低了对图像中特征质量的依赖,即使在弱纹理环境下,也能够通过优化第二变换参数,提高目标变换参数与最终视觉定位结果的准确性,从而解决弱纹理环境下的视觉定位问题。另一方面,本示例性实施方式采用特征点匹配的方式确定第二变换参数,特征点的提取与匹配处理所需的计算量较低,有利于提高响应速度与视觉定位的实时性。再一方面,本示例性实施方式基于普通的单目RGB相机即可实现,无需增加辅助传感器,具有较低的实现成本。
下面对图2中的每个步骤进行具体说明。
参考图2,步骤S210中,获取当前帧图像的表面法向量。
当前帧图像是当前针对目标场景所拍摄的图像,目标场景即用户当前所处的环境场景,例如房间、商场等。在视觉定位的场景中,通常需要终端连续拍摄多帧场景图像,当前帧图像是其中最新一帧图像。当前帧图像的表面法向量包括当前帧图像中至少一部分像素点的表面法向量。举例来说,当前帧图像的高度与宽度分别为H、W,则当前帧图像的像素数为H*W,获取每个像素点的表面法向量,每个像素点的表面法向量包括3个维度的轴坐标,则当前帧图像的表面法向量包括H*W*3个数值。图3示出了表面法向量的可视化示意图,其中图像I0为当前帧图像,I0中的每个像素点包括像素值(如RGB值),获取每个像素点的表面法向量后,将表面法向量的坐标值表示为颜色,则得到可视化的表面法向量图像Inormal。I0中处于同一平面上的像素点的表面法向量相同,因此在Inormal中的颜色也相同。
在一种实施方式中,可以预先训练表面法向量估计网络,其可以是CNN(Convolutional Neural Network,卷积神经网络)等深度学习网络,利用该表面法向量估计网络处理当前帧图像,得到当前帧图像的表面法向量。
图4示出了表面法向量估计网络的结构示意图,可以基于传统的U-Net(一种U型网络)结构进行变化。该网络主要包括三部分:编码子网络(Encoder),解码子网络(Decoder),卷积子网络(Convolution)。参考图5所示,获取表面法向量的过程可以包括:
步骤S510,利用编码子网络对当前帧图像进行下采样操作,得到下采样中间图像与下采样目标图像;
步骤S520,利用解码子网络对下采样目标图像进行上采样操作以及与下采样中间图像的拼接操作,得到上采样目标图像;
步骤S530,利用卷积子网络对上采样目标图像进行卷积操作,得到表面法向量。
一般的,将当前帧图像输入表面法向量估计网络后,首先进入编码子网络,在编码子网络中需要依次进行多次下采样操作。例如进行g次下采样操作(g≥2),第1次至第g-1次下采样操作所得到的图像为下采样中间图像,第g次下采样操作所得到的图像为下采样目标图像。下采样中间图像与下采样目标图像均可视为编码子网络输出的图像。下采样操作可以捕捉图像中的语义信息。
接下来,下采样目标图像进入解码子网络,依次进行多次上采样与拼接操作。每次进行上采样操作后,将得到的图像与对应的下采样中间图像进行拼接,得到上采样中间图像,再对该上采样中间图像进行下一次上采样与拼接操作。解码子网络的上采样操作与编码子网络的下采样操作相对应,可以与图像中的语义信息进行定位。在完成最后一次上采样与拼接操作后,解码子网络输出上采样目标图像。需要说明的是,在解码子网络的处理中,也可以将拼接操作视为上采样操作中的一个环节,将上述上采样与拼接操作统称为上采样操作,本公开对此不做限定。
最后,上采样目标图像进入卷积子网络。卷积子网络可以由多个尺度不变的卷积层组成,通过对上采样目标图像进行卷积操作,进一步学习图像特征,提高图像解码能力,并最终输出表面法向量。
在一种实施方式中,表面法向量估计网络的训练过程可以包括以下步骤:
构建初始的表面法向量估计网络,其结构可以如图4所示;
建立表面法向量估计网络的损失函数,可以如下所示:
L=∑x∈Ωω(x)log(pl(x)(x)) (1)
其中,pl(x)(x)是AP(Average Precision,平均正确率)概率函数,l:Ω→{1,...,K}是像素点,
Figure BDA0002997810280000091
是像素点的权重值,通常图像中越靠近边界位置的像素点的权重值越高;
设置Mini-batch的训练方式与Adam算法,并设置训练学习率和训练步数,如分别为0.001和100万步数;
输入包含RGB图像与表面法向量图像的数据集,如Taskonomy和NYUv2,开始训练;
完成训练并测试通过后,对表面法向量估计网络的结构与参数进行固化,并保存为相应的文件,以供调用。
下面结合图4,对表面法向量估计网络的处理过程进一步举例说明:将当前帧图像输入网络,由Encoder进行5次下采样操作;每次下采样操作可以包括两次3*3的卷积操作与一次2*2的最大池化操作,且5次下采样操作所用的卷积核数目依次翻倍,分别为1、64、128、256、512和1024;每次下采样操作后得到对应的下采样中间图像,其尺寸依次递减,最后一次下采样操作后得到下采样目标图像。由Decoder对下采样目标图像进行与下采样操作相对应的多次上采样操作;每次上采样操作可以包括一次2*2的转置卷积(或称反卷积)操作,一次与对应相同尺寸的下采样中间图像的拼接操作,以及两次3*3的卷积操作;每次上采样操作后得到对应的上采样中间图像,其尺寸依次递增,最后一次上采样操作后得到上采样目标图像。再由Convolution对上采样目标图像进行全卷积操作,最终输出表面法向量。
继续参考图2,步骤S220中,通过将表面法向量投影至曼哈顿坐标系,确定当前帧图像与参考帧图像间的第一变换参数。
曼哈顿世界(Manhattan World)假设是指假设环境中存在垂直或正交的信息,例如在图3所示的当前帧图像I0中,室内的地面与墙面垂直,墙面与天花板垂直,正前方的墙面与两侧的墙面垂直,由此可以构建包含垂直信息的坐标系,即曼哈顿坐标系。上述垂直的地面与墙面、墙面与天花板等,在当前帧图像对应的相机坐标系或图像坐标系中并非垂直关系,可见,曼哈顿坐标系与相机坐标系或图像坐标系之间存在一定的变换关系。因此,可以利用曼哈顿坐标系与不同帧图像对应的相机坐标系间的变换参数,确定不同帧图像对应的相机坐标系间的变换参数。本示例性实施方式可以通过这种方式,确定当前帧图像与参考帧图像对应的相机坐标系间的变换参数。上述当前帧图像与参考帧图像间的第一变换参数,即表示通过曼哈顿坐标系所确定的两图像对应的相机坐标系间的变换参数。参考帧图像可以是针对目标场景所拍摄的已知位姿的任意一帧或多帧图像,例如在连续拍摄场景图像以进行视觉定位的情况下,可以以上一帧图像作为参考帧图像。
需要说明的是,本示例性实施方式所述的变换参数,可以包括旋转参数(如旋转矩阵)与平移参数(如平移向量)。
在步骤S210中,可以获取当前帧图像中每个像素点的表面法向量。在步骤S220中,可以将每个像素点的表面法向量均投影至曼哈顿坐标系,经过后续处理得到第一变换参数。或者,也可以将一部分像素点的表面法向量投影至曼哈顿坐标系,例如选取当前帧图像中低平坦度区域(通常是纹理变化较大的区域)的像素点,将其表面法向量投影至曼哈顿坐标系。
在一种实施方式中,参考图6所示,步骤S220可以通过以下步骤S610至S630实现:
步骤S610中,利用参考帧图像对应的相机坐标系-曼哈顿坐标系变换参数,将上述表面法向量映射至曼哈顿坐标系。
其中,相机坐标系一般指以相机的光心为原点的笛卡尔坐标系,可以表示为SO(3);曼哈顿坐标系一般指以单位球构成的向量坐标系,可以表示为so(3),如图7所示的法向量球,法向量球上的每一个点表示相机坐标系下表面法向量的起点移至球心后,表面法向量的终点所在的位置。步骤S210中所获取的表面法向量是在相机坐标系下的信息,利用相机坐标系-曼哈顿坐标系变换参数,可以将其映射至曼哈顿坐标系中。
相机坐标系中x、y、z轴的方向与相机的位姿相关,曼哈顿坐标系中x、y、z轴的方向是对目标场景建立曼哈顿坐标系时所确定的,与目标场景的真实世界信息相关,无论相机如何运动,曼哈顿坐标系中x、y、z轴的方向是固定的。因此,相机坐标系与曼哈顿坐标系间的变换关系包括两坐标系间的旋转变换关系。由于表面法向量仅表示方向,与像素点的位置无关,例如图3所示的当前帧图像I0中,对于同一墙面上的不同像素点,其表面法向量相同,因此可以忽略相机坐标系与曼哈顿坐标系间的平移关系。上述相机坐标系-曼哈顿坐标系变换参数可以是相机坐标系-曼哈顿坐标系相对旋转矩阵。
在一种实施方式中,步骤S610可以包括:
利用参考帧图像对应的相机坐标系-曼哈顿坐标系变换参数,将上述表面法向量在参考帧图像对应的相机坐标系下的三维轴坐标映射为在曼哈顿坐标系下的三维轴坐标;
将表面法向量在曼哈顿坐标系下的三维轴坐标映射为在曼哈顿坐标系的轴的切向平面上的二维坐标。
举例来说,将参考帧图像对应的相机坐标系-曼哈顿坐标系旋转矩阵表示为RcM=[r1 r2 r3]∈SO(3),r1、r2、r3分别表示曼哈顿坐标系的三个轴。用nk表示步骤S210所获取的表面法向量,将其映射到曼哈顿坐标系中,得到:
Figure BDA0002997810280000111
其中,nk'表示表面法向量nk在曼哈顿坐标系下的三维轴坐标。
然后通过对数映射(logarithm map)将其映射至曼哈顿坐标系的轴的切向平面上,例如映射到z轴的切向平面上,得到:
Figure BDA0002997810280000121
其中,
Figure BDA0002997810280000122
mk'表示表面法向量nk在曼哈顿坐标系的轴的切向平面上的二维坐标。相比于在单位球面上的三维轴坐标,通过切向平面上的二维坐标表示表面法向量,更易于计算其偏移。
步骤S620中,基于表面法向量在曼哈顿坐标系下的偏移,确定当前帧图像对应的相机坐标系-曼哈顿坐标系变换参数。
基于曼哈顿世界假设,如果相机坐标系-曼哈顿坐标系变换参数准确,则将表面法向量映射到曼哈顿坐标系后,表面法向量应当与曼哈顿坐标系的轴方向相同。参考图7所示,由于在步骤S610进行采用参考帧图像对应的相机坐标系-曼哈顿坐标系变换参数RcM(更准确的说,是
Figure BDA0002997810280000123
)对当前帧图像的表面法向量进行映射,映射后表面法向量与曼哈顿坐标系的轴方向存在偏移,表现为表面法向量在单位球上的映射点并不在轴向位置。可见,该偏移是由参考帧图像对应的相机坐标系-曼哈顿坐标系变换参数RcM与当前帧图像的对应的相机坐标系-曼哈顿坐标系变换参数(可以以/>
Figure BDA0002997810280000124
表示)不一致所导致的。由此,可以利用表面法向量的偏移计算当前帧图像对应的相机坐标系-曼哈顿坐标系变换参数。
在一种实施方式中,步骤S620可以包括:
对表面法向量在切向平面上的二维坐标进行聚类,根据聚类中心确定表面法向量在切向平面上的偏移;
将上述偏移在切向平面上的二维坐标映射为在曼哈顿坐标系下的三维轴坐标;
根据参考帧图像对应的相机坐标系-曼哈顿坐标系变换参数与上述偏移在曼哈顿坐标系下的三维轴坐标,确定当前帧图像对应的相机坐标系-曼哈顿坐标系变换参数。
其中,对表面法向量的二维坐标聚类时,实际上是对表面法向量在切向平面上的投影点进行聚类,可以分别对每个维度的坐标进行聚类,本公开对于聚类的具体方式不做限定。
举例来说,使用传统Mean-Shift算法(均值偏移,是一种聚类算法)计算mk'的聚类中心,得到聚类中心相对于切向平面原点的偏移(实际上就是聚类中心本身的二维坐标),具体可表示为:
Figure BDA0002997810280000131
其中,c为高斯核的宽度,sj'为mk'的偏移,表示该偏移在切向平面上的二维坐标。
然后通过指数映射将sj'重从切向平面映射回曼哈顿坐标系的单位球,得到上述偏移的三维轴坐标,即:
Figure BDA0002997810280000132
此时,sj包括在曼哈顿坐标系的x、y、z三个轴的坐标,可以分别表示在曼哈顿坐标系下各轴需要更新的向量。由此,在参考帧图像对应的相机坐标系-曼哈顿坐标系变换参数基础上,利用上述偏移sj包的三维轴坐标进行变换参数的更新,得到当前帧图像对应的相机坐标系-曼哈顿坐标系变换参数,如下所示:
Figure BDA0002997810280000133
其中,
Figure BDA0002997810280000134
表示当前帧图像对应的相机坐标系-曼哈顿坐标系变换参数,主要是当前帧图像对应的相机坐标系与曼哈顿坐标系间的相对旋转矩阵。
在一种实施方式中,对于上述相对旋转矩阵
Figure BDA0002997810280000135
可以采用SVD算法(SingularValue Decomposition,奇异值分解)使其满足旋转矩阵应用的正交性约束,以提高相对旋转矩阵的准确性。
步骤S630中,根据参考帧图像对应的相机坐标系-曼哈顿坐标系变换参数与当前帧图像对应的相机坐标系-曼哈顿坐标系变换参数,确定当前帧图像与参考帧图像间的第一变换参数。
参考图7所示,参考帧图像对应的相机坐标系c1与曼哈顿坐标系之间存在变换关系,当前帧图像对应的相机坐标系c2与曼哈顿坐标系之间存在变换关系,因此以曼哈顿坐标系作为基准,可以计算当前帧图像与参考帧图像间的变换参数,即c1与c2间的相对位姿关系,如下所示:
Figure BDA0002997810280000141
其中,c1与c2分别表示参考帧图像与当前帧图像,
Figure BDA0002997810280000142
是通过表面法向量的映射所计算得到的相对变换参数,称为第一变换参数。
继续参考图2,步骤S230中,匹配当前帧图像的特征点与参考帧图像的特征点,根据匹配结果确定当前帧图像与参考帧图像间的第二变换参数。
特征点是指图像中具有局部代表性的点,能够反映图像的局部特征,通常从纹理较为丰富的边界区域提取特征点,并通过一定的方式对特征点加以描述,得到特征点描述子。本示例性实施方式可以采用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(Speeded UpRobust Features,加速鲁棒特征)、SuperPoint(基于自监督学习的特征点检测和描述符提取)、R2D2(Reliable and Repeatable Detector and Descriptor,可靠可重复的特征点与描述符)等算法提取特征点并对特征点进行描述。
以SIFT特征为例进行说明。SIFT特征是对图像中检测到的特征点用128维的特征向量进行描述,具有对图像缩放、平移、旋转不变的特性,对于光照、仿射和投影变换也有一定的不变性。从参考帧图像与当前帧图像提取特征点并通过SIFT特征进行表示,对两图像中的SIFT特征进行匹配。一般可以计算两特征点的SIFT特征向量的相似度,如通过欧式距离、余弦相似度等对相似度进行度量,如果相似度较高,则说明两特征点匹配,形成匹配点对。将参考帧图像与当前帧图像中的匹配点对形成集合,得到上述匹配结果。
在一种实施方式中,参考图8所示,步骤S230可以包括:
步骤S810,将参考帧图像的特征点向当前帧图像的特征点进行匹配,得到第一匹配信息;
步骤S820,将当前帧图像的特征点向参考帧图像的特征点进行匹配,得到第二匹配信息;
步骤S830,根据第一匹配信息与第二匹配信息得到匹配结果。
举例来说,从参考帧图像c1中提取M个特征点,每个特征点通过d维(如128维)的描述子进行描述,则参考帧图像的局部描述子为DM*d;从当前帧图像c2中提取N个特征点,每个特征点通过d维的描述子进行描述,则参考帧图像的局部描述子为DN*d;将DM*d向DN*d匹配,得到第一匹配信息:
Figure BDA0002997810280000151
将DN*d向DM*d匹配,得到第二匹配信息:
Figure BDA0002997810280000152
在步骤S810与步骤S820中,匹配方向不同,所得到的匹配结果也不同,分别表示为第一匹配信息
Figure BDA0002997810280000153
与第二匹配信息/>
Figure BDA0002997810280000154
Figure BDA0002997810280000155
与/>
Figure BDA0002997810280000156
可以分别是M*N与N*M的矩阵,表示通过不同的匹配方向所得到的特征点之间的匹配概率。
进一步的,可以综合第一匹配信息与第二匹配信息,得到最终的匹配结果。
在一种实施方式中,可以对第一匹配信息与第二匹配信息取交集,得到匹配结果。例如,在第一匹配信息中确定不同特征点对的第一匹配概率;在第二匹配信息中确定不同特征点对的第二匹配概率;对同一特征点对,在第一匹配概率与第二匹配概率中取较小值作为综合匹配概率;然后筛选出综合匹配概率高于预设的匹配阈值的特征点对,得到匹配结果。或者,在第一匹配信息中筛选出匹配概率高于匹配阈值的特征点对,得到第一匹配点对集合;在第二匹配信息中筛选出匹配概率高于匹配阈值的特征点对,得到第二匹配点对集合;然后对第一匹配点对集合与第二匹配点对集合取交集,得到匹配结果。通过取交集的方式,实现了Cross-Check惩罚的匹配,保证了匹配点对的质量。
在另一种实施方式中,也可以对第一匹配信息与第二匹配信息取并集,得到匹配结果。与上述取交集的方式区别在于,在上述第一匹配概率与第二匹配概率中取较大值作为综合匹配概率,或者对上述第一匹配点对集合与第二匹配点对集合取并集。
在一种实施方式中,确定参考帧图像与当前帧图像的匹配点对后,可以利用图像间的几何约束关系,如对极约束等,通过RANSAC(RandomSample Consensus,随机采样一致性)等算法剔除参考帧图像与当前帧图像中的误匹配点对,以提高特征点匹配与后续处理结果的准确性。
图9示出了参考帧图像与当前帧图像之间的特征点的匹配关系。基于特征点的匹配关系,可以采用SVD算法计算两图像间的第二变换参数,可以包括旋转矩阵
Figure BDA0002997810280000161
与平移向量/>
Figure BDA0002997810280000162
继续参考图2,步骤S240中,基于第一变换参数与第二变换参数,确定目标变换参数。
由上可知,第一变换参数是通过表面法向量的投影而确定的,第二变换参数是通过特征点匹配而确定的,这两方面的算法均可能存在一定局限性。本示例性实施方式通过综合第一变换参数与第二变换参数,得到更加准确的目标变换参数。例如,基于第一变换参数与第二变换参数中的一个去优化另一个,优化后得到目标变换参数。
在一种实施方式中,第一变换参数包括第一旋转矩阵,第二变换参数包括第二旋转矩阵。可以采用BA算法(Bundle Adjustment,光束平差法)优化其中任一个。具体地,步骤S240可以包括:
基于第一旋转矩阵与第二旋转矩阵间的误差,建立损失函数;
通过迭代调整第二旋转矩阵,优化损失函数的最小值,将调整后的第二旋转矩阵作为目标变换参数中的旋转矩阵。
示例性的,用于优化旋转矩阵的损失函数可以如下所示:
Figure BDA0002997810280000163
其中,第二旋转矩阵
Figure BDA0002997810280000164
为待优化量,通过迭代调整/>
Figure BDA0002997810280000165
使损失函数α的值减小,直到收敛。将调整后的/>
Figure BDA0002997810280000166
记为/>
Figure BDA0002997810280000167
为目标变换参数中的旋转矩阵。此外,目标变换参数中的平移向量/>
Figure BDA0002997810280000168
可以采用第二变换参数中的平移向量/>
Figure BDA0002997810280000169
由此,得到目标变换参数,包括/>
Figure BDA00029978102800001610
继续参考图2,步骤S250中,根据目标变换参数输出当前帧图像对应的视觉定位结果。
目标变换参数用于表示当前帧图像与参考帧图像间的相对位姿关系。一般的,参考帧图像的位姿已被确定,在参考帧图像的位姿基础上,通过目标变换参数进行仿射变换,得到当前帧图像对应的视觉定位结果,如可以是6DoF(Degree of Freedom,自由度)位姿。
在一种实施方式中,参考图10所示,步骤S250可以包括:
步骤S1010,根据目标变换参数与参考帧图像对应的位姿,确定当前帧图像对应的第一位姿;
步骤S1020,利用第一位姿将目标场景的三维点云投影至当前帧图像的平面,得到对应的投影点;
步骤S1030,匹配当前帧图像的特征点与投影点,根据当前帧图像的特征点与投影点的匹配点对确定当前帧图像的第二位姿;
步骤S1040,将第二位姿作为当前帧图像对应的视觉定位结果进行输出。
其中,第一位姿与第二位姿分别指通过不同方式所确定的当前帧图像的位姿。在确定目标变换参数后,基于参考帧图像对应的位姿进行仿射变换,所得到的位姿为第一位姿。本示例性实施方式在第一位姿的基础上做进一步优化,得到更加准确的第二位姿,以作为最终的视觉定位结果加以输出。
目标场景为当前帧图像与参考帧图像所拍摄的场景,也是待定位设备当前所处的场景。图11示出了三维点云投影至当前帧图像平面的示意图,将三维点云从世界坐标系投影至当前帧图像对应的相机坐标系或图像坐标系后,得到对应的投影点。匹配当前帧图像的特征点与投影点,得到匹配点对。本示例性实施方式可以对投影点进行与特征点相同方式的描述,例如对特征点进行SIFT特征描述,对投影点也进行SIFT特征描述,这样通过计算特征点的SIFT特征向量与投影点的SIFT特征向量的相似度,可以进行特征点与投影点的匹配。
在一种实施方式中,参考图12所示,上述匹配当前帧图像的特征点与投影点,可以包括:
步骤S1210,将投影点向当前帧图像的特征点进行匹配,得到第三匹配信息;
步骤S1220,将当前帧图像的特征点向投影点进行匹配,得到第四匹配信息;
步骤S1230,根据第三匹配信息与第四匹配信息得到当前帧图像的特征点与投影点的匹配点对。
在得到投影点与当前帧图像的特征点的匹配点对后,将其中的投影点替换为三维点云中的点,得到当前帧图像的特征点(二维点)与三维点的匹配关系,进而通过PnP(Perspective-n-Point,一种基于2D-3D匹配关系求解位姿的算法)等算法求解得到第二位姿。
需要说明的是,图2所示的视觉定位方法可以应用于SLAM(SimultaneousLocalization And Mapping,同时定位与建图)的场景,也可以应用于在已构建地图的情况下进行视觉定位的场景。下面以已构建地图的情况下进行视觉定位的场景为例,对视觉定位的流程做进一步说明。
在构建地图的环节,由工作人员使用手机、全景相机等图像采集设备采集目标场景的图像,并通过SFM(Structure From Motion,运动恢复结构)流程构建由三维点云形成的地图,可以参考图13所示。
假设某一用户位于目标场景中的某个位置,拿出手机对周围环境连续拍摄多帧图像,与此同时进行视觉定位。流程如下:
(一)视觉定位初始化
图14示出了视觉定位初始化的流程图。输入第1帧图像,一方面获取表面法向量,构建曼哈顿坐标系。一般的,可以设置曼哈顿坐标系与第1帧图像对应的相机坐标系的原点与轴方向均相同,由此得到初始的相机坐标系-曼哈顿坐标系变换参数,其中旋转矩阵Rc1M可以是单位矩阵,平移向量Tc1M可以是零向量。另一方面从第1帧图像中提取特征点并通过SIFT特征进行描述,保存特征点的位置与描述子,用于后续图像帧的处理。完成视觉定位初始化。
(二)确定目标变换参数
图15示出了对第i帧图像进行处理的流程图,图16示出了对第i帧图像进行处理的示意图。参考图15与图16所示,输入第i帧图像,当i大于或等于2时,获取表面法向量,以第i-1帧图像为参考帧图像,获取第i-1帧的相机坐标系-曼哈顿坐标系变换参数(C-M变换参数),利用该变换参数将第i帧的表面法向量映射至曼哈顿坐标系M,并通过聚类计算偏移,以得到第i帧的C-M变换参数;进而在计算第i帧与第i-1帧间的第一变换参数。从第i帧图像中提取特征点并通过SIFT特征进行描述,与第i-1帧图像的特征点进行匹配,以得到第i帧与第i-1帧间的第二变换参数。利用第一变换参数优化第二变换参数,得到目标变换参数。
(三)输出视觉定位结果
根据第i-1帧的位姿,输出第i帧的第一位姿,通过第一位姿对目标场景的三维点云进行重投影,得到对应的投影点;基于投影点的SIFT特征与第i帧图像的SIFT特征,得到投影点-特征点的匹配点对;最后根据匹配点对求解PnP算法,输出第i帧的第二位姿,即最终的视觉定位结果。基于每一帧的视觉定位结果,可以得到待定位设备的运动轨迹,由此实现实时的室内导航或其他功能。
本公开的示例性实施方式还提供一种视觉定位装置。参考图17所示,该视觉定位装置1700可以包括:
表面法向量获取模块1710,被配置为获取当前帧图像的表面法向量;
第一变换参数确定模块1720,被配置为通过将表面法向量投影至曼哈顿坐标系,确定当前帧图像与参考帧图像间的第一变换参数;
第二变换参数确定模块1730,被配置为匹配当前帧图像的特征点与参考帧图像的特征点,根据匹配结果确定当前帧图像与参考帧图像间的第二变换参数;
目标变换参数确定模块1740,被配置为基于第一变换参数与第二变换参数,确定目标变换参数;
视觉定位结果输出模块1750,被配置为根据目标变换参数输出当前帧图像对应的视觉定位结果。
在一种实施方式中,表面法向量获取模块1710,被配置为:
利用预先训练的表面法向量估计网络对当前帧图像进行处理,得到当前帧图像的表面法向量。
在一种实施方式中,表面法向量估计网络包括编码子网络、解码子网络与卷积子网络。表面法向量获取模块1710,被配置为:
利用编码子网络对当前帧图像进行下采样操作,得到下采样中间图像与下采样目标图像;
利用解码子网络对下采样目标图像进行上采样操作以及与下采样中间图像的拼接操作,得到上采样目标图像;
利用卷积子网络对上采样目标图像进行卷积操作,得到表面法向量。
在一种实施方式中,第一变换参数确定模块1720,被配置为:
利用参考帧图像对应的相机坐标系-曼哈顿坐标系变换参数,将表面法向量映射至曼哈顿坐标系;
基于表面法向量在曼哈顿坐标系下的偏移,确定当前帧图像对应的相机坐标系-曼哈顿坐标系变换参数;
根据参考帧图像对应的相机坐标系-曼哈顿坐标系变换参数与当前帧图像对应的相机坐标系-曼哈顿坐标系变换参数,确定当前帧图像与参考帧图像间的第一变换参数。
在一种实施方式中,第一变换参数确定模块1720,被配置为:
利用参考帧图像对应的相机坐标系-曼哈顿坐标系变换参数,将表面法向量在参考帧图像对应的相机坐标系下的三维轴坐标映射为在曼哈顿坐标系下的三维轴坐标;
将表面法向量在曼哈顿坐标系下的三维轴坐标映射为在曼哈顿坐标系的轴的切向平面上的二维坐标。
在一种实施方式中,第一变换参数确定模块1720,被配置为:
对表面法向量在切向平面上的二维坐标进行聚类,根据聚类中心确定表面法向量在切向平面上的偏移;
将偏移在切向平面上的二维坐标映射为在曼哈顿坐标系下的三维轴坐标;
根据参考帧图像对应的相机坐标系-曼哈顿坐标系变换参数与偏移在曼哈顿坐标系下的三维轴坐标,确定当前帧图像对应的相机坐标系-曼哈顿坐标系变换参数。
在一种实施方式中,第二变换参数确定模块1730,被配置为:
将参考帧图像的特征点向当前帧图像的特征点进行匹配,得到第一匹配信息;
将当前帧图像的特征点向参考帧图像的特征点进行匹配,得到第二匹配信息;
根据第一匹配信息与第二匹配信息得到匹配结果。
在一种实施方式中,第二变换参数确定模块1730,被配置为:
对第一匹配信息与第二匹配信息取交集,得到匹配结果。
在一种实施方式中,第一变换参数包括第一旋转矩阵,第二变换参数包括第二旋转矩阵。目标变换参数确定模块1740,被配置为:
基于第一旋转矩阵与第二旋转矩阵间的误差,建立损失函数;
通过迭代调整第二旋转矩阵,优化损失函数的最小值,将调整后的第二旋转矩阵作为目标变换参数中的旋转矩阵。
在一种实施方式中,视觉定位结果输出模块1750,被配置为:
根据目标变换参数与参考帧图像对应的位姿,确定当前帧图像对应的第一位姿;
利用第一位姿将目标场景的三维点云投影至当前帧图像的平面,得到对应的投影点,目标场景为当前帧图像与参考帧图像所拍摄的场景;
匹配当前帧图像的特征点与投影点,根据当前帧图像的特征点与投影点的匹配点对确定当前帧图像的第二位姿;
将第二位姿作为当前帧图像对应的视觉定位结果进行输出。
在一种实施方式中,视觉定位结果输出模块1750,被配置为:
将投影点向当前帧图像的特征点进行匹配,得到第三匹配信息;
将当前帧图像的特征点向投影点进行匹配,得到第四匹配信息;
根据第三匹配信息与第四匹配信息得到当前帧图像的特征点与投影点的匹配点对。
上述装置中各部分的细节在方法部分实施方式中已经详细说明,因而不再赘述。
本公开的示例性实施方式还提供了一种计算机可读存储介质,可以实现为一种程序产品的形式,其包括程序代码,当程序产品在电子设备上运行时,程序代码用于使电子设备执行本说明书上述“示例性方法”部分中描述的根据本公开各种示例性实施方式的步骤。在一种实施方式中,该程序产品可以实现为便携式紧凑盘只读存储器(CD-ROM)并包括程序代码,并可以在电子设备,例如个人电脑上运行。然而,本公开的程序产品不限于此,在本文件中,可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。
程序产品可以采用一个或多个可读介质的任意组合。可读介质可以是可读信号介质或者可读存储介质。可读存储介质例如可以为但不限于电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。
计算机可读信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了可读程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。可读信号介质还可以是可读存储介质以外的任何可读介质,该可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。
可读介质上包含的程序代码可以用任何适当的介质传输,包括但不限于无线、有线、光缆、RF等等,或者上述的任意合适的组合。
可以以一种或多种程序设计语言的任意组合来编写用于执行本公开操作的程序代码,程序设计语言包括面向对象的程序设计语言—诸如Java、C++等,还包括常规的过程式程序设计语言—诸如“C”语言或类似的程序设计语言。程序代码可以完全地在用户计算设备上执行、部分地在用户设备上执行、作为一个独立的软件包执行、部分在用户计算设备上部分在远程计算设备上执行、或者完全在远程计算设备或服务器上执行。在涉及远程计算设备的情形中,远程计算设备可以通过任意种类的网络,包括局域网(LAN)或广域网(WAN),连接到用户计算设备,或者,可以连接到外部计算设备(例如利用因特网服务提供商来通过因特网连接)。
应当注意,尽管在上文详细描述中提及了用于动作执行的设备的若干模块或者单元,但是这种划分并非强制性的。实际上,根据本公开的示例性实施方式,上文描述的两个或更多模块或者单元的特征和功能可以在一个模块或者单元中具体化。反之,上文描述的一个模块或者单元的特征和功能可以进一步划分为由多个模块或者单元来具体化。
所属技术领域的技术人员能够理解,本公开的各个方面可以实现为系统、方法或程序产品。因此,本公开的各个方面可以具体实现为以下形式,即:完全的硬件实施方式、完全的软件实施方式(包括固件、微代码等),或硬件和软件方面结合的实施方式,这里可以统称为“电路”、“模块”或“系统”。本领域技术人员在考虑说明书及实践这里公开的发明后,将容易想到本公开的其他实施方式。本申请旨在涵盖本公开的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本公开的一般性原理并包括本公开未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施方式仅被视为示例性的,本公开的真正范围和精神由权利要求指出。
应当理解的是,本公开并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本公开的范围仅由所附的权利要求来限定。

Claims (14)

1.一种视觉定位方法,其特征在于,包括:
获取当前帧图像的表面法向量;
通过将所述表面法向量投影至曼哈顿坐标系,确定所述当前帧图像与参考帧图像间的第一变换参数;
匹配所述当前帧图像的特征点与所述参考帧图像的特征点,根据匹配结果确定所述当前帧图像与所述参考帧图像间的第二变换参数;
基于所述第一变换参数与所述第二变换参数,确定目标变换参数;
根据所述目标变换参数输出所述当前帧图像对应的视觉定位结果;
其中,所述通过将所述表面法向量投影至曼哈顿坐标系,确定所述当前帧图像与参考帧图像间的第一变换参数,包括:
利用所述参考帧图像对应的相机坐标系-曼哈顿坐标系变换参数,将所述表面法向量映射至曼哈顿坐标系;
基于所述表面法向量在所述曼哈顿坐标系下的偏移,确定所述当前帧图像对应的相机坐标系-曼哈顿坐标系变换参数;
根据所述参考帧图像对应的相机坐标系-曼哈顿坐标系变换参数与所述当前帧图像对应的相机坐标系-曼哈顿坐标系变换参数,确定所述当前帧图像与所述参考帧图像间的第一变换参数。
2.根据权利要求1所述的方法,其特征在于,所述获取当前帧图像的表面法向量,包括:
利用预先训练的表面法向量估计网络对所述当前帧图像进行处理,得到所述当前帧图像的表面法向量。
3.根据权利要求2所述的方法,其特征在于,所述表面法向量估计网络包括编码子网络、解码子网络与卷积子网络;所述利用预先训练的表面法向量估计网络对所述当前帧图像进行处理,得到所述当前帧图像的表面法向量,包括:
利用所述编码子网络对所述当前帧图像进行下采样操作,得到下采样中间图像与下采样目标图像;
利用所述解码子网络对所述下采样目标图像进行上采样操作以及与所述下采样中间图像的拼接操作,得到上采样目标图像;
利用所述卷积子网络对所述上采样目标图像进行卷积操作,得到所述表面法向量。
4.根据权利要求1所述的方法,其特征在于,所述当前帧图像的表面法向量包括所述当前帧图像中至少一部分像素点的表面法向量。
5.根据权利要求1所述的方法,其特征在于,所述利用所述参考帧图像对应的相机坐标系-曼哈顿坐标系变换参数,将所述表面法向量映射至曼哈顿坐标系,包括:
利用所述参考帧图像对应的相机坐标系-曼哈顿坐标系变换参数,将所述表面法向量在所述参考帧图像对应的相机坐标系下的三维轴坐标映射为在所述曼哈顿坐标系下的三维轴坐标;
将所述表面法向量在所述曼哈顿坐标系下的三维轴坐标映射为在所述曼哈顿坐标系的轴的切向平面上的二维坐标。
6.根据权利要求5所述的方法,其特征在于,所述基于所述表面法向量在所述曼哈顿坐标系下的偏移,确定所述当前帧图像对应的相机坐标系-曼哈顿坐标系变换参数,包括:
对所述表面法向量在所述切向平面上的二维坐标进行聚类,根据聚类中心确定所述表面法向量在所述切向平面上的偏移;
将所述偏移在所述切向平面上的二维坐标映射为在所述曼哈顿坐标系下的三维轴坐标;
根据所述参考帧图像对应的相机坐标系-曼哈顿坐标系变换参数与所述偏移在所述曼哈顿坐标系下的三维轴坐标,确定所述当前帧图像对应的相机坐标系-曼哈顿坐标系变换参数。
7.根据权利要求1所述的方法,其特征在于,所述匹配所述当前帧图像的特征点与所述参考帧图像的特征点,包括:
将所述参考帧图像的特征点向所述当前帧图像的特征点进行匹配,得到第一匹配信息;
将所述当前帧图像的特征点向所述参考帧图像的特征点进行匹配,得到第二匹配信息;
根据所述第一匹配信息与所述第二匹配信息得到所述匹配结果。
8.根据权利要求7所述的方法,其特征在于,所述根据所述第一匹配信息与所述第二匹配信息得到所述匹配结果,包括:
对所述第一匹配信息与所述第二匹配信息取交集,得到所述匹配结果。
9.根据权利要求1所述的方法,其特征在于,所述第一变换参数包括第一旋转矩阵,所述第二变换参数包括第二旋转矩阵;所述基于所述第一变换参数与所述第二变换参数,确定目标变换参数,包括:
基于所述第一旋转矩阵与所述第二旋转矩阵间的误差,建立损失函数;
通过迭代调整所述第二旋转矩阵,优化所述损失函数的最小值,将调整后的所述第二旋转矩阵作为所述目标变换参数中的旋转矩阵。
10.根据权利要求1所述的方法,其特征在于,所述根据所述目标变换参数输出所述当前帧图像对应的视觉定位结果,包括:
根据所述目标变换参数与所述参考帧图像对应的位姿,确定所述当前帧图像对应的第一位姿;
利用所述第一位姿将目标场景的三维点云投影至所述当前帧图像的平面,得到对应的投影点,所述目标场景为所述当前帧图像与所述参考帧图像所拍摄的场景;
匹配所述当前帧图像的特征点与所述投影点,根据所述当前帧图像的特征点与所述投影点的匹配点对确定所述当前帧图像的第二位姿;
将所述第二位姿作为所述当前帧图像对应的视觉定位结果进行输出。
11.根据权利要求10所述的方法,其特征在于,所述匹配所述当前帧图像的特征点与所述投影点,包括:
将所述投影点向所述当前帧图像的特征点进行匹配,得到第三匹配信息;
将所述当前帧图像的特征点向所述投影点进行匹配,得到第四匹配信息;
根据所述第三匹配信息与所述第四匹配信息得到所述当前帧图像的特征点与所述投影点的匹配点对。
12.一种视觉定位装置,其特征在于,包括:
表面法向量获取模块,被配置为获取当前帧图像的表面法向量;
第一变换参数确定模块,被配置为通过将所述表面法向量投影至曼哈顿坐标系,确定所述当前帧图像与参考帧图像间的第一变换参数;
第二变换参数确定模块,被配置为匹配所述当前帧图像的特征点与所述参考帧图像的特征点,根据匹配结果确定所述当前帧图像与所述参考帧图像间的第二变换参数;
目标变换参数确定模块,被配置为基于所述第一变换参数与所述第二变换参数,确定目标变换参数;
视觉定位结果输出模块,被配置为根据所述目标变换参数输出所述当前帧图像对应的视觉定位结果;
其中,所述第一变换参数确定模块,被配置为:
利用所述参考帧图像对应的相机坐标系-曼哈顿坐标系变换参数,将所述表面法向量映射至曼哈顿坐标系;
基于所述表面法向量在所述曼哈顿坐标系下的偏移,确定所述当前帧图像对应的相机坐标系-曼哈顿坐标系变换参数;
根据所述参考帧图像对应的相机坐标系-曼哈顿坐标系变换参数与所述当前帧图像对应的相机坐标系-曼哈顿坐标系变换参数,确定所述当前帧图像与所述参考帧图像间的第一变换参数。
13.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1至11任一项所述的方法。
14.一种电子设备,其特征在于,包括:
处理器;以及
存储器,用于存储所述处理器的可执行指令;
其中,所述处理器配置为经由执行所述可执行指令来执行权利要求1至11任一项所述的方法。
CN202110336267.8A 2021-03-29 2021-03-29 视觉定位方法、视觉定位装置、存储介质与电子设备 Active CN113096185B (zh)

Priority Applications (3)

Application Number Priority Date Filing Date Title
CN202110336267.8A CN113096185B (zh) 2021-03-29 2021-03-29 视觉定位方法、视觉定位装置、存储介质与电子设备
PCT/CN2022/078435 WO2022206255A1 (zh) 2021-03-29 2022-02-28 视觉定位方法、视觉定位装置、存储介质与电子设备
US18/372,477 US20240029297A1 (en) 2021-03-29 2023-09-25 Visual positioning method, storage medium and electronic device

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202110336267.8A CN113096185B (zh) 2021-03-29 2021-03-29 视觉定位方法、视觉定位装置、存储介质与电子设备

Publications (2)

Publication Number Publication Date
CN113096185A CN113096185A (zh) 2021-07-09
CN113096185B true CN113096185B (zh) 2023-06-06

Family

ID=76670676

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202110336267.8A Active CN113096185B (zh) 2021-03-29 2021-03-29 视觉定位方法、视觉定位装置、存储介质与电子设备

Country Status (3)

Country Link
US (1) US20240029297A1 (zh)
CN (1) CN113096185B (zh)
WO (1) WO2022206255A1 (zh)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113096185B (zh) * 2021-03-29 2023-06-06 Oppo广东移动通信有限公司 视觉定位方法、视觉定位装置、存储介质与电子设备
CN117953050A (zh) * 2022-10-20 2024-04-30 腾讯科技(深圳)有限公司 一种视觉定位方法及相关装置
CN115578539B (zh) * 2022-12-07 2023-09-19 深圳大学 室内空间高精度视觉位置定位方法、终端及存储介质
CN116958271A (zh) * 2023-06-06 2023-10-27 阿里巴巴(中国)有限公司 标定参数确定方法以及装置
CN116630598B (zh) * 2023-07-19 2023-09-29 齐鲁空天信息研究院 大场景下的视觉定位方法、装置、电子设备及存储介质

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110322500A (zh) * 2019-06-28 2019-10-11 Oppo广东移动通信有限公司 即时定位与地图构建的优化方法及装置、介质和电子设备

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10203209B2 (en) * 2016-05-25 2019-02-12 Regents Of The University Of Minnesota Resource-aware large-scale cooperative 3D mapping using multiple mobile devices
CN106910210B (zh) * 2017-03-03 2018-09-11 百度在线网络技术(北京)有限公司 用于生成图像信息的方法和装置
CN107292956B (zh) * 2017-07-12 2020-09-22 杭州电子科技大学 一种基于曼哈顿假设的场景重建方法
CN107292965B (zh) * 2017-08-03 2020-10-13 北京航空航天大学青岛研究院 一种基于深度图像数据流的虚实遮挡处理方法
CN108717712B (zh) * 2018-05-29 2021-09-03 东北大学 一种基于地平面假设的视觉惯导slam方法
CN109544677B (zh) * 2018-10-30 2020-12-25 山东大学 基于深度图像关键帧的室内场景主结构重建方法及系统
CN109974693B (zh) * 2019-01-31 2020-12-11 中国科学院深圳先进技术研究院 无人机定位方法、装置、计算机设备及存储介质
CN110335316B (zh) * 2019-06-28 2023-04-18 Oppo广东移动通信有限公司 基于深度信息的位姿确定方法、装置、介质与电子设备
CN111784776B (zh) * 2020-08-03 2023-09-26 Oppo广东移动通信有限公司 视觉定位方法及装置、计算机可读介质和电子设备
CN111967481B (zh) * 2020-09-18 2023-06-20 北京百度网讯科技有限公司 视觉定位方法、装置、电子设备及存储介质
CN113096185B (zh) * 2021-03-29 2023-06-06 Oppo广东移动通信有限公司 视觉定位方法、视觉定位装置、存储介质与电子设备

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110322500A (zh) * 2019-06-28 2019-10-11 Oppo广东移动通信有限公司 即时定位与地图构建的优化方法及装置、介质和电子设备

Also Published As

Publication number Publication date
CN113096185A (zh) 2021-07-09
US20240029297A1 (en) 2024-01-25
WO2022206255A1 (zh) 2022-10-06

Similar Documents

Publication Publication Date Title
CN113096185B (zh) 视觉定位方法、视觉定位装置、存储介质与电子设备
US11055866B2 (en) System and method for disparity estimation using cameras with different fields of view
EP3786890B1 (en) Method and apparatus for determining pose of image capture device, and storage medium therefor
CN108810538B (zh) 视频编码方法、装置、终端及存储介质
CN111598776B (zh) 图像处理方法、图像处理装置、存储介质与电子设备
CN109788189B (zh) 将相机与陀螺仪融合在一起的五维视频稳定化装置及方法
CN112270710B (zh) 位姿确定方法、位姿确定装置、存储介质与电子设备
CN112270755B (zh) 三维场景构建方法、装置、存储介质与电子设备
CN112927271B (zh) 图像处理方法、图像处理装置、存储介质与电子设备
CN112927362A (zh) 地图重建方法及装置、计算机可读介质和电子设备
CN111784614A (zh) 图像去噪方法及装置、存储介质和电子设备
CN112598780B (zh) 实例对象模型构建方法及装置、可读介质和电子设备
CN112381828A (zh) 基于语义和深度信息的定位方法、装置、介质与设备
CN111784734A (zh) 图像处理方法及装置、存储介质和电子设备
CN115690382B (zh) 深度学习模型的训练方法、生成全景图的方法和装置
CN111652933B (zh) 基于单目相机的重定位方法、装置、存储介质与电子设备
CN114429495B (zh) 一种三维场景的重建方法和电子设备
CN112700525A (zh) 一种图像处理方法及电子设备
CN114241039A (zh) 地图数据处理方法、装置、存储介质与电子设备
CN114419189A (zh) 地图构建方法及装置、电子设备、存储介质
CN116137025A (zh) 视频图像矫正方法及装置、计算机可读介质和电子设备
CN113537194A (zh) 光照估计方法、光照估计装置、存储介质与电子设备
CN113362260A (zh) 图像优化方法及装置、存储介质及电子设备
CN112598732A (zh) 目标设备定位方法、地图构建方法及装置、介质、设备
CN112269851B (zh) 地图数据更新方法、装置、存储介质与电子设备

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