CN108804161A - 应用的初始化方法、装置、终端和存储介质 - Google Patents
应用的初始化方法、装置、终端和存储介质 Download PDFInfo
- Publication number
- CN108804161A CN108804161A CN201810643409.3A CN201810643409A CN108804161A CN 108804161 A CN108804161 A CN 108804161A CN 201810643409 A CN201810643409 A CN 201810643409A CN 108804161 A CN108804161 A CN 108804161A
- Authority
- CN
- China
- Prior art keywords
- terminal
- initial
- image
- image sequence
- point
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/445—Program loading or initiating
- G06F9/44505—Configuring for program initiating, e.g. using registry, configuration files
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Image Analysis (AREA)
Abstract
本申请涉及一种应用的初始化方法、装置、终端和存储介质。所述方法包括:终端的应用开启后,按照预定的匹配条件,选择与所述终端的移动速度匹配的初始化算法;利用选择的初始化算法,根据终端中的第一图像序列确定所述应用的初始参数。采用本方法能够提高应用的初始化速度。
Description
技术领域
本申请涉及数据处理技术领域,特别是涉及一种应用的初始化方法、装置、终端和存储介质。
背景技术
随着智能软、硬件技术的发展,出现了增强现实技术(AR)技术,AR是一种通过某些特定终端,在其观测到的现实世界中(通常是现实世界中的参考水平面上)融合虚拟物体,并提供给用户与虚拟物体交互的技术。利用AR技术的应用在启动后,首先要进行初始化。即在未知环境中,估计终端的初始位姿、建立地图,并检测真实世界中的水平面。准确且性能稳定的初始化过程可以极大提升用户的体验,并且为后续的同时定位与地图构建(SLAM)算法提供良好的初始值。
传统的AR应用初始化方案,存在初始化时间较长的问题。
发明内容
基于此,有必要针对上述技术问题,提供一种能够提高AR应用初始化速度、缩短初始化时间的应用的初始化方法、装置、终端和存储介质。
一种应用的初始化方法,所述方法包括:
终端的应用开启后,按照预定的匹配条件,根据所述终端中的第一图像序列计算反映终端移动速度的参数;按照预定的匹配条件,选择与所述参数匹配的初始化算法;利用选择的初始化算法,根据终端中的第二图像序列确定所述应用的初始参数。
在其中一个实施例中,还包括:
获取所述第二图像序列对应的时间段内的惯性检测参数;将所述第二图像序列与所述惯性检测参数进行时间同步;分别利用与所述第二图像序列中每两帧时序相邻的图像同步的惯性检测参数估计所述终端在每两帧时序相邻的图像对应时间段的位姿和速度;将所述终端在所述第二图像序列的每两帧时序相邻的图像对应时间段的位姿和速度与所述终端的初始位姿进行融合,得到所述终端的融合后的初始位姿,所述初始参数包括所述终端的初始位姿;并根据融合结果对所述速度进行修正,得到所述终端的初始速度。
在其中一个实施例中,所述方法还包括:根据所述融合结果对初始三维点云进行修正,得到修正后的初始三维点云,所述初始参数还包括初始三维点云;
根据所述修正后的初始三维点云,检测参考平面。
在其中一个实施例中,所述根据所述终端中的第一图像序列计算反映终端移动速度的参数包括:分别计算所述第一图像序列中每两帧时序相邻图像的共同特征点比例,所述共同特征点比例为两帧时序相邻图像的共同特征点数量与其中前一帧图像的特征点数量的比例;将各个所述共同特征点比例分别与特征点比例阈值比较,小于所述特征点比例阈值的共同特征点比例反映所述终端在两帧时序相邻图像对应时间段的移动速度快;针对共同特征点比例大于所述特征点比例阈值的两帧时序相邻图像,计算共同特征点的平均视差;将各个所述平均视差分别与平均视差阈值比较,大于所述特征点比例阈值的共同特征点比例和大于平均视差阈值的平均视差共同反映所述终端在两帧时序相邻图像对应时间段的移动速度快,大于所述特征点比例阈值的共同特征点比例和小于平均视差的平均视差共同反映所述终端在两帧时序相邻图像对应时间段的移动速度慢;比较移动速度慢的时间段总长与移动速度快的时间段总长;按照预定的匹配条件,选择与比较结果匹配的初始化算法。
在其中一个实施例中,所述利用选择的初始化算法,根据终端中的第二图像序列确定所述终端的应用的初始参数包括:根据所述第二图像序列中的第一帧图像和最后一帧图像的共同特征点及描述子,确定所述第一帧图像和最后一帧图像的共同特征点的二维位置对应关系;利用所述二维位置对应关系,分别估计所述终端在第一帧图像和最后一帧图像对应时刻的位姿;利用所述二维位置对应关系,确定所述共同特征点对应的空间位置及空间位置的描述子;分别提取所述第二图像序列的各中间帧图像的特征点及描述子;通过描述子匹配,获得三维-二维位置映射关系;根据所述三维-二维位置映射关系,分别估计所述终端在所述各中间帧图像对应时刻的位姿;至少将所述终端在所述第二图像序列中各帧图像对应时刻的位姿、所述空间位置作为数学模型的初始值,通过对所述数学模型迭代求解得到所述终端的初始参数。
在其中一个实施例中,所述方法还包括:获取所述终端的内参矩阵;相应的,所述至少将所述终端在所述第二图像序列中各帧图像对应时刻的位姿、所述三维点作为数学模型的初始值,通过对所述数学模型迭代求解得到所述终端的初始参数,包括:将所述终端在所述第二图像序列中各帧图像对应时刻的位姿、所述三维点和所述终端摄像头的内参矩阵作为数学模型的初始值,通过对所述数学模型迭代求解得到所述终端的初始参数和优化后的所述内参矩阵。
在其中一个实施例中,所述方法还包括:获取所述终端的内参矩阵;所述利用选择的初始化算法,根据终端中的第二图像序列确定所述终端的应用的初始参数包括:获取所述第二图像序列的各个共同特征点的空间方向和深度;至少将所述共同特征点的空间方向和深度作为数学模型的初始值,通过对所述数学模型迭代求解得到所述终端的初始参数。
一种应用的初始化装置,所述装置包括:
算法选择模块,用于终端的应用开启后,根据所述终端中的第一图像序列计算反映终端移动速度的参数;按照预定的匹配条件,选择与所述参数匹配的初始化算法;
初始化模块,用于利用选择的初始化算法,根据终端中的第二图像序列确定所述应用的初始参数。
其中一个实施例中,所述算法选择模块用于:
分别计算所述第一图像序列中每两帧时序相邻图像的共同特征点比例,所述共同特征点比例为两帧时序相邻图像的共同特征点数量与其中前一帧图像的特征点数量的比例;将各个所述共同特征点比例分别与特征点比例阈值比较,小于所述特征点比例阈值的共同特征点比例反映所述终端在两帧时序相邻图像对应时间段的移动速度快;针对共同特征点比例大于所述特征点比例阈值的两帧时序相邻图像,计算共同特征点的平均视差;将各个所述平均视差分别与平均视差阈值比较,大于所述特征点比例阈值的共同特征点比例和大于平均视差阈值的平均视差共同反映所述终端在两帧时序相邻图像对应时间段的移动速度快,大于所述特征点比例阈值的共同特征点比例和小于平均视差的平均视差共同反映所述终端在两帧时序相邻图像对应时间段的移动速度慢;比较移动速度慢的时间段总长与移动速度快的时间段总长;按照预定的匹配条件,选择与比较结果匹配的初始化算法。
一种终端,包括存储器和处理器,所述存储器存储有计算机程序,所述处理器执行所述计算机程序时实现上述任意方法实施例的步骤。
一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现上述任意方法实施例的步骤。
上述应用的初始化方法、装置、终端和存储介质,在启动应用后,会选择与终端的移动速度匹配的初始化算法,通过这种处理方式提高应用初始化的速度。
附图说明
图1为本申请实施例中应用的初始化方法的一个应用环境图;
图2为本申请实施例中应用的初始化方法的另一个应用环境图;
图3为本申请实施例中应用的初始化方法的又一个应用环境图;
图4为本申请一个实施例中应用的初始化方法的流程示意图;
图5为本申请一个实施例中初始化参数修正步骤的流程示意图;
图6为本申请一个实施例中选择初始化算法步骤的流程示意图;
图7为本申请一个实施例中坐标系的示意图;
图8为本申请一个实施例中的应用的初始化装置的结构框图;
图9为本申请一个实施例中终端的内部结构图。
具体实施方式
为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。
本申请提供的应用的初始化方法,可以用于AR应用的初始化,也可以用于虚拟现实(VR)应用的初始化,以及混合现实(MR)应用的初始化。
若将本申请提供的方法用于MR应用的初始化,其应用环境可以如图1所示。终端100的AR应用开启后,通过调用终端的摄像头实时采集图像并显示在终端的显示屏上;并利用本申请提供的方法进行初始化,检测图像中的参考平面(图1中的桌面),并将虚拟物品的图像(图1中的苹果)显示在参考平面上。
其中,终端100可以但不限于是各种智能手机、平板电脑、便携式可穿戴设备、个人计算机和笔记本电脑。
若将本申请提供的方法用于VR应用的初始化,其应用环境可以如图2所示。终端200的VR应用开启后,利用本申请提供的方法进行初始化,调用终端中保存的VR视频并根据初始化结果在终端的显示屏播放。
其中,终端200可以但不仅限于是各种型号的VR眼镜、VR头戴式设备。
若将本申请提供的方法用于MR应用的初始化,其应用环境可以如图3所示。终端300的MR应用开启后,利用本申请提供的方法进行初始化,通过调用终端的摄像头实时采集图像并显示在终端的显示屏上;根据初始化结果持续监测终端300的位姿,并根据终端300的实时位姿在显示屏上按照混合现实的规则叠加显示虚拟图像。
其中,终端300可以但不限于是各种智能手机、平板电脑、便携式可穿戴设备、个人计算机和笔记本电脑。
在一个实施例中,如图4所示,提供了一种应用的初始化方法,以该方法应用于图1~3中的任意终端为例进行说明,包括以下步骤:
步骤401,终端的应用开启后,根据该终端中的第一图像序列计算反映终端移动速度的参数;按照预定的匹配条件,选择与该参数匹配的初始化算法。
其中,初始化算法用于得到应用的初始参数。该初始参数包括终端的初始位姿,还可以包括初始三维点云。
优选的,本申请实施例采用SFM(运动恢复结构)算法作为应用的初始化算法。应当指出的是,凡能够计算得到初始参数的算法均可以作为本申请实施例中的初始化算法。
步骤402,利用选择的初始化算法,根据上述终端中的第二图像序列确定上述应用的初始参数。
其中,根据应用场景不同,第一图像序列、第二图像序列的获取方式也不同。若用于AR应用或MR应用的初始化,上述第一图像序列、第二图像序列是由终端的摄像头采集得到的;若用于VR应用的初始化,上述第一图像序列、第二图像序列是终端的存储空间中保存的。
其中,图像序列是指按照时序排列的多帧图像。
第一图像序列是指用于计算反映移动速度参数的图像序列,第二图像序列是指用于初始化算法选择的图像序列。
第一图像序列、第二图像序列的长度是预先确定的,具体可以根据经验值确定,也可以通过仿真等方式确定,本申请对此不作限定。
第一图像序列、第二图像序列的起始帧可以是指定的,例如AR应用启动后,摄像头采集到的第一帧图像,又例如VR应用启动后,播放的第一帧图像;第一图像序列、第二图像序列的起始帧也可以是动态确定的,例如AR应用启动后,执行步骤401、402时摄像头实时采集到的图像,又例如VR应用启动后,执行步骤401、402时播放的实时图像。
本申请实施例中,第一图像序列和第二图像序列可以是同一图像序列,例如,应用开启后,终端获取图像序列,并将获取的图像序列缓存,利用该图像序列计算反映移动速度的参数,进而选择初始化算法,并利用选择的初始化算法,该图像序列确定终端的初始参数。
为进一步提高初始化的精度,可以先对第二图像序列中的每帧图像进行旋转、裁切、缩放去畸变等操作,再用于确定初始参数。
传统的应用初始化方法,采用固定的初始化算法计算初始参数,但每次启动应用后,终端的移动速度是不确定的,若终端移动速度与初始化算法不匹配,就会导致初始化时间延长。本申请实施例提供的应用初始化方法,在启动应用后,会选择与终端的移动速度匹配的初始化算法,通过这种处理方式提高应用初始化的速度。
本申请实施例提供的方法应用在不同的应用场景,其初始化过程可能也不尽相同。例如,若应用不需要检测参考平面,则上述步骤402中仅需要确定终端的初始位姿;若应用需要检测参考平面,则上述步骤402中不仅需要确定终端的初始位姿,还需要确定终端的初始三维点云。
应用本申请实施例提供的方法的终端硬件及处理能力不同,其初始化过程可能也不尽相同。例如,若终端包括惯性传感器(如加速度器和/或陀螺仪),且处理能力允许,则可以利用惯性检测参数(例如加速度和/或角速度)对步骤402中的初始参数进行修正,以提高初始参数的精度。对初始参数进行修正的具体实现方式有多种,本申请实施例仅以图5所示的流程为例进行说明。具体的:
步骤501、获取上述第二图像序列对应的时间段内的惯性检测参数。
图像和惯性检测参数通常会包括时间戳信息,因此可以根据该时间戳获取第二图像序列对应的时间段内的惯性检测参数。
另外,在应用开启后,图像和惯性检测参数通常是实时获取的,也可以在同一时间段内获取第二图像序列及惯性检测参数。
步骤502、将上述第二图像序列与惯性检测参数进行时间同步。
该步骤的实现方式有多种,本申请对此不作限定。
为进一步提高初始化精度,还可以对惯性检测参数进行去噪处理。本申请实施例不对去噪的实现方式进行限定,可以但不仅限于通过滤波的方式去噪。
步骤503、分别利用与第二图像序列中每两帧时序相邻的图像同步的惯性检测参数估计终端在每两帧时序相邻的图像对应时间段的位姿和速度。
该步骤的实现方式有多种,本申请对此不作限定。例如,通过对每两帧时序相邻的图像同步的惯性检测参数进行积分,估计终端在每两帧时序相邻的图像对应时间段的位姿和速度。
步骤504、将终端在第二图像序列的每两帧时序相邻的图像对应时间段的位姿和速度与终端的初始位姿进行融合,得到终端的融合后的初始位姿,并根据融合结果对速度进行修正,得到终端的初始速度。
该步骤的实现方式有多种,本申请对此不作限定。
若还需要检测参考平面,还可以根据上述融合结果对初始三维点云进行修正,得到修正后的初始三维点云,根据修正后的初始三维点云,检测参考平面。
其具体实现方式有多种,本申请对此不作限定。
在上述任意方法实施例中,监测终端的移动速度是选择初始化算法的前提。
监测终端移动速度的实现方式有多种,例如通过对图像进行处理进而确定终端移动速度,又例如,通过惯性检测参数计算出终端移动速度。
其中,终端移动速度不仅指终端平移的速度,也指终端转动的速度(角速度)。根据匹配条件不同,可以监测终端移动速度的具体取值,也可以监测终端移动速度的区间(预先划分若干移动速度区间,最简单的,将移动速度分为快、慢两个区间)。
以通过对图像进行处理进而确定终端移动速度为例,具体可以根据终端中的第一图像序列计算反映移动速度的参数,按照预定的匹配条件,选择与该参数匹配的初始化算法。
由于上述参数反映了运动速度,因此,选择与该参数匹配的初始化算法,即选择与移动速度匹配的初始化算法。
上述反映移动速度的参数有多种,例如可以仅通过图像序列的共同特征点的视差反映移动速度,也可以仅通过图像序列的共同特征点的数量反映移动速度,还可以通过图像序列的共同特征点的数量与速度的结合反映移动速度。相应的,上述选择初始化算法的具体实现方式如图6所示,可以包括如下步骤:
步骤601、分别计算第一图像序列中每两帧时序相邻图像的共同特征点比例。
其中,共同特征点比例为两帧时序相邻图像的共同特征点数量与这两帧时序相邻图像中的前一帧图像的特征点数量的比例。
步骤602、将各个共同特征点比例分别与特征点比例阈值比较,小于特征点比例阈值的共同特征点比例反映终端在两帧时序相邻图像对应时间段的移动速度快。
假设第一图像序列中共有6帧图像,序号分别为1、2、3、4、5、6;第1-2帧图像的共同特征点比例小于特征点比例阈值,第2-3帧图像的共同特征点比例小于特征点比例阈值,其余相邻帧图像的共同特征点比例均大于特征点比例阈值。则终端第1-2帧图像对应的时间段的移动速度快,终端在第2-3帧图像对应的时间段的移动速度快。
步骤603、针对共同特征点比例大于特征点比例阈值的两帧时序相邻图像,计算共同特征点的平均视差。
步骤604、将各个平均视差分别与平均视差阈值比较,大于特征点比例阈值的共同特征点比例和大于平均视差阈值的平均视差共同反映终端在两帧时序相邻图像对应时间段的移动速度快,大于特征点比例阈值的共同特征点比例和小于平均视差的平均视差共同反映终端在两帧时序相邻图像对应时间段的移动速度慢。
仍以上述6帧图像序列为例,假设第3-4帧图像的共同特征点平均视差大于平均视差阈值,第4-5帧图像的共同特征点平均视差小于平均视察阈值,第5-6帧图像的共同特征点平均视差小于平均视差阈值。则终端第3-4帧图像对应的时间段的移动速度快,终端在第4-5帧图像对应的时间段的移动速度慢,终端在第5-6帧图像对应的时间段的移动速度慢。
步骤605、比较移动速度慢的时间段总长与移动速度快的时间段总长。
步骤606、按照预定的匹配条件,选择与比较结果匹配的初始化算法。
仍以上述6帧图像序列为例,终端在第1-4帧的移动速度快,在4-6帧的移动速度慢,则终端移动速度快的时间段总长大于移动速度慢的时间段总长,选择与运动速度快匹配的初始化算法。
由于比较结果反映了移动速度,因此,选择与比较结果匹配的初始化算法即选择与移动速度匹配的初始化算法。
其中,匹配条件可以根据实际需要设定。例如,匹配条件可以是:移动速度快的时间段总长大于移动速度慢的时间段总长,选择移动速度快匹配的初始化算法,否则,选择移动速度慢匹配的初始化算法。匹配条件也可以是:移动速度快的时间段总长大于移动速度慢的时间段总长,且超过设定阈值,选择移动速度快匹配的初始化算法,否则,选择移动速度慢匹配的初始化算法。
优选的,移动速度快匹配的是基于大尺度的初始化算法,移动速度慢匹配的是基于小尺度的初始化算法。
本申请实施例不对基于大尺度的初始化算法实现方式进行限定,仅例举其中一种优选的实现方式:
根据第二图像序列中的第一帧图像和最后一帧图像的共同特征点及描述子,确定其中第一帧图像和最后一帧图像的共同特征点的二维位置对应关系;利用二维位置对应关系,分别估计终端在第一帧图像和最后一帧图像对应时刻的位姿,以及利用二维位置对应关系,确定上述共同特征点对应的空间位置及空间位置的描述子;分别提取第二图像序列的各中间帧图像的特征点及描述子;通过描述子匹配,获得三维-二维位置映射关系;根据三维-二维位置映射关系,分别估计终端在第二图像序列各中间帧图像对应时刻的位姿;至少将终端在第二图像序列中各帧图像对应时刻的位姿、上述空间位置作为数学模型的初始值,通过对数学模型迭代求解得到终端的初始参数。
本申请实施例提供的上述基于大尺度的初始化算法较之传统的基于大尺度的初始化算法,其处理速度更快。
上述数学模型的迭代求解过程中需要用到终端的内参矩阵。因此,终端的内参矩阵可以通过接口读取,也可以通过图像信息计算得到。若无法通过这两种方式得到内参矩阵,则可以为内参矩阵赋予经验值,并通过上述数学模型迭代求解优化内参矩阵。相应的,将终端在第一图像序列中各帧图像对应时刻的位姿、空间位置和终端摄像头的内参矩阵作为数学模型的初始值,通过对数学模型迭代求解得到终端的初始参数和优化后的内参矩阵。
本申请实施例不对基于小尺度的初始化算法实现方式进行限定,仅例举其中一种优选的实现方式:
获取第二图像序列的各个共同特征点的空间方向和深度,至少将共同特征点的空间方向和深度作为数学模型的初始值,通过对数学模型迭代求解得到终端的初始参数;空间方向的计算公式如下:
μ=K-1p
其中,p为共同特征点在所述第二图像序列中第一帧图像上的齐次坐标,K为内参矩阵。
实际应用中,需要给定坐标系,基于坐标系计算位姿。本申请实施例中,定义三个坐标系,分别为世界坐标系、载体坐标系及摄像头坐标系(又称相机坐标系)。如图7所示,世界坐标系的原点为终端的摄像头采集到初始图像帧(可以是应用开启后摄像头采集到的第一帧图像,也可以是上述第一图像序列中的第一帧图像)时的摄像头光心位置,Y轴指向地磁北极,Z轴指向重力加速度的反向,Y轴与X轴及Z轴构成右手坐标系,世界坐标系的原点和坐标轴方向固定不变。载体坐标系和摄像头坐标系均相对于终端固定,坐标系原点和坐标轴方向随终端移动而改变。为了描述的一致性,假设终端放置于水平面上,且屏幕向上(如图7所示),载体坐标系的原点位于终端惯性传感器的几何中心,Z轴垂直向上指向屏幕外,X轴水平方向指向右,Y轴与X轴及Z轴构成右手坐标系。摄像头坐标系的原点位于摄像头光心,Z轴垂直向下指向屏幕外,X轴水平方向指向右,Y轴与X轴及Z轴构成右手坐标系。
下面以图1所示的应用场景为例,基于图7所示的坐标系,详细说明应用初始化的具体实现方式。
为描述方便,本实施例中将终端实现初始化的过程模块化,在实际应用中,每个模块对应一段程序代码。应当指出的是,本实施例的模块划分方式仅为举例说明,不构成对方案保护范围的限定。在实际应用中,可以有不同的模块划分方式,即有不同的编程方式,本申请对此不作限定。
本实施例中,终端可以包括原始数据处理模块、视觉惯性融合模块和平面检测模块。
原始数据处理模块又包括图像数据处理子模块和惯性数据处理子模块。图像数据处理子模块从终端的摄像头获取图像,并对获取的图像进行旋转、裁切、缩放去畸变等操作,并计算初始的内参矩阵。惯性数据处理子模块从终端的惯性传感器获取加速度和角速度,并对获取的加速度和角速度进行滤波处理。
其中,内参矩阵表示为:
IOS或安卓操作系统的终端提供了摄像头水平方向的视场角θ的接口,因此,内参矩阵可以表示为:
其中,w为输入图像处理子模块的图像的宽,h为输入图像处理子模块的图像的高,s为缩放因子,w‘为从图像处理子模块输出的图像的宽,h′为从图像处理子模块的输出的图像的高。
如果该接口不可用,图像处理子模块从输入图像的EXIF中提取并计算fx和fy。如果EXIF仍不可用,则给出经验数值fx=fy=f。
通过原始数据处理模块对获取的数据进行初步处理,减少了噪声的影响,提高了后续处理的精度。
视觉惯性融合模块包括SFM子模块、惯性积分子模块和融合子模块。
SFM子模块以图像处理子模块的输出作为输入,并缓存一段时间内输入的图像(即图像序列),SFM子模块中的参考坐标系为缓存区的第一幅图像对应的相机坐标系(C0)。SFM子模块对缓存区中每时序相邻的两幅图像,在前一帧图像上提取特征点并跟踪至后一帧,如果能跟踪到的特征点占提取到的全部特征点的比例小于阈值a,或该比例大于a但平均视差大于阈值b,认为相邻帧之间终端移动速度快,否则,相邻帧之间终端运动速度慢。如果移动速度快的相邻帧占比较多,超过阈值c,则认定终端移动速度快,否则认定终端移动速度慢。如果终端移动速度快,使用基于大尺度运动的算法;如果终端移动速度慢,采用基于小尺度运动的算法。这样可以保证在短基线情况下,得到平滑的终端位姿(位置和姿态),并得到相对深度正确的三维点云,并且节省初始化时间。上述两种算法同属于运动恢复结构(SfM)算法。
基于大尺度的算法,在缓存区内的第一帧图像和最后一帧图像中分别提取特征点及对应的描述子,利用描述子匹配技术,获得特征点的二维位置对应关系。利用该对应关系,分别估计第一帧和最后一帧图像对应的相机坐标系相对于C0坐标系的位置及姿态。利用三角测量技术,结合前述的位置和姿态,估计出特征点在C0坐标系下的空间位置,并将描述子取平均后赋给三维点作为描述子。对缓存区中任意一帧图像,提取特征点,并将特征点对应的描述子与三维点的描述子进行匹配,得到3D-2D位置对应关系,利用PnP算法求解得到该帧图像对应的相机坐标系相对于C0坐标系的位置和姿态。最后将每一帧图像对应的相机的位置、姿态,三维点的位置以及前述计算得到的相机内参矩阵作为未知量的初始值,建立非线性优化问题:
其中,X为相机位置Ti和姿态Ri的集合,L为三维点Pj的集合,K为相机内参矩阵。利用高斯牛顿法进行迭代求解,得到每一帧图像对应的位置、姿态及三维点(云)的信息。
基于小尺度运动的算法,认为相机运动较慢,因此存在若干三维点出现在图像缓存区内每一帧图像上。每一个三维点P(μ,d)在C0坐标系下的方向可以通过图像信息计算得到
μ=K-1p
其中,p为此特征点在第一帧图像上的齐次坐标表示。深度d从高斯分布中采样得到,或设定为固定值。设每一帧图像对应的相机位置为0,姿态为三维单位矩阵,建立非线性优化问题,
其中,X为相机位置Ti和姿态Ri的集合,L为三维点Pj参数μj,dj的集合,K为相机内参矩阵。利用高斯牛顿法进行求解,得到得到每一帧图像对应的相机位置、姿态及三维点(云)的信息。
惯性积分子模块利用加速度及角速度信息,在载体坐标系下进行积分,估计出相邻两帧图像之间,相机位置、姿态及速度,参考坐标系为载体坐标系。与此同时,该子模块估计出第一帧图像对应的相机相对于世界坐标系的姿态。
融合子模块将SFM子模块估计出的相机位置、姿态,与惯性积分子模块估计出的相机位置、姿态和速度进行融合,结合第一帧图像对应的相机相对于世界坐标系的姿态,根据融合结果对速度和三维点云进行修正,得到相机相对于世界坐标系的位置、姿态、速度及符合真实尺度的三维点云。
平面检测模块以视觉惯性融合模块输出的三维点云为输入,获取真实世界中的平面信息。根据增强现实常用的场景,训练了基于卷积神经网络的三维点云分割模型,输出为三维点云中平面上点的三维位置及平面法向量。如果一个三维平面上的点数量小于8个,则去除这个平面估计结果。
本申请实施例提供的方法,初始化时间较短,且不需要引导用户按照预设的方式移动终端,提高了用户体验。且在初始化过程中检测真实的参考平面,提高了AR应用的显示效果。不依赖终端摄像头标定,可以为内参矩阵赋予经验值,并在后续估计终端位姿的过程中一并优化内参矩阵。
应该理解的是,虽然图4-6的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,图4-6中的至少一部分步骤可以包括多个子步骤或者多个阶段,这些子步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些子步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤的子步骤或者阶段的至少一部分轮流或者交替地执行。
在一个实施例中,如图8所示,提供了一种应用的初始化装置,包括:
算法选择模块801,用于终端的应用开启后,根据该终端中的第一图像序列计算反映终端移动速度的参数;按照预定的匹配条件,选择与该参数匹配的初始化算法;
初始化模块802,用于利用选择的初始化算法,根据终端中的第二图像序列确定所述应用的初始参数。
在其中一个实施例中,所述算法选择模块用于:
分别计算所述第一图像序列中每两帧时序相邻图像的共同特征点比例,所述共同特征点比例为两帧时序相邻图像的共同特征点数量与其中前一帧图像的特征点数量的比例;
将各个所述共同特征点比例分别与特征点比例阈值比较,小于所述特征点比例阈值的共同特征点比例反映所述终端在两帧时序相邻图像对应时间段的移动速度快;
针对共同特征点比例大于所述特征点比例阈值的两帧时序相邻图像,计算共同特征点的平均视差;
将各个所述平均视差分别与平均视差阈值比较,大于所述特征点比例阈值的共同特征点比例和大于平均视差阈值的平均视差共同反映所述终端在两帧时序相邻图像对应时间段的移动速度快,大于所述特征点比例阈值的共同特征点比例和小于平均视差的平均视差共同反映所述终端在两帧时序相邻图像对应时间段的移动速度慢;
比较移动速度慢的时间段总长与移动速度快的时间段总长;
按照预定的匹配条件,选择与比较结果匹配的初始化算法。
关于应用的初始化装置的具体限定可以参见上文中对于初始化方法的限定,在此不再赘述。上述应用的初始化装置中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。
在一个实施例中,提供了一种终端,其内部结构图可以如图8所示。该计算机设备包括通过系统总线连接的处理器、存储器、网络接口、摄像头、惯性传感器、显示屏和输入装置。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作系统和计算机程序。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该计算机设备的网络接口用于与外部的终端通过网络连接通信。该计算机程序被处理器执行时以实现一种应用的初始化方法。该计算机设备的显示屏可以是液晶显示屏或者电子墨水显示屏,该计算机设备的输入装置可以是显示屏上覆盖的触摸层,也可以是计算机设备外壳上设置的按键、轨迹球或触控板,还可以是外接的键盘、触控板或鼠标等。
本领域技术人员可以理解,图9中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的计算机设备的限定,具体的计算机设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
在一个实施例中,提供了一种终端,包括存储器和处理器,存储器中存储有计算机程序,该处理器执行计算机程序时实现上述任意方法实施例的步骤。
在一个实施例中,提供了一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现上述任意方法实施例的步骤。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的各实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和/或易失性存储器。非易失性存储器可包括只读存储器(ROM)、可编程ROM(PROM)、电可编程ROM(EPROM)、电可擦除可编程ROM(EEPROM)或闪存。易失性存储器可包括随机存取存储器(RAM)或者外部高速缓冲存储器。作为说明而非局限,RAM以多种形式可得,诸如静态RAM(SRAM)、动态RAM(DRAM)、同步DRAM(SDRAM)、双数据率SDRAM(DDRSDRAM)、增强型SDRAM(ESDRAM)、同步链路(Synchlink)DRAM(SLDRAM)、存储器总线(Rambus)直接RAM(RDRAM)、直接存储器总线动态RAM(DRDRAM)、以及存储器总线动态RAM(RDRAM)等。
以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
以上所述实施例仅表达了本申请的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本申请构思的前提下,还可以做出若干变形和改进,这些都属于本申请的保护范围。因此,本申请专利的保护范围应以所附权利要求为准。
Claims (10)
1.一种应用的初始化方法,其特征在于,所述方法包括:
终端的应用开启后,根据所述终端中的第一图像序列计算反映所述终端移动速度的参数;
按照预定的匹配条件,选择与所述参数匹配的初始化算法;
利用选择的初始化算法,根据终端中的第二图像序列确定所述应用的初始参数。
2.根据权利要求1所述的方法,其特征在于,所述方法还包括:
获取所述第二图像序列对应的时间段内的惯性检测参数;
将所述第二图像序列与所述惯性检测参数进行时间同步;
分别利用与所述第二图像序列中每两帧时序相邻的图像同步的惯性检测参数估计所述终端在每两帧时序相邻的图像对应时间段的位姿和速度;
将所述终端在所述第二图像序列的每两帧时序相邻的图像对应时间段的位姿和速度与所述终端的初始位姿进行融合,得到所述终端的融合后的初始位姿,所述初始参数包括所述终端的初始位姿;并根据融合结果对所述速度进行修正,得到所述终端的初始速度。
3.根据权利要求2所述的方法,其特征在于,所述方法还包括:
根据所述融合结果对初始三维点云进行修正,得到修正后的初始三维点云,所述初始参数还包括初始三维点云;
根据所述修正后的初始三维点云,检测参考平面。
4.根据权利要求1~3任一项所述的方法,其特征在于,所述根据所述终端中的第一图像序列计算反映所述终端移动速度的参数包括:
分别计算所述第一图像序列中每两帧时序相邻图像的共同特征点比例,所述共同特征点比例为两帧时序相邻图像的共同特征点数量与其中前一帧图像的特征点数量的比例;
将各个所述共同特征点比例分别与特征点比例阈值比较,小于所述特征点比例阈值的共同特征点比例反映所述终端在两帧时序相邻图像对应时间段的移动速度快;
针对共同特征点比例大于所述特征点比例阈值的两帧时序相邻图像,计算共同特征点的平均视差;
将各个所述平均视差分别与平均视差阈值比较,大于所述特征点比例阈值的共同特征点比例和大于平均视差阈值的平均视差共同反映所述终端在两帧时序相邻图像对应时间段的移动速度快,大于所述特征点比例阈值的共同特征点比例和小于平均视差的平均视差共同反映所述终端在两帧时序相邻图像对应时间段的移动速度慢;
比较移动速度慢的时间段总长与移动速度快的时间段总长;
按照预定的匹配条件,选择与比较结果匹配的初始化算法。
5.根据权利要求1~3任一项所述的方法,其特征在于,所述利用选择的初始化算法,根据终端中的第二图像序列确定所述终端的应用的初始参数包括:
根据所述第二图像序列中的第一帧图像和最后一帧图像的共同特征点及描述子,确定所述第一帧图像和最后一帧图像的共同特征点的二维位置对应关系;
利用所述二维位置对应关系,分别估计所述终端在第一帧图像和最后一帧图像对应时刻的位姿;
利用所述二维位置对应关系,确定所述共同特征点对应的空间位置及空间位置的描述子;
分别提取所述第二图像序列的各中间帧图像的特征点及描述子;
通过描述子匹配,获得三维-二维位置映射关系;
根据所述三维-二维位置映射关系,分别估计所述终端在所述各中间帧图像对应时刻的位姿;
至少将所述终端在所述第二图像序列中各帧图像对应时刻的位姿、所述空间位置作为数学模型的初始值,通过对所述数学模型迭代求解得到所述终端的初始参数。
6.根据权利要求5所述的方法,其特征在于,所述方法还包括:获取所述终端的内参矩阵;
所述至少将所述终端在所述第二图像序列中各帧图像对应时刻的位姿、所述三维点作为数学模型的初始值,通过对所述数学模型迭代求解得到所述终端的初始参数,包括:将所述终端在所述第二图像序列中各帧图像对应时刻的位姿、所述三维点和所述终端摄像头的内参矩阵作为数学模型的初始值,通过对所述数学模型迭代求解得到所述终端的初始参数和优化后的所述内参矩阵。
7.根据权利要求1~3任一项所述的方法,其特征在于,所述方法还包括:获取所述终端的内参矩阵;
所述利用选择的初始化算法,根据终端中的第二图像序列确定所述终端的应用的初始参数包括:
获取所述第二图像序列的各个共同特征点的空间方向和深度;
至少将所述共同特征点的空间方向和深度作为数学模型的初始值,通过对所述数学模型迭代求解得到所述终端的初始参数。
8.一种应用的初始化装置,其特征在于,所述装置包括:
算法选择模块,用于终端的应用开启后,根据所述终端中的第一图像序列计算反映终端移动速度的参数;按照预定的匹配条件,选择与所述参数匹配的初始化算法;
初始化模块,用于利用选择的初始化算法,根据终端中的第二图像序列确定所述应用的初始参数。
9.一种终端,包括存储器和处理器,所述存储器存储有计算机程序,其特征在于,所述处理器执行所述计算机程序时实现权利要求1至7中任一项所述方法的步骤。
10.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1至7中任一项所述的方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810643409.3A CN108804161B (zh) | 2018-06-21 | 2018-06-21 | 应用的初始化方法、装置、终端和存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810643409.3A CN108804161B (zh) | 2018-06-21 | 2018-06-21 | 应用的初始化方法、装置、终端和存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN108804161A true CN108804161A (zh) | 2018-11-13 |
CN108804161B CN108804161B (zh) | 2022-03-04 |
Family
ID=64083981
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810643409.3A Active CN108804161B (zh) | 2018-06-21 | 2018-06-21 | 应用的初始化方法、装置、终端和存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN108804161B (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110286587A (zh) * | 2019-05-21 | 2019-09-27 | 平安银行股份有限公司 | 实现模型迭代控制的方法、服务器及计算机可读存储介质 |
CN111854770A (zh) * | 2019-04-30 | 2020-10-30 | 北京初速度科技有限公司 | 一种车辆的定位系统和方法 |
WO2022188334A1 (zh) * | 2021-03-12 | 2022-09-15 | 浙江商汤科技开发有限公司 | 定位初始化方法和装置、设备、存储介质、程序产品 |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104236548A (zh) * | 2014-09-12 | 2014-12-24 | 清华大学 | 一种微型无人机室内自主导航方法 |
CN105225241A (zh) * | 2015-09-25 | 2016-01-06 | 广州极飞电子科技有限公司 | 无人机深度图像的获取方法及无人机 |
CN105408937A (zh) * | 2013-05-02 | 2016-03-16 | 高通股份有限公司 | 用于便于计算机视觉应用程序初始化的方法 |
CN106529538A (zh) * | 2016-11-24 | 2017-03-22 | 腾讯科技(深圳)有限公司 | 一种飞行器的定位方法和装置 |
CN106780576A (zh) * | 2016-11-23 | 2017-05-31 | 北京航空航天大学 | 一种面向rgbd数据流的相机位姿估计方法 |
CN106940186A (zh) * | 2017-02-16 | 2017-07-11 | 华中科技大学 | 一种机器人自主定位与导航方法及系统 |
US20170366455A1 (en) * | 2016-06-21 | 2017-12-21 | Telefonaktiebolaget Lm Ericsson (Publ) | Dynamic lookup optimization for packet classification |
-
2018
- 2018-06-21 CN CN201810643409.3A patent/CN108804161B/zh active Active
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105408937A (zh) * | 2013-05-02 | 2016-03-16 | 高通股份有限公司 | 用于便于计算机视觉应用程序初始化的方法 |
CN104236548A (zh) * | 2014-09-12 | 2014-12-24 | 清华大学 | 一种微型无人机室内自主导航方法 |
CN105225241A (zh) * | 2015-09-25 | 2016-01-06 | 广州极飞电子科技有限公司 | 无人机深度图像的获取方法及无人机 |
US20170366455A1 (en) * | 2016-06-21 | 2017-12-21 | Telefonaktiebolaget Lm Ericsson (Publ) | Dynamic lookup optimization for packet classification |
CN106780576A (zh) * | 2016-11-23 | 2017-05-31 | 北京航空航天大学 | 一种面向rgbd数据流的相机位姿估计方法 |
CN106529538A (zh) * | 2016-11-24 | 2017-03-22 | 腾讯科技(深圳)有限公司 | 一种飞行器的定位方法和装置 |
CN106940186A (zh) * | 2017-02-16 | 2017-07-11 | 华中科技大学 | 一种机器人自主定位与导航方法及系统 |
Non-Patent Citations (2)
Title |
---|
GIHAN KURUPPU ET AL: ""Comparison of Different Template Matching Algorithms in High Speed Sports Motion Tracking"", 《2013 IEEE 8TH INTERNATIONAL CONFERENCE ON INDUSTRIAL AND INFORMATION SYSTEMS》 * |
杨蛟龙: ""计算机视觉中的运动估计问题研究"", 《中国博士学位论文全文数据库 信息科技辑》 * |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111854770A (zh) * | 2019-04-30 | 2020-10-30 | 北京初速度科技有限公司 | 一种车辆的定位系统和方法 |
CN110286587A (zh) * | 2019-05-21 | 2019-09-27 | 平安银行股份有限公司 | 实现模型迭代控制的方法、服务器及计算机可读存储介质 |
CN110286587B (zh) * | 2019-05-21 | 2022-02-22 | 平安银行股份有限公司 | 实现模型迭代控制的方法、服务器及计算机可读存储介质 |
WO2022188334A1 (zh) * | 2021-03-12 | 2022-09-15 | 浙江商汤科技开发有限公司 | 定位初始化方法和装置、设备、存储介质、程序产品 |
Also Published As
Publication number | Publication date |
---|---|
CN108804161B (zh) | 2022-03-04 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11095869B2 (en) | System and method for generating combined embedded multi-view interactive digital media representations | |
Garon et al. | Deep 6-DOF tracking | |
JP6663926B2 (ja) | DeepStereo:実世界の画像から新たなビューを予測するための学習 | |
US10304244B2 (en) | Motion capture and character synthesis | |
ES2700506T3 (es) | Suavización de trayectoria adaptativa para estabilización de vídeo | |
CN109461180A (zh) | 一种基于深度学习的三维场景重建方法 | |
US20180276882A1 (en) | Systems and methods for augmented reality art creation | |
CN106296598B (zh) | 三维姿态处理方法、系统及拍摄终端 | |
CN109472828A (zh) | 一种定位方法、装置、电子设备及计算机可读存储介质 | |
JP7116262B2 (ja) | 画像深度推定方法および装置、電子機器、ならびに記憶媒体 | |
CN109389665A (zh) | 三维模型的纹理获取方法、装置、设备和存储介质 | |
CN108804161A (zh) | 应用的初始化方法、装置、终端和存储介质 | |
CN109934065A (zh) | 一种用于手势识别的方法和装置 | |
CN113689578B (zh) | 一种人体数据集生成方法及装置 | |
CN111080776B (zh) | 人体动作三维数据采集和复现的处理方法及系统 | |
US11403781B2 (en) | Methods and systems for intra-capture camera calibration | |
US20140168204A1 (en) | Model based video projection | |
CN107852458A (zh) | 视频帧处理 | |
CN115578515B (zh) | 三维重建模型的训练方法、三维场景渲染方法及装置 | |
WO2017041740A1 (en) | Methods and systems for light field augmented reality/virtual reality on mobile devices | |
JP7467780B2 (ja) | 画像処理方法、装置、デバイス及び媒体 | |
CN113886510A (zh) | 一种终端交互方法、装置、设备及存储介质 | |
CN110533773A (zh) | 一种三维人脸重建方法、装置及相关设备 | |
CN111179408A (zh) | 三维建模的方法及设备 | |
CA3172140A1 (en) | Full skeletal 3d pose recovery from monocular camera |
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 |