CN111951325B - 位姿跟踪方法、位姿跟踪装置及电子设备 - Google Patents
位姿跟踪方法、位姿跟踪装置及电子设备 Download PDFInfo
- Publication number
- CN111951325B CN111951325B CN201910396914.7A CN201910396914A CN111951325B CN 111951325 B CN111951325 B CN 111951325B CN 201910396914 A CN201910396914 A CN 201910396914A CN 111951325 B CN111951325 B CN 111951325B
- Authority
- CN
- China
- Prior art keywords
- pose
- image
- current frame
- capturing unit
- image capturing
- 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
Links
- 238000000034 method Methods 0.000 title claims abstract description 113
- 238000012795 verification Methods 0.000 claims description 54
- 238000004364 calculation method Methods 0.000 claims description 22
- 239000013598 vector Substances 0.000 claims description 17
- 230000009466 transformation Effects 0.000 claims description 13
- 239000011159 matrix material Substances 0.000 claims description 10
- 238000007500 overflow downdraw method Methods 0.000 claims description 8
- 230000000007 visual effect Effects 0.000 abstract description 16
- 230000008569 process Effects 0.000 description 7
- 238000010586 diagram Methods 0.000 description 5
- 238000012216 screening Methods 0.000 description 5
- 238000001914 filtration Methods 0.000 description 4
- 230000006870 function Effects 0.000 description 4
- 238000005259 measurement Methods 0.000 description 4
- 238000005457 optimization Methods 0.000 description 3
- 238000012545 processing Methods 0.000 description 3
- 238000009877 rendering Methods 0.000 description 3
- 230000001133 acceleration Effects 0.000 description 2
- 230000003190 augmentative effect Effects 0.000 description 2
- 238000004891 communication Methods 0.000 description 2
- 230000008878 coupling Effects 0.000 description 2
- 238000010168 coupling process Methods 0.000 description 2
- 238000005859 coupling reaction Methods 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 230000010354 integration Effects 0.000 description 2
- 238000011084 recovery Methods 0.000 description 2
- 230000001360 synchronised effect Effects 0.000 description 2
- 238000012549 training Methods 0.000 description 2
- 230000006978 adaptation Effects 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000002474 experimental method Methods 0.000 description 1
- 230000004927 fusion Effects 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 239000000463 material Substances 0.000 description 1
- 230000005055 memory storage Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000012360 testing method Methods 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
- G06T7/74—Determining position or orientation of objects or cameras using feature-based methods involving reference images or patches
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T7/00—Image analysis
- G06T7/20—Analysis of motion
- G06T7/246—Analysis of motion using feature-based methods, e.g. the tracking of corners or segments
-
- 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T17/00—Three dimensional [3D] modelling, e.g. data description of 3D objects
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T19/00—Manipulating 3D models or images for computer graphics
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T19/00—Manipulating 3D models or images for computer graphics
- G06T19/003—Navigation within 3D models or images
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T7/00—Image analysis
- G06T7/20—Analysis of motion
- G06T7/292—Multi-camera tracking
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T7/00—Image analysis
- G06T7/30—Determination of transform parameters for the alignment of images, i.e. image registration
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T2207/00—Indexing scheme for image analysis or image enhancement
- G06T2207/10—Image acquisition modality
- G06T2207/10016—Video; Image sequence
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T2207/00—Indexing scheme for image analysis or image enhancement
- G06T2207/10—Image acquisition modality
- G06T2207/10024—Color image
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T2207/00—Indexing scheme for image analysis or image enhancement
- G06T2207/10—Image acquisition modality
- G06T2207/10028—Range image; Depth image; 3D point clouds
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T2207/00—Indexing scheme for image analysis or image enhancement
- G06T2207/30—Subject of image; Context of image processing
- G06T2207/30244—Camera pose
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Software Systems (AREA)
- Computer Graphics (AREA)
- Multimedia (AREA)
- Geometry (AREA)
- Computer Hardware Design (AREA)
- General Engineering & Computer Science (AREA)
- Radar, Positioning & Navigation (AREA)
- Remote Sensing (AREA)
- Image Analysis (AREA)
- Studio Devices (AREA)
Abstract
本发明公开了一种位姿跟踪方法、位姿跟踪装置及电子设备。一种位姿跟踪方法通过获取扫描对象的连续多帧图像和图像捕获单元的初始位姿;以所述初始位姿作为初值,基于所述连续多帧图像中的前一帧图像和当前帧图像,使用第一算法获取当前帧的第一计算位姿;以所述第一计算位姿为初值,基于所述当前帧图像和当前帧重建模型,使用第二算法获取当前帧的第二计算位姿;根据所述第二计算位姿更新所述图像捕获单元的初始位姿,并重复上述步骤以实现对所述图像捕获单元的位姿跟踪。不仅可以对图像捕获单元的位姿实现准确估计,并且在扫描对象偏离视野范围时也能提供大致准确的位姿,提高对图像捕获单元位姿跟踪的鲁棒性。
Description
技术领域
本发明涉及计算机视觉处理技术,具体而言,涉及一种位姿跟踪方法、位姿跟踪装置及电子设备。
背景技术
三维重建是指通过获取真实物体的几何形状和材质,构建真实物体的数字化三维模型,以真实还原物体的外形。其输入可以是利用各个类型的摄像头实时摄取的图像、视频流、三维点云,也可以是摄取好的图像、视频、三维点云。三维重建在计算机辅助几何设计、计算机动画、计算机视觉、医学图像、虚拟现实、增强现实、数字媒体等领域有非常广泛的应用。
相机跟踪是三维重建中最核心、最关键的算法模块,其用于估计拍摄过程中任一时刻的相机位姿,包括空间三维位置和朝向。精确的相机跟踪结果是三维重建成功的前提。现有的实时相机跟踪方法的鲁棒性不够好,对输入数据的质量有较高的要求,对用户拍摄手法有较多的限制,不利于普通用户使用。
发明内容
本发明实施例提供了一种位姿跟踪方法、位姿跟踪装置及电子设备,以至少解决现有技术中位姿跟踪鲁棒性较差,容易出现跟踪丢失的问题。
根据本发明实施例的一个方面,提供了一种位姿跟踪方法,该方法包括以下步骤:获取扫描对象的连续多帧图像和图像捕获单元的初始位姿;以所述初始位姿作为初值,基于所述连续多帧图像中的前一帧图像和当前帧图像,使用第一算法获取当前帧的第一计算位姿;以所述第一计算位姿为初值,基于所述当前帧图像和当前帧重建模型,使用第二算法获取当前帧的第二计算位姿;根据所述第二计算位姿更新所述图像捕获单元的初始位姿,并重复上述步骤以实现对所述图像捕获单元的位姿跟踪。
进一步地,所述图像捕获单元的初始位姿设置为单位矩阵或者随机设定为任意值。
进一步地,所述连续多帧图像为连续的RGB-D图像。
进一步地,以所述初始位姿作为初值,基于所述连续多帧图像中的前一帧图像和当前帧图像,使用第一算法获取当前帧的第一计算位姿包括:以所述初始位姿作为初值,使用所述第一算法对所述前一帧图像和所述当前帧图像进行逐像素的颜色对齐,得到所述前一帧图像和所述当前帧图像之间的相对坐标变换,从而获取所述当前帧的第一计算位姿。
进一步地,以所述第一计算位姿为初值,基于所述当前帧图像和当前帧重建模型,使用第二算法获取当前帧的第二计算位姿包括:以所述第一计算位姿为初值,使用所述第二算法将所述当前帧图像与所述当前帧重建模型对齐,得到所述前一帧图像和所述当前帧图像之间的相对坐标变换,从而获取当前帧的第二计算位姿。
进一步地,所述第一算法在低分辨率图像上计算,所述第二算法在高分辨率图像上计算。
进一步地,通过惯性导航模块获取所述图像捕获单元的初始位姿。
进一步地,根据所述第二计算位姿更新惯性导航模块的状态量,从而更新所述图像捕获单元的初始位姿。
进一步地,通过所述惯性导航模块使用多传感器融合的方法获取所述图像捕获单元的初始位姿。
进一步地,所述惯性导航模块为基于扩展卡尔曼滤波的状态估计系统。
进一步地,该方法还包括:对所述第二计算位姿进行验证,在验证通过时,使用所述第二计算位姿、所述当前帧图像更新所述当前帧重建模型。
进一步地,对所述第二计算位姿进行验证包括:通过在所述当前帧重建模型中获取对比图像,将所述对比图像与所述当前帧图像进行比较,实现对所述第二计算位姿的验证。
进一步地,该方法还包括:在验证通过时,从验证通过的图像帧中,选取关键帧;基于选取的所述关键帧,构建词袋数据库。
进一步地,该方法还包括:在验证不通过时,使用重定位方法恢复对所述图像捕获单元的位姿跟踪。
进一步地,在验证不通过时,将所述当前帧图像标记为跟踪失败,当连续跟踪失败的帧数超过第二阈值时,表明对所述图像捕获单元的位姿跟踪丢失,使用所述重定位方法恢复对所述图像捕获单元的跟踪。
进一步地,所述重定位方法包括:在位姿跟踪丢失时,计算所述当前帧图像的词袋向量;根据所构建的词袋数据库和所述当前帧图像的词袋向量,选取候选关键帧;根据所述候选关键帧和所述当前帧图像之间的相对位姿,使用第三算法获取当前帧的第三计算位姿;根据所述第三计算位姿更新所述图像捕获单元的初始位姿,以恢复对所述图像捕获单元的位姿跟踪。
进一步地,该方法还包括:在恢复对所述图像捕获单元的位姿跟踪后,将所述惯性导航模块初始化。
根据本发明实施例的另一个方面,提供了一种位姿跟踪装置,该装置包括:图像捕获单元,用于获取扫描对象的连续多帧图像;初始位姿确定单元,用于确定所述图像捕获单元的初始位姿;第一位姿获取单元,用于以所述初始位姿作为初值,基于所述连续多帧图像中的前一帧图像和当前帧图像,使用第一算法获取当前帧的第一计算位姿;第二位姿获取单元,用于以所述第一计算位姿为初值,基于所述当前帧图像和当前帧重建模型,使用第二算法获取当前帧的第二计算位姿;位姿更新单元,用于根据所述第二计算位姿更新所述图像捕获单元的初始位姿,以实现对所述图像捕获单元的位姿跟踪。
进一步地,所述初始位姿确定单元将所述图像捕获单元的初始位姿设置为单位矩阵或者随机设定为任意值。
进一步地,所述连续多帧图像为连续的RGB-D图像。
进一步地,以所述初始位姿作为初值,基于所述连续多帧图像中的前一帧图像和当前帧图像,使用第一算法获取当前帧的第一计算位姿包括:以所述初始位姿作为初值,使用所述第一算法对所述前一帧图像和所述当前帧图像进行逐像素的颜色对齐,得到所述前一帧图像和所述当前帧图像之间的相对坐标变换,从而获取所述当前帧的第一计算位姿。
进一步地,以所述第一计算位姿为初值,基于所述当前帧图像和当前帧重建模型,使用第二算法获取当前帧的第二计算位姿包括:以所述第一计算位姿为初值,使用所述第二算法将所述当前帧图像与所述当前帧重建模型对齐,得到所述前一帧图像和所述当前帧图像之间的相对坐标变换,从而获取当前帧的第二计算位姿。
进一步地,所述第一算法在低分辨率图像上计算,所述第二算法在高分辨率图像上计算。
进一步地,所述初始位姿确定单元为惯性导航模块。
进一步地,所述位姿更新单元还包括根据所述第二计算位姿更新惯性导航模块的状态量,从而更新所述图像捕获单元的初始位姿。
进一步地,所述惯性导航模块使用多传感器融合的方法获取所述图像捕获单元的初始位姿。
进一步地,所述惯性导航模块为基于扩展卡尔曼滤波的状态估计系统。
进一步地,所述位姿跟踪装置还包括:位姿验证单元,用于对所述第二计算位姿进行验证,在验证通过时,使用所述第二计算位姿、所述当前帧图像更新所述当前帧重建模型。
进一步地,对所述第二计算位姿进行验证包括:通过在所述当前帧重建模型中获取对比图像,将所述对比图像与所述当前帧图像进行比较,实现对所述第二计算位姿的验证。
进一步地,该装置还包括:在验证通过时,从验证通过的图像帧中,选取关键帧;基于选取的所述关键帧,构建词袋数据库。
进一步地,该装置还包括:在验证不通过时,使用重定位方法恢复对所述图像捕获单元的位姿跟踪。
进一步地,在验证不通过时,将所述当前帧图像标记为跟踪失败,当连续跟踪失败的帧数超过第二阈值时,表明对所述图像捕获单元的位姿跟踪丢失,使用所述重定位方法恢复对所述图像捕获单元的跟踪。
进一步地,所述重定位方法包括:在位姿跟踪丢失时,计算所述当前帧图像的词袋向量;根据所构建的词袋数据库和所述当前帧图像的词袋向量,选取候选关键帧;根据所述候选关键帧和所述当前帧图像之间的相对位姿,使用第三算法获取当前帧的第三计算位姿;根据所述第三计算位姿更新所述图像捕获单元的初始位姿,以恢复对所述图像捕获单元的位姿跟踪。
进一步地,该装置还包括:在恢复对所述图像捕获单元的位姿跟踪后,将所述惯性导航模块初始化。
根据本发明实施例的另一个方面,提供了一种电子设备,包括:处理器;以及存储器,用于存储所述处理器的可执行指令;其中,所述处理器配置为经由执行所述可执行指令来执行上述任意一项所述的位姿跟踪方法。
根据本发明实施例的另一个方面,提供了一种存储介质,该存储介质包括存储的程序,其中,在所述程序运行时控制所述存储介质所在设备执行上述任意一项所述的位姿跟踪方法。
在本发明实施例中,通过获取扫描对象的连续多帧图像和图像捕获单元的初始位姿;以所述初始位姿作为初值,基于所述连续多帧图像中的前一帧图像和当前帧图像,使用第一算法获取当前帧的第一计算位姿;以所述第一计算位姿为初值,基于所述当前帧图像和当前帧重建模型,使用第二算法获取当前帧的第二计算位姿;根据所述第二计算位姿更新所述图像捕获单元的初始位姿,并重复上述步骤以实现对所述图像捕获单元的位姿跟踪。不仅可以对图像捕获单元的位姿实现准确估计,并且在扫描对象偏离视野范围时也能提供大致准确的位姿,提高对图像捕获单元位姿跟踪的鲁棒性。进而解决现有技术中位姿跟踪鲁棒性较差,容易出现跟踪丢失的问题。
附图说明
此处所说明的附图用来提供对本发明的进一步理解,构成本申请的一部分,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:
图1根据本发明实施例的一种可选的位姿跟踪方法的流程图;
图2是根据本发明实施例的一种可选的基于惯性导航模块的位姿跟踪方法的流程图;
图3a和图3b分别是使用KinectFus ion算法生成的三维模型和轨迹误差图;
图4a和图4b分别是使用本发明实施例提供的基于惯性导航模块的位姿跟踪方法生成的三维模型和轨迹误差图;
图5是根据本发明实施例的一种可选的包含重定位的位姿跟踪方法的流程图;
图6是根据本发明实施例的一种可选的位姿跟踪装置的结构框图;
图7是根据本发明实施例的一种可选的电子设备的结构框图。
具体实施方式
为了使本技术领域的人员更好地理解本发明方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分的实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本发明保护的范围。
需要说明的是,本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本发明的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
本发明实施例可以应用于端的模式,即应用于各种可移动设备的摄像头(智能手机相机、数码相机、单反相机、深度相机、Pad相机、手提电脑相机、游戏机相机等);也可以应用于云加端的模式,即应用于计算机系统/服务器,其可与众多其它通用或者专用计算系统环境或配置一起操作。适于与计算机系统/服务器一起使用的众所周知的计算系统、环境和/或配置的例子包括但不限于:个人计算机系统、手持或膝上设备、基于微处理器的系统、可编程消费电子产品、小型计算机系统、大型计算机系统和包括上述任何系统的分布式云计算技术环境,等等。
计算机系统/服务器可以在由计算机系统执行的计算机系统可执行指令(诸如程序模块等)的一般语境下描述。通常,程序模块可以包括例程、程序、组件、逻辑以及数据结构等等,它们执行特定的任务或者实现特定的抽象数据类型。计算机系统/服务器可以在分布式云计算环境中实施,由通过通信网络链接的远程处理设备执行任务。在分布式云计算环境中,程序模块可以位于包括存储设备的本地或者远程计算系统存储介质上。
下面通过详细的实施例来说明本发明。
【实施例一】
根据本发明的一个方面,提供了一种位姿跟踪方法。参考图1,是根据本发明实施例的一种可选的位姿跟踪方法的流程图。如图1所示,该方法包括以下步骤:
S10:获取扫描对象的连续多帧图像和图像捕获单元的初始位姿;
S12:以初始位姿作为初值,基于连续多帧图像中的前一帧图像和当前帧图像,使用第一算法获取当前帧的第一计算位姿;
S14:以第一计算位姿为初值,基于连续多帧图像中的当前帧图像和当前帧重建模型,使用第二算法获取当前帧的第二计算位姿;
S16:根据第二计算位姿更新图像捕获单元的初始位姿,并重复上述步骤以实现对图像捕获单元的位姿跟踪。
在本发明实施例中,通过上述步骤,不仅可以对图像捕获单元的位姿实现准确估计,并且在扫描对象偏离视野范围时也能提供大致准确的位姿,提高对图像捕获单元位姿跟踪的鲁棒性。
下面对上述各步骤进行详细说明。
步骤S10,获取扫描对象的连续多帧图像和图像捕获单元的初始位姿;
可选的,在本发明实施例中,扫描对象的连续多帧图像可以使用图像捕获单元获得,图像捕获单元可以为独立的摄像头或集成有摄像头的相机、手机等电子设备,摄像头的类型包括红外结构光摄像头、飞行时间摄像头(Time-of-flight,ToF)、RGB摄像头、Mono摄像头等;图像捕获单元的初始位姿可以设置为单位矩阵或者随机设定为任意值。其中,图像捕获单元位姿包括图像捕获单元的空间三维位置和朝向,含6个自由度。连续多帧图像可以是连续的RGB-D图像,RGB-D图像是由一帧深度图(Depth image)和一帧彩色图组成的图像对,深度图和彩色图通常由不同的图像捕获单元分别获取,并且可以假设每帧的彩色图与深度图在时间上是同步的,对于相对位置固定的彩色和深度摄像头,很容易通过外参标定的方式实现数据对齐,通过图像获取的时间戳实现每帧的彩色图与深度图的帧同步。
步骤S12:以初始位姿作为初值,基于连续多帧图像中的前一帧图像和当前帧图像,使用第一算法获取当前帧的第一计算位姿;
可选的,在本发明实施例中,第一算法是一种基于逐像素颜色对齐的三维点云对齐算法,例如,稠密视觉测径法(Dense Visual Odometry,DVO)算法。以初始位姿作为初值,使用第一算法对前一帧图像和当前帧图像进行逐像素的颜色对齐,可以得到前一帧图像和当前帧图像之间的相对坐标变换,从而获取当前帧的第一计算位姿。
步骤S14:以第一计算位姿为初值,基于当前帧图像和当前帧重建模型,使用第二算法获取当前帧的第二计算位姿。
可选的,在本发明实施例中,第二算法是一种迭代的三维点云对齐算法,例如,KinectFusion算法中改良的迭代最近邻(Iterative Closest Point,ICP)算法。以第一计算位姿为初值,使用第二算法将当前帧图像(例如,RGB-D图像中的深度图像)与当前帧重建模型对齐,可以得到前一帧图像和当前帧图像之间的相对坐标变换,从而获取当前帧的第二计算位姿。
上述步骤S12和步骤S14均可以归结为求解一个以6自由度变换参数为优化目标的非线性最小二乘问题。
S16:根据第二计算位姿更新图像捕获单元的初始位姿,并重复上述步骤以实现对图像捕获单元的位姿跟踪。
可选的,在本发明实施例中,根据第二计算位姿更新步骤S10中图像捕获单元的初始位姿,并进行步骤S12和S14,通过不断重复上述步骤,可以实现对图像捕获单元的位姿跟踪。
通过步骤S10至S16所实现的位姿跟踪方法,由于采用了两种不同的算法,不仅能实现准确的图像捕获单元的位姿估计,而且由于在步骤S12中仅涉及前一帧图像与当前帧图像,而与当前帧的重建模型无关,因此,在扫描对象偏离视野范围时也能提供大致准确的位姿,提高对图像捕获单元位姿跟踪的鲁棒性。
可选的,在本发明实施例中,为了提高计算效率,可以将RGB-D图像建立3-4层图像金字塔,第一算法(例如DVO算法)在低分辨率图像上计算,第二算法(例如ICP算法)在高分辨率图像上计算,以此降低整体算法的复杂度。
由于通过优化方法求解非线性最小二乘问题,可能会存在优化结果不正确的情况。因此,可选的,在本发明实施例中,在步骤S14之后,还可以包括步骤S15:对第二计算位姿进行验证。具体地,可以通过在当前帧重建模型中获取对比图像,将对比图像与当前帧图像(例如,当前帧深度图像)进行比较,实现对第二计算位姿的验证。其中,在当前帧重建模型中获取对比图像可以是使用光线投射的方法从当前帧重建模型中渲染出一张深度图作为对比图像。在获取对比图像后,将其与当前帧深度图像比较,使用鲁棒核函数计算加权均方差,然后与第一阈值进行比较,实现对第二计算位姿的验证。若验证通过,说明对图像捕获单元的位姿跟踪成功,步骤S16还可以包括使用第二计算位姿、当前帧图像更新当前帧重建模型。否则,说明对图像捕获单元的位姿跟踪失败,不对重建模型进行更新。
由于仅涉及前一帧图像与当前帧图像,而与当前帧的重建模型无关,以及在低分辨率图像上实施第一算法,在高分辨率图像上实施第二算法,因此,上述根据本发明实施例提供的位姿跟踪方法具有精度高和速度快的特点,但是不适用于图像捕获单元快速运动的情况。当图像捕获单元运动过快时,相邻帧图像内容相差过大,存在运动模糊的问题,可能会导致图像捕获单元的位姿跟踪失败。
【实施例二】
根据本发明实施例的另一方面,还提供了一种基于惯性导航模块的位姿跟踪方法,以进一步提高图像捕获单元跟踪的鲁棒性。参考图2,是根据本发明实施例的一种可选的基于惯性导航模块的位姿跟踪方法的流程图。如图2所示,该方法包括以下步骤:
S20:获取扫描对象的连续多帧图像,并通过惯性导航模块获取图像捕获单元的初始位姿;
S22:以初始位姿作为初值,基于连续多帧图像中的前一帧图像和当前帧图像,使用第一算法获取当前帧的第一计算位姿;
S24:以第一计算位姿为初值,基于当前帧图像和当前帧重建模型,使用第二算法获取当前帧的第二计算位姿;
S26:根据第二计算位姿更新惯性导航模块的状态量,从而更新图像捕获单元的初始位姿,并重复上述步骤以实现对图像捕获单元的位姿跟踪。
在本发明实施例中,通过上述步骤,除了可以对图像捕获单元位姿实现准确估计,在扫描对象偏离视野范围时也能提供大致准确的图像捕获单元位姿,并且由于惯性导航模块与图像无关,不会受到运动模糊的影响,因此,本实施例提供的基于惯性导航模块的位姿跟踪方法,还可以显著提高剧烈运动情况下对图像捕获单元位姿跟踪的鲁棒性。此外,由于惯性导航模块的计算量很小,并且相较于将图像捕获单元的初始位姿设置为单位矩阵或者随机设定为任意值的方法,利用惯性导航模块可以获取基本准确的图像捕获单元的初始位姿,能够加速优化收敛的速度,提高计算性能。
上述步骤S22和S24基本与实施例一的步骤S12和S14相同,在此不再赘述。下面对步骤S20和步骤S26进行详细说明。
步骤S20:获取扫描对象的连续多帧图像,并通过惯性导航模块获取图像捕获单元的初始位姿;
可选的,在本发明实施例中,扫描对象的连续多帧图像可以使用图像捕获单元获得,图像捕获单元可以为独立的摄像头或集成有摄像头的相机、手机等电子设备,摄像头的类型包括红外结构光摄像头、飞行时间摄像头(Time-of-flight,ToF)、RGB摄像头、Mono摄像头等。其中,图像捕获单元位姿包括图像捕获单元的空间三维位置和朝向,含6个自由度。连续多帧图像可以是连续的RGB-D图像,RGB-D图像是由一帧深度图(Depth image)和一帧彩色图组成的图像对,深度图和彩色图通常由不同的图像捕获单元分别获取。
可选的,在本发明实施例中,惯性导航模块是一个基于扩展卡尔曼滤波(ExtendedKalman Filter,EKF)的状态估计系统。惯性导航模块可以以移动平台常见的惯性传感器(Inertial Measurement Unit,IMU)的数据作为输入,通过动力学积分方法获得图像捕获单元的初始位姿。惯性传感器是一种通过惯性力测量运动状态的传感器,常用的惯性传感器包括获取线性加速度数据的加速度计(Accelerator)和获取角速度数据的陀螺仪(Gyroscope)。考虑到移动平台常见的惯性传感器存在很大的噪声以及连续变化的偏置量,直接基于原始测量值进行计算得到的位姿误差非常大。因此,将惯性传感器读数作为测量值,使用多传感器融合的方法,通过求解动力学方程完成卡尔曼滤波的预测,预测的位姿作为图像捕获单元的初始位姿。通过使用多传感器融合的方法,可以综合考虑多种传感器的测量结果和不确定性,从而得到更准确的位姿估计结果。
可选的,在步骤S26中根据第二计算位姿更新惯性导航模块的状态量,状态量可以包括惯性导航模块(例如,加速度计和陀螺仪)的位置、速度、朝向,以及惯性导航模块的偏置等。
与实施例一类似,在步骤S24之后,还可以包括步骤S25:对第二计算位姿进行验证。具体地,可以通过在当前帧重建模型中获取对比图像,将对比图像与当前帧图像(例如,当前帧深度图像)进行比较,实现对第二计算位姿的验证。其中,在当前帧重建模型中获取对比图像可以是使用光线投射的方法从当前帧重建模型中渲染出一张深度图作为对比图像。在获取对比图像后,将其与当前帧深度图像比较,使用鲁棒核函数计算加权均方差,然后与第一阈值进行比较,实现对第二计算位姿的验证。若验证通过,说明位姿跟踪成功,步骤S26还可以包括使用第二计算位姿、当前帧图像更新当前帧重建模型。否则,说明图像捕获单元跟踪失败,不对重建模型和惯性导航模块的状态量进行更新。
由此,通过使用所述第二计算位姿、所述当前帧图像更新所述当前帧重建模型,可以实现重建扫描对象的三维模型。
参考图3a和图3b,分别是使用KinectFusion算法生成的三维模型和轨迹误差图。KinectFusion是一种基于红外结构光输入的实时三维重建方法。KinectFusion所采用的实时相机跟踪方法是一种改良的迭代最近邻(Iterative Closest Point,ICP)算法。与原始的ICP算法相比,KinectFusion采用投影法确定对应点,替代计算准确最近邻的步骤,计算速度显著提升;另一方面,KinectFusion始终将输入深度图与当前重建模型进行对齐,明显减少了相邻帧对齐所产生的累积误差。但是,KinectFusion算法在两种情况下很容易发生跟踪失败:一是手持图像捕获单元剧烈运动的情况,KinectFusion使用投影法确定对应点的方法仅适用于相机运动较慢的情况,快速、随意的相机运动很容易导致跟踪丢失,跟踪丢失是指无法估计相机位姿,或者估计的相机位姿与实际相差非常大;二是扫描对象偏离视野范围的情况,当重建模型基本移出相机视野范围时,KinectFusion方法必定会跟踪丢失,这种情况在普通用户拍摄时很容易出现。。从图3a和图3b中可以看出,使用KinectFusion算法生成的三维模型失真度较大,每帧轨迹误差图中图像捕获单元的估计位姿与真实位姿的差值(如图3b的阴影区域所示)也较大。
参考图4a和图4b,分别是使用本发明实施例提供的基于惯性导航模块的位姿跟踪方法生成的三维模型和轨迹误差图。可以看出,对于手持图像捕获单元剧烈运动的情况,基于惯性导航模块的位姿跟踪方法几乎不会因为图像捕获单元运动过快造成跟踪丢失的情况,这主要是由于惯性导航模块利用了高频的惯性传感器数据,能够提供较为准确的初始位姿。对于扫描对象偏离视野范围的情况,由于使用第一算法获取当前帧的第一计算位姿时,仅涉及前一帧图像与当前帧图像,而与当前帧的重建模型无关,因此,在扫描对象偏离视野范围时也能提供大致准确的图像捕获单元位姿,提高对图像捕获单元位姿跟踪的鲁棒性。由此,使用基于惯性导航模块的位姿跟踪方法生成的三维模型基本能真实还原物体外形(如图4a所示),每帧轨迹误差图中图像捕获单元的估计位姿与真实位姿的差值(如图4b的阴影区域所示)也非常小。
上述基于惯性导航模块的位姿跟踪方法,虽然对剧烈运动等情形下的图像捕获单元位姿跟踪的鲁棒性有显著的改善,但是在用户遮挡摄像头,或者场景发生明显变化等情形下,位姿跟踪丢失的问题仍然是不可避免的。
【实施例三】
根据本发明实施例的又一方面,还提供了一种包含重定位的位姿跟踪方法,能够在跟踪丢失的情况下快速恢复对图像捕获单元的位姿跟踪,重新估计图像捕获单元的位姿,以进一步提高图像捕获单元跟踪的鲁棒性,改善用户体验。参考图5,是根据本发明实施例的一种可选的包含重定位的位姿跟踪方法的流程图。如图5所示,该方法包括以下步骤:
S50:获取扫描对象的连续多帧图像,并通过惯性导航模块获取图像捕获单元的初始位姿;
S52:以初始位姿作为初值,基于连续多帧图像中的前一帧图像和当前帧图像,使用第一算法获取当前帧的第一计算位姿;
S54:以第一计算位姿为初值,基于当前帧图像和当前帧重建模型,使用第二算法获取当前帧的第二计算位姿;
S55:对第二计算位姿进行验证,在验证通过时,使用所述第二计算位姿、所述当前帧图像更新所述当前帧重建模型;在验证不通过时,使用重定位方法恢复对图像捕获单元的跟踪;
S56:根据第二计算位姿更新惯性导航模块的状态量,从而更新所述图像捕获单元的初始位姿,并重复上述步骤以实现对所述图像捕获单元的位姿跟踪;
上述步骤S50、S52、S54和S56基本与实施例二的步骤S20、S22、S24和S26相同,在此不再赘述。下面对步骤S55进行详细说明。在步骤S55中,对第二计算位姿进行验证,在验证通过时,使用所述第二计算位姿、所述当前帧图像更新所述当前帧重建模型;其中,验证方法可以采用实施例一和二中所描述的方法。在验证不通过时,说明位姿跟踪失败,不对重建模型和惯性导航模块的状态量进行更新,使用重定位方法恢复对图像捕获单元的位姿跟踪。例如,可以在验证不通过时,将当前帧图像标记为跟踪失败,当连续跟踪失败的帧数超过第二阈值时,表明对图像捕获单元的位姿跟踪丢失,使用重定位方法恢复对图像捕获单元的位姿跟踪。
可选的,在本发明实施例中,重定位方法可以包含特征点和词袋(Bag of Worlds,BoW)匹配,以实现在位姿跟踪丢失的情况下快速恢复对图像捕获单元的位姿跟踪。其中,词袋是一种通过图片特征点描述子来描述图像特征的方法。
具体地,步骤S55还可以包括:
步骤S550:在验证通过时,从验证通过的图像帧中,选取关键帧。
可选的,在本发明实施例中,在验证通过时,可以根据第二计算位姿,每隔一定角度和距离,从验证通过的相邻若干图像帧里挑选最清晰的一帧作为关键帧。图像的清晰度可以使用低通滤波器对图像进行光顺处理,得到一幅模糊图像。通过比较原图像和模糊图像的差别,即可得到模糊图像的模糊度。原图像与模糊图像越接近,说明原图像本身越模糊。
步骤S551:基于选取的关键帧,构建词袋数据库。
可选的,在本发明实施例中,可以基于选取的关键帧,提取图像特征点,计算特征点描述子和词袋向量,并构建词袋数据库中。其中,上述词袋数据库可以通过离线的方式构建,采用一种类似文本检索的方式,从一组图像样本集中训练一个离线词袋数据库。将图像特征类比于单词,整个词袋数据库类比于词典。通过词典,对于任意一个特征,都能在词典中找到与之对应的单词。首先计算图像样本集中每个样本的图像特征以及描述子,然后根据Kmeans++算法将图像特征聚类成单词,并划分为K类子空间,将划分的子空间继续利用Kmeans++算法做聚类,按照上述循环将描述子聚类成树型结构,整个树型结构构成词典,树的叶子节点(也称为词节点)构成单词。同时在词典建立过程中,还为每个单词记录了该单词在所有的训练图像中出现的频率,出现的频率越高,表示这个单词的区分度越小,以描述该单词所表示的图像特征的区分度。
此外,步骤S55中:在验证不通过时,使用重定位方法恢复对图像捕获单元的跟踪包括:
步骤S552:在位姿跟踪丢失时,计算当前帧图像的词袋向量;
步骤S553:根据所构建的词袋数据库和当前帧图像的词袋向量,选取候选关键帧;
步骤S554:计算所述候选关键帧和所述当前帧图像之间的相对位姿,
获取当前帧的第三计算位姿;
步骤S555:根据所述第三计算位姿更新所述图像捕获单元的初始位姿,以恢复对所述图像捕获单元的位姿跟踪。
可选的,在本发明实施例的上述步骤S553中,可以计算所构建的词袋数据库中所有关键帧的词袋向量与当前帧图像的词袋向量的相似性,将相似性超过第三阈值的关键帧作为候选关键帧。具体地,在计算相似性时,可以首先在所构建的词袋数据库筛选出和当前帧图像共享了词节点的所有关键帧,作为第一次筛选后的候选关键帧,同时计算出与候选关键帧共享词节点最大的数量。然后将共享词节点的最小阈值设为最大数量的0.8倍,筛除共享词节点的数量小于最小阈值的关键帧,剩下的作为第二次筛选后的候选关键帧。接着将每个第二次筛选后的候选关键帧和其位置相近的关键帧组合成候选关键帧组,通过词袋向量计算候选关键帧组和当前帧图像的相似度得分的总和,筛选出那些总得分高于第四阈值(例如,最高总得分的0.75倍)的关键帧,作为最终筛选出的候选关键帧。
可选的,在本发明实施例的上述步骤S554中,对每个候选关键帧,筛选与当前帧图像匹配的描述子,然后通过随机抽样一致算法(Random sample consensus,RANSAC)筛除误匹配对。在当前帧图像帧深度已知的情况下,通过候选关键帧与当前帧之间的稀疏特征点匹配对,使用第三算法(例如,PnP算法)计算所述候选关键帧和所述当前帧图像之间的相对位姿,获取当前帧的第三计算位姿。在筛选出的特征点匹配对数大于第五阈值时,位姿恢复成功,根据所述第三计算位姿更新步骤S50中所述图像捕获单元的初始位姿,由此,可以实现图像捕获单元的重定位,恢复对所述图像捕获单元的位姿跟踪。
由于在对图像捕获单元位姿跟踪丢失的情况下,惯性导航模块长时间得不到反馈,因而其系统状态很可能远远偏离真实值。为此,当图像捕获单元重定位成功并恢复对图像捕获单元的位姿跟踪时,需要将惯性导航模块重新初始化,包括将惯性导航模块的外参、偏置和方差矩阵设为默认值,使用当前帧图像的位姿反求出惯性导航模块的初始位姿等。
为了测试重定位方法的有效性,针对三种不同情况进行了实验。一、手持图像捕获单元远离被扫描物体,然后沿任意路线运动几秒至几分钟之后返回原拍摄场景;二、在拍摄过程中将图像捕获单元的镜头完全遮挡,过一段时间后再放开;三、在拍摄过程中将图像捕获单元的镜头完全遮挡,保持遮挡状态按照任意路线移动图像捕获单元一段时间,然后大致返回原先的拍摄点。在三种情况下,使用包含重定位的位姿跟踪方法能在不到1秒的时间内恢复对图像捕获单元的位姿跟踪,完全满足应用需求。
依据本发明实施例所提供的上述位姿跟踪方法,除了可以对图像捕获单元的位姿实现准确估计,在扫描对象偏离视野范围时也能提供大致准确的位姿,并且基于多传感器融合的思想,通过综合惯性导航模块和图像捕获单元的输入,对图像捕获装置实现更鲁棒的位姿跟踪,尤其是在剧烈运动情况下位姿跟踪的鲁棒性。同时,在相机跟踪丢失的情况下,能够通过重定位方法提供有效的场景重拾,快速地恢复对图像捕获装置的位姿跟踪。此外,上述位姿跟踪方法特别适用于移动平台,一方面,它充分利用了移动平台常见的多种传感器设备;另一方面,它的计算代价比较小,满足移动平台的实时计算性能要求。
依据本发明实施例所提供的上述位姿跟踪方法,除了可以用于实现扫描对象的三维重建,也适用于增强现实应用。
【实施例四】
根据本发明实施例的另一方面,还提供了一种位姿跟踪装置。参考图6,是根据本发明实施例的一种可选的位姿跟踪装置的结构框图。如图6所示,位姿跟踪装置6包括:
图像捕获单元60,用于获取扫描对象的连续多帧图像;
可选的,在本发明实施例中,图像捕获单元可以为独立的摄像头或集成有摄像头的相机、手机等电子设备,摄像头的类型包括红外结构光摄像头、飞行时间摄像头(Time-of-flight,ToF)、RGB摄像头、Mono摄像头等;连续多帧图像可以是连续的RGB-D图像,RGB-D图像是由一帧深度图(Depth image)和一帧彩色图组成的图像对,深度图和彩色图通常由不同的图像捕获单元分别获取,并且可以假设每帧的彩色图与深度图在时间上是同步的,对于相对位置固定的彩色和深度摄像头,很容易通过外参标定的方式实现数据对齐,通过图像获取的时间戳实现每帧的彩色图与深度图的帧同步。
初始位姿确定单元62,用于确定图像捕获单元的初始位姿;
可选的,在本发明实施例中,初始位姿确定单元将图像捕获单元的初始位姿设置为单位矩阵或者随机设定为任意值。其中,图像捕获单元的位姿包括图像捕获单元的空间三维位置和朝向,含6个自由度。
第一位姿获取单元64,用于以初始位姿作为初值,基于连续多帧图像中的前一帧图像和当前帧图像,使用第一算法获取当前帧的第一计算位姿;
可选的,在本发明实施例中,第一算法是一种基于逐像素颜色对齐的三维点云对齐算法,例如,稠密视觉测径法(Dense Visual Odometry,DVO)算法。以初始位姿作为初值,使用第一算法对前一帧图像和当前帧图像进行逐像素的颜色对齐,可以得到前一帧图像和当前帧图像之间的相对坐标变换,从而获取当前帧的第一计算位姿。
第二位姿获取单元66,用于以第一计算位姿为初值,基于当前帧图像和当前帧重建模型,使用第二算法获取当前帧的第二计算位姿;
可选的,在本发明实施例中,第二算法是一种迭代的三维点云对齐算法,例如,KinectFusion算法中改良的迭代最近邻(Iterative Closest Point,ICP)算法。以第一计算位姿为初值,使用第二算法将当前帧图像(例如,RGB-D图像中的深度图像)与当前帧重建模型对齐,可以得到前一帧图像和当前帧图像之间的相对坐标变换,从而获取当前帧的第二计算位姿。
位姿更新单元68,用于根据第二计算位姿更新图像捕获单元的初始位姿,以实现对图像捕获单元的位姿跟踪。
根据本发明实施例所提供的位姿估计装置,不仅能实现准确的图像捕获单元的位姿估计,而且由于第一位姿获取单元仅涉及前一帧图像与当前帧图像,而与当前帧的重建模型无关,因此,在扫描对象偏离视野范围时也能提供大致准确的位姿,提高对图像捕获单元位姿跟踪的鲁棒性。
可选的,在本发明实施例中,为了提高计算效率,可以将RGB-D图像建立3-4层图像金字塔,第一算法(例如DVO算法)在低分辨率图像上计算,第二算法(例如ICP算法)在高分辨率图像上计算,以此降低整体算法的复杂度。
虽然上述根据本发明实施例提供的位姿跟踪装置具有精度高和速度快的特点,但是不适用于图像捕获单元快速运动的情况。当图像捕获单元运动过快时,相邻帧图像内容相差过大,存在运动模糊的问题,可能会导致图像捕获单元的位姿跟踪失败。
为了进一步提高对图像捕获单元位姿跟踪的鲁棒性,初始位姿确定单元62可以为惯性导航模块。可选的,在本发明实施例中,惯性导航模块是一个基于扩展卡尔曼滤波(Extended Kalman Filter,EKF)的状态估计系统。惯性导航模块可以以移动平台常见的惯性传感器(Inertial Measurement Unit,IMU)的数据作为输入,通过动力学积分方法获得图像捕获单元的初始位姿。惯性传感器是一种通过惯性力测量运动状态的传感器,常用的惯性传感器包括获取线性加速度数据的加速度计(Accelerator)和获取角速度数据的陀螺仪(Gyroscope)。考虑到移动平台常见的惯性传感器存在很大的噪声以及连续变化的偏置量,直接基于原始测量值进行计算得到的图像捕获单元位姿误差非常大。因此,将惯性传感器读数作为测量值,使用多传感器融合的方法,通过求解动力学方程完成卡尔曼滤波的预测,预测的图像捕获单元位姿作为图像捕获单元的初始位姿。通过使用多传感器融合的方法,可以综合考虑多种传感器的测量结果和不确定性,从而得到更准确的状态估计结果。
在初始位姿确定单元62为惯性导航模块的情况下,所述位姿更新单元68还包括根据所述第二计算位姿更新惯性导航模块的状态量,从而更新所述图像捕获单元的初始位姿。
以惯性导航模块作为初始位姿确定单元的位姿跟踪装置,可以显著提高剧烈运动情况下对图像捕获单元位姿跟踪的鲁棒性。此外,由于惯性导航模块的计算量很小,并且相较于将图像捕获单元的初始位姿设置为单位矩阵或者随机设定为任意值的方法,利用惯性导航模块可以获取基本准确的图像捕获单元的初始位姿,能够加速优化收敛的速度,提高计算性能。
根据本发明实施例提供的位姿跟踪装置还包括:位姿验证单元67,用于对第二计算位姿进行验证。具体地,可以通过在当前帧重建模型中获取对比图像,将对比图像与当前帧图像(例如,当前帧深度图像)进行比较,实现对第二计算位姿的验证。其中,在当前帧重建模型中获取对比图像可以是使用光线投射的方法从当前帧重建模型中渲染出一张深度图作为对比图像。在获取对比图像后,将其与当前帧深度图像比较,使用鲁棒核函数计算加权均方差,然后与第一阈值进行比较,实现对第二计算位姿的验证。在验证通过时,说明位姿跟踪成功,使用所述第二计算位姿、所述当前帧图像更新所述当前帧重建模型。否则,说明图像捕获单元跟踪失败,不对重建模型和惯性导航模块的状态量进行更新。
由此,通过使用第二计算位姿、当前帧图像更新当前帧重建模型,可以实现重建扫描对象的三维模型。
虽然上述基于惯性导航模块的位姿跟踪装置,对剧烈运动等情形下的图像捕获单元跟踪的鲁棒性有显著的改善,但是在用户遮挡摄像头,或者场景发生明显变化等情形下,位姿跟踪丢失的问题仍然是不可避免的。
为了能够在跟踪丢失的情况下快速恢复对图像捕获单元的位姿跟踪,重新估计图像捕获单元的位姿,以进一步提高对图像捕获单元位姿跟踪的鲁棒性,改善用户体验,上述位姿验证单元还用于在验证通过时,从验证通过的图像帧中,选取关键帧;基于选取的所述关键帧,构建词袋数据库;以及在验证不通过时,使用重定位方法恢复对图像捕获单元的跟踪。例如,可以在验证不通过时,将当前帧图像标记为跟踪失败,当连续跟踪失败的帧数超过第二阈值时,表明对所述图像捕获单元的位姿跟踪丢失,使用图像捕获单元重定位方法恢复图像捕获单元跟踪。
可选的,在本发明实施例中,重定位方法可以包含特征点和词袋(Bag of Worlds,BoW)匹配,以实现在位姿跟踪丢失的情况下快速恢复对图像捕获单元的位姿跟踪。其中,词袋是一种通过图片特征点描述子来描述图像特征的方法。
可选的,在本发明实施例中,在验证通过时,从验证通过的图像帧中,选取关键帧包括:在验证通过时,可以根据第二计算位姿,每隔一定角度和距离,从验证通过的相邻若干图像帧里挑选最清晰的一帧作为关键帧。图像的清晰度可以使用低通滤波器对图像进行光顺处理,得到一幅模糊图像。通过比较原图像和模糊图像的差别,即可得到模糊图像的模糊度。原图像与模糊图像越接近,说明原图像本身越模糊。
可选的,在本发明实施例中,基于选取的所述关键帧,构建词袋数据库包括:基于选取的关键帧,提取图像特征点,计算特征点描述子和词袋向量,并构建词袋数据库中。其中,上述词袋数据库可以通过离线的方式构建,采用一种类似文本检索的方式,从一组图像样本集中训练一个离线词袋数据库。将图像特征类比于单词,整个词袋数据库类比于词典。通过词典,对于任意一个特征,都能在词典中找到与之对应的单词。首先计算图像样本集中每个样本的图像特征以及描述子,然后根据Kmeans++算法将图像特征聚类成单词,并划分为K类子空间,将划分的子空间继续利用Kmeans++算法做聚类,按照上述循环将描述子聚类成树型结构,整个树型结构构成词典,树的叶子节点(也称为词节点)构成单词。同时在词典建立过程中,还为每个单词记录了该单词在所有的训练图像中出现的频率,出现的频率越高,表示这个单词的区分度越小,以描述该单词所表示的图像特征的区分度。
可选的,在本发明实施例中,在验证不通过时,使用重定位方法恢复对图像捕获单元的跟踪包括:在位姿跟踪丢失时,计算当前帧图像的词袋向量;根据所构建的词袋数据库和当前帧图像的词袋向量,选取候选关键帧;计算所述候选关键帧和所述当前帧图像之间的相对位姿,获取当前帧的第三计算位姿;根据所述第三计算位姿更新所述图像捕获单元的初始位姿,以恢复对所述图像捕获单元的位姿跟踪。
由于在对图像捕获单元跟踪丢失的情况下,惯性导航模块长时间得不到视觉定位模块的反馈,因而其系统状态很可能远远偏离真实值。为此,当重定位成功并恢复对图像捕获单元的位姿跟踪时,需要将惯性导航模块重新初始化,包括将惯性导航模块的外参、偏置和方差矩阵设为默认值,使用当前图像捕获单元位姿反求出惯性导航模块的初始位姿等。
【实施例五】
根据本发明实施例的另一方面,还提供了一种电子设备。参考图7,是根据本发明实施例的一种可选的电子设备的结构框图。如图7所示,电子设备7包括:处理器70;以及存储器72,用于存储所述处理器70的可执行指令;其中,所述处理器70被配置为经由执行所述可执行指令来执行实施例一至实施例三中任意一项所述的位姿跟踪方法。
【实施例六】
根据本发明实施例的另一方面,还提供了一种存储介质,其中,所述存储介质包括存储的程序,其中,在所述程序运行时控制所述存储介质所在设备执行实施例一至实施例三中任意一项所述的位姿跟踪方法。
上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。
在本发明的上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。
在本申请所提供的几个实施例中,应该理解到,所揭露的技术内容,可通过其它的方式实现。其中,以上所描述的装置实施例仅仅是示意性的,例如所述单元的划分,可以为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,单元或模块的间接耦合或通信连接,可以是电性或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可为个人计算机、服务器或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、移动硬盘、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。
Claims (32)
1.一种位姿跟踪方法,其特征在于,所述方法包括以下步骤:
获取扫描对象的连续多帧图像和图像捕获单元的初始位姿;
以所述初始位姿作为初值,基于所述连续多帧图像中的前一帧图像和当前帧图像,使用第一算法获取当前帧的第一计算位姿;
以所述第一计算位姿为初值,基于所述当前帧图像和当前帧重建模型,使用第二算法获取当前帧的第二计算位姿;
根据所述第二计算位姿更新所述图像捕获单元的初始位姿,并重复上述步骤以实现对所述图像捕获单元的位姿跟踪;
以所述初始位姿作为初值,基于所述连续多帧图像中的前一帧图像和当前帧图像,使用第一算法获取当前帧的第一计算位姿包括:以所述初始位姿作为初值,使用所述第一算法对所述前一帧图像和所述当前帧图像进行逐像素的颜色对齐,得到所述前一帧图像和所述当前帧图像之间的相对坐标变换,从而获取所述当前帧的第一计算位姿;
以所述第一计算位姿为初值,基于所述当前帧图像和当前帧重建模型,使用第二算法获取当前帧的第二计算位姿包括:以所述第一计算位姿为初值,使用所述第二算法对所述当前帧图像与所述当前帧重建模型进行三维点云对齐,得到所述前一帧图像和所述当前帧图像之间的相对坐标变换,从而获取当前帧的第二计算位姿。
2.根据权利要求1所述的方法,其特征在于,所述图像捕获单元的初始位姿设置为单位矩阵或者随机设定为任意值。
3.根据权利要求1所述的方法,其特征在于,所述连续多帧图像为连续的RGB-D图像。
4.根据权利要求1所述的方法,其特征在于,所述第一算法在低分辨率图像上计算,所述第二算法在高分辨率图像上计算。
5.根据权利要求1所述的方法,其特征在于,通过惯性导航模块获取所述图像捕获单元的初始位姿。
6.根据权利要求5所述的方法,其特征在于,根据所述第二计算位姿更新惯性导航模块的状态量,从而更新所述图像捕获单元的初始位姿。
7.根据权利要求5所述的方法,其特征在于,通过所述惯性导航模块使用多传感器融合的方法获取所述图像捕获单元的初始位姿。
8.根据权利要求5所述的方法,其特征在于,所述惯性导航模块为基于扩展卡尔曼滤波的状态估计系统。
9.根据权利要求1或5所述的方法,还包括:对所述第二计算位姿进行验证,在验证通过时,使用所述第二计算位姿、所述当前帧图像更新所述当前帧重建模型。
10.根据权利要求9所述的方法,其特征在于,对所述第二计算位姿进行验证包括:通过在所述当前帧重建模型中获取对比图像,将所述对比图像与所述当前帧图像进行比较,实现对所述第二计算位姿的验证。
11.根据权利要求9所述的方法,还包括:
在验证通过时,从验证通过的图像帧中,选取关键帧;
基于选取的所述关键帧,构建词袋数据库。
12.根据权利要求11所述的方法,还包括:在验证不通过时,判断对所述图像捕获单元的位姿跟踪是否丢失,并使用重定位方法恢复对所述图像捕获单元的位姿跟踪。
13.根据权利要求12所述的方法,其特征在于,判断对所述图像捕获单元的位姿跟踪是否丢失包括:将所述当前帧图像标记为跟踪失败,当连续跟踪失败的帧数超过第二阈值时,表明对所述图像捕获单元的位姿跟踪丢失,使用所述重定位方法恢复对所述图像捕获单元的位姿跟踪。
14.根据权利要求12所述的方法,其特征在于,所述重定位方法包括:
在位姿跟踪丢失时,计算所述当前帧图像的词袋向量;
根据所构建的词袋数据库和所述当前帧图像的词袋向量,选取候选关键帧;
计算所述候选关键帧和所述当前帧图像之间的相对位姿,获取当前帧的第三计算位姿;
根据所述第三计算位姿更新所述图像捕获单元的初始位姿,以恢复对所述图像捕获单元的位姿跟踪。
15.根据权利要求12所述的方法,还包括:在恢复对所述图像捕获单元的位姿跟踪后,将惯性导航模块初始化。
16.一种位姿跟踪装置,其特征在于,所述装置包括:
图像捕获单元,用于获取扫描对象的连续多帧图像;
初始位姿确定单元,用于确定所述图像捕获单元的初始位姿;
第一位姿获取单元,用于以所述初始位姿作为初值,基于所述连续多帧图像中的前一帧图像和当前帧图像,使用第一算法获取当前帧的第一计算位姿;
第二位姿获取单元,用于以所述第一计算位姿为初值,基于所述当前帧图像和当前帧重建模型,使用第二算法获取当前帧的第二计算位姿;位姿更新单元,用于根据所述第二计算位姿更新所述图像捕获单元的初始位姿,以实现对所述图像捕获单元的位姿跟踪;
以所述初始位姿作为初值,基于所述连续多帧图像中的前一帧图像和当前帧图像,使用第一算法获取当前帧的第一计算位姿包括:以所述初始位姿作为初值,使用所述第一算法对所述前一帧图像和所述当前帧图像进行逐像素的颜色对齐,得到所述前一帧图像和所述当前帧图像之间的相对坐标变换,从而获取所述当前帧的第一计算位姿;
以所述第一计算位姿为初值,基于所述当前帧图像和当前帧重建模型,使用第二算法获取当前帧的第二计算位姿包括:以所述第一计算位姿为初值,使用所述第二算法对所述当前帧图像与所述当前帧重建模型进行三维点云对齐,得到所述前一帧图像和所述当前帧图像之间的相对坐标变换,从而获取当前帧的第二计算位姿。
17.根据权利要求16所述的装置,其特征在于,所述初始位姿确定单元将所述图像捕获单元的初始位姿设置为单位矩阵或者随机设定为任意值。
18.根据权利要求16所述的装置,其特征在于,所述连续多帧图像为连续的RGB-D图像。
19.根据权利要求16所述的装置,其特征在于,所述第一算法在低分辨率图像上计算,所述第二算法在高分辨率图像上计算。
20.根据权利要求16所述的装置,其特征在于,所述初始位姿确定单元为惯性导航模块。
21.根据权利要求20所述的装置,其特征在于,所述位姿更新单元还包括根据所述第二计算位姿更新惯性导航模块的状态量,从而更新所述图像捕获单元的初始位姿。
22.根据权利要求20所述的装置,其特征在于,所述惯性导航模块使用多传感器融合的方法获取所述图像捕获单元的初始位姿。
23.根据权利要求20所述的装置,其特征在于,所述惯性导航模块为基于扩展卡尔曼滤波的状态估计系统。
24.根据权利要求16或20所述的装置,其特征在于,所述位姿跟踪装置还包括:位姿验证单元,用于对所述第二计算位姿进行验证,在验证通过时,使用所述第二计算位姿、所述当前帧图像更新所述当前帧重建模型。
25.根据权利要求24所述的装置,其特征在于,对所述第二计算位姿进行验证包括:通过在所述当前帧重建模型中获取对比图像,将所述对比图像与所述当前帧图像进行比较,实现对所述第二计算位姿的验证。
26.根据权利要求24所述的装置,还包括:
在验证通过时,从验证通过的图像帧中,选取关键帧;
基于选取的所述关键帧,构建词袋数据库。
27.根据权利要求26所述的装置,还包括:在验证不通过时,判断对所述图像捕获单元的位姿跟踪是否丢失,并使用重定位方法恢复对所述图像捕获单元的位姿跟踪。
28.根据权利要求27所述的装置,其特征在于,判断对所述图像捕获单元的位姿跟踪是否丢失包括:将所述当前帧图像标记为跟踪失败,当连续跟踪失败的帧数超过第二阈值时,表明对所述图像捕获单元的位姿跟踪丢失,使用所述重定位方法恢复对所述图像捕获单元的跟踪。
29.根据权利要求27所述的装置,其特征在于,所述使用重定位方法恢复对所述图像捕获单元的位姿跟踪包括:
在位姿跟踪丢失时,计算所述当前帧图像的词袋向量;
根据所构建的词袋数据库和所述当前帧图像的词袋向量,选取候选关键帧;
计算所述候选关键帧和所述当前帧图像之间的相对位姿,获取当前帧的第三计算位姿;
根据所述第三计算位姿更新所述图像捕获单元的初始位姿,以恢复对所述图像捕获单元的位姿跟踪。
30.根据权利要求26所述的装置,还包括:在恢复对所述图像捕获单元的位姿跟踪后,将惯性导航模块初始化。
31.一种电子设备,包括:
处理器;以及
存储器,用于存储所述处理器的可执行指令;
其中,所述处理器配置为经由执行所述可执行指令来执行权利要求1至15中任意一项所述的位姿跟踪方法。
32.一种存储介质,其特征在于,所述存储介质包括存储的程序,其中,在所述程序运行时控制所述存储介质所在设备执行权利要求1至15中任意一项所述的位姿跟踪方法。
Priority Applications (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910396914.7A CN111951325B (zh) | 2019-05-14 | 2019-05-14 | 位姿跟踪方法、位姿跟踪装置及电子设备 |
PCT/CN2020/083893 WO2020228453A1 (zh) | 2019-05-14 | 2020-04-09 | 位姿跟踪方法、位姿跟踪装置及电子设备 |
US17/610,449 US11922658B2 (en) | 2019-05-14 | 2020-04-09 | Pose tracking method, pose tracking device and electronic device |
KR1020217041032A KR20220008334A (ko) | 2019-05-14 | 2020-04-09 | 포즈 추적 방법, 포즈 추적 장치 및 전자 기기 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910396914.7A CN111951325B (zh) | 2019-05-14 | 2019-05-14 | 位姿跟踪方法、位姿跟踪装置及电子设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111951325A CN111951325A (zh) | 2020-11-17 |
CN111951325B true CN111951325B (zh) | 2024-01-12 |
Family
ID=73290130
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910396914.7A Active CN111951325B (zh) | 2019-05-14 | 2019-05-14 | 位姿跟踪方法、位姿跟踪装置及电子设备 |
Country Status (4)
Country | Link |
---|---|
US (1) | US11922658B2 (zh) |
KR (1) | KR20220008334A (zh) |
CN (1) | CN111951325B (zh) |
WO (1) | WO2020228453A1 (zh) |
Families Citing this family (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112837424B (zh) * | 2021-02-04 | 2024-02-06 | 脸萌有限公司 | 图像处理方法、装置、设备和计算机可读存储介质 |
CN112884814B (zh) * | 2021-03-15 | 2023-01-06 | 南通大学 | 一种抗遮挡的动作跟踪方法、装置及存储介质 |
CN112948411B (zh) * | 2021-04-15 | 2022-10-18 | 深圳市慧鲤科技有限公司 | 位姿数据的处理方法及接口、装置、系统、设备和介质 |
CN113256711B (zh) * | 2021-05-27 | 2024-03-12 | 南京航空航天大学 | 一种单目相机的位姿估计方法及系统 |
CN113256718B (zh) * | 2021-05-27 | 2023-04-07 | 浙江商汤科技开发有限公司 | 定位方法和装置、设备及存储介质 |
US20230230260A1 (en) * | 2022-01-18 | 2023-07-20 | Pony Ai Inc. | Hardware-based point-cloud matching |
CN116152919A (zh) * | 2022-12-27 | 2023-05-23 | 北京凌宇智控科技有限公司 | 手部姿态跟踪方法、装置、存储介质及设备 |
CN118362113A (zh) * | 2024-04-23 | 2024-07-19 | 深圳市蓝色极光储能科技有限公司 | 基于移动机器人的构图方法以及其系统 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106780601A (zh) * | 2016-12-01 | 2017-05-31 | 北京未动科技有限公司 | 一种空间位置追踪方法、装置及智能设备 |
CN107833270A (zh) * | 2017-09-28 | 2018-03-23 | 浙江大学 | 基于深度相机的实时物体三维重建方法 |
CN109410316A (zh) * | 2018-09-21 | 2019-03-01 | 深圳前海达闼云端智能科技有限公司 | 物体的三维重建的方法、跟踪方法、相关装置及存储介质 |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9658070B2 (en) * | 2014-07-11 | 2017-05-23 | Regents Of The University Of Minnesota | Inverse sliding-window filters for vision-aided inertial navigation systems |
US10284794B1 (en) * | 2015-01-07 | 2019-05-07 | Car360 Inc. | Three-dimensional stabilized 360-degree composite image capture |
US10802147B2 (en) * | 2016-05-18 | 2020-10-13 | Google Llc | System and method for concurrent odometry and mapping |
CN110675426B (zh) * | 2018-07-02 | 2022-11-22 | 百度在线网络技术(北京)有限公司 | 人体跟踪方法、装置、设备及存储介质 |
-
2019
- 2019-05-14 CN CN201910396914.7A patent/CN111951325B/zh active Active
-
2020
- 2020-04-09 KR KR1020217041032A patent/KR20220008334A/ko active Search and Examination
- 2020-04-09 WO PCT/CN2020/083893 patent/WO2020228453A1/zh active Application Filing
- 2020-04-09 US US17/610,449 patent/US11922658B2/en active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106780601A (zh) * | 2016-12-01 | 2017-05-31 | 北京未动科技有限公司 | 一种空间位置追踪方法、装置及智能设备 |
CN107833270A (zh) * | 2017-09-28 | 2018-03-23 | 浙江大学 | 基于深度相机的实时物体三维重建方法 |
CN109410316A (zh) * | 2018-09-21 | 2019-03-01 | 深圳前海达闼云端智能科技有限公司 | 物体的三维重建的方法、跟踪方法、相关装置及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
WO2020228453A1 (zh) | 2020-11-19 |
CN111951325A (zh) | 2020-11-17 |
KR20220008334A (ko) | 2022-01-20 |
US11922658B2 (en) | 2024-03-05 |
US20220222849A1 (en) | 2022-07-14 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111951325B (zh) | 位姿跟踪方法、位姿跟踪装置及电子设备 | |
US9014421B2 (en) | Framework for reference-free drift-corrected planar tracking using Lucas-Kanade optical flow | |
EP2614487B1 (en) | Online reference generation and tracking for multi-user augmented reality | |
CN113706699B (zh) | 数据处理方法、装置、电子设备及计算机可读存储介质 | |
CN109035334B (zh) | 位姿的确定方法和装置、存储介质及电子装置 | |
CN111899282B (zh) | 基于双目摄像机标定的行人轨迹跟踪方法及装置 | |
CN106650965B (zh) | 一种远程视频处理方法及装置 | |
CN111127524A (zh) | 一种轨迹跟踪与三维重建方法、系统及装置 | |
CN111402294A (zh) | 目标跟踪方法、装置、计算机可读存储介质和计算机设备 | |
CN112785705B (zh) | 一种位姿获取方法、装置及移动设备 | |
JP5774226B2 (ja) | 方位センサに基づくホモグラフィ分解の曖昧性の解決 | |
CN110544302A (zh) | 基于多目视觉的人体动作重建系统、方法和动作训练系统 | |
CN111275734B (zh) | 物体辨识与追踪系统及其方法 | |
CN105809664B (zh) | 生成三维图像的方法和装置 | |
CN103500454A (zh) | 一种抖动视频运动目标提取方法 | |
CN107360377B (zh) | 一种车载视频稳像方法 | |
CN114185073A (zh) | 一种位姿显示方法、装置及系统 | |
CN114882106A (zh) | 位姿确定方法和装置、设备、介质 | |
CN112802112B (zh) | 视觉定位方法、装置、服务器及存储介质 | |
CN109978908A (zh) | 一种适应大尺度形变的单目标快速跟踪定位方法 | |
CN117333551A (zh) | 单目vio系统的初始化方法、电子设备和存储介质 | |
US20230360241A1 (en) | 3D Reconstruction Without 3D Convolutions | |
CN110009683B (zh) | 基于MaskRCNN的实时平面上物体检测方法 | |
CN112200917A (zh) | 一种高精度增强现实方法及系统 | |
CN115294358A (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 | ||
CB02 | Change of applicant information | ||
CB02 | Change of applicant information |
Address after: 310052 19th Floor, No. 392, Binxing Road, Changhe Street, Binjiang District, Hangzhou City, Zhejiang Province (Hongsoft Building) Applicant after: Rainbow Software Co.,Ltd. Address before: 310012 22nd and 23rd Floors of Building A, Paradise Software Park, No. 3 Xidoumen Road, Xihu District, Hangzhou City, Zhejiang Province Applicant before: Rainbow Software Co.,Ltd. |
|
GR01 | Patent grant | ||
GR01 | Patent grant |