位姿估计方法和装置
技术领域
本申请涉及计算机视觉技术领域,具体涉及位姿估计领域,尤其涉及一种位姿估计方法和装置。
背景技术
近年来随着传感器、处理器等硬件的快速更新换代和定位、重建、学习等先进算法涌现,推动了无人机和机器人等相关行业的快速发展,这些行业相关的核心技术主要包括:位姿估计、三维重建、路径规划、机器学习等。位姿估计尤其是视觉位姿估计涉及到图像处理、计算机视觉、惯性导航、数理统计、最优化等多个学科的知识,是许多新兴产业和行业的基础技术,在人们当前及今后的生产和生活中将发挥重要作用。
现有的位姿估计方法,通常需要提取图像的特征点,并建立描述子,因此具有消耗大量计算资源的特点,位姿估计的实时性较差。
发明内容
本申请的目的在于提出一种位姿估计方法和装置,来解决以上背景技术部分提到的技术问题。
第一方面,本申请实施例提供了一种位姿估计方法,从深度传感器处获取深度图像视频;从所述深度图像视频的各帧深度图像中选取第一深度图像和第二深度图像,其中,所述第一深度图像和所述第二深度图像中共有至少一个指示同一物体的像素点;确定所述第一深度图像中的第一像素点集合以及所述第二深度图像中的第二像素点集合,其中,所述第一像素点集合中的各像素点与所述第二像素点集合中的各像素点一一对应,且对应的两个像素点指示同一物体;对于所述第一像素点集合中的任一像素点,基于该像素点在所述第一深度图像中的第一二维坐标及与该像素点对应的对应像素点在所述第二深度图像中的第一深度值,确定所述深度传感器的位姿变换参数。
在一些实施例中,在所述从所述各帧深度图像中选取第一深度图像和第二深度图像之前,所述方法还包括:对于每帧深度图像,删除该帧深度图像中符合预设条件的像素点;对删除后的深度图像进行平滑处理。
在一些实施例中,所述删除该帧深度图像中符合预设条件的像素点,包括:检测每个像素点的深度值;将深度值大于第一预设值,且深度值小于第二预设值的像素点删除。
在一些实施例中,所述删除该帧深度图像中符合预设条件的像素点,包括:确定该帧深度图像在水平方向的第一偏导数和在竖直方向上的第二偏导数;根据所述第一偏导数和所述第二偏导数,确定该帧深度图像中的几何边缘像素点;将所述几何边缘像素点删除。
在一些实施例中,所述删除该帧深度图像中符合预设条件的像素点,包括:确定该帧深度图像中深度值不存在的失效像素点;将所述失效像素点以及与所述失效像素点相邻的像素点删除。
在一些实施例中,所述基于该像素点在所述第一深度图像中的第一二维坐标及与该像素点对应的对应像素点在所述第二深度图像中的第一深度值,确定所述深度传感器的位姿变换参数,包括:将该像素点在所述第一深度图像中的第一二维坐标映射为所述第一深度图像所属坐标系的第一三维空间坐标;将所述第一三维空间坐标变换到所述第二深度图像所属坐标系,得到第二三维空间坐标;将所述第二三维空间坐标映射到所述第二深度图像中,得到第二二维坐标;确定所述第二二维坐标在所述第二深度图像中的第二深度值;基于所述第一深度值以及所述第二深度值,确定所述深度传感器的位姿变换参数。
在一些实施例中,所述基于所述第一深度值以及所述第二深度值,确定所述深度传感器的位姿变换参数,包括:根据所述第一深度值以及所述第二深度值,确定所述第一深度图像与所述第二深度图像之间的深度差值;确定所述深度差值为深度残差,并基于所述深度残差,执行以下迭代步骤:基于所述深度残差,确定位姿估计增量;确定所述深度残差是否小于预设阈值;响应于所述深度残差小于预设阈值,累积所述位姿估计增量与所述第一深度值,确定位姿估计值;根据所述位姿估计值,确定所述深度传感器的位姿变换参数;响应于所述深度残差大于或等于预设阈值,确定累积的所述位姿估计增量为所述深度残差,继续执行所述迭代步骤。
在一些实施例中,所述方法还包括:从与所述深度传感器物理绑定的惯性测量装置处获取角速度和加速度;根据所述角速度和所述加速度,确定所述惯性测量装置的位姿变换参数;融合所述深度传感器的位姿变换参数以及所述惯性测量装置的位姿变换参数,确定综合位姿变换参数。
在一些实施例中,所述根据所述角速度和所述加速度,确定所述惯性测量装置的位姿变换参数,包括:根据所述角速度,确定所述惯性测量装置的第一位姿变换参数;根据所述加速度,确定所述惯性测量装置的第二位姿变换参数;融合所述第一位姿变换参数以及所述第二位姿变换参数,确定所述惯性测量装置的位姿变换参数。
第二方面,本申请实施例提供了一种位姿估计装置,所述装置包括:第一获取单元,用于从深度传感器处获取深度图像视频;图像选取单元,用于从所述深度图像视频的各帧深度图像中选取第一深度图像和第二深度图像,其中,所述第一深度图像和所述第二深度图像中共有至少一个指示同一物体的像素点;像素点集合确定单元,用于确定所述第一深度图像中的第一像素点集合以及所述第二深度图像中的第二像素点集合,其中,所述第一像素点集合中的各像素点与所述第二像素点集合中的各像素点一一对应,且对应的两个像素点指示同一物体;第一参数确定单元,用于对于所述第一像素点集合中的任一像素点,基于该像素点在所述第一深度图像中的第一二维坐标及与该像素点对应的对应像素点在所述第二深度图像中的第一深度值,确定所述深度传感器的位姿变换参数。
在一些实施例中,所述装置还包括预处理单元,所述预处理单元包括像素点删除模块以及平滑模块;所述像素点删除模块,用于在所述图像选取单元从所述各帧深度图像中选取第一深度图像和第二深度图像之前,对于每帧深度图像,删除该帧深度图像中符合预设条件的像素点;所述平滑模块,用于对删除后的深度图像进行平滑处理。
在一些实施例中,所述像素点删除模块进一步用于:检测每个像素点的深度值;将深度值大于第一预设值,且深度值小于第二预设值的像素点删除。
在一些实施例中,所述像素点删除模块进一步用于:确定该帧深度图像在水平方向的第一偏导数和在竖直方向上的第二偏导数;根据所述第一偏导数和所述第二偏导数,确定该帧深度图像中的几何边缘像素点;将所述几何边缘像素点删除。
在一些实施例中,所述像素点删除模块进一步用于:确定该帧深度图像中深度值不存在的失效像素点;将所述失效像素点以及与所述失效像素点相邻的像素点删除。
在一些实施例中,所述第一参数确定单元包括:第一映射模块,用于将该像素点在所述第一深度图像中的第一二维坐标映射为所述第一深度图像所属坐标系的第一三维空间坐标;变换模块,用于将所述第一三维空间坐标变换到所述第二深度图像所属坐标系,得到第二三维空间坐标;第二映射模块,用于将所述第二三维空间坐标映射到所述第二深度图像中,得到第二二维坐标;深度值确定模块,用于确定所述第二二维坐标在所述第二深度图像中的第二深度值;第一参数确定模块,用于基于所述第一深度值以及所述第二深度值,确定所述深度传感器的位姿变换参数。
在一些实施例中,所述第一参数确定模块进一步用于:根据所述第一深度值以及所述第二深度值,确定所述第一深度图像与所述第二深度图像之间的深度差值;确定所述深度差值为深度残差,并基于所述深度残差,执行以下迭代步骤:基于所述深度残差,确定位姿估计增量;确定所述深度残差是否小于预设阈值;响应于所述深度残差小于预设阈值,累积所述位姿估计增量与所述第一深度值,确定位姿估计值;根据所述位姿估计值,确定所述深度传感器的位姿变换参数;响应于所述深度残差大于或等于预设阈值,确定累积的所述位姿估计增量为所述深度残差,继续执行所述迭代步骤。
在一些实施例中,所述装置还包括:第二获取单元,用于从与所述深度传感器物理绑定的惯性测量装置处获取角速度和加速度;第二参数确定单元,用于根据所述角速度和所述加速度,确定所述惯性测量装置的位姿变换参数;参数融合单元,用于融合所述深度传感器的位姿变换参数以及所述惯性测量装置的位姿变换参数,确定综合位姿变换参数。
在一些实施例中,所述第二参数确定单元包括:第一子参数确定模块,用于根据所述角速度,确定所述惯性测量装置的第一位姿变换参数;第二子参数确定模块,用于根据所述加速度,确定所述惯性测量装置的第二位姿变换参数;融合模块,用于融合所述第一位姿变换参数以及所述第二位姿变换参数,确定所述惯性测量装置的位姿变换参数。
第三方面,本申请实施例提供了一种服务器,包括:一个或多个处理器;存储装置,用于存储一个或多个程序,当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现上述任一实施例所描述的方法。
第四方面,本申请实施例提供了一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现如上述任一实施例所描述的方法。
本申请提供的位姿估计方法和装置,从深度传感器获取其采集的深度图像视频,并从其中选取两帧共有至少一个指示同一物体的像素点的深度图像,然后确定上述两帧深度图像中相互对应的第一像素点集合和第二像素点集合,然后对于第一像素点集合中的每一像素点,根据其在第一深度图像中的第一二维坐标及与该像素点对应的对应像素点在第二深度图像中的第一深度值,确定深度传感器的位姿变换参数。本申请的位姿估计方法,利用深度图像进行位姿估计,降低了对计算资源的消耗,提高了计算效率,保证了位姿估计的实时性。
附图说明
通过阅读参照以下附图所作的对非限制性实施例所作的详细描述,本申请的其它特征、目的和优点将会变得更明显:
图1是本申请可以应用于其中的示例性系统架构图;
图2是根据本申请的位姿估计方法的一个实施例的流程图;
图3是根据本申请的位姿估计方法的一个应用场景的示意图;
图4是根据本申请的位姿估计方法中确定深度传感器的位姿变换参数的流程图;
图5是根据本申请的位姿估计方法中位姿变换原理示意图;
图6是根据本申请的位姿估计方法的另一个实施例的流程图;
图7是根据本申请的位姿估计装置的一个实施例的结构示意图;
图8是适于用来实现本申请实施例的服务器的计算机系统的结构示意图。
具体实施方式
下面结合附图和实施例对本申请作进一步的详细说明。可以理解的是,此处所描述的具体实施例仅仅用于解释相关发明,而非对该发明的限定。另外还需要说明的是,为了便于描述,附图中仅示出了与有关发明相关的部分。
需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。下面将参考附图并结合实施例来详细说明本申请。
图1示出了可以应用本申请的位姿估计方法或位姿估计装置的实施例的示例性系统架构100。
如图1所示,系统架构100可以包括深度传感器101,网络102和服务器103。网络102用以在深度传感器101和服务器103之间提供通信链路的介质。网络102可以包括各种连接类型,例如有线、无线通信链路或者光纤电缆等等。
深度传感器101通过网络102与服务器103交互,以发送深度图像视频等。深度传感器101可以安装在各种运动的物体上,例如可以安装在无人车、机器人、无人配送车、智能穿戴设备、虚拟现实设备上等。
深度传感器101可以是能够连续采集多帧深度图像的各种深度传感器。
服务器103可以是提供各种服务的服务器,例如对深度传感器101采集的深度图像视频进行处理的后台服务器。后台服务器可以对接收到的深度图像视频等数据进行分析等处理。
需要说明的是,本申请实施例所提供的位姿估计方法一般由服务器103执行,相应地,位姿估计装置一般设置于服务器103中。
应该理解,图1中的深度传感器、网络和服务器的数目仅仅是示意性的。根据实现需要,可以具有任意数目的深度传感器、网络和服务器。
继续参考图2,示出了根据本申请的位姿估计方法的一个实施例的流程200。本实施例的位姿估计方法,包括以下步骤:
步骤201,从深度传感器处获取深度图像视频。
在本实施例中,位姿估计方法运行于其上的电子设备(例如图1所示的服务器)可以通过有线连接方式或者无线连接方式从深度传感器处获取深度图像视频。深度图像视频中的各帧图像均为深度图像。深度图像(depth image)也被称为距离影像,是指将图像采集器到场景中各点的距离(深度)作为像素值的图像,它直接反映了景物可见表面的几何形状。深度图像中的每一个像素点代表的是在深度传感器的视野中,特定坐标处的物体到深度传感器的摄像头平面之间的距离。
需要指出的是,上述无线连接方式可以包括但不限于3G/4G连接、WiFi连接、蓝牙连接、WiMAX连接、Zigbee连接、UWB(ultra wideband)连接以及其他现在已知或将来开发的无线连接方式。
步骤202,从深度图像视频的各帧深度图像中选取第一深度图像和第二深度图像。
其中,上述第一深度图像和第二深度图像中共有至少一个指示同一物体的像素点,也就是说,第一深度图像和第二深度图像中共有至少一个物体。例如,上述第一深度图像与第二深度图像可以是上述深度图像视频中相邻的两帧深度图像,也可以是在深度图像视频中的序号相差小于预设值的两帧深度图像。
步骤203,确定第一深度图像中的第一像素点集合以及第二深度图像中的第二像素点集合。
上述第一像素点集合中的各像素点与第二像素点集合中的各像素点一一对应,且相对应的两个像素点指示同一物体,更具体的,相对应的两个像素点指示同一物体的同一位置。可以理解的是,第一像素点集合中的像素点数量与第二像素点集合中的像素点数量相等,且其数量与第一深度图像与第二深度图像中共有的指示同一物体的像素点的数量相同。
步骤204,对于第一像素点集合中的任一像素点,基于该像素点在第一深度图像中的第一二维坐标及与该像素点对应的对应像素点在第二深度图像中的第一深度值,确定深度传感器的位姿变换参数。
服务器可以基于第一像素点集合中的每个像素点在第一深度图像中的第一二维坐标以及第二像素点集合中与该像素点对应的对应像素点在第二深度图像中的第一深度值,来确定深度传感器的位姿变换参数。可以理解的是,上述第一二维坐标是该像素点在第一深度图像的图像坐标系中的坐标,上述第一二维坐标中不包括该像素点的深度值。与该像素点对应的对应的像素点存在于第二像素点集合中,由于每个像素点都有一个深度值,因此可以通过第二深度图像确定上述对应像素点的第一深度值。上述位姿变换参数可以是上述第一深度图像与第二深度图像之间的位姿变换参数。
继续参见图3,图3是根据本实施例的位姿估计方法的应用场景的一个示意图。在图3的应用场景中,无人车302上安装有深度传感器301,随着无人车302的行驶,深度传感器301采集了深度图像视频,并将采集到的深度图像视频发送给服务器303,服务器303在接收到上述深度图像视频后,确定了深度传感器301的位姿变换参数后,将此位姿变换参数发送给无人车302,则无人车302可以根据上述位姿变换参数进行导航和避障。
本申请的上述实施例提供的位姿估计方法,从深度传感器获取其采集的深度图像视频,并从其中选取两帧共有至少一个指示同一物体的像素点的深度图像,然后确定上述两帧深度图像中相互对应的第一像素点集合和第二像素点集合,然后对于第一像素点集合中的每一像素点,根据其在第一深度图像中的第一二维坐标及与该像素点对应的对应像素点在第二深度图像中的第一深度值,确定深度传感器的位姿变换参数,降低了对计算资源的消耗,提高了计算效率,保证了位姿估计的实时性。
在本实施例的一些可选的实现方式中,上述方法还包括图2中未示出的以下步骤:
对于每帧深度图像,删除该帧深度图像中符合预设条件的像素点;对删除后的深度图像进行平滑处理。
深度传感器通常会发射探测光线(例如红外线、激光、雷达),并接收物体表面反射回来的探测光线来确定物体与深度传感器之间的距离。由于物体的遮挡、物体表面对探测光线的吸收和漫反射等原因,造成深度传感器不能完全接收反射回来的探测光线。因此深度图像中的很多像素点没有深度值或者深度值不准确。本实现方式中,为了保证位姿估计的准确性,需要将每帧深度图像中符合预设条件的像素点删除。同时,为了提高深度值的鲁棒性,抑制深度值的噪声,可以对删除了像素点的深度图像进行平滑处理。上述平滑处理可以包括:线性平滑、插值平滑、卷积平滑、高斯滤波、双边滤波等。
在本实施例的一些可选的实现方式中,可以首先检测每个像素点的深度值,并将深度值大于第一预设值、小于第二预设值的像素点删除。
由于深度传感器自身的限制,深度值在第一预设值与第二预设值之间的像素点的不确定性非常高,因此需要将这些像素点删除。可以理解的是,上述第一预设值、第二预设值的值与深度传感器的型号有关,本实现方式对此不做限定。
在本实施例的一些可选的实现方式中,可以确定每帧深度图像在水平方向u方向的第一偏导数Zu以及在竖直方向v方向的第二偏导数Zv,然后根据Zu和Zv确定该帧深度图像中的几何边缘像素点,将确定的几何边缘像素点删除。
由于深度传感器上的探测光线发射器与探测光线接收器的位置不重合,所以对于物体边缘所在的像素点来说,其深度值具有很高的不确定性,同时在这些边缘所在像素点两侧的像素点深度值会发生跳变,为了保证位姿估计的准确性,可以将上述几何边缘像素点删除。
在本实施例的一些可选的实现方式中,可以确定每帧深度图像中深度值不存在的失效像素点,然后将这些失效像素点以及与这些失效像素点相邻的像素点删除。
如果深度传感器的探测光线发射器发射的探测光线被物体遮挡或吸收,则探测光线接收器不能接收到物体反射回的探测光线,从而不能确定该像素点的深度值,这些像素点称为失效像素点。同时,为了提高位姿估计的准确性,将与失效像素点相邻的像素点也一并删除。
继续参见图4,其示出了根据本申请的位姿估计方法中确定深度传感器的位姿变换参数的流程400。如图4所示,本实施例中,可以通过以下步骤来确定深度传感器的位姿变换参数:
步骤401,将该像素点在第一深度图像中的第一二维坐标映射为第一深度图像所属坐标系的第一三维空间坐标。
对于第一像素点集合中的任一像素点,可以首先确定该像素点在第一深度图像中的第一二维坐标(x1,y1),然后将上述第一二维坐标(x1,y1)映射为第一三维空间坐标。在映射时,可通过针孔相机模型中的π-1映射得到第一深度图像所属坐标系的第一三维空间坐标(x1’,y1’,z1’)。
针孔相机模型包括将三维空间点投影到像素平面的二维坐标的映射关系π以及将图像上带有深度的点的二维坐标映射为三维空间点的映射关系π-1。
步骤402,将第一三维空间坐标变换到第二深度图像所属坐标系,得到第二三维空间坐标。
本实施例中,第一深度图像变换到第二深度图像之间的位姿变换参数记为T1→2,具体可参见图5。图5中,世界坐标系xw-yw-zw下的一个行人记为点P,深度传感器在t1时刻位于左侧,在t2时刻位于右侧。点P在t1时刻得到的深度图像中为点P1,其坐标为(x1,y1),其深度值为Z1,其所属的坐标系为xc1-yc1-zc1。点P在t2时刻得到的深度图像中为点P2,其坐标为(x2,y2),其深度值为Z2,其所属的坐标系为xc2-yc2-zc2。坐标系xc1-yc1-zc1与坐标系xc2-yc2-zc2之间的位姿变换参数为T1→2。
上述位姿变换参数T1→2用李代数se(3)表示为ξ,将ξ用矩阵来表示为李群T(ξ)。在将上述第一三维空间坐标变换到第二深度图像所属坐标系时,可以预设一个李群T(ξ),并利用此预设的李群T(ξ)完成变换,得到第二三维坐标(x2’,y2’,z2’)。
步骤403,将第二三维空间坐标映射到第二深度图像中,得到第二二维坐标。
本实施例中,可以利用针孔相机模型中的π映射得到第二二维坐标(x2,y2)。
步骤404,确定第二二维坐标在第二深度图像中的第二深度值。
在第二深度图像中确定上述第二二维坐标(x2,y2)的第二深度值。理想情况下,上述第二深度值应与第二像素点集合中与该像素点对应的对应像素点的第一深度值相同。但由于噪声存在,往往两者不相同。
步骤405,基于第一深度值以及第二深度值,确定深度传感器的位姿变换参数。
在得到上述第二深度值后,可以结合第一深度值,来确定深度传感器的位姿变换参数。
在本实施例的一些可选的实现方式中,上述步骤405可以通过图4中未示出的以下步骤来实现:
根据第一深度值以及第二深度值,确定第一深度图像与第二深度图像之间的深度差值;确定上述深度差值为深度残差,并基于深度残差,执行以下迭代步骤:基于深度残差,确定位姿估计增量;确定深度残差是否小于预设阈值;响应于深度残差小于预设阈值,累积位姿估计增量与第一深度值,确定位姿估计值;根据位姿估计值,确定深度传感器的位姿变换参数;响应于所述深度残差大于或等于预设阈值,确定累积的位姿估计增量为深度残差,继续执行迭代步骤。
本实现方式中,如果第一深度值与第二深度值不相等,则确定二者之差为第一深度图像与第二深度图像之间的深度差值。将上述深度差值作为深度残差,然后执行迭代步骤:基于上述深度残差,确定位姿估计增量,然后判断上述深度残差是否小于预设阈值,如果小于的话,则将上述位姿估计增量与第一深度值累积,得到位姿估计值,此时的位姿估计值与第二深度值之间的差值在可接收的范围内,因此可直接根据上述位姿估计值来确定深度传感器的位姿变换参数。如果上述深度残差大于或等于预设阈值,则将每次执行迭代步骤得到的位姿估计增量累积,将上述累积值作为新的深度残差,然后继续执行迭代步骤。
本实现方式中,可以根据以下公式来确定深度传感器的位姿变换参数:
ξ*=arg min∑|Z2(P2')-[T(ξ)·π-1(P1)]Z|
其中,ξ*为位姿变换参数的估计值,Z2为第二深度图像,P1为第一深度图像中的像素点,P2’为P1在第二深度图像中的对应像素点,Z2(P2’)为P2’点在第二深度图像中的深度值(即第一深度值),T为李群,ξ为位姿变换参数,T(ξ)为预设的位姿变换的李群,π-1为针孔相机模型中的π-1映射,[T(ξ)·π-1(P1)]Z为P1点经π映射变为三维空间点然后经空间变换至第二深度图像所属的坐标系再经π-1映射得到的像素点的深度值(即第二深度值),arg min函数表示使∑|Z2(P2')-[T(ξ)·π-1(P1)]Z|取最小值时的ξ值,记为ξ*。
本申请的上述实施例所提供的位姿估计方法,利用深度图像之间的深度残差来求解位姿变换参数,避免了现有技术中提取特征点和建立描述子的繁复过程,节省了计算资源,保证了计算的实时性。
进一步参考图6,其示出了根据本申请的位姿估计方法的另一个实施例的流程600。如图6所示,本实施例的位姿估计方法,在得到深度传感器的位姿变换参数后还可以包括以下步骤:
步骤601,从与深度传感器物理绑定的惯性测量装置处获取角速度和加速度。
本实施例中,为了进一步保证位姿估计的准确性,可以将惯性测量装置(Inertialmeasurement unit,IMU)与深度传感器物理绑定。上述物理绑定可以理解为将惯性测量装置与深度传感器的中心重合后固定在一起。惯性测量装置可以测量物体移动的角速度和加速度。本实施例中,执行位姿估计方法的服务器可以通过有线或无线方式从惯性测量装置处获取上述角速度和加速度。
步骤602,根据角速度和加速度,确定惯性测量装置的位姿变换参数。
服务器可以在获取上述角速度和加速度后,确定惯性测量装置的位姿变换参数。
在本实施例的一些可选的实现方式中,上述步骤602可以通过图6中未示出的以下步骤来实现:
根据角速度,确定惯性测量装置的第一位姿变换参数;根据加速度,确定惯性测量装置的第二位姿变换参数;融合第一位姿变换参数以及第二位姿变换参数,确定惯性测量装置的位姿变换参数。
本实现方式中,利用角速度确定第一位姿变换参数,以及利用加速度来确定第二位姿变换参数为本领域技术人员公知的,此处不再赘述。在得到上述第一位姿变换参数和第二位姿变换参数后,可以将二者融合,确定惯性测量装置的位姿变换参数。
步骤603,融合深度传感器的位姿变换参数以及惯性测量装置的位姿变换参数,确定综合位姿变换参数。
在得到深度传感器的位姿变换参数以及惯性测量装置的位姿变换参数后,可以利用耦合的方法(例如松耦合或紧耦合)将二者融合,以确定综合位姿变换参数。
在本实施例的一些可选的实现方式中,为了减少噪声对加速度和角速度值的影响,在步骤602之前可以首先对加速度和角速度进行滤波处理。本实现方式中,可以采用互补滤波器来去除加速度和角速度的噪声,提高位姿变换参数的准确性。
本申请的上述实施例提供的位姿估计方法,可以提高位姿估计参数的准确性。
进一步参考图7,作为对上述各图所示方法的实现,本申请提供了一种位姿估计装置的一个实施例,该装置实施例与图2所示的方法实施例相对应,该装置具体可以应用于各种电子设备中。
如图7所示,本实施例的位姿估计装置700包括:第一获取单元701、图像选取单元702、像素点集合确定单元703以及第一参数确定单元704。
其中,第一获取单元701,用于从深度传感器处获取深度图像视频。
图像选取单元702,用于从深度图像视频的各帧深度图像中选取第一深度图像和第二深度图像。
其中,第一深度图像和第二深度图像中共有至少一个指示同一物体的像素点。
像素点集合确定单元703,用于确定第一深度图像中的第一像素点集合以及第二深度图像中的第二像素点集合。
其中,第一像素点集合中的各像素点与第二像素点集合中的各像素点一一对应,且对应的两个像素点指示同一物体。
第一参数确定单元704,用于对于第一像素点集合中的任一像素点,基于该像素点在第一深度图像中的第一二维坐标及与该像素点对应的对应像素点在第二深度图像中的第一深度值,确定深度传感器的位姿变换参数。
在本实施例的一些可选的实现方式中,上述装置700还可以包括图7中未示出的预处理单元,上述预处理单元包括像素点删除模块以及平滑模块。
其中,像素点删除模块,用于在图像选取单元702从各帧深度图像中选取第一深度图像和第二深度图像之前,对于每帧深度图像,删除该帧深度图像中符合预设条件的像素点。
平滑模块,用于对删除后的深度图像进行平滑处理。
在本实施例的一些可选的实现方式中,上述像素点删除模块可以进一步用于:检测每个像素点的深度值;将深度值大于第一预设值,且深度值小于第二预设值的像素点删除。
在本实施例的一些可选的实现方式中,上述像素点删除模块可以进一步用于:确定该帧深度图像在水平方向的第一偏导数和在竖直方向上的第二偏导数;根据第一偏导数和第二偏导数,确定该帧深度图像中的几何边缘像素点;将几何边缘像素点删除。
在本实施例的一些可选的实现方式中,上述像素点删除模块可以进一步用于:确定该帧深度图像中深度值不存在的失效像素点;将失效像素点以及与失效像素点相邻的像素点删除。
在本实施例的一些可选的实现方式中,上述第一参数确定单元704还可以包括图7中未示出的第一映射模块、变换模块、第二映射模块、深度值确定模块以及第一参数确定模块。
其中,第一映射模块,用于将该像素点在第一深度图像中的第一二维坐标映射为第一深度图像所属坐标系的第一三维空间坐标。
变换模块,用于将第一三维空间坐标变换到第二深度图像所属坐标系,得到第二三维空间坐标。
第二映射模块,用于将第二三维空间坐标映射到第二深度图像中,得到第二二维坐标。
深度值确定模块,用于确定第二二维坐标在第二深度图像中的第二深度值。
第一参数确定模块,用于基于第一深度值以及第二深度值,确定深度传感器的位姿变换参数。
在本实施例的一些可选的实现方式中,上述第一参数确定模块可以进一步用于:根据第一深度值以及第二深度值,确定第一深度图像与第二深度图像之间的深度差值;确定深度差值为深度残差,并基于深度残差,执行以下迭代步骤:基于深度残差,确定位姿估计增量;确定深度残差是否小于预设阈值;响应于深度残差小于预设阈值,累积位姿估计增量与第一深度值,确定位姿估计值;根据位姿估计值,确定深度传感器的位姿变换参数;响应于深度残差大于或等于预设阈值,确定累积的位姿估计增量为深度残差,继续执行上述迭代步骤。
在本实施例的一些可选的实现方式中,上述位姿估计装置700还可以进一步包括图7中未示出的第二获取单元、第二参数确定单元以及参数融合单元。
第二获取单元,用于从与深度传感器物理绑定的惯性测量装置处获取角速度和加速度。
第二参数确定单元,用于根据角速度和加速度,确定惯性测量装置的位姿变换参数。
参数融合单元,用于融合深度传感器的位姿变换参数以及惯性测量装置的位姿变换参数,确定综合位姿变换参数。
在本实施例的一些可选的实现方式中,上述第二参数确定单元可以进一步包括图7中未示出的第一子参数确定模块、第二子参数确定模块以及融合模块。
第一子参数确定模块,用于根据角速度,确定惯性测量装置的第一位姿变换参数。
第二子参数确定模块,用于根据加速度,确定惯性测量装置的第二位姿变换参数。
融合模块,用于融合第一位姿变换参数以及第二位姿变换参数,确定惯性测量装置的位姿变换参数。
本申请的上述实施例提供的位姿估计装置,从深度传感器获取其采集的深度图像视频,并从其中选取两帧共有至少一个指示同一物体的像素点的深度图像,然后确定上述两帧深度图像中相互对应的第一像素点集合和第二像素点集合,然后对于第一像素点集合中的每一像素点,根据其在第一深度图像中的第一二维坐标及与该像素点对应的对应像素点在第二深度图像中的第一深度值,确定深度传感器的位姿变换参数,降低了对计算资源的消耗,提高了计算效率,保证了位姿估计的实时性。
应当理解,位姿估计装置700中记载的单元701至单元704分别与参考图2中描述的方法中的各个步骤相对应。由此,上文针对用于合成歌声的方法描述的操作和特征同样适用于装置700及其中包含的单元,在此不再赘述。装置700的相应单元可以与服务器中的单元相互配合以实现本申请实施例的方案。
下面参考图8,其示出了适于用来实现本申请实施例的服务器的计算机系统800的结构示意图。图8示出的服务器仅仅是一个示例,不应对本申请实施例的功能和使用范围带来任何限制。
如图8所示,计算机系统800包括中央处理单元(CPU)801,其可以根据存储在只读存储器(ROM)802中的程序或者从存储部分808加载到随机访问存储器(RAM)803中的程序而执行各种适当的动作和处理。在RAM 803中,还存储有系统800操作所需的各种程序和数据。CPU 801、ROM 802以及RAM 803通过总线804彼此相连。输入/输出(I/O)接口805也连接至总线804。
以下部件连接至I/O接口805:包括键盘、鼠标等的输入部分806;包括诸如阴极射线管(CRT)、液晶显示器(LCD)等以及扬声器等的输出部分807;包括硬盘等的存储部分808;以及包括诸如LAN卡、调制解调器等的网络接口卡的通信部分809。通信部分809经由诸如因特网的网络执行通信处理。驱动器810也根据需要连接至I/O接口805。可拆卸介质811,诸如磁盘、光盘、磁光盘、半导体存储器等等,根据需要安装在驱动器810上,以便于从其上读出的计算机程序根据需要被安装入存储部分808。
特别地,根据本公开的实施例,上文参考流程图描述的过程可以被实现为计算机软件程序。例如,本公开的实施例包括一种计算机程序产品,其包括承载在机器可读介质上的计算机程序,该计算机程序包含用于执行流程图所示的方法的程序代码。在这样的实施例中,该计算机程序可以通过通信部分809从网络上被下载和安装,和/或从可拆卸介质811被安装。在该计算机程序被中央处理单元(CPU)801执行时,执行本申请的方法中限定的上述功能。
需要说明的是,本申请所述的计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质或者是上述两者的任意组合。计算机可读存储介质例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子可以包括但不限于:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机访问存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑磁盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本申请中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。而在本申请中,计算机可读的信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。计算机可读的信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括但不限于:无线、电线、光缆、RF等等,或者上述的任意合适的组合。
附图中的流程图和框图,图示了按照本申请各种实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,该模块、程序段、或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
描述于本申请实施例中所涉及到的单元可以通过软件的方式实现,也可以通过硬件的方式来实现。所描述的单元也可以设置在处理器中,例如,可以描述为:一种处理器包括第一获取单元、图像选取单元、像素点集合确定单元和第一参数确定单元。其中,这些单元的名称在某种情况下并不构成对该单元本身的限定,例如,第一获取单元还可以被描述为“从深度传感器处获取深度图像视频的单元”。
作为另一方面,本申请还提供了一种计算机可读介质,该计算机可读介质可以是上述实施例中描述的装置中所包含的;也可以是单独存在,而未装配入该装置中。上述计算机可读介质承载有一个或者多个程序,当所述一个或者多个程序被该装置执行时,使得该装置:从深度传感器处获取深度图像视频;从深度图像视频的各帧深度图像中选取第一深度图像和第二深度图像,其中,第一深度图像和第二深度图像中共有至少一个指示同一物体的像素点;确定第一深度图像中的第一像素点集合以及第二深度图像中的第二像素点集合,其中,第一像素点集合中的各像素点与第二像素点集合中的各像素点一一对应,且对应的两个像素点指示同一物体;对于第一像素点集合中的任一像素点,基于该像素点在第一深度图像中的第一二维坐标及与该像素点对应的对应像素点在第二深度图像中的第一深度值,确定深度传感器的位姿变换参数。
以上描述仅为本申请的较佳实施例以及对所运用技术原理的说明。本领域技术人员应当理解,本申请中所涉及的发明范围,并不限于上述技术特征的特定组合而成的技术方案,同时也应涵盖在不脱离上述发明构思的情况下,由上述技术特征或其等同特征进行任意组合而形成的其它技术方案。例如上述特征与本申请中公开的(但不限于)具有类似功能的技术特征进行互相替换而形成的技术方案。