CN111429517A - 重定位方法、重定位装置、存储介质与电子设备 - Google Patents
重定位方法、重定位装置、存储介质与电子设备 Download PDFInfo
- Publication number
- CN111429517A CN111429517A CN202010210050.8A CN202010210050A CN111429517A CN 111429517 A CN111429517 A CN 111429517A CN 202010210050 A CN202010210050 A CN 202010210050A CN 111429517 A CN111429517 A CN 111429517A
- Authority
- CN
- China
- Prior art keywords
- frame image
- key frame
- current frame
- semantic
- 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.)
- Pending
Links
Images
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
- G06F18/00—Pattern recognition
- G06F18/20—Analysing
- G06F18/22—Matching criteria, e.g. proximity measures
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V10/00—Arrangements for image or video recognition or understanding
- G06V10/40—Extraction of image or video features
- G06V10/44—Local feature extraction by analysis of parts of the pattern, e.g. by detecting edges, contours, loops, corners, strokes or intersections; Connectivity analysis, e.g. of connected components
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V10/00—Arrangements for image or video recognition or understanding
- G06V10/40—Extraction of image or video features
- G06V10/46—Descriptors for shape, contour or point-related descriptors, e.g. scale invariant feature transform [SIFT] or bags of words [BoW]; Salient regional features
- G06V10/462—Salient features, e.g. scale invariant feature transforms [SIFT]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V20/00—Scenes; Scene-specific elements
- G06V20/10—Terrestrial scenes
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Physics & Mathematics (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Multimedia (AREA)
- Data Mining & Analysis (AREA)
- Bioinformatics & Computational Biology (AREA)
- Bioinformatics & Cheminformatics (AREA)
- Evolutionary Biology (AREA)
- Evolutionary Computation (AREA)
- Artificial Intelligence (AREA)
- General Engineering & Computer Science (AREA)
- Life Sciences & Earth Sciences (AREA)
- Image Analysis (AREA)
Abstract
本公开提供一种重定位方法、重定位装置、存储介质与电子设备,涉及计算机视觉技术领域。其中,所述方法包括:基于地图数据中关键帧图像的语义标签生成引导信息,所述引导信息用于在重定位中引导采集关于现实场景的图像;对所采集的当前帧图像提取语义特征,得到所述当前帧图像的语义标签;对比所述当前帧图像的语义标签和各所述关键帧图像的语义标签是否相似,如果相似,则将所述关键帧图像确定为相似关键帧图像;匹配所述当前帧图像和所述相似关键帧图像,得到当前位姿。本公开可以通过引导信息引导采集场景图像,有利于加速重定位过程,并通过语义标签对比的方式筛选关键帧图像,减少重定位过程的运算量,提高效率。
Description
技术领域
本公开涉及计算机视觉技术领域,尤其涉及一种重定位方法、重定位装置、计算机可读存储介质与电子设备。
背景技术
在AR(Augmented Reality,增强现实)、SLAM(Simultaneous Localization andMapping,即时定位与建图)等领域中,重定位技术具有重要的应用,通过对相机采集的图像和已经建立的地图进行匹配,将搭载相机的设备(如智能手机、机器人等)重定位到地图中,以实现诸如多人AR共享地图、扫地机器人根据已经建立的地图规划路线等场景功能。
相关技术中,在重定位时,需要将当前帧提取图像特征,并与地图中的每个关键帧进行匹配,提取匹配成功的关键帧,基于其与当前帧的匹配关系,优化得到当前帧的位姿,从而实现重定位。然而,该方案需要将当前帧与所有关键帧进行匹配,运算量较大,效率较低,特别当关键帧数量很多时,匹配耗时过多,导致重定位难以与设备的移动同步,跟踪效果较差。
需要说明的是,在上述背景技术部分公开的信息仅用于加强对本公开的背景的理解,因此可以包括不构成对本领域普通技术人员已知的现有技术的信息。
发明内容
本公开提供了一种重定位方法、重定位装置、计算机可读存储介质与电子设备,进而至少在一定程度上克服相关技术中重定位效率较低的问题。
本公开的其他特性和优点将通过下面的详细描述变得显然,或部分地通过本公开的实践而习得。
根据本公开的第一方面,提供一种重定位方法,包括:基于地图数据中关键帧图像的语义标签生成引导信息,所述引导信息用于在重定位中引导采集关于现实场景的图像;对所采集的当前帧图像提取语义特征,得到所述当前帧图像的语义标签;对比所述当前帧图像的语义标签和各所述关键帧图像的语义标签是否相似,如果相似,则将所述关键帧图像确定为相似关键帧图像;匹配所述当前帧图像和所述相似关键帧图像,得到当前位姿。
根据本公开的第二方面,提供一种重定位装置,包括:引导信息生成模块,用于基于地图数据中关键帧图像的语义标签生成引导信息,所述引导信息用于在重定位中引导采集关于现实场景的图像;语义特征提取模块,用于对所采集的当前帧图像提取语义特征,得到所述当前帧图像的语义标签;语义标签对比模块,用于对比所述当前帧图像的语义标签和各所述关键帧图像的语义标签是否相似,如果相似,则将所述关键帧图像确定为相似关键帧图像;帧间匹配模块,用于匹配所述当前帧图像和所述相似关键帧图像,得到当前位姿。
根据本公开的第三方面,提供一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现上述第一方面的重定位方法及其可能的实施方式。
根据本公开的第四方面,提供一种电子设备,包括:处理器;以及存储器,用于存储所述处理器的可执行指令;其中,所述处理器配置为经由执行所述可执行指令来执行上述第一方面的重定位方法及其可能的实施方式。
本公开的技术方案具有以下有益效果:
根据上述重定位方法、重定位装置、计算机可读存储介质与电子设备,首先,基于地图数据中关键帧图像的语义标签生成引导信息,以引导采集现实场景的图像;其次对所采集的当前帧图像提取语义特征,得到语义标签;再次,将该语义标签与关键帧图像的语义标签对比是否相似,以确定相似关键帧图像;最后,匹配当前帧图像和相似关键帧图像,得到当前位姿。一方面,通过引导信息帮助设备或用户更加针对性地采集场景图像,有利于减少无效图像的采集,加速重定位过程。另一方面,通过语义标签对比的方式,从关键帧图像中筛选出相似关键帧图像,以进一步匹配,从而无需将当前帧图像与每一关键帧图像都进行匹配,减少重定位过程的运算量,提高效率。
应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本公开。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本公开的实施例,并与说明书一起用于解释本公开的原理。显而易见地,下面描述中的附图仅仅是本公开的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1示出本示例性实施方式中运行环境的***架构示意图;
图2示出本示例性实施方式中一种移动终端的结构示意图;
图3示出本示例性实施方式中一种重定位方法的流程图;
图4示出本示例性实施方式中重定位的示意性流程;
图5示出本示例性实施方式中SLAM方法的流程图;
图6示出本示例性实施方式中SLAM的示意性流程;
图7示出本示例性实施方式中一种重定位装置的结构框图;
图8示出本示例性实施方式中用于实现上述方法的计算机可读存储介质的示意图。
具体实施方式
现在将参考附图更全面地描述示例实施方式。然而,示例实施方式能够以多种形式实施,且不应被理解为限于在此阐述的范例;相反,提供这些实施方式使得本公开将更加全面和完整,并将示例实施方式的构思全面地传达给本领域的技术人员。所描述的特征、结构或特性可以以任何合适的方式结合在一个或更多实施方式中。在下面的描述中,提供许多具体细节从而给出对本公开的实施方式的充分理解。然而,本领域技术人员将意识到,可以实践本公开的技术方案而省略所述特定细节中的一个或更多,或者可以采用其它的方法、组元、装置、步骤等。在其它情况下,不详细示出或描述公知技术方案以避免喧宾夺主而使得本公开的各方面变得模糊。
此外,附图仅为本公开的示意性图解,并非一定是按比例绘制。图中相同的附图标记表示相同或类似的部分,因而将省略对它们的重复描述。附图中所示的一些方框图是功能实体,不一定必须与物理或逻辑上独立的实体相对应。可以采用软件形式来实现这些功能实体,或在一个或多个硬件模块或集成电路中实现这些功能实体,或在不同网络和/或处理器装置和/或微控制器装置中实现这些功能实体。
本公开示例性实施方式提供一种重定位方法和重定位装置。
图1示出了本公开示例性实施方式运行环境的***架构示意图。
如图1所示,该***架构100可以包括:相机110、网络120和电子设备130。相机110用于采集现实场景的图像,现实场景是指相机110所在的真实世界环境,如现实的房间、咖啡店、商场或者街道等;电子设备130可以是具有处理功能的设备,如计算机、智能手机、平板电脑、智能可穿戴设备(如AR眼镜)、机器人、无人机等。相机110可以通过网络120,与电子设备130形成通讯连接,将所采集的图像或视频传输至电子设备130,由电子设备130进行分析处理。图1示出相机110设置于电子设备130之外,在一种实施方式中,相机110还可以内置于电子设备130中,如电子设备130可以是配置了相机的智能手机或机器人。
需要说明的是,本示例性实施方式中,是对相机110进行重定位,如果相机110内置于电子设备130,也相当于对电子设备130进行重定位。
应当理解的是,图1中各装置的数量仅仅是示意性的,例如根据实现需要,可以设置多个相机,其分别通过网络120连接到电子设备130,电子设备130可以同时对每个相机的图像进行分析处理,等等。
下面以图2中的移动终端200为例,对上述电子设备130的构造进行示例性说明。在另一些实施方式中,移动终端200可以包括比图示更多或更少的部件,或者组合某些部件,或者拆分某些部件,或者不同的部件布置。图示的部件可以以硬件、软件或软件和硬件的组合实现。各部件间的接口连接关系只是示意性示出,并不构成对移动终端200的结构限定。在另一些实施方式中,移动终端200也可以采用与图2不同的接口连接方式,或多种接口连接方式的组合。
如图2所示,移动终端200具体可以包括:处理器210、内部存储器221、外部存储器接口222、通用串行总线(Universal Serial Bus,USB)接口230、充电管理模块240、电源管理模块241、电池242、天线1、天线2、移动通信模块250、无线通信模块260、音频模块270、扬声器271、受话器272、麦克风273、耳机接口274、传感器模块280、显示屏290、摄像模组291、指示器292、马达293、按键294以及用户标识模块(Subscriber Identification Module,SIM)卡接口295等。其中传感器模块280可以包括深度传感器2801、压力传感器2802、陀螺仪传感器2803、气压传感器2804等。
处理器210可以包括一个或多个处理单元,例如:处理器210可以包括应用处理器(Application Processor,AP)、调制解调处理器、图形处理器(Graphics ProcessingUnit,GPU)、图像信号处理器(Image Signal Processor,ISP)、控制器、视频编解码器、数字信号处理器(Digital Signal Processor,DSP)、基带处理器和/或神经网络处理器(Neural-Network Processing Unit,NPU)等。其中,不同的处理单元可以是独立的器件,也可以集成在一个或多个处理器中。
控制器可以根据指令操作码和时序信号,产生操作控制信号,完成取指令和执行指令的控制。
处理器210中还可以设置存储器,用于存储指令和数据。存储器可以存储用于实现六个模块化功能的指令:检测指令、连接指令、信息管理指令、分析指令、数据传输指令和通知指令,并由处理器210来控制执行。在一些实施方式中,处理器210中的存储器为高速缓冲存储器。该存储器可以保存处理器210刚用过或循环使用的指令或数据。如果处理器210需要再次使用该指令或数据,可从所述存储器中直接调用。避免了重复存取,减少了处理器210的等待时间,因而提高了***的效率。
在一些实施方式中,处理器210可以包括一个或多个接口。接口可以包括集成电路(Inter-Integrated Circuit,I2C)接口、集成电路内置音频(Inter-Integrated CircuitSound,I2S)接口、脉冲编码调制(Pulse Code Modulation,PCM)接口、通用异步收发传输器(Universal AsynchronousReceiver/Transmitter,UART)接口、移动产业处理器接口(Mobile Industry Processor Interface,MIPI)、通用输入输出(General-PurposeInput/Output,GPIO)接口、用户标识模块(Subscriber Identity Module,SIM)接口和/或通用串行总线(Universal Serial Bus,USB)接口等。通过不同的接口和移动终端200的其他部件形成连接。
USB接口230是符合USB标准规范的接口,具体可以是MiniUSB接口,MicroUSB接口,USBTypeC接口等。USB接口230可以用于连接充电器为移动终端200充电,也可以连接耳机,通过耳机播放音频,还可以用于移动终端200连接其他触控终端,例如连接电脑、***设备等。
充电管理模块240用于从充电器接收充电输入。其中,充电器可以是无线充电器,也可以是有线充电器。在一些有线充电的实施方式中,充电管理模块240可以通过USB接口230接收有线充电器的充电输入。在一些无线充电的实施方式中,充电管理模块240可以通过移动终端200的无线充电线圈接收无线充电输入。充电管理模块240为电池242充电的同时,还可以通过电源管理模块241为触控终端供电。
电源管理模块241用于连接电池242、充电管理模块240与处理器210。电源管理模块241接收电池242和/或充电管理模块240的输入,为处理器210、内部存储器221、显示屏290、摄像模组291和无线通信模块260等供电,还可以用于监测电池容量,电池循环次数,电池健康状态(漏电,阻抗)等参数。
移动终端200的无线通信功能可以通过天线1、天线2、移动通信模块250、无线通信模块260、调制解调处理器以及基带处理器等实现。
天线1和天线2用于发射和接收电磁波信号。移动终端200中的每个天线可用于覆盖单个或多个通信频带。不同的天线还可以复用,以提高天线的利用率。例如:可以将天线1复用为无线局域网的分集天线。在另外一些实施方式中,天线可以和调谐开关结合使用。
移动通信模块250可以提供应用在移动终端200上的包括2G/3G/4G/5G等无线通信的解决方案。移动通信模块250可以包括至少一个滤波器,开关,功率放大器,低噪声放大器(Low Noise Amplifier,LNA)等。移动通信模块250可以由天线1接收电磁波,并对接收的电磁波进行滤波、放大等处理,传送至调制解调处理器进行解调。移动通信模块250还可以对经调制解调处理器调制后的信号放大,经天线1转为电磁波辐射出去。
无线通信模块260可以提供应用在移动终端200上的包括无线局域网(WirelessLocal Area Networks,WLAN)(如无线保真(Wireless Fidelity,Wi-Fi)网络)、蓝牙(Bluetooth,BT)、全球导航卫星***(Global Navigation Satellite System,GNSS)、调频(Frequency Modulation,FM)、近距离无线通信技术(Near Field Communication,NFC)、红外技术(Infrared,IR)等无线通信的解决方案。无线通信模块260可以是集成至少一个通信处理模块的一个或多个器件。无线通信模块260经由天线2接收电磁波,将电磁波信号调频以及滤波处理,将处理后的信号发送到处理器210。无线通信模块260还可以从处理器210接收待发送的信号,对其进行调频,放大,经天线2转为电磁波辐射出去。
在一些实施方式中,移动终端200的天线1和移动通信模块250耦合,天线2和无线通信模块260耦合,使得移动终端200可以通过无线通信技术与网络以及其他设备通信。所述无线通信技术可以包括全球移动通讯***(Global System for Mobilecommunications,GSM),通用分组无线服务(General Packet Radio Service,GPRS),码分多址接入(Code Division Multiple Access,CDMA),宽带码分多址(Wideband CodeDivision Multiple Access,WCDMA),时分码分多址(Time Division-Synchronous CodeDivision Multiple Access,TD-SCDMA),长期演进(Long Term Evolution,LTE),新空口(New Radio,NR),BT,GNSS,WLAN,NFC,FM,和/或IR技术等。所述GNSS可以包括全球卫星定位***(Global Positioning System,GPS),全球导航卫星***(Global NavigationSatellite System,GLONASS),北斗卫星导航***(Beidou Navigation SatelliteSystem,BDS),准天顶卫星***(Quasi-Zenith Satellite System,QZSS)和/或星基增强***(Satellite Based Augmentation Systems,SBAS)。
移动终端200通过GPU、显示屏290及应用处理器等实现显示功能。GPU为的微处理器,连接显示屏290和应用处理器。GPU用于执行数学和几何计算,用于图形渲染。处理器210可包括一个或多个GPU,其执行程序指令以生成或改变显示信息。
移动终端200可以包括一个或多个显示屏290,用于显示图像,视频等。显示屏290包括显示面板。显示面板可以采用液晶显示屏(Liquid Crystal Display,LCD),有机发光二极管(Organic Light-Emitting Diode,OLED),有源矩阵有机发光二极体或主动矩阵有机发光二极体(Active-Matrix Organic Light Emitting Diode,AMOLED),柔性发光二极管(Flexlight-Emitting Diode,FLED),Miniled,MicroLed,Micro-oLed,量子点发光二极管(Quantum dot Light Emitting Diodes,QLED)等。
移动终端200可以通过ISP、摄像模组291、视频编解码器、GPU、显示屏290及应用处理器等实现拍摄功能。
ISP用于处理摄像模组291反馈的数据。例如,拍照时,打开快门,光线通过镜头被传递到摄像头感光元件上,光信号转换为电信号,摄像头感光元件将所述电信号传递给ISP处理,转化为肉眼可见的图像。在一些实施方式中,ISP可以设置在摄像模组291中。
移动终端200可以包括一个或多个摄像模组291,用于捕获静态图像或视频。物体通过镜头生成光学图像投射到感光元件。感光元件把光信号转换成电信号,之后将电信号传递给ISP转换成数字图像信号。ISP将数字图像信号输出到DSP加工处理。DSP将数字图像信号转换成标准的RGB,YUV等格式的图像信号。
视频编解码器用于对数字视频压缩或解压缩。移动终端200可以支持一种或多种视频编解码器。这样,移动终端200可以播放或录制多种编码格式的视频,例如:动态图像专家组(Moving Picture Experts Group,MPEG)1,MPEG2,MPEG3,MPEG4等。
外部存储器接口222可以用于连接外部存储卡,例如Micro SD卡,实现扩展移动终端200的存储能力。外部存储卡通过外部存储器接口222与处理器210通信,实现数据存储功能。例如将音乐,视频等文件保存在外部存储卡中。
内部存储器221可以用于存储计算机可执行程序代码,所述可执行程序代码包括指令。内部存储器221可以包括存储程序区和存储数据区。其中,存储程序区可存储操作***,至少一个功能所需的应用程序(比如声音播放功能,图像播放功能等)等。存储数据区可存储移动终端200使用过程中所创建的数据(比如音频数据,电话本等)等。此外,内部存储器221可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件,闪存器件,通用闪存存储器(Universal Flash Storage,UFS)等。处理器210通过运行存储在内部存储器221的指令和/或存储在设置于处理器中的存储器的指令,执行移动终端200的各种功能应用以及数据处理。
移动终端200可以通过音频模块270、扬声器271、受话器272、麦克风273、耳机接口274及应用处理器等实现音频功能。例如音乐播放、录音等。
音频模块270用于将数字音频信息转换成模拟音频信号输出,也用于将模拟音频输入转换为数字音频信号。音频模块270还可以用于对音频信号编码和解码。在一些实施方式中,音频模块270可以设置于处理器210中,或将音频模块270的部分功能模块设置于处理器210中。
扬声器271,也称“喇叭”,用于将音频电信号转换为声音信号。移动终端200可以通过扬声器271收听音乐,或收听免提通话。
受话器272,也称“听筒”,用于将音频电信号转换成声音信号。当移动终端200接听电话或语音信息时,可以通过将受话器272靠近人耳接听语音。
麦克风273,也称“话筒”,“传声器”,用于将声音信号转换为电信号。当拨打电话或发送语音信息时,用户可以通过人嘴靠近麦克风273发声,将声音信号输入到麦克风273。移动终端200可以设置多个麦克风273,以实现降噪、识别声音来源、定向录音等功能。
耳机接口274用于连接有线耳机。耳机接口274可以是USB接口230,也可以是3.5mm的开放移动触控终端平台(Open Mobile Terminal Platform,OMTP)标准接口,美国蜂窝电信工业协会(Cellular Telecommunications Industry Association of the USA,CTIA)标准接口。
深度传感器2801用于获取景物的深度信息。在一些实施方式中,深度传感器可以设置于摄像模组291。压力传感器2802用于感受压力信号,可以将压力信号转换成电信号,用于实现压力触控等功能。陀螺仪传感器2803可以用于确定移动终端200的运动姿态,可用于拍摄防抖、导航、体感游戏等场景。气压传感器2804用于测量气压,可通过计算海拔高度,辅助定位和导航。
此外,根据实际需要,还可以在传感器模块280中设置其他功能的传感器,例如磁传感器、加速度传感器、距离传感器、接近光传感器、指纹传感器、温度传感器、触摸传感器、环境光传感器、骨传导传感器等等。
指示器292可以是指示灯,可以用于指示充电状态,电量变化,也可以用于指示消息,未接来电,通知等。
马达293可以产生振动提示,例如来电、闹钟、接收信息等的振动提示,也可以用于触摸振动反馈等。
按键294包括开机键,音量键等。按键294可以是机械按键。也可以是触摸式按键。移动终端200可以接收按键输入,产生与移动终端200的用户设置以及功能控制有关的键信号输入。
移动终端200可以支持一个或多个SIM卡接口295,用于连接SIM卡,使移动终端200通过SIM卡和网络交互,实现通话以及数据通信等功能。
下面对本公开示例性实施方式的重定位方法和重定位装置进行具体说明。
图3示出该重定位方法的示意性流程,可以包括以下步骤S310至S340:
步骤S310,基于地图数据中关键帧图像的语义标签生成引导信息,引导信息用于在重定位中引导采集关于现实场景的图像。
其中,地图数据是指已经建立的关于现实场景的三维地图模型,可以由其他设备建立并同步到本设备,也可以由本设备在以前建图的环节所建立得到。地图数据一般是基于某一世界坐标系,所确定的大量地图点的空间坐标集合,可以看作是三维点云。在建立地图数据时,通常从拍摄的连续帧图像中选取一定数量的关键帧图像,这是为了减少建模过程中的信息冗余而选取的具有代表性的帧;对关键帧图像提取语义特征,可以得到其语义标签,直观地说,语义标签可以包括图像信息的关键词,例如图像类别、图像中存在哪些物体等。
在重定位时,一般需要相机一边移动一边拍摄周围的现实场景,例如用户可以手持手机,打开摄像头,一边走动一边拍摄现实场景,以记录场景的特征信息。本示例性实施方式中,为了提高重定位效率,可以根据上述语义标签生成引导信息。例如,关键帧图像中识别到冰箱、沙发等特征性较强的物体,将冰箱、沙发作为关键词写入关键帧图像的语义标签中;在重定位时,可以引导用户拍摄冰箱、沙发,如可以显示引导信息“请将镜头对准冰箱”,以引导用户拍摄更加有效的场景图像。在机器人重定位的场景中,一般是由机器人自动移动并采集场景图像,可以在后台生成引导信息并加以利用,例如生成引导信息“寻找冰箱”,机器人可以快速转动镜头,同时进行粗扫描,识别镜头中是否有冰箱,一旦识别到冰箱,则向其靠近并进一步精细拍摄。
步骤S320,对所采集的当前帧图像提取语义特征,得到当前帧图像的语义标签。
其中,当前帧图像提取语义特征,可以和关键帧图像提取语义特征的方式相同。
在一种可选的实施方式中,步骤S320可以包括:
从当前帧图像提取局部特征;
确定每个局部特征在预先建立的视觉词典中对应的视觉词,以视觉词的集合形成当前帧图像的语义标签。
其中,局部特征可以采用SIFT(Scale-Invariant Feature Transform,尺度不变特征变换)、ORB(Oriented FAST and Rotated BRIEF,面向FAST(Features FromAccelerated Segment Test,基于加速分割检测的特征)算法和旋转BRIEF(Binary RobustIndependent Elementary Features,二进制鲁棒独立基本特征))、SURF(Speeded UpRobust Features,加速鲁棒特征)等语义分割算法进行提取与描述;还可以对当前帧图像进行目标检测,将检测到的物体特征作为局部特征。
视觉词典是根据现实场景的特征所建立的词库,包括现实场景中各种视觉语义信息所对应的关键词,即视觉词,例如现实场景是家庭室内时,视觉词典中可能包括室内的家具、电器、墙壁或地板的图案、纹理等视觉词。在建立地图数据时,可以根据全部关键帧的语义标签,汇总其中出现的所有词,形成视觉词典。
本示例性实施方式中,可以采用BoW模型(Bag Of Words,词袋模型),在提取局部特征后,将每个局部特征对应到视觉词典中特定的视觉词,形成了一个视觉词的集合,该集合即当前帧图像的语义标签。需要说明的是,不同的局部特征可能对应于同一视觉词,因此语义标签中视觉词的数量可能小于所提取的局部特征的数量。
在一种可选的实施方式中,确定每个局部特征对应的视觉词后,可以统计每个视觉词在当前帧图像中的出现频数,删除频数过低的视觉词,将剩余的视觉词形成语义标签,这样可以移除当前帧图像中非主要特征的影响。关于判断频数是否过低,可以根据实际需求确定判断标准,如设定相应的阈值,将频数低于该阈值的视觉词删除等,本公开对此不做限定。
步骤S330,对比当前帧图像的语义标签和各关键帧图像的语义标签是否相似,如果相似,则将关键帧图像确定为相似关键帧图像。
由于语义标签是对图像语义特征的表示,将两个图像的语义标签进行对比,如果语义标签相似,则可以判断两个图像的内容相近。在重定位中,无需将当前帧图像与每个关键帧图像进行匹配,而以语义标签相似作为前置的过滤条件,如果关键帧图像与当前帧图像的语义标签相似,则将该关键帧图像标记为当前帧图像的相似关键帧图像。从另一个角度来说,如果关键帧图像与当前帧图像的语义标签不相似,则说明两个图像的内容差别较大,即使进行后续的匹配,也无法匹配成功。
实际应用中,对于同一当前帧图像,可能得到多个相似关键帧图像。
关于如何判断当前帧图像的语义标签和关键帧图像的语义标签是否相似,下面提供两种方案:
方案一、判断关键帧图像的语义标签中是否包括当前帧图像的语义标签中的全部视觉词,如果包括,则确定当前帧图像的语义标签和关键帧图像的语义标签相似。换而言之,如果当前帧图像的语义标签是关键帧图像的语义标签的子集,即当前帧图像所包含的视觉词在关键帧图像中均有出现,则两语义标签相似。
方案二、计算当前帧图像的语义标签和关键帧图像的语义标签的交并比,具体来说,将两语义标签取交集,统计其中视觉词的数量,将两语义标签取并集,统计其中视觉词的数量,前一数量与后一数量之比即交并比。如果交并比大于特定的阈值,如70%、80%等经验阈值,则确定当前帧图像的语义标签和关键帧图像的语义标签相似。
实际应用中,可以根据情况采用任一种方案,或者将两种方案结合,例如需要同时满足关键帧图像的语义标签包括当前帧图像的语义标签中的全部视觉词,且两者的交并比大于特定的阈值,才确定两语义标签相似。当然,本公开并不限定于上述两种方案,本领域技术人员容易想到的其他判断语义标签相似的方法,都属于本公开的保护范围。
在一种可选的实施方式中,如果当前帧图像的语义标签和各关键帧图像的语义标签均不相似,则可以确定重定位失败,重新显示上述引导信息,引导用户继续采集场景图像,得到新的当前帧图像,并重复步骤S320和S330。
步骤S340,匹配当前帧图像和上述相似关键帧图像,得到当前位姿。
其中,当前位姿是当前帧图像在世界坐标系中对应的位姿。世界坐标系地图数据所采用的三维坐标系。在匹配当前帧图像和相似关键帧图像之前,当前帧图像是基于相机坐标系所确定的位姿,匹配过程相当于将相机坐标系和世界坐标系进行统一的过程。在得到当前位姿后,一般认为重定位成功。
在一种可选的实施方式中,步骤S340可以包括:
基于当前帧图像和相似关键帧图像之间点对的误差,构建损失函数;
通过求解损失函数的最小值,得到当前帧图像对应的当前位姿。
具体来说,对于当前帧图像中的每个特征点,在关键帧图像中确定对应的特征点,两特征点形成一个点对,两图像之间形成大量点对。匹配的目的在于从图像全局上,优化所有点对之间的误差,因此将所有点对的误差求和,构建损失函数(也可以称为优化函数、误差函数、约束函数等)如下:
Loss(Cur,Sim)=∑i∈Curei,k (1)
其中,Loss(Cur,Sim)表示当前帧图像(Cur)和相似关键帧图像(Sim)之间的损失函数。
ei,k表示当前帧图像中的特征点i与相似关键帧图像中对应的特征点(记为i')之间的误差(即点对的误差)。ei,k可以通过多种方式进行表征,下面提供两种示例性实施方式:
在一种实施方式中,可以在当前帧图像中得到特征点i的描述子,在相似关键帧图像中得到特征点i'的描述子,两描述子之差即ei,k。
在另一种实施方式中,可以通过重投影误差计算ei,k,参考以下公式(2)所示:
其中,w表示世界坐标系,为当前位姿,表示现实场景从世界坐标系转换到当前帧图像的平面上所采用的旋转及平移参数;为特征点i在当前帧图像中的平面坐标,为特征点i'的世界坐标,π()表示三维的特征点i'投影到图像平面(此处为当前帧图像的平面)。因此,公式(2)表示将三维的特征点i'重投影到当前帧图像的平面后,与特征点i之间的平面坐标误差。
进一步的,在损失函数(1)中,还可以引入鲁棒核函数ρ(),用于减少点对的误配对对最终结果的影响,得到损失函数(4):
Loss(Cur,Sim)=∑i∈Curρ(ei,k) (4)
更进一步的,还可以引入特征点的信息矩阵,得到损失函数(5):
损失函数是对所有点对的误差进行求和,因此求解损失函数的最小值,可以从图像全局上优化两图像间的匹配误差,得到当前位姿。以损失函数(5)为例,有如下关系:
在一种可选的实施方式中,在求解损失函数的最小值后,可以执行以下步骤:
计算当前帧图像和相似关键帧图像之间每个点对的误差,将误差小于第一点对误差阈值的点对确定为内点对;
如果内点对的数量大于第一点对数量阈值,则确定重定位成功;
如果内点对的数量小于第一点对数量阈值,则确定重定位失败,更换为另一相似关键帧图像,与当前帧图像进行匹配。
其中,第一点对误差阈值、第一点对数量阈值均是根据经验与需求所确定的参数,实际应用中可调。在求解得到当前位姿后,将其代入ei,k,可以计算每个点对中i与i'的误差,如果低于第一点对误差阈值,则将i记为内点(可以看作是处于相似关键帧图像的范围以内的点,内点一般是匹配可信度较高的点),相应的该点对为内点对。如果内点对的数量大于第一点对数量阈值,说明两图像整体匹配的情况较好,确定重定位成功;反之则说明匹配的情况较差,确定重定位失败,可以更换为另一相似关键帧图像,重复步骤S340。
在一种可选的实施方式中,步骤S340之后,还可以对当前帧图像进行几何验证,即判断当前帧图像是否满足几何约束条件,如果几何验证通过,则确定重定位成功,得到的当前位姿有效;反之确定重定位失败,可以重新显示上述引导信息,引导用户继续采集场景图像,得到新的当前帧图像,并回到步骤S320。
图4示出了重定位的另一种示意性流程,包括以下步骤:
步骤S401,开始重定位后,获取当前帧图像,当前帧图像为相机拍摄的现实场景的图像。
步骤S402,从当前帧图像提取语义特征,基于BoW模型生成对应的语义标签。
步骤S403,判断地图数据的关键帧图像是否具有语义标签,这是由建图过程所决定的,如果在建图时对关键帧图像进行语义识别并记录语义标签,则此时关键帧图像具有语义标签。如果关键帧图像不具有语义标签,则继续执行步骤S404至S406。
步骤S404,将当前帧图像与关键帧图像进行特征匹配,一般需要将当前帧图像与每个关键帧图像分别匹配,选取其中匹配度最高的一个或多个关键帧图像,基于其与当前帧图像之间的特征点误差,优化求解当前位姿。
步骤S405,对当前帧图像进行几何验证。
步骤S406,几何验证通过时,确定重定位成功。
在步骤S403中,如果关键帧图像具有语义标签,则继续执行步骤S407。
步骤S407,匹配当前帧图像的语义标签和关键帧图像的语义标签,以确定相似关键帧图像。
步骤S408,判断是否找到相似关键帧图像。如果未找到,即相似关键帧图像的数量为0,则跳转到步骤S409。
步骤S409,确定重定位失败,重新显示引导信息,以获取新的关键帧图像,跳转至步骤S401。
在步骤S408中,如果找到相似关键帧图像,则继续执行步骤S410。
步骤S410,选择一相似关键帧图像。一般的,当步骤S407中匹配得到多个相似关键帧图像时,可以随机选择一个,或者按照与当前帧图像语义标签的相似度对各相似关键帧图像排序,从第一个开始选择。
步骤S411,匹配当前帧图像和所选的相似关键帧图像,以求解当前位姿。
步骤S412,在得到当前位姿后,将其带入当前帧图像,以计算内点的数量,并判断该数量是否大于第一点对数量阈值。如果小于第一点对数量阈值,则跳转至步骤S410,重新选择一相似关键帧图像,并再次与当前帧图像匹配;如果大于第一点对数量阈值,则跳转至步骤S405进行几何验证,在验证通过时确定重定位成功。
重定位流程结束。
重定位是基于已经建立的地图数据进行定位,该地图数据可以来源于其他用户或设备的分享,也可以来源于本设备的历史建图行为。如果步骤S310中的地图数据来源于本设备,在重定位之前,可以通过执行SLAM过程得到地图数据以及关键帧的语义标签,参考图5所示,该SLAM过程具体包括以下步骤S510至S540:
步骤S510,获取关于现实场景的连续帧图像,并同步解析连续帧图像中每一帧图像对应的位姿,以进行位姿跟踪。
在SLAM的起始时刻,从零开始对场景建模,此时未采集任何现实场景的图像;SLAM流程开始后,相机跟随用户或者机器人在现实场景内移动,一边移动一边采集图像,形成连续帧图像,实时进行位姿的解析与跟踪。
步骤S520,从上述连续帧图像中提取关键帧图像。
通常可以每间隔一定的帧数选取一帧为关键帧,或者在图像内容变化较多时提取关键帧,本公开对于关键帧图像的提取条件不做特别限定。
步骤S530,对关键帧图像提取语义特征,得到关键帧图像的语义标签。
其中,从关键帧图像中提取的语义特征一般是局部特征,将关键帧图像进行语义分割,并基于BoW模型确定视觉词,形成集合,即关键帧图像的语义标签。
每提取一关键帧图像的语义标签,可以将其中的视觉词加入到视觉词典中,以实现视觉词典的不断更新与扩充。
步骤S540,根据关键帧图像及其位姿,建立地图数据。
一般的,在获得一定数量的关键帧图像后,电子设备可以初始化场景的地图数据,通常只包括现实场景的一小部分,或者与实际场景有差别;此后,相机每提取一关键帧图像,电子设备都可以根据该图像对地图数据进行更新优化,增加地图中没有的地图点,或者修正已有地图点的位置等。由此不断迭代地图点的信息,直到建立较为完整、准确的地图数据。
本示例性实施方式中,以连续帧图像中的当前待处理帧为例,说明其位姿跟踪过程。
首先可以提取当前待处理帧中的特征点,一般是图像中具有代表性的、辨识度较高的点或区域,例如图像中的角点、边缘和一些区块等,可以采用SIFT、ORB、SURF等算法提取特征点并进行描述。
然后将特征点已建立的地图数据中的局部地图点进行匹配。局部地图点是指以当前帧图像所拍摄区域为中心的一个局部范围内、在当前帧之前已检测到的场景的地图点,地图点是指在场景的地图模型中已添加的点。本示例性实施方式中,局部地图点可以是上一关键帧以及上一关键帧的共视关键帧中出现过的地图点。其中,上一关键帧为距离当前待处理帧最近的关键帧;共视是指两帧图像的内容相似度较高,或者具有共同的视场角(Field Of Vision,FOV),说明两帧图像所拍摄的区域重合度较高,具有共视关系,其中一帧为另一帧的共视帧。本示例性实施方式可以检测其他关键帧与上一关键帧的特征点是否为相同的点,若相同的特征点数量超过一定的比例,则该其他关键帧为上一关键帧的共视关键帧,也可以根据相同特征点的数量确定每个其他关键帧与上一关键帧的共视程度,从高到低选取一定数量的其他关键帧,为上一关键帧的共视关键帧。在确定上一关键帧及其共视关键帧后,对其中的地图点取并集,得到的地图点为局部地图点。
在得到局部地图点后,可以采用与当前待处理帧相同的方法对局部地图点进行特征描述,并基于描述子进行匹配。在一种实施方式中,可以对局部地图点进行下采样,使其与当前帧图像中的特征点数量相同,然后对特征点的点云与局部地图点的点云进行ICP(Iterative Closest Point,迭代最近邻点)算法匹配。
在匹配特征点与局部地图点时,通过优化求解匹配误差的最小值,得到当前待处理帧的位姿,位姿跟踪过程结束。
在进行位姿跟踪的过程中,当位姿跟踪丢失时,可以触发开始重定位,执行图3或图4所示的方法流程。
需要说明的是,位姿跟踪丢失和位姿跟踪失败是不同的概念,前者一般是对整个SLAM过程而言,是指彻底丢失了位姿信息,需要进行重定位才能恢复位姿;后者一般相对于单一帧的位姿跟踪,如果未得到其位姿,或者位姿结果不准确,则确定该帧跟踪失败。
本示例性实施方式中,可以设置当连续N帧图像的位姿跟踪失败时,确定位姿跟踪丢失,N为大于或等于2的整数,可以根据实际应用需求或经验确定N的数值。其中,以连续帧图像中的当前待处理帧为例,可以设置以下条件①和②,并选取其中任意一条或两条的组合,如果当前待处理帧满足条件,则确定其位姿跟踪失败:
①从当前待处理帧提取特征点,与已建立的地图数据中的局部地图点进行匹配,匹配成功的特征点数量小于第二点对数量阈值。第二点对数量阈值可以根据实际应用需求或经验设定,通常当匹配成功的特征点数量小于第二点对数量阈值时,说明匹配的可信度较低,确定跟踪失败。
②在匹配当前待处理帧的特征点和局部地图点后,根据各特征点与对应的局部地图点之间的误差计算平均误差,平均误差大于第二点对误差阈值。第二点对误差阈值可以根据实际应用需求或经验设定,类似的,当平均误差大于第二点对误差阈值,说明整体匹配的效果较差,可信度较低,确定跟踪失败。
除了位姿跟踪以外,关键帧图像的提取以及建立地图数据也是SLAM中的重要环节,下面对这两个环节做进一步说明。
提取关键帧环节。在一种可选的实施方式中,可以通过以下方式提取关键帧图像:设置以下条件③~⑤,并选取其中任意一条或多条进行组合,如果当前待处理帧满足条件,则将其添加到关键帧图像中。
③当前待处理帧距离上一关键帧图像超过预设帧数阈值。上一关键帧图像为距离当前待处理帧最近的关键帧图像,预设帧数阈值可根据经验或实际应用需求设定,例如超过15帧则当前待处理帧为新的关键帧;
④当前待处理帧与上一关键帧图像的视差超过预设视差阈值。视差表示两帧所拍摄的区域的差异程度,差异越大,视差越大;预设视差阈值可根据经验或实际应用需求设定,例如可以设定为15%,当前待处理帧与上一关键帧的视差超过15%时为新的关键帧。
⑤将当前待处理帧的特征点与已建立的地图数据中的局部地图点进行匹配时,匹配成功的特征点数量小于第三点对数量阈值。第三点对数量阈值可根据经验或实际应用需求设定,匹配成功的特征点数量小于第三点对数量阈值时,说明当前待处理帧中存在较多的区域处于局部地图点以外,有效信息较多,可以作为新的关键帧。
建立地图数据环节。在提取关键帧图像后,可以将其加入关键帧集合。当集合中加入新的关键帧时,可以触发更新地图数据。具体来说,对于新的关键帧图像中,未匹配上局部地图点的特征点,将其与共视关键帧的特征点做匹配,通过匹配的特征点进行三角化,生成新的地图点,如果新的地图点重投影误差小于一定的阈值,则认为成功创建新的地图点,加入到地图数据中。
在一种可选的实施方式中,还可以基于新的关键帧图像进行局部BA(BundleAdjustment,集束调整)。具体来说,可以在关键帧集合中查找新的关键帧图像的共视关键帧(可以按共视区域的大小排序,选取其中靠前的若干个共视关键帧),将新的关键帧及其共视关键帧形成关键帧集合的子集,记为Fkey。对Fkey中全部关键帧图像所出现过的地图点取并集,形成地图点集合,记为Pmap。基于Fkey与其中每个关键帧图像的位姿、以及地图点集合Pmap,构建关键帧图像与地图点之间的损失函数Loss(Key,Point),主要包括重投影误差项,重投影误差项为Pmap中的任一地图点到Fkey中的任一关键帧的重投影误差之和,具体如下所示:
eo,p表示Pmap中的任一地图点p到Fkey中的任一关键帧图像o的重投影误差。进一步的,也可以在上述损失函数中添加鲁棒核函数ρ(),则有:
通过计算损失函数(7)或(8)的最小值,优化Fkey中各关键帧图像的位姿以及地图点集合中各地图点的坐标,以更新地图数据。
其中,优化求解可以如下所示:
在一种可选的实施方式中,还可以删除已建立的地图数据中异常的地图点。具体而言,基于上述建立的Fkey和Pmap,可以将满足以下条件的地图点作为异常地图点,从地图数据中删除。
如果地图点p在Fkey中各关键帧图像上的重投影误差的均值大于一定的阈值,则p为异常地图点。在计算重投影误差时,可以选取Fkey中的全部关键帧图像进行计算,也可以选取p具有投影的关键帧图像进行计算。
如果地图点p在Fkey中被跟踪成功的关键帧数量小于预测数量乘以预设比例,则p为异常地图点。被跟踪成功是指地图点p在关键帧上的重投影误差小于一定的阈值。基于p的位置以及各关键帧图像的位姿参数,可以预测p被跟踪成功的关键帧数量,该数量乘以小于或等于1的预设比例,结果用于衡量是否跟踪异常;预设比例表示允许的偏差程度,可根据经验或实际应用需求设定,例如为0.5。判断关系如下所示:
Ⅱ()为指示函数,在()内为真和假时分别取值为1和0;Thre表示为重投影误差设定的阈值,R为预设比例,Pre()表示预测函数。
图6示出了上述SLAM方法的示意性流程,主要包括位姿跟踪过程和关键帧处理过程两部分。下面分别说明。
位姿跟踪过程包括以下步骤:
步骤S601,采集得到当前待处理帧。
步骤S602,对当前待处理帧提取特征,生成多个特征点的描述子;
步骤S603,将当前待处理帧中特征点与局部地图点进行匹配,具体可以将描述子进行匹配,建立特征点与局部地图点之间的损失函数。
步骤S604,通过求解上述损失函数的最小值,优化得到当前待处理帧的位姿。
步骤S605,判断当前待处理帧是否满足关键帧的条件,如果满足,将其添加为新的关键帧,开始关键帧处理过程;如果不满足,将其作为普通帧处理,继续将下一帧作为当前待处理帧,回到步骤S601。
关键帧处理过程包括以下步骤:
步骤S606,确定新的关键帧,将其加入关键帧集合。
步骤S607,对该新的关键帧进行语义分割,提取局部的语义特征,并确定对应的视觉词,得到该新的关键帧对应的语义标签,并进行记录。
步骤S608,基于加入新的关键帧之后的关键帧集合,提取关键帧子集Fkey,并从重投影误差,跟踪成功的关键帧数量两个方面,对地图数据中的地图点进行判断,以确定异常地图点,将其从地图数据中删除。
步骤S609,基于关键帧与地图点之间的重投影误差,进行局部BA,以优化地图数据。
步骤S610,基于关键帧的位姿、地图数据中的地图点构建损失函数,通过优化求解损失函数的最小值,得到新的地图点,或者更新已有的地图点,从而建立或更新地图数据。
需要说明的是,本文中出现多个阈值,其类型与功能均有差异,各个阈值之间并无关联,其数值可以相同,也可以不同。
综上所述,本示例性实施方式中,首先,基于地图数据中关键帧图像的语义标签生成引导信息,以引导采集现实场景的图像;其次对所采集的当前帧图像提取语义特征,得到语义标签;再次,将该语义标签与关键帧图像的语义标签对比是否相似,以确定相似关键帧图像;最后,匹配当前帧图像和相似关键帧图像,得到当前位姿。一方面,通过引导信息帮助设备或用户更加针对性地采集场景图像,有利于减少无效图像的采集,加速重定位过程。另一方面,通过语义标签对比的方式,从关键帧图像中筛选出相似关键帧图像,以进一步匹配,从而无需将当前帧图像与每一关键帧图像都进行匹配,减少重定位过程的运算量,提高效率。
图7示出了本公开示例性实施方式的重定位装置。如图7所示,该重定位装置700可以包括:
引导信息生成模块710,用于基于地图数据中关键帧图像的语义标签生成引导信息,引导信息用于在重定位中引导采集关于现实场景的图像;
语义特征提取模块720,用于对所采集的当前帧图像提取语义特征,得到当前帧图像的语义标签;
语义标签对比模块730,用于对比当前帧图像的语义标签和各关键帧图像的语义标签是否相似,如果相似,则将关键帧图像确定为相似关键帧图像;
帧间匹配模块740,用于匹配当前帧图像和相似关键帧图像,得到当前位姿。
在一种可选的实施方式中,语义特征提取模块720,被配置为:
从当前帧图像提取局部特征;
确定每个局部特征在预先建立的视觉词典中对应的视觉词,以视觉词的集合形成当前帧图像的语义标签。
在一种可选的实施方式中,语义标签对比模块730,被配置为:
判断关键帧图像的语义标签中是否包括当前帧图像的语义标签中的全部视觉词,如果包括,则确定当前帧图像的语义标签和关键帧图像的语义标签相似。
在一种可选的实施方式中,帧间匹配模块740,被配置为::
基于当前帧图像和相似关键帧图像之间点对的误差,构建损失函数;
通过求解损失函数的最小值,得到当前帧图像对应的当前位姿。
在一种可选的实施方式中,帧间匹配模块740,还用于在求解损失函数的最小值后,执行以下步骤:
计算当前帧图像和相似关键帧图像之间每个点对的误差,将误差小于第一点对误差阈值的点对确定为内点对;
如果内点对的数量大于第一点对数量阈值,则确定重定位成功;
如果内点对的数量小于第一点对数量阈值,则确定重定位失败,更换为另一相似关键帧图像,与当前帧图像进行匹配。
在一种可选的实施方式中,语义标签对比模块730,还用于如果当前帧图像的语义标签和各关键帧图像的语义标签均不相似,则确定重定位失败,显示引导信息。
在一种可选的实施方式中,重定位装置700还可以包括同时定位与建图模块,该模块包括:
位姿跟踪单元,用于获取关于现实场景的连续帧图像,并同步解析连续帧图像中每一帧图像对应的位姿,以进行位姿跟踪;
关键帧提取单元,用于从连续帧图像中提取关键帧图像;
语义提取单元,用于对关键帧图像提取语义特征,得到关键帧图像的语义标签;
地图建立单元,用于根据关键帧图像及其位姿,建立地图数据。
在一种可选的实施方式中,位姿跟踪单元,还用于当位姿跟踪丢失时,触发开始重定位。
在一种可选的实施方式中,位姿跟踪单元,被配置为:
当连续N帧图像的位姿跟踪失败时,确定位姿跟踪丢失,N为大于或等于2的整数。
在一种可选的实施方式中,位姿跟踪单元,被配置为:
当连续帧图像中的当前待处理帧满足以下任意一条或多条时,确定当前待处理帧位姿跟踪失败:
从当前待处理帧提取特征点,与已建立的地图数据中的局部地图点进行匹配,匹配成功的特征点数量小于第二点对数量阈值;
在匹配当前待处理帧的特征点和局部地图点后,根据各特征点与对应的局部地图点之间的误差计算平均误差,平均误差大于第二点对误差阈值。
在一种可选的实施方式中,关键帧提取单元,被配置为:
当连续帧图像中的当前待处理帧满足以下任意一条或多条时,将当前待处理帧添加到关键帧图像中:
当前待处理帧距离上一关键帧图像超过预设帧数阈值,上一关键帧图像为距离当前待处理帧最近的关键帧图像;
当前待处理帧与上一关键帧图像的视差超过预设视差阈值;
将当前待处理帧的特征点与已建立的地图数据中的局部地图点进行匹配时,匹配成功的特征点数量小于第三点对数量阈值。
在一种可选的实施方式中,帧间匹配模块740,还用于对当前帧图像进行几何验证,如果几何验证通过,则确定重定位成功。
上述装置中各模块/单元的具体细节在方法部分实施方式中已经详细说明,未披露的细节内容可以参见方法部分的实施方式内容,因而不再赘述。
所属技术领域的技术人员能够理解,本公开的各个方面可以实现为***、方法或程序产品。因此,本公开的各个方面可以具体实现为以下形式,即:完全的硬件实施方式、完全的软件实施方式(包括固件、微代码等),或硬件和软件方面结合的实施方式,这里可以统称为“电路”、“模块”或“***”。
本公开的示例性实施方式还提供了一种计算机可读存储介质,其上存储有能够实现本说明书上述方法的程序产品。在一些可能的实施方式中,本公开的各个方面还可以实现为一种程序产品的形式,其包括程序代码,当程序产品在电子设备上运行时,程序代码用于使电子设备执行本说明书上述“示例性方法”部分中描述的根据本公开各种示例性实施方式的步骤。
参考图8所示,描述了根据本公开的示例性实施方式的用于实现上述方法的程序产品800,其可以采用便携式紧凑盘只读存储器(CD-ROM)并包括程序代码,并可以在电子设备,例如个人电脑上运行。然而,本公开的程序产品不限于此,在本文件中,可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行***、装置或者器件使用或者与其结合使用。
程序产品可以采用一个或多个可读介质的任意组合。可读介质可以是可读信号介质或者可读存储介质。可读存储介质例如可以为但不限于电、磁、光、电磁、红外线、或半导体的***、装置或器件,或者任意以上的组合。可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。
计算机可读信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了可读程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。可读信号介质还可以是可读存储介质以外的任何可读介质,该可读介质可以发送、传播或者传输用于由指令执行***、装置或者器件使用或者与其结合使用的程序。
可读介质上包含的程序代码可以用任何适当的介质传输,包括但不限于无线、有线、光缆、RF等等,或者上述的任意合适的组合。
可以以一种或多种程序设计语言的任意组合来编写用于执行本公开操作的程序代码,程序设计语言包括面向对象的程序设计语言—诸如Java、C++等,还包括常规的过程式程序设计语言—诸如“C”语言或类似的程序设计语言。程序代码可以完全地在用户计算设备上执行、部分地在用户设备上执行、作为一个独立的软件包执行、部分在用户计算设备上部分在远程计算设备上执行、或者完全在远程计算设备或服务器上执行。在涉及远程计算设备的情形中,远程计算设备可以通过任意种类的网络,包括局域网(LAN)或广域网(WAN),连接到用户计算设备,或者,可以连接到外部计算设备(例如利用因特网服务提供商来通过因特网连接)。
应当注意,尽管在上文详细描述中提及了用于动作执行的设备的若干模块或者单元,但是这种划分并非强制性的。实际上,根据本公开的示例性实施方式,上文描述的两个或更多模块或者单元的特征和功能可以在一个模块或者单元中具体化。反之,上文描述的一个模块或者单元的特征和功能可以进一步划分为由多个模块或者单元来具体化。
本领域技术人员在考虑说明书及实践这里公开的发明后,将容易想到本公开的其他实施方式。本申请旨在涵盖本公开的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本公开的一般性原理并包括本公开未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施方式仅被视为示例性的,本公开的真正范围和精神由权利要求指出。
应当理解的是,本公开并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本公开的范围仅由所附的权利要求来限。
Claims (15)
1.一种重定位方法,其特征在于,包括:
基于地图数据中关键帧图像的语义标签生成引导信息,所述引导信息用于在重定位中引导采集关于现实场景的图像;
对所采集的当前帧图像提取语义特征,得到所述当前帧图像的语义标签;
对比所述当前帧图像的语义标签和各所述关键帧图像的语义标签是否相似,如果相似,则将所述关键帧图像确定为相似关键帧图像;
匹配所述当前帧图像和所述相似关键帧图像,得到当前位姿。
2.根据权利要求1所述的方法,其特征在于,所述对所采集的当前帧图像提取语义特征,得到所述当前帧图像的语义标签,包括:
从所述当前帧图像提取局部特征;
确定每个所述局部特征在预先建立的视觉词典中对应的视觉词,以所述视觉词的集合形成所述当前帧图像的语义标签。
3.根据权利要求2所述的方法,其特征在于,所述对比所述当前帧图像的语义标签和各所述关键帧图像的语义标签是否相似,包括:
判断所述关键帧图像的语义标签中是否包括所述当前帧图像的语义标签中的全部所述视觉词,如果包括,则确定所述当前帧图像的语义标签和所述关键帧图像的语义标签相似。
4.根据权利要求1所述的方法,其特征在于,所述匹配所述当前帧图像和所述相似关键帧图像,得到当前位姿,包括:
基于所述当前帧图像和所述相似关键帧图像之间点对的误差,构建损失函数;
通过求解所述损失函数的最小值,得到所述当前帧图像对应的当前位姿。
5.根据权利要求4所述的方法,其特征在于,在求解所述损失函数的最小值后,所述方法还包括:
计算所述当前帧图像和所述相似关键帧图像之间每个所述点对的误差,将所述误差小于第一点对误差阈值的点对确定为内点对;
如果所述内点对的数量大于第一点对数量阈值,则确定重定位成功;
如果所述内点对的数量小于所述第一点对数量阈值,则确定重定位失败,更换为另一所述相似关键帧图像,与所述当前帧图像进行匹配。
6.根据权利要求1所述的方法,其特征在于,所述方法还包括:
如果所述当前帧图像的语义标签和各所述关键帧图像的语义标签均不相似,则确定重定位失败,显示所述引导信息。
7.根据权利要求1所述的方法,其特征在于,在基于地图数据中关键帧图像的语义标签生成引导信息前,所述方法还包括:
获取关于现实场景的连续帧图像,并同步解析所述连续帧图像中每一帧图像对应的位姿,以进行位姿跟踪;
从所述连续帧图像中提取关键帧图像;
对所述关键帧图像提取语义特征,得到所述关键帧图像的语义标签;
根据所述关键帧图像及其位姿,建立所述地图数据。
8.根据权利要求7所述的方法,其特征在于,在进行位姿跟踪时,所述方法还包括:
当位姿跟踪丢失时,触发开始重定位,执行所述基于地图数据中关键帧图像的语义标签生成并显示引导信息的步骤。
9.根据权利要求8所述的方法,其特征在于,当连续N帧图像的位姿跟踪失败时,确定位姿跟踪丢失,N为大于或等于2的整数。
10.根据权利要求9所述的方法,其特征在于,当所述连续帧图像中的当前待处理帧满足以下任意一条或多条时,确定所述当前待处理帧位姿跟踪失败:
从所述当前待处理帧提取特征点,与已建立的所述地图数据中的局部地图点进行匹配,匹配成功的特征点数量小于第二点对数量阈值;
在匹配所述当前待处理帧的特征点和所述局部地图点后,根据各所述特征点与对应的所述局部地图点之间的误差计算平均误差,所述平均误差大于第二点对误差阈值。
11.根据权利要求7所述的方法,其特征在于,所述从所述连续帧图像中提取关键帧图像,包括:
当所述连续帧图像中的当前待处理帧满足以下任意一条或多条时,将所述当前待处理帧添加到关键帧图像中:
所述当前待处理帧距离上一关键帧图像超过预设帧数阈值,所述上一关键帧图像为距离所述当前待处理帧最近的关键帧图像;
所述当前待处理帧与所述上一关键帧图像的视差超过预设视差阈值;
将所述当前待处理帧的特征点与已建立的所述地图数据中的局部地图点进行匹配时,匹配成功的特征点数量小于第三点对数量阈值。
12.根据权利要求1所述的方法,其特征在于,在匹配所述当前帧图像和所述相似关键帧图像,得到当前位姿后,所述方法还包括:
对所述当前帧图像进行几何验证,如果几何验证通过,则确定重定位成功。
13.一种重定位装置,其特征在于,包括:
引导信息生成模块,用于基于地图数据中关键帧图像的语义标签生成引导信息,所述引导信息用于在重定位中引导采集关于现实场景的图像;
语义特征提取模块,用于对所采集的当前帧图像提取语义特征,得到所述当前帧图像的语义标签;
语义标签对比模块,用于对比所述当前帧图像的语义标签和各所述关键帧图像的语义标签是否相似,如果相似,则将所述关键帧图像确定为相似关键帧图像;
帧间匹配模块,用于匹配所述当前帧图像和所述相似关键帧图像,得到当前位姿。
14.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1-12任一项所述的方法。
15.一种电子设备,其特征在于,包括:
处理器;以及
存储器,用于存储所述处理器的可执行指令;
其中,所述处理器配置为经由执行所述可执行指令来执行权利要求1-12任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010210050.8A CN111429517A (zh) | 2020-03-23 | 2020-03-23 | 重定位方法、重定位装置、存储介质与电子设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010210050.8A CN111429517A (zh) | 2020-03-23 | 2020-03-23 | 重定位方法、重定位装置、存储介质与电子设备 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN111429517A true CN111429517A (zh) | 2020-07-17 |
Family
ID=71548542
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010210050.8A Pending CN111429517A (zh) | 2020-03-23 | 2020-03-23 | 重定位方法、重定位装置、存储介质与电子设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111429517A (zh) |
Cited By (17)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111862213A (zh) * | 2020-07-29 | 2020-10-30 | Oppo广东移动通信有限公司 | 定位方法及装置、电子设备、计算机可读存储介质 |
CN112509053A (zh) * | 2021-02-07 | 2021-03-16 | 深圳市智绘科技有限公司 | 机器人位姿的获取方法、装置及电子设备 |
CN112749350A (zh) * | 2021-01-14 | 2021-05-04 | Oppo广东移动通信有限公司 | 推荐对象的信息处理方法、装置、存储介质与电子设备 |
CN112837424A (zh) * | 2021-02-04 | 2021-05-25 | 脸萌有限公司 | 图像处理方法、装置、设备和计算机可读存储介质 |
CN113238557A (zh) * | 2021-05-17 | 2021-08-10 | 珠海市一微半导体有限公司 | 一种建图异常的识别及恢复方法、芯片和移动机器人 |
CN113419249A (zh) * | 2021-06-18 | 2021-09-21 | 珠海市一微半导体有限公司 | 一种重定位方法、芯片和移动机器人 |
CN113515536A (zh) * | 2021-07-13 | 2021-10-19 | 北京百度网讯科技有限公司 | 地图的更新方法、装置、设备、服务器以及存储介质 |
CN113670310A (zh) * | 2021-07-27 | 2021-11-19 | 际络科技(上海)有限公司 | 视觉语音导航方法、装置、设备及存储介质 |
WO2022141123A1 (zh) * | 2020-12-29 | 2022-07-07 | 深圳市大疆创新科技有限公司 | 可移动平台及其控制方法、装置、终端设备和存储介质 |
CN115115822A (zh) * | 2022-06-30 | 2022-09-27 | 小米汽车科技有限公司 | 车端图像处理方法、装置、车辆、存储介质及芯片 |
CN115174885A (zh) * | 2022-06-28 | 2022-10-11 | 深圳数位大数据科技有限公司 | 基于ar终端的线下场景信息采集方法、平台、***及介质 |
CN115376051A (zh) * | 2022-10-25 | 2022-11-22 | 杭州华橙软件技术有限公司 | 关键帧的管理方法及管理装置、slam方法、电子设备 |
CN116151917A (zh) * | 2023-01-04 | 2023-05-23 | 上海铱维思智能科技有限公司 | 一种基于三维模型的交易确权方法及*** |
CN116258769A (zh) * | 2023-05-06 | 2023-06-13 | 亿咖通(湖北)技术有限公司 | 一种定位校验方法、装置、电子设备和存储介质 |
WO2023179342A1 (zh) * | 2022-03-25 | 2023-09-28 | 北京字跳网络技术有限公司 | 重定位方法及相关设备 |
WO2023216918A1 (zh) * | 2022-05-09 | 2023-11-16 | 北京字跳网络技术有限公司 | 渲染图像的方法、装置、电子设备及存储介质 |
CN117221511A (zh) * | 2023-11-07 | 2023-12-12 | 深圳市麦谷科技有限公司 | 视频处理方法、装置、存储介质及电子设备 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107610175A (zh) * | 2017-08-04 | 2018-01-19 | 华南理工大学 | 基于半直接法和滑动窗口优化的单目视觉slam算法 |
CN110243370A (zh) * | 2019-05-16 | 2019-09-17 | 西安理工大学 | 一种基于深度学习的室内环境三维语义地图构建方法 |
CN110322511A (zh) * | 2019-06-28 | 2019-10-11 | 华中科技大学 | 一种基于物体和平面特征的语义slam方法和*** |
CN110335319A (zh) * | 2019-06-26 | 2019-10-15 | 华中科技大学 | 一种语义驱动的相机定位与地图重建方法和*** |
-
2020
- 2020-03-23 CN CN202010210050.8A patent/CN111429517A/zh active Pending
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107610175A (zh) * | 2017-08-04 | 2018-01-19 | 华南理工大学 | 基于半直接法和滑动窗口优化的单目视觉slam算法 |
CN110243370A (zh) * | 2019-05-16 | 2019-09-17 | 西安理工大学 | 一种基于深度学习的室内环境三维语义地图构建方法 |
CN110335319A (zh) * | 2019-06-26 | 2019-10-15 | 华中科技大学 | 一种语义驱动的相机定位与地图重建方法和*** |
CN110322511A (zh) * | 2019-06-28 | 2019-10-11 | 华中科技大学 | 一种基于物体和平面特征的语义slam方法和*** |
Cited By (25)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111862213A (zh) * | 2020-07-29 | 2020-10-30 | Oppo广东移动通信有限公司 | 定位方法及装置、电子设备、计算机可读存储介质 |
WO2022141123A1 (zh) * | 2020-12-29 | 2022-07-07 | 深圳市大疆创新科技有限公司 | 可移动平台及其控制方法、装置、终端设备和存储介质 |
CN112749350B (zh) * | 2021-01-14 | 2024-05-14 | Oppo广东移动通信有限公司 | 推荐对象的信息处理方法、装置、存储介质与电子设备 |
CN112749350A (zh) * | 2021-01-14 | 2021-05-04 | Oppo广东移动通信有限公司 | 推荐对象的信息处理方法、装置、存储介质与电子设备 |
CN112837424A (zh) * | 2021-02-04 | 2021-05-25 | 脸萌有限公司 | 图像处理方法、装置、设备和计算机可读存储介质 |
CN112837424B (zh) * | 2021-02-04 | 2024-02-06 | 脸萌有限公司 | 图像处理方法、装置、设备和计算机可读存储介质 |
CN112509053B (zh) * | 2021-02-07 | 2021-06-04 | 深圳市智绘科技有限公司 | 机器人位姿的获取方法、装置及电子设备 |
CN112509053A (zh) * | 2021-02-07 | 2021-03-16 | 深圳市智绘科技有限公司 | 机器人位姿的获取方法、装置及电子设备 |
CN113238557A (zh) * | 2021-05-17 | 2021-08-10 | 珠海市一微半导体有限公司 | 一种建图异常的识别及恢复方法、芯片和移动机器人 |
CN113238557B (zh) * | 2021-05-17 | 2024-05-07 | 珠海一微半导体股份有限公司 | 一种建图异常的识别及恢复方法、计算机可读存储介质和移动机器人 |
CN113419249A (zh) * | 2021-06-18 | 2021-09-21 | 珠海市一微半导体有限公司 | 一种重定位方法、芯片和移动机器人 |
CN113515536A (zh) * | 2021-07-13 | 2021-10-19 | 北京百度网讯科技有限公司 | 地图的更新方法、装置、设备、服务器以及存储介质 |
CN113670310A (zh) * | 2021-07-27 | 2021-11-19 | 际络科技(上海)有限公司 | 视觉语音导航方法、装置、设备及存储介质 |
CN113670310B (zh) * | 2021-07-27 | 2024-05-31 | 际络科技(上海)有限公司 | 视觉语音导航方法、装置、设备及存储介质 |
WO2023179342A1 (zh) * | 2022-03-25 | 2023-09-28 | 北京字跳网络技术有限公司 | 重定位方法及相关设备 |
WO2023216918A1 (zh) * | 2022-05-09 | 2023-11-16 | 北京字跳网络技术有限公司 | 渲染图像的方法、装置、电子设备及存储介质 |
CN115174885A (zh) * | 2022-06-28 | 2022-10-11 | 深圳数位大数据科技有限公司 | 基于ar终端的线下场景信息采集方法、平台、***及介质 |
CN115115822A (zh) * | 2022-06-30 | 2022-09-27 | 小米汽车科技有限公司 | 车端图像处理方法、装置、车辆、存储介质及芯片 |
CN115115822B (zh) * | 2022-06-30 | 2023-10-31 | 小米汽车科技有限公司 | 车端图像处理方法、装置、车辆、存储介质及芯片 |
CN115376051A (zh) * | 2022-10-25 | 2022-11-22 | 杭州华橙软件技术有限公司 | 关键帧的管理方法及管理装置、slam方法、电子设备 |
CN116151917B (zh) * | 2023-01-04 | 2024-02-13 | 上海铱维思智能科技有限公司 | 一种基于三维模型的交易确权方法及*** |
CN116151917A (zh) * | 2023-01-04 | 2023-05-23 | 上海铱维思智能科技有限公司 | 一种基于三维模型的交易确权方法及*** |
CN116258769A (zh) * | 2023-05-06 | 2023-06-13 | 亿咖通(湖北)技术有限公司 | 一种定位校验方法、装置、电子设备和存储介质 |
CN117221511B (zh) * | 2023-11-07 | 2024-03-12 | 深圳市麦谷科技有限公司 | 视频处理方法、装置、存储介质及电子设备 |
CN117221511A (zh) * | 2023-11-07 | 2023-12-12 | 深圳市麦谷科技有限公司 | 视频处理方法、装置、存储介质及电子设备 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111429517A (zh) | 重定位方法、重定位装置、存储介质与电子设备 | |
CN111325842B (zh) | 地图构建方法、重定位方法及装置、存储介质和电子设备 | |
US20240205535A1 (en) | Photographing method and electronic device | |
CN110807361B (zh) | 人体识别方法、装置、计算机设备及存储介质 | |
CN112270754B (zh) | 局部网格地图构建方法及装置、可读介质和电子设备 | |
CN111694978B (zh) | 图像相似度检测方法、装置、存储介质与电子设备 | |
CN110650379B (zh) | 视频摘要生成方法、装置、电子设备及存储介质 | |
CN114119758B (zh) | 获取车辆位姿的方法、电子设备和计算机可读存储介质 | |
CN111598776A (zh) | 图像处理方法、图像处理装置、存储介质与电子设备 | |
US20220262035A1 (en) | Method, apparatus, and system for determining pose | |
CN108776822B (zh) | 目标区域检测方法、装置、终端及存储介质 | |
CN114140365B (zh) | 基于事件帧的特征点匹配方法及电子设备 | |
CN111027490A (zh) | 人脸属性识别方法及装置、存储介质 | |
CN111815666A (zh) | 图像处理方法及装置、计算机可读存储介质和电子设备 | |
CN111598919B (zh) | 运动估计方法、运动估计装置、存储介质与电子设备 | |
CN112489036A (zh) | 图像评价方法、图像评价装置、存储介质与电子设备 | |
CN114429495A (zh) | 一种三维场景的重建方法和电子设备 | |
CN113711123B (zh) | 一种对焦方法、装置及电子设备 | |
CN114842069A (zh) | 一种位姿确定方法以及相关设备 | |
CN113468929A (zh) | 运动状态识别方法、装置、电子设备和存储介质 | |
CN114283195B (zh) | 生成动态图像的方法、电子设备及可读存储介质 | |
CN114812381B (zh) | 电子设备的定位方法及电子设备 | |
CN111982293B (zh) | 体温测量方法、装置、电子设备及存储介质 | |
CN111310701B (zh) | 手势识别方法、装置、设备及存储介质 | |
CN111460942B (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 |