CN117079172A - 渲染图像的方法、装置、电子设备及存储介质 - Google Patents
渲染图像的方法、装置、电子设备及存储介质 Download PDFInfo
- Publication number
- CN117079172A CN117079172A CN202210501160.9A CN202210501160A CN117079172A CN 117079172 A CN117079172 A CN 117079172A CN 202210501160 A CN202210501160 A CN 202210501160A CN 117079172 A CN117079172 A CN 117079172A
- Authority
- CN
- China
- Prior art keywords
- key frame
- frame
- updated
- key
- current frame
- 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
- 238000000034 method Methods 0.000 title claims abstract description 103
- 238000009877 rendering Methods 0.000 title claims abstract description 65
- 238000012545 processing Methods 0.000 claims abstract description 37
- 230000001360 synchronised effect Effects 0.000 claims abstract description 33
- 238000013507 mapping Methods 0.000 claims abstract description 30
- 230000000694 effects Effects 0.000 claims abstract description 14
- 238000006073 displacement reaction Methods 0.000 claims description 61
- 230000008569 process Effects 0.000 claims description 35
- 238000004422 calculation algorithm Methods 0.000 claims description 14
- 238000001514 detection method Methods 0.000 claims description 11
- 238000007781 pre-processing Methods 0.000 claims description 6
- 238000002203 pretreatment Methods 0.000 claims description 2
- 230000006870 function Effects 0.000 description 12
- 230000033001 locomotion Effects 0.000 description 12
- 238000004364 calculation method Methods 0.000 description 10
- 238000010276 construction Methods 0.000 description 9
- 238000010586 diagram Methods 0.000 description 9
- 230000003287 optical effect Effects 0.000 description 9
- 238000004590 computer program Methods 0.000 description 8
- 238000005457 optimization Methods 0.000 description 8
- 238000004891 communication Methods 0.000 description 6
- 238000005070 sampling Methods 0.000 description 6
- 238000005516 engineering process Methods 0.000 description 4
- 230000008859 change Effects 0.000 description 3
- 230000003190 augmentative effect Effects 0.000 description 2
- 230000009286 beneficial effect Effects 0.000 description 2
- 238000001914 filtration Methods 0.000 description 2
- 230000001965 increasing effect Effects 0.000 description 2
- 230000004807 localization Effects 0.000 description 2
- 239000013307 optical fiber Substances 0.000 description 2
- 230000000644 propagated effect Effects 0.000 description 2
- 239000004065 semiconductor Substances 0.000 description 2
- 230000003044 adaptive effect Effects 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000002708 enhancing effect Effects 0.000 description 1
- 238000000605 extraction Methods 0.000 description 1
- 239000000835 fiber Substances 0.000 description 1
- 238000005286 illumination Methods 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 239000011159 matrix material Substances 0.000 description 1
- 238000005259 measurement Methods 0.000 description 1
- 238000003672 processing method Methods 0.000 description 1
- 238000002945 steepest descent method Methods 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
- 230000009466 transformation Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T7/00—Image analysis
- G06T7/70—Determining position or orientation of objects or cameras
- G06T7/73—Determining position or orientation of objects or cameras using feature-based methods
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- 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
- G06V20/00—Scenes; Scene-specific elements
- G06V20/40—Scenes; Scene-specific elements in video content
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Multimedia (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Image Analysis (AREA)
Abstract
本公开实施例提供了一种渲染图像的方法、装置、电子设备及存储介质,该方法包括:基于同步定位与建图系统定位的待更新关键帧组,确定接收到的当前帧是否为关键帧;其中,所述待更新关键帧组中包括至少一个待应用关键帧;若是,则根据预设帧数和所述当前帧对所述待更新关键帧组进行更新,得到更新后的待更新关键帧组;对所述待更新关键帧组中的各待应用关键帧进行优化,更新各待应用关键帧的相对位姿,以基于所述相对位姿进行图像渲染。本公开实施例的技术方案,提高了SLAM空间的定位精度,优化了图像的渲染效果,同时,提高了图像渲染效率,保证了对移动端所拍摄图像处理的实时性。
Description
技术领域
本公开实施例涉及图像处理技术领域,尤其涉及一种渲染图像的方法、装置、电子设备及存储介质。
背景技术
随着计算机视觉技术的发展,同步定位与建图(Simultaneous Localization andMapping,SLAM)算法被广泛应用于如增强现实、虚拟现实、自动驾驶以及机器人或者无人机的定位导航等领域。
现有技术中,根据SLAM算法,可以构建出多种类型的系统以执行相应的渲染任务,例如,基于滤波的SLAM系统以及基于特征点的SLAM系统等。然而在实际应用过程中,基于滤波的SLAM系统无法长时间提供较为精确的相机位姿信息、以及拍摄得到的空间信息,这就导致系统渲染得到的图像效果较差,而基于特征点的SLAM系统又需要对图像中的特征点进行提取,并对各帧画面中的特征点进行匹配,这种方式的缺点在于,不仅增大了图像处理过程中的计算开销,也很难对移动端拍摄的图像进行实时处理,影响用户的使用体验。
发明内容
本公开提供一种渲染图像的方法、装置、电子设备及存储介质,提高了SLAM空间的定位精度,优化了图像的渲染效果,同时,提高了图像渲染效率,保证了对移动端所拍摄图像处理的实时性。
第一方面,本公开实施例提供了一种渲染图像的方法,包括:
确定目标参考点相对于当前待处理视频帧的当前移动增量;
根据所述当前移动增量以及待调用累计增量,确定所述目标参考点的当前累计增量;其中,所述待调用累计增量是基于历史待处理视频帧的历史移动增量和相应的历史目标移动量确定的;
根据所述当前累计增量和预设位移函数,确定所述目标参考点的目标移动量;
基于所述目标移动量,将目标物体渲染至所述当前待处理视频帧中的目标显示位置。
第二方面,本公开实施例还提供了一种渲染图像的装置,包括:
关键帧确定模块,用于基于同步定位与建图系统定位的待更新关键帧组,确定接收到的当前帧是否为关键帧;其中,所述待更新关键帧组中包括至少一个待应用关键帧;
更新模块,用于若是,则根据预设帧数和所述当前帧对所述待更新关键帧组进行更新,得到更新后的待更新关键帧组;
待应用关键帧优化模块,用于对所述待更新关键帧组中的各待应用关键帧进行优化,更新各待应用关键帧的相对位姿,以基于所述相对位姿进行图像渲染。
第三方面,本公开实施例还提供了一种电子设备,所述电子设备包括:
一个或多个处理器;
存储装置,用于存储一个或多个程序,
当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现如本公开实施例任一所述的渲染图像的方法。
第四方面,本公开实施例还提供了一种包含计算机可执行指令的存储介质,所述计算机可执行指令在由计算机处理器执行时用于执行如本公开实施例任一所述的渲染图像的方法。
本公开实施例的技术方案,基于同步定位与建图系统定位出包括至少一个待应用关键帧的待更新关键帧组,并确定接收到的当前帧是否为关键帧,如果确定当前帧为关键帧,则根据预设帧数和当前帧对待更新关键帧组进行更新,从而得到更新后的待更新关键帧组,进一步的,对待更新关键帧组中的各待应用关键帧进行优化,从而更新各待应用关键帧的相对位姿,以基于相对位姿进行图像渲染,不仅提高了SLAM空间的定位精度,优化了图像的渲染效果,还避免了对图像中特征点进行提取与匹配所带来的计算开销,提高了图像渲染效率,保证了对移动端所拍摄图像处理的实时性。
附图说明
结合附图并参考以下具体实施方式,本公开各实施例的上述和其他特征、优点及方面将变得更加明显。贯穿附图中,相同或相似的附图标记表示相同或相似的元素。应当理解附图是示意性的,原件和元素不一定按照比例绘制。
图1为本公开实施例所提供的一种渲染图像的方法流程示意图;
图2为本公开实施例所提供的一种渲染图像的装置结构示意图;
图3为本公开实施例所提供的一种电子设备的结构示意图。
具体实施方式
下面将参照附图更详细地描述本公开的实施例。虽然附图中显示了本公开的某些实施例,然而应当理解的是,本公开可以通过各种形式来实现,而且不应该被解释为限于这里阐述的实施例,相反提供这些实施例是为了更加透彻和完整地理解本公开。应当理解的是,本公开的附图及实施例仅用于示例性作用,并非用于限制本公开的保护范围。
应当理解,本公开的方法实施方式中记载的各个步骤可以按照不同的顺序执行,和/或并行执行。此外,方法实施方式可以包括附加的步骤和/或省略执行示出的步骤。本公开的范围在此方面不受限制。
本文使用的术语“包括”及其变形是开放性包括,即“包括但不限于”。术语“基于”是“至少部分地基于”。术语“一个实施例”表示“至少一个实施例”;术语“另一实施例”表示“至少一个另外的实施例”;术语“一些实施例”表示“至少一些实施例”。其他术语的相关定义将在下文描述中给出。
需要注意,本公开中提及的“第一”、“第二”等概念仅用于对不同的装置、模块或单元进行区分,并非用于限定这些装置、模块或单元所执行的功能的顺序或者相互依存关系。需要注意,本公开中提及的“一个”、“多个”的修饰是示意性而非限制性的,本领域技术人员应当理解,除非在上下文另有明确指出,否则应该理解为“一个或多个”。
本公开实施方式中的多个装置之间所交互的消息或者信息的名称仅用于说明性的目的,而并不是用于对这些消息或信息的范围进行限制。
在介绍本技术方案之前,可以先对本公开实施例的应用场景进行示例性说明。示例性的,当用户利用移动端的摄像装置拍摄视频,并将拍摄得到的视频上传至基于SLAM算法的系统,或者,在数据库中选择目标视频,并将视频主动上传至基于SLAM算法的系统后,系统即可对视频进行解析处理,然而,现有的SLAM系统很难长时间提供较为精确的相机位姿信息以及空间信息,最终的图像渲染效果较差,或者,SLAM系统需要对视频帧画面中的特征点进行提取,并进行特征匹配,在这一过程中,较大的计算开销导致系统很难对移动端拍摄的视频进行实时处理。此时,可以基于本公开实施例的方案,直接在视频中确定出待更新关键帧组,并根据预设帧数以及当前的关键帧对待更新关键帧组进行更新,进一步的,对其中的关键帧进行优化后,即可得到关键帧的相对位姿,从而提高了SLAM空间的定位精度,得到更加优异的渲染结果,同时,本公开实施例的SLAM系统也无需对图像中特征点进行提取与匹配,减少了计算开销,便于对移动端上传的图像进行实时处理。
图1为本公开实施例所提供的一种渲染图像的方法流程示意图,本公开实施例适用于基于SLAM系统对视频进行处理,从而在显示界面上实时渲染出相应的多帧图像的情形,该方法可以由渲染图像的装置来执行,该装置可以通过软件和/或硬件的形式实现,可选的,通过电子设备来实现,该电子设备可以是移动终端、PC端或服务器等。
如图1所示,所述方法包括:
S110、基于同步定位与建图系统定位的待更新关键帧组,确定接收到的当前帧是否为关键帧。
其中,同步定位与建图(Simultaneous Localization and Mapping,SLAM)技术主要用于解决移动机器人在未知环境中运行时的定位导航与地图构建问题,可以理解,本公开实施例中的同步定位与建图系统即是集成有SLAM相关算法的系统,具体的,在其算法中通常包括特征提取、数据关联、状态估计、状态更新以及特征更新等几个部分,而对于其中每个部分来说,又均存在多种处理方法,本公开实施例对此不做具体的限定。
在本实施例中,执行本公开实施例提供的渲染图像的方法的同步定位与建图系统,可以集成在支持特效视频处理功能的应用软件中,且该软件可以安装至电子设备中,可选的,电子设备可以是移动终端或者PC端等。应用软件可以是对图像/视频处理的一类软件,其具体的应用软件在此不再一一赘述,只要可以实现图像/视频处理即可。还可以是专门研发的应用程序,来实现添加特效并将特效进行展示的软件中,亦或是集成在相应的页面中,用户可以通过PC端中集成的页面来实现对特效视频的处理。
需要说明的是,本实施例的技术方案可以在基于移动端实时摄像的过程中执行,也可以在系统接收到用户主动上传的视频数据后执行,同时,本公开实施例的方案可以应用于增强现实(Augumented Reality,AR)、虚拟现实(Virtual Reality,VR)以及自动驾驶等多种应用场景内。
在本实施例中,基于SLAM系统对图像进行渲染之前,首先需要在接收或获取的视频数据中定位出待更新关键帧组。其中,待更新关键帧组即是包含多个关键帧的集合,基于本公开实施例中的SLAM系统,还可以对待更新关键帧组中的图像进行更新。同时,在待更新关键帧组中包括至少一个待应用关键帧,本领域技术人员应当理解,在计算机视觉技术领域内,关键帧用于代表与其相邻的多个帧,相当于SLAM的骨架,是在局部一系列普通帧中选出一帧作为局部帧的代表,因此,在关键帧中至少记录着视频画面的局部信息。同时,利用关键帧执行后续的图像渲染处理过程,也可以有效减少需要优化的视频帧数,从而提升系统的图像处理效率。
示例性的,SLAM系统对接收的视频数据后,可以将视频存储至预设序列中,具体来说,该预设序列可以按照上述视频中每一帧的顺序存储上述视频,如,上述视频中每一帧的顺序是先帧1,然后帧2…再是帧n-1,最后是帧n,上述预设序列按照上述顺序,即以帧1、帧2…帧n-1和帧n的顺序存储上述视频。同时,上述多个视频帧共同构成一个待更新关键帧组,其中帧1、帧10、帧20…帧n即是分别代表其相邻的多个帧的待应用关键帧。
在本实施例中,在SLAM系统确定接收到的当前帧是否为关键帧之前,还可以在首次接收到多个连续帧图像时,对多个连续帧图像进行预处理,确定至少一个初始关键帧;将至少一个初始化关键帧作为待更新关键帧组中的各待应用关键帧。
其中,多个连续帧图像可以是系统从接收的视频数据中解析出来的图像,如,上述示例中的帧1、帧2…帧n-1和帧n,本领域技术人员应当理解,多个连续帧图像可以根据实际情况确定。同时,系统可以预先构建出一个自适应大小的滑动窗口,从而在接收到上述多个连续帧图像后,对图像进行预处理并利用该滑动窗口从中筛选出至少一个初始关键帧。
在本实施例中,预处理包括去除旋转影响的操作,这里,上述预处理的原因是:在多帧连续的视频帧中,画面可能会出现旋转的情况,进一步的,旋转会影响帧的像素距离差,但是仅有旋转无法进行同步定位与建图初始化。因此,本公开实施例为了解决该问题,进行了上述预处理,并利用去除旋转影响的像素距离差筛选窗口内的至少一个初始关键帧,从而保证窗口中的帧之间有足够公视的前提下拥有足够的视差进行同步定位与建图初始化,可以理解为,通过去除旋转操作,减少了旋转对同步定位与建图初始化的影响,提高了同步定位与建图初始化的精度。
在实际应用过程中,系统可以从惯性测量单元中获取上述旋转的信息,从而基于获取的信息确定旋转影响帧的像素距离差,对上述多个连续帧图像进行去除旋转影响的处理,并利用去除旋转影响的像素距离差筛选出上述滑动窗口内的至少一个初始关键帧。
可选的,系统利用预先构建的自适应大小的滑动窗口,即可在去除旋转影响的上述多个连续帧图像中筛选出至少一个初始关键帧,下面对这一过程进行说明。
具体的,确定多个关键帧中的第一关键帧和最后一关键帧的相对位姿;根据第一关键帧和最后一关键帧的相对位姿,获得多个关键帧中各个关键帧的三维空间点;根据第一关键帧和最后一关键帧的相对位姿,以及多个关键帧中各个关键帧的三维空间点,确定多个关键帧中各个关键帧的相对位姿;根据多个关键帧中各个关键帧的三维空间点和多个关键帧中各个关键帧的相对位姿,建立初始地图。在建立初始地图后,即可执行针对于多个连续帧图像的预处理操作。
示例性的,系统预先构建一个大小可调的滑动窗口,如,5帧图像帧大小的~10帧图像帧大小的滑动窗口,利用该滑动窗口,即可在去除旋转影响的多个连续帧图像中筛选出至少一个初始关键帧,例如,当前上述滑动窗口的长度为5帧,系统利用去除旋转影响的像素距离差筛选出上述滑动窗口内的初始关键帧,例如,对从接收的视频中解析出来的帧1、帧2…帧25进行筛选,筛选出帧6、帧7、帧10、帧12以及帧13作为上述初始关键帧。基于此,若通过这5帧图像帧的大小无法正确进行同步定位与建图初始化,则增加滑动窗口大小为6帧,并按照上述方式继续筛选去除旋转影响后的初始关键帧,进行初始化计算以及滑动窗口,直至同步定位与建图初始化完成。可以理解,所得到的至少一个初始化关键帧即是待更新关键帧组中的各待应用关键帧。
在本实施例中,系统基于从多个连续帧图像中筛选出来的初始关键帧进行同步定位与建图初始化,减少了同步定位与建图初始化的时间,而且,系统通过利用去除旋转影响的像素距离差筛选窗口内的初始关键帧,在保证窗口中的帧之间有足够公视的前提下拥有足够的视差进行同步定位与建图初始化,同时,减少了旋转对同步定位与建图初始化的影响,提高了同步定位与建图初始化的精度。
需要说明的是,在确定接收到的当前帧是否为关键帧之前,还包括基于角点检测算法对确定当前帧中的待处理点云数据,以基于至少一个待应用关键帧对待处理点云数据进行处理,得到当前帧的优化位姿,以确定当前帧是否为关键帧。
在本实施例中,当系统接收到当前帧时,首先需要基于角点检测算法确定出当前帧内的点云数据(Point Cloud Data,PCD)。其中,点云数据通常用于逆向工程中,是一种以点的形式记录的数据,这些点既可以是三维空间中的坐标,也可以是颜色或者光照强度等信息,在实际应用过程中,点云数据一般还包括点坐标精度、空间分辨率和表面法向量等内容,一般以PCD格式进行保存,在这种格式下,点云数据的可操作性较强,能够在后续过程中提高点云配准和融合的速度,本公开实施例对此不再赘述。可以理解,在本实施例中,当前帧中的点云数据即是待处理点云数据。
在实际应用过程中,系统所采用的角点检测算法可以是KLT角点检测法,也称为KLT光流跟踪法。具体来说,KLT角点检测法用于满足Lucas-Kanade光流法选择合适特征点的需求,Lucas-Kanade光流法是通过先在前后两帧图像中分别建立一个固定大小的窗口,然后确定出让两个窗口间像素强度差的平方和最小的位移,进一步的,将窗口内像素的移动近似为这样的位移向量。然而在实际应用过程中,像素移动较为复杂,同时,窗口内的像素并非都按照同样的方式移动,这种近似的方式必然带来误差,因此,KLT角点检测方法即为了选择一个适合跟踪的特征点,可以理解为,好的特征点即是能够被系统更好地跟踪的点。在利用KLT角点检测方法确定待处理点云数据的过程中,包括确定像素点光强度函数、将窗口内偏差能量调整为最小、角点选择、特征点选择以及设置能量偏差函数的阈值以排除被阻挡的点等多个步骤,本公开实施例在此不再赘述。
在本实施例中,利用KLT角点检测法确定出当前帧中的点云数据,无需提取当前帧中的描述子,也无需再执行特征点匹配的操作,从而增强了系统对数据处理的实时性与鲁棒性,使系统在角点跟踪并确定待处理点云数据的过程中,实现了高效的角点跟踪。
在本实施例中,当得到当前帧中的待处理点云数据后,即可基于待应用关键帧对这些点云数据进行处理,从而得到当前帧的优化位姿。本领域技术人员应当理解,带有相机位姿和空间点的图优化称为BA,能够有效地求解大范围的定位与建图问题,然而,随着规模的不断扩大,计算效率会大幅下降,在这一过程中,特征点的优化问题占了较多的部分,经过若干次迭代之后,特征点就会收敛,此时再进行优化没有更大的意义。因此,在实际过程中,在优化几次后,便可以把特征点固定住,将其看做位姿估计的约束,即,不再优化特征点的位姿。基于此可以理解,优化后的位姿图即是在只考虑位姿的情况下,所构建的一个只有轨迹的图优化,而位姿节点之间的边,由两个关键帧之间通过特征匹配后得到的运动估计来给定初始值,一旦初始值确定,则不再优化路标点的位置,只关心相机位姿之间的联系。在本实施例中,优化位姿即是基于当前帧位姿图所确定的信息,根据这些信息,系统即可判断当前帧是否为关键帧。
在本实施例中,利用上述增量式的BA问题构造方法来确定当前帧的优化位姿,可以使同步定位与建图系统提供较高的BA速度,从而保证了系统对各视频帧进行处理的实时性。
在本实施例中,基于同步定位与建图系统定位的待更新关键帧组,确定接收到的当前帧是否为关键帧的方式有多种,下面对各种方式逐一进行说明。
可选的,确定当前帧的目标特征点,以及当前帧与至少一个待应用关键帧的位移视差;在目标特征点的数量达到第一预设数量阈值,且位移视差大于第一预设位移视差阈值,则确定当前帧为关键帧。
其中,由于相机处于不断运动的状态,因此,所拍摄物体在图像上产生运动,从而形成位移视差,可以理解,通过位移视差至少可以判断各帧图像中物体的远近。目标特征点即是从各帧图像中的物体上所确定出来的点,例如,某一帧图像上存在多级阶梯,系统根据预先训练好的特征点确定算法,即可从其中每一节阶梯上确定出相应的多个特征点,这些特征点即是目标特征点,进一步的,系统可以将所确定的多个特征点作为一种标识,从而计算出相机位姿的变化。本领域技术人员应当理解,在实际应用过程中,系统所确定的目标特征点可以是多种类型,如SIFT特征点、SURF特征点以及ORB特征点等,具体的目标特征点的类型可以根据实际情况进行选择,本公开实施例对此不作具体的限定。
在本实施例中,系统还可以针对目标特征点的数量这一参数预先设置一个阈值,该阈值即是第一预设数量阈值,同样地,针对位移视差这一参数也预先设置一个阈值,该阈值即是第一预设位移视差阈值。基于此,当系统从当前帧中确定出目标特征点,并确定当前帧与至少一个待应用关键帧之间的位移视差后,即可对目标特征点的数量以及位移视差值进行判断,当两者均大于相对应的预设阈值时,则确定当前帧为关键帧。
示例性的,当系统的第一预设数量阈值为100且第一预设位移视差阈值为100个像素时,若确定出当前帧中的目标特征点个数为300,且确定当前帧与至少一个待应用关键帧之间的位移视差也达到300个像素点的长度后,即可确定上述两个参数均大于其相应的预设阈值,此时,系统可以确定当前帧为关键帧,本领域技术人员应当理解,若上述两个参数中有任意一个不大于其相应的预设阈值,或者,两个参数均不大于其相应的预设阈值,当前帧则不会被判定为关键帧,并在抛弃当前帧后,按照上述方式继续对后续接收的多个帧逐一进行判断,本公开实施例对此不再赘述。
可选的,确定当前帧与至少一个待应用关键帧的共视特征点,并基于共视特征点在当前帧中降采样处理,确定目标特征点;以及,确定当前帧与待应用关键帧的位移偏差;若目标特征点的数量小于当前帧中待处理特征点的数量,且位移偏差小于第二预设位移偏差,则确定当前帧为关键帧。
具体来说,系统在接收到当前帧并确定出其画面中的多个特征点后,还可以将这些特征点与至少一个待应用关键帧对应画面中的特征点进行比对,从而确定出这些图像中的共视特征点,例如,对多个视频帧图像中特征点关联的关键点以及描述子进行匹配比对,从而确定出共视特征点。可以理解,共视特征点即是当前帧与待应用关键帧的共视点,继续以上述示例进行说明,当系统从接收的当前帧中,确定出与画面中多个阶梯对应的特征点后,需要将这些特征点与其他待应用关键帧中的特征点进行比对,当某一个待应用关键帧的画面中也包含这多级阶梯,即,也包含上述特征点时,系统即可将这两幅视频帧画面中多级阶梯对应的特征点确定为共视特征点。
在本实施例中,当系统确定出当前帧与待应用关键帧之间的共视特征点后,即可对当前帧中的共视特征点进行降采样处理,进而从这些共视特征点中筛选出目标特征点。本领域技术人员应当理解,在数位信号处理领域中,降采样是一种多速率数字信号处理技术,同时也是降低信号采样率的过程,通常用于降低数据传输速率或数据大小,例如,对当前帧中160个共视特征点进行4倍降采样处理后,即可从中筛选出40个特征点作为目标特征点,可以理解,上述示例中采用的4倍这一参数即是降采样率,该参数用于表达采样周期变为原来的M倍,或者等价标识采样率变为原来的1/M倍,同时,降采样率可以以手动或自动的方式预先设置,本公开实施例对此不作具体的限定。
在本实施例中,在系统确定目标特征点的过程中,还需要确定当前帧与待应用关键帧的位移偏差,其中,位移偏差即是表征相机位姿变化的信息。例如,当前帧是相机处于场景内A点时拍摄得到的,某一待应用关键帧是相机处于相同场景内B点时拍摄得到的,对于这两帧图像来说,相机从B点移动至A点所产生的位姿的变化,即是系统从两帧图像中确定出来的位移偏差。
在本实施例中,系统同样可以针对位移偏差这一参数预设设置一个阈值,该阈值即是第二预设位移偏差。基于此,当系统从当前帧中确定出目标特征点,并确定出确定当前帧与待应用关键帧之间的位移偏差后,即可将目标特征点的数量与当前帧中待处理特征点的数量进行比对,同时将当前帧与待应用关键帧之间的位移偏差与第二预设位移偏差进行比对,当上述两个参数均小于其对应的比对对象时,则确定当前帧为关键帧。
可选的,对当前帧的待处理点云数据降采样处理,得到目标特征点;确定当前帧与至少一个待应用关键帧的位移偏差;若目标特征点的数量小于等于共视特征点的数量,且位移偏差小于第三预设位移偏差,则确定当前帧为关键帧。
具体的,当系统接收到当前帧后,可以对当前帧中的待处理点云数据进行降采样处理,如,通过体素网格实现点云数据的降采样,当系统采用这种方式对点云数据进行降采样处理时,在减少点云数据中点的数量的同时,依然可以保证点云的形状,还可以提高配准、曲面重建、形状识别等算法的速度,并保证降采样处理的准确性。通过对点云数据降采样处理,从点云数据中筛选得到的特征点同样可以作为目标特征点。同时,系统还可以按照本公开实施例上述方式,确定出当前帧与至少一个待应用关键帧之间的位移偏差,本公开实施例在此不再赘述。
在本实施例中,系统可以针对位移偏差这一参数预先设置一个阈值,该阈值即是第三预设位移偏差,进一步的,将目标特征点的数量,与多个视频帧之间共视特征点的数量进行比对,并将位移偏差与第三预设位移偏差进行比对,当上述两个参数均小于其相应的比对对象时,则确定当前帧为关键帧。
S120、若是,则根据预设帧数和当前帧对待更新关键帧组进行更新,得到更新后的待更新关键帧组。
在本实施例中,当基于同步定位与建图系统确定接收到的当前帧为关键帧后,则需要将该关键帧添加至待更新关键帧组中,从而实现对待更新关键帧组的更新。这一过程可以理解为,对局部地图信息的更新优化。
同时,在本实施例的方案中,为了保证焦点跟踪的一致性与准确性,采用滑窗结构维护局部的地图信息,其中,滑窗中可以包括相邻的多个帧,以及基于这些相邻帧所观测到的空间点。基于此,在对地图信息进行局部优化的过程中,需要利用历史信息对当前帧进行约束,从而提高局部地图信息优化结果的准确性,在实际应用过程中,可以针对滑窗结构预设一个帧数,同时,该帧数也决定了待更新关键帧组中关键帧的数量,可以理解,通过严格控制待更新关键帧组中关键帧的数量,也间接地控制了局部地图点的数量,从而有效地控制后续的计算效率,便于同步定位与建图系统对移动端所拍摄图像的实时处理。
可选的,若至少一个待应用关键帧的数量小于预设帧数,则将当前帧更新至待更新关键帧组中,得到更新后的待更新关键帧组。
示例性的,当滑动窗口中最多可以包括相邻的10个关键帧作为待应用关键帧时,预设帧数即是10,同时,当前待更新关键帧组中包含的待应用关键帧的个数为6,即待应用关键帧的数量小于预设帧数,此时,同步定位与建图系统将当前帧添加至待更新关键帧组中后,当前帧便成为一个新的待应用关键帧,包含7个关键帧的关键帧组即是更新后的待更新关键帧组,在这一过程中,系统无需针对待更新关键帧组中原有的6个待应用关键帧做任何处理。
若至少一个待应用关键帧的数量大于预设帧数,则将当前帧更新至待更新关键帧组中,并将与当前时刻间隔最长的待应用关键帧从待更新关键帧组中移除,得到更新后的待更新关键帧组。
示例性的,当滑动窗口中最多可以包括相邻的10个关键帧作为待应用关键帧时,预设帧数即是10,同时,当前待更新关键帧组中包含的待应用关键帧的个数同样为10,即待更新关键帧的数量与预设帧数相等,此时,同步定位与建图系统将当前帧添加至待更新关键帧组中后,为了保证待更新关键帧组中的待应用关键帧的数量与预设帧数相等,需要在作为历史关键帧的10个待应用关键帧中,选择出所携带的时间戳处于最前的一个待应用关键帧,并将该待应用关键帧从待更新关键帧组中剔除,从而保证滑窗大小的一致性。
S130、对待更新关键帧组中的各待应用关键帧进行优化,更新各待应用关键帧的相对位姿,以基于相对位姿进行图像渲染。
在本实施例中,当同步定位与建图系统对待更新关键帧组更新完毕后,即可对其中的各待应用关键帧进行优化,从而更新各帧的相对位姿。可选的,基于光束平差法对各待应用关键帧优化,更新各待应用关键帧的相对位姿。
其中,光束平差法(Bundle Adjustment)可以根据所有点在图像中的投影作为标准,同时提炼出描述场景结构的3D点坐标、相对运动参数和相机的光学参数。可以理解为,对场景中任意三维点P,由从每个视图所对应的摄像机的光心发射出来并经过图像中P对应的像素后的光线,都将交于P这一点,对于所有三维点,则形成相当多的光束,在实际应用过程中,由于噪声等因素的存在,每条光线几乎不可能汇聚于一点,因此,在求解的过程中,需要不断对待求信息进行调整,从而使最终光线能够交于点P。可以理解,光束平差法最终的目的即是减少作为观测图像的各待应用关键帧,与参考图像或预测图像的点之间位置投影变换的误差,从而获得最佳的三维结构和运动(如相机矩阵)参数估计。
在本实施例中,光束平差法通常利用BA模型的稀疏性进行计算,在计算过程中,可以涉及最速下降法、Newton型方法、LM方法等,本公开实施例对此不作具体的限定。进一步的,利用光束平差法对各待应用关键帧进行优化后,即可实现对各待应用关键帧相对位姿的更新。
在本实施例中,对各待应用关键帧相对位姿进行更新后,即可将相对位姿和优化位姿发送至图形处理器(Graphics Processing Unit,GPU),并基于图形处理器更新地图数据。
示例性的,当同步定位与建图系统确定出各待应用关键帧的相对位姿以及优化位姿后,可以将这些信息写入至渲染引擎中,从而使渲染引擎在显示界面中渲染出对应的画面,其中,渲染引擎即是控制GPU对相关图像进行渲染的程序,即,可以使计算机完成对摄像机所拍摄场景的地图绘制任务。例如,当前场景包括一栋房屋内的一楼楼层以及二楼楼层,且GPU已基于多个历史关键帧绘制出一楼楼层的地图画面时,根据接收到的待应用关键帧的相对位姿信息以及优化位姿信息,可以继续在显示界面中绘制出两个楼层之间的多级楼梯以及二楼的地图,从而实现对地图数据的更新。
当然,在实际应用过程中,根据本公开实施例的方案,还可以对自动驾驶等诸多场景内的地图进行更新,本公开实施例对此不作具体的限定。
本公开实施例的技术方案,基于同步定位与建图系统定位出包括至少一个待应用关键帧的待更新关键帧组,并确定接收到的当前帧是否为关键帧,如果确定当前帧为关键帧,则根据预设帧数和当前帧对待更新关键帧组进行更新,从而得到更新后的待更新关键帧组,进一步的,对待更新关键帧组中的各待应用关键帧进行优化,从而更新各待应用关键帧的相对位姿,以基于相对位姿进行图像渲染,不仅提高了SLAM空间的定位精度,优化了图像的渲染效果,还避免了对图像中特征点进行提取与匹配所带来的计算开销,提高了图像渲染效率,保证了对移动端所拍摄图像处理的实时性。
图2为本公开实施例所提供的一种渲染图像的装置结构示意图,如图2所示,所述装置包括:关键帧确定模块210、更新模块220以及待应用关键帧优化模块230。
关键帧确定模块210,用于基于同步定位与建图系统定位的待更新关键帧组,确定接收到的当前帧是否为关键帧;其中,所述待更新关键帧组中包括至少一个待应用关键帧;
更新模块220,用于若是,则根据预设帧数和所述当前帧对所述待更新关键帧组进行更新,得到更新后的待更新关键帧组;
待应用关键帧优化模块230,用于对所述待更新关键帧组中的各待应用关键帧进行优化,更新各待应用关键帧的相对位姿,以基于所述相对位姿进行图像渲染。
在上述各技术方案的基础上,渲染图像的装置还包括初始关键帧确定模块以及待应用关键帧确定模块。
初始关键帧确定模块,用于在首次接收到多个连续帧图像时,对所述多个连续帧图像进行预处理,确定所述至少一个初始关键帧;其中,所述预处理包括去除旋转影响的操作。
待应用关键帧确定模块,用于将所述至少一个初始化关键帧作为所述待更新关键帧组中的各待应用关键帧。
在上述各技术方案的基础上,渲染图像的装置还包括优化位姿确定模块。
优化位姿确定模块,用于基于角点检测算法对确定当前帧中的待处理点云数据,以基于所述至少一个待应用关键帧对所述待处理点云数据进行处理,得到当前帧的优化位姿,以确定当前帧是否为关键帧。
在上述各技术方案的基础上,关键帧确定模块210包括目标特征点确定单元以及关键帧确定单元。
目标特征点确定单元,用于确定当前帧的目标特征点,以及所述当前帧与所述至少一个待应用关键帧的位移视差。
关键帧确定单元,用于在所述目标特征点的数量达到第一预设数量阈值,且所述位移视差大于第一预设位移视差阈值,则确定所述当前帧为关键帧。
可选的,目标特征点确定单元,还用于确定当前帧与所述至少一个待应用关键帧的共视特征点,并基于所述共视特征点在所述当前帧中降采样处理,确定目标特征点;以及,确定当前帧与所述待应用关键帧的位移偏差。
可选的,关键帧确定单元,还用于若所述目标特征点的数量小于所述当前帧中待处理特征点的数量,且所述位移偏差小于第二预设位移偏差,则确定所述当前帧为关键帧。
可选的,目标特征点确定单元,还用于对所述当前帧的待处理点云数据降采样处理,得到目标特征点。
可选的,关键帧确定单元,还用于确定所述当前帧与所述至少一个待应用关键帧的位移偏差;若所述目标特征点的数量小于等于共视特征点的数量,且所述位移偏差小于第三预设位移偏差,则确定所述当前帧为关键帧;其中,所述共视特征点为所述当前帧与所述待应用关键帧的共视点。
可选的,更新模块220,还用于若所述至少一个待应用关键帧的数量小于所述预设帧数,则将所述当前帧更新至所述待更新关键帧组中,得到更新后的待更新关键帧组;若所述至少一个待应用关键帧的数量大于所述预设帧数,则将所述当前帧更新至所述待更新关键帧组中,并将与当前时刻间隔最长的待应用关键帧从所述待更新关键帧组中移除,得到更新后的待更新关键帧组。
可选的,待应用关键帧优化模块230,还用于基于光束平差法对各待应用关键帧优化,更新各待应用关键帧的相对位姿。
在上述各技术方案的基础上,渲染图像的装置还包括地图数据更新模块。
地图数据更新模块,用于基于光束平差法对各待应用关键帧优化,更新各待应用关键帧的相对位姿。
本实施例所提供的技术方案,基于同步定位与建图系统定位出包括至少一个待应用关键帧的待更新关键帧组,并确定接收到的当前帧是否为关键帧,如果确定当前帧为关键帧,则根据预设帧数和当前帧对待更新关键帧组进行更新,从而得到更新后的待更新关键帧组,进一步的,对待更新关键帧组中的各待应用关键帧进行优化,从而更新各待应用关键帧的相对位姿,以基于相对位姿进行图像渲染,不仅提高了SLAM空间的定位精度,优化了图像的渲染效果,还避免了对图像中特征点进行提取与匹配所带来的计算开销,提高了图像渲染效率,保证了对移动端所拍摄图像处理的实时性。
本公开实施例所提供的渲染图像的装置可执行本公开任意实施例所提供的渲染图像的方法,具备执行方法相应的功能模块和有益效果。
值得注意的是,上述装置所包括的各个单元和模块只是按照功能逻辑进行划分的,但并不局限于上述的划分,只要能够实现相应的功能即可;另外,各功能单元的具体名称也只是为了便于相互区分,并不用于限制本公开实施例的保护范围。
图3为本公开实施例所提供的一种电子设备的结构示意图。下面参考图3,其示出了适于用来实现本公开实施例的电子设备(例如图3中的终端设备或服务器)300的结构示意图。本公开实施例中的终端设备可以包括但不限于诸如移动电话、笔记本电脑、数字广播接收器、PDA(个人数字助理)、PAD(平板电脑)、PMP(便携式多媒体播放器)、车载终端(例如车载导航终端)等等的移动终端以及诸如数字TV、台式计算机等等的固定终端。图3示出的电子设备仅仅是一个示例,不应对本公开实施例的功能和使用范围带来任何限制。
如图3所示,电子设备300可以包括处理装置(例如中央处理器、图案处理器等)301,其可以根据存储在只读存储器(ROM)302中的程序或者从存储装置306加载到随机访问存储器(RAM)303中的程序而执行各种适当的动作和处理。在RAM 303中,还存储有电子设备300操作所需的各种程序和数据。处理装置301、ROM 302以及RAM 303通过总线304彼此相连。编辑/输出(I/O)接口305也连接至总线304。
通常,以下装置可以连接至I/O接口305:包括例如触摸屏、触摸板、键盘、鼠标、摄像头、麦克风、加速度计、陀螺仪等的编辑装置306;包括例如液晶显示器(LCD)、扬声器、振动器等的输出装置307;包括例如磁带、硬盘等的存储装置308;以及通信装置309。通信装置309可以允许电子设备300与其他设备进行无线或有线通信以交换数据。虽然图3示出了具有各种装置的电子设备300,但是应理解的是,并不要求实施或具备所有示出的装置。可以替代地实施或具备更多或更少的装置。
特别地,根据本公开的实施例,上文参考流程图描述的过程可以被实现为计算机软件程序。例如,本公开的实施例包括一种计算机程序产品,其包括承载在非暂态计算机可读介质上的计算机程序,该计算机程序包含用于执行流程图所示的方法的程序代码。在这样的实施例中,该计算机程序可以通过通信装置309从网络上被下载和安装,或者从存储装置306被安装,或者从ROM 302被安装。在该计算机程序被处理装置301执行时,执行本公开实施例的方法中限定的上述功能。
本公开实施方式中的多个装置之间所交互的消息或者信息的名称仅用于说明性的目的,而并不是用于对这些消息或信息的范围进行限制。
本公开实施例提供的电子设备与上述实施例提供的渲染图像的方法属于同一发明构思,未在本实施例中详尽描述的技术细节可参见上述实施例,并且本实施例与上述实施例具有相同的有益效果。
本公开实施例提供了一种计算机存储介质,其上存储有计算机程序,该程序被处理器执行时实现上述实施例所提供的渲染图像的方法。
需要说明的是,本公开上述的计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质或者是上述两者的任意组合。计算机可读存储介质例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子可以包括但不限于:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机访问存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑磁盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本公开中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。而在本公开中,计算机可读信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。计算机可读信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读信号介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括但不限于:电线、光缆、RF(射频)等等,或者上述的任意合适的组合。
在一些实施方式中,客户端、服务器可以利用诸如HTTP(HyperText TransferProtocol,超文本传输协议)之类的任何当前已知或未来研发的网络协议进行通信,并且可以与任意形式或介质的数字数据通信(例如,通信网络)互连。通信网络的示例包括局域网(“LAN”),广域网(“WAN”),网际网(例如,互联网)以及端对端网络(例如,ad hoc端对端网络),以及任何当前已知或未来研发的网络。
上述计算机可读介质可以是上述电子设备中所包含的;也可以是单独存在,而未装配入该电子设备中。
上述计算机可读介质承载有一个或者多个程序,当上述一个或者多个程序被该电子设备执行时,使得该电子设备:
基于同步定位与建图系统定位的待更新关键帧组,确定接收到的当前帧是否为关键帧;其中,所述待更新关键帧组中包括至少一个待应用关键帧;
若是,则根据预设帧数和所述当前帧对所述待更新关键帧组进行更新,得到更新后的待更新关键帧组;
对所述待更新关键帧组中的各待应用关键帧进行优化,更新各待应用关键帧的相对位姿,以基于所述相对位姿进行图像渲染。
可以以一种或多种程序设计语言或其组合来编写用于执行本公开的操作的计算机程序代码,上述程序设计语言包括但不限于面向对象的程序设计语言—诸如Java、Smalltalk、C++,还包括常规的过程式程序设计语言—诸如“C”语言或类似的程序设计语言。程序代码可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络——包括局域网(LAN)或广域网(WAN)—连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。
附图中的流程图和框图,图示了按照本公开各种实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,该模块、程序段、或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
描述于本公开实施例中所涉及到的单元可以通过软件的方式实现,也可以通过硬件的方式来实现。其中,单元的名称在某种情况下并不构成对该单元本身的限定,例如,第一获取单元还可以被描述为“获取至少两个网际协议地址的单元”。
本文中以上描述的功能可以至少部分地由一个或多个硬件逻辑部件来执行。例如,非限制性地,可以使用的示范类型的硬件逻辑部件包括:现场可编程门阵列(FPGA)、专用集成电路(ASIC)、专用标准产品(ASSP)、片上系统(SOC)、复杂可编程逻辑设备(CPLD)等等。
在本公开的上下文中,机器可读介质可以是有形的介质,其可以包含或存储以供指令执行系统、装置或设备使用或与指令执行系统、装置或设备结合地使用的程序。机器可读介质可以是机器可读信号介质或机器可读储存介质。机器可读介质可以包括但不限于电子的、磁性的、光学的、电磁的、红外的、或半导体系统、装置或设备,或者上述内容的任何合适组合。机器可读存储介质的更具体示例会包括基于一个或多个线的电气连接、便携式计算机盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦除可编程只读存储器(EPROM或快闪存储器)、光纤、便捷式紧凑盘只读存储器(CD-ROM)、光学储存设备、磁储存设备、或上述内容的任何合适组合。
根据本公开的一个或多个实施例,【示例一】提供了一种渲染图像的方法,该方法包括:
基于同步定位与建图系统定位的待更新关键帧组,确定接收到的当前帧是否为关键帧;其中,所述待更新关键帧组中包括至少一个待应用关键帧;
若是,则根据预设帧数和所述当前帧对所述待更新关键帧组进行更新,得到更新后的待更新关键帧组;
对所述待更新关键帧组中的各待应用关键帧进行优化,更新各待应用关键帧的相对位姿,以基于所述相对位姿进行图像渲染。
根据本公开的一个或多个实施例,【示例二】提供了一种渲染图像的方法,该方法,还包括:
可选的,在首次接收到多个连续帧图像时,对所述多个连续帧图像进行预处理,确定所述至少一个初始关键帧;其中,所述预处理包括去除旋转影响的操作;
将所述至少一个初始化关键帧作为所述待更新关键帧组中的各待应用关键帧。
根据本公开的一个或多个实施例,【示例三】提供了一种渲染图像的方法,该方法,还包括:
可选的,基于角点检测算法对确定当前帧中的待处理点云数据,以基于所述至少一个待应用关键帧对所述待处理点云数据进行处理,得到当前帧的优化位姿,以确定当前帧是否为关键帧。
根据本公开的一个或多个实施例,【示例四】提供了一种渲染图像的方法,该方法,还包括:
可选的,确定当前帧的目标特征点,以及所述当前帧与所述至少一个待应用关键帧的位移视差;
在所述目标特征点的数量达到第一预设数量阈值,且所述位移视差大于第一预设位移视差阈值,则确定所述当前帧为关键帧。
根据本公开的一个或多个实施例,【示例五】提供了一种渲染图像的方法,该方法,还包括:
可选的,确定当前帧与所述至少一个待应用关键帧的共视特征点,并基于所述共视特征点在所述当前帧中降采样处理,确定目标特征点;以及,确定当前帧与所述待应用关键帧的位移偏差;
若所述目标特征点的数量小于所述当前帧中待处理特征点的数量,且所述位移偏差小于第二预设位移偏差,则确定所述当前帧为关键帧。
根据本公开的一个或多个实施例,【示例六】提供了一种渲染图像的方法,该方法,还包括:
可选的,对所述当前帧的待处理点云数据降采样处理,得到目标特征点;
确定所述当前帧与所述至少一个待应用关键帧的位移偏差;
若所述目标特征点的数量小于等于共视特征点的数量,且所述位移偏差小于第三预设位移偏差,则确定所述当前帧为关键帧;
其中,所述共视特征点为所述当前帧与所述待应用关键帧的共视点。
根据本公开的一个或多个实施例,【示例七】提供了一种渲染图像的方法,该方法,还包括:
可选的,若所述至少一个待应用关键帧的数量小于所述预设帧数,则将所述当前帧更新至所述待更新关键帧组中,得到更新后的待更新关键帧组;
若所述至少一个待应用关键帧的数量大于所述预设帧数,则将所述当前帧更新至所述待更新关键帧组中,并将与当前时刻间隔最长的待应用关键帧从所述待更新关键帧组中移除,得到更新后的待更新关键帧组。
根据本公开的一个或多个实施例,【示例八】提供了一种渲染图像的方法,该方法,还包括:
可选的,基于光束平差法对各待应用关键帧优化,更新各待应用关键帧的相对位姿。
根据本公开的一个或多个实施例,【示例九】提供了一种渲染图像的方法,该方法,还包括:
可选的,将所述相对位姿和所述优化位姿发送至图形处理器,以基于所述图形处理器更新地图数据。
根据本公开的一个或多个实施例,【示例十】提供了一种渲染图像的装置,该装置包括:
关键帧确定模块,用于基于同步定位与建图系统定位的待更新关键帧组,确定接收到的当前帧是否为关键帧;其中,所述待更新关键帧组中包括至少一个待应用关键帧;
更新模块,用于若是,则根据预设帧数和所述当前帧对所述待更新关键帧组进行更新,得到更新后的待更新关键帧组;
待应用关键帧优化模块,用于对所述待更新关键帧组中的各待应用关键帧进行优化,更新各待应用关键帧的相对位姿,以基于所述相对位姿进行图像渲染。
以上描述仅为本公开的较佳实施例以及对所运用技术原理的说明。本领域技术人员应当理解,本公开中所涉及的公开范围,并不限于上述技术特征的特定组合而成的技术方案,同时也应涵盖在不脱离上述公开构思的情况下,由上述技术特征或其等同特征进行任意组合而形成的其它技术方案。例如上述特征与本公开中公开的(但不限于)具有类似功能的技术特征进行互相替换而形成的技术方案。
此外,虽然采用特定次序描绘了各操作,但是这不应当理解为要求这些操作以所示出的特定次序或以顺序次序执行来执行。在一定环境下,多任务和并行处理可能是有利的。同样地,虽然在上面论述中包含了若干具体实现细节,但是这些不应当被解释为对本公开的范围的限制。在单独的实施例的上下文中描述的某些特征还可以组合地实现在单个实施例中。相反地,在单个实施例的上下文中描述的各种特征也可以单独地或以任何合适的子组合的方式实现在多个实施例中。
尽管已经采用特定于结构特征和/或方法逻辑动作的语言描述了本主题,但是应当理解所附权利要求书中所限定的主题未必局限于上面描述的特定特征或动作。相反,上面所描述的特定特征和动作仅仅是实现权利要求书的示例形式。
Claims (12)
1.一种渲染图像的方法,其特征在于,包括:
基于同步定位与建图系统定位的待更新关键帧组,确定接收到的当前帧是否为关键帧;其中,所述待更新关键帧组中包括至少一个待应用关键帧;
若是,则根据预设帧数和所述当前帧对所述待更新关键帧组进行更新,得到更新后的待更新关键帧组;
对所述待更新关键帧组中的各待应用关键帧进行优化,更新各待应用关键帧的相对位姿,以基于所述相对位姿进行图像渲染。
2.根据权利要求1所述的方法,其特征在于,在所述基于同步定位与建图系统定位的待更新关键帧组,确定接收到的当前帧是否为关键帧之前,还包括:
在首次接收到多个连续帧图像时,对所述多个连续帧图像进行预处理,确定所述至少一个初始关键帧;其中,所述预处理包括去除旋转影响的操作;
将所述至少一个初始化关键帧作为所述待更新关键帧组中的各待应用关键帧。
3.根据权利要求2所述的方法,其特征在于,在确定当前帧是否为关键帧之前,还包括:
基于角点检测算法对确定当前帧中的待处理点云数据,以基于所述至少一个待应用关键帧对所述待处理点云数据进行处理,得到当前帧的优化位姿,以确定当前帧是否为关键帧。
4.根据权利要求1所述的方法,其特征在于,所述基于同步定位与建图系统定位的待更新关键帧组,确定接收到的当前帧是否为关键帧,包括:
确定当前帧的目标特征点,以及所述当前帧与所述至少一个待应用关键帧的位移视差;
在所述目标特征点的数量达到第一预设数量阈值,且所述位移视差大于第一预设位移视差阈值,则确定所述当前帧为关键帧。
5.根据权利要求1所述的方法,其特征在于,所述基于同步定位与建图系统定位的待更新关键帧组,确定接收到的当前帧是否为关键帧,包括:
确定当前帧与所述至少一个待应用关键帧的共视特征点,并基于所述共视特征点在所述当前帧中降采样处理,确定目标特征点;以及,确定当前帧与所述待应用关键帧的位移偏差;
若所述目标特征点的数量小于所述当前帧中待处理特征点的数量,且所述位移偏差小于第二预设位移偏差,则确定所述当前帧为关键帧。
6.根据权利要求1所述的方法,其特征在于,所述基于同步定位与建图系统定位的待更新关键帧组,确定接收到的当前帧是否为关键帧,包括:
对所述当前帧的待处理点云数据降采样处理,得到目标特征点;
确定所述当前帧与所述至少一个待应用关键帧的位移偏差;
若所述目标特征点的数量小于等于共视特征点的数量,且所述位移偏差小于第三预设位移偏差,则确定所述当前帧为关键帧;
其中,所述共视特征点为所述当前帧与所述待应用关键帧的共视点。
7.根据权利要求1所述的方法,其特征在于,所述根据预设帧数和所述当前帧对所述待更新关键帧组进行更新,得到更新后的待更新关键帧组,包括:
若所述至少一个待应用关键帧的数量小于所述预设帧数,则将所述当前帧更新至所述待更新关键帧组中,得到更新后的待更新关键帧组;
若所述至少一个待应用关键帧的数量大于所述预设帧数,则将所述当前帧更新至所述待更新关键帧组中,并将与当前时刻间隔最长的待应用关键帧从所述待更新关键帧组中移除,得到更新后的待更新关键帧组。
8.根据权利要求1所述的方法,其特征在于,所述对所述待更新关键帧组中的各待应用关键帧进行优化,更新各待应用关键帧的相对位姿,包括:
基于光束平差法对各待应用关键帧优化,更新各待应用关键帧的相对位姿。
9.根据权利要求3所述的方法,其特征在于,还包括:
将所述相对位姿和所述优化位姿发送至图形处理器,以基于所述图形处理器更新地图数据。
10.一种渲染图像的装置,其特征在于,包括:
关键帧确定模块,用于基于同步定位与建图系统定位的待更新关键帧组,确定接收到的当前帧是否为关键帧;其中,所述待更新关键帧组中包括至少一个待应用关键帧;
更新模块,用于若是,则根据预设帧数和所述当前帧对所述待更新关键帧组进行更新,得到更新后的待更新关键帧组;
待应用关键帧优化模块,用于对所述待更新关键帧组中的各待应用关键帧进行优化,更新各待应用关键帧的相对位姿,以基于所述相对位姿进行图像渲染。
11.一种电子设备,其特征在于,所述电子设备包括:
一个或多个处理器;
存储装置,用于存储一个或多个程序,
当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现如权利要求1-9中任一所述的渲染图像的方法。
12.一种包含计算机可执行指令的存储介质,所述计算机可执行指令在由计算机处理器执行时用于执行如权利要求1-9中任一所述的渲染图像的方法。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210501160.9A CN117079172A (zh) | 2022-05-09 | 2022-05-09 | 渲染图像的方法、装置、电子设备及存储介质 |
PCT/CN2023/091479 WO2023216918A1 (zh) | 2022-05-09 | 2023-04-28 | 渲染图像的方法、装置、电子设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210501160.9A CN117079172A (zh) | 2022-05-09 | 2022-05-09 | 渲染图像的方法、装置、电子设备及存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN117079172A true CN117079172A (zh) | 2023-11-17 |
Family
ID=88710250
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210501160.9A Pending CN117079172A (zh) | 2022-05-09 | 2022-05-09 | 渲染图像的方法、装置、电子设备及存储介质 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN117079172A (zh) |
WO (1) | WO2023216918A1 (zh) |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107369183A (zh) * | 2017-07-17 | 2017-11-21 | 广东工业大学 | 面向mar的基于图优化slam的跟踪注册方法及系统 |
CN109387204B (zh) * | 2018-09-26 | 2020-08-28 | 东北大学 | 面向室内动态环境的移动机器人同步定位与构图方法 |
US11158087B2 (en) * | 2019-12-06 | 2021-10-26 | Intel Corporation | Adaptive virtual camera for indirect-sparse simultaneous localization and mapping systems |
CN111429517A (zh) * | 2020-03-23 | 2020-07-17 | Oppo广东移动通信有限公司 | 重定位方法、重定位装置、存储介质与电子设备 |
-
2022
- 2022-05-09 CN CN202210501160.9A patent/CN117079172A/zh active Pending
-
2023
- 2023-04-28 WO PCT/CN2023/091479 patent/WO2023216918A1/zh unknown
Also Published As
Publication number | Publication date |
---|---|
WO2023216918A1 (zh) | 2023-11-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP3605394B1 (en) | Method and apparatus for recognizing body movement | |
CN113811920A (zh) | 分布式姿势估计 | |
CN111292420B (zh) | 用于构建地图的方法和装置 | |
CN112116655B (zh) | 目标对象的位置确定方法和装置 | |
CN115690382B (zh) | 深度学习模型的训练方法、生成全景图的方法和装置 | |
CN110111364B (zh) | 运动检测方法、装置、电子设备及存储介质 | |
CN112801907B (zh) | 深度图像的处理方法、装置、设备和存储介质 | |
CN114677422A (zh) | 深度信息生成方法、图像虚化方法和视频虚化方法 | |
CN111833459B (zh) | 一种图像处理方法、装置、电子设备及存储介质 | |
CN113766117B (zh) | 一种视频去抖动方法和装置 | |
CN111494947B (zh) | 摄像机移动轨迹确定方法、装置、电子设备及存储介质 | |
CN116563740A (zh) | 基于扩展现实的控制方法、装置、电子设备和存储介质 | |
CN111310595A (zh) | 用于生成信息的方法和装置 | |
CN115086541B (zh) | 一种拍摄位置确定方法、装置、设备及介质 | |
CN112880675B (zh) | 用于视觉定位的位姿平滑方法、装置、终端和移动机器人 | |
CN112492230B (zh) | 视频处理方法、装置、可读介质及电子设备 | |
CN117079172A (zh) | 渲染图像的方法、装置、电子设备及存储介质 | |
CN114494574A (zh) | 一种多损失函数约束的深度学习单目三维重建方法及系统 | |
CN115937383B (zh) | 渲染图像的方法、装置、电子设备及存储介质 | |
CN115082516A (zh) | 一种目标跟踪方法、装置、设备及介质 | |
CN115086538A (zh) | 一种拍摄位置确定方法、装置、设备及介质 | |
CN112070903A (zh) | 虚拟对象的展示方法、装置、电子设备及计算机存储介质 | |
CN112668474B (zh) | 平面生成方法和装置、存储介质和电子设备 | |
CN117788659A (zh) | 渲染图像的方法、装置、电子设备及存储介质 | |
WO2023129162A1 (en) | Real-time lightweight video tracking, processing, and rendering |
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 |