图像处理方法及装置、电子设备和计算机存储介质与流程

文档序号:20833708发布日期:2020-05-22 16:36阅读:136来源:国知局
图像处理方法及装置、电子设备和计算机存储介质与流程

本公开涉及计算机视觉技术,尤其是一种图像处理方法及装置、电子设备和计算机存储介质。



背景技术:

在增强现实(augmentedreality,简称ar)的应用中,要实现虚拟物体与现实场景的融合,通常需要给定图像中的一个点,计算出它在真实场景中的位置,即锚点所在位置,将虚拟物体放置在这个位置,在以后的图像中,再将真实场景中的这个位置投影回图像中,就可以实现锚点与真实场景融为一体的效果。

在进行锚点放置时,借助图像的深度信息,可以计算出图像中每个点在真实场景中的位置。然而,在移动设备实现虚拟物体与现实场景的融合时,由于受到功率等限制,所得到的深度信息的精度通常较低,并且在图像中的黑色物体和反光表面还会出现深度信息缺失的情况,这样在图像的深度信息存在较多噪声的情况下,将很难实现锚点的有效放置。



技术实现要素:

本公开实施例提供一种图像处理的技术方案。

根据本公开实施例的一个方面,提供一种图像处理方法,包括:

根据当前帧图像中目标点的邻域窗口中像素的深度值,确定所述目标点的深度值;

基于所述目标点的深度值,对所述目标点在所述当前帧图像中的坐标进行坐标变换处理,得到所述目标点在世界坐标系中的坐标;

对所述目标点在所述世界坐标系中的坐标进行坐标变换处理,得到所述目标点在视频的至少一其他帧图像中的坐标;其中,所述其他帧图像为所述视频中除所述当前帧图像外的图像。

可选地,在本公开上述任一方法实施例中,所述根据当前帧图像中目标点的邻域窗口中像素的深度值,确定所述目标点的深度值,包括:

获取所述当前帧图像中所述目标点的邻域窗口中像素的深度值;

基于所述邻域窗口中像素的深度值的标准差小于预设阈值,确定所述邻域窗口中像素的至少一个参考深度值;

根据所述邻域窗口中像素的至少一个参考深度值的平均值,得到所述目标点的深度值。

本实施例基于邻域窗口中像素的深度值的标准差小于预设阈值,可以在邻域窗口中同时包含图像的前景和背景的时候,有效剔除邻域窗口中属于图像的背景中的像素的深度值,只根据邻域窗口中属于图像的前景中的像素的深度值的平均值得到目标点的深度值,可以使所得到的目标点的深度值的结果更加准确。

可选地,在本公开上述任一方法实施例中,所述基于所述邻域窗口中像素的深度值的标准差小于预设阈值,确定所述邻域窗口中像素的目标深度值,包括:

对所述邻域窗口中像素的有效深度值按照从小到大的顺序进行排序,得到候选深度值列表,其中,所述有效深度值包括所述邻域窗口中大于零且小于预设值的深度值;

基于所述候选深度值列表中从最小深度值到当前深度值的标准差小于所述预设阈值,确定最大的当前深度值,以所述候选深度值列表中从所述最小深度值到所述最大的当前深度值作为所述至少一个参考深度值。

本实施例利用邻域窗口中像素的深度值的标准差小于预设阈值,通过对预设阈值大小的设置,可以将邻域窗口中像素的有效深度值和无效深度值区分开,有效获取邻域窗口中属于图像的前景中的像素的深度值,以便获取目标点的深度值。

可选地,在本公开上述任一方法实施例中,所述获取所述当前帧图像中所述目标点的邻域窗口中像素的深度值,包括:

在所述当前帧图像中以所述目标点为中心、以预设尺寸为大小,选取所述目标点的邻域窗口;

从所述当前帧图像的深度图中提取所述邻域窗口中像素的深度值。

本实施例可以选取目标点的邻域窗口,从当前帧图像的深度图中提取邻域窗口中像素的深度值,以便根据邻域窗口中属于图像的前景中的像素的深度值的平均值得到目标点的深度值,可以使所得到的目标点的深度值的结果更加准确。

可选地,在本公开上述任一方法实施例中,所述根据当前帧图像中目标点的邻域窗口中像素的深度值,确定所述目标点的深度值之前,还包括:

通过视频采集设备采集所述当前帧图像,并获取所述当前帧图像的深度图。

本实施例可以获取当前帧图像的深度图,以便从该深度图中提取目标点的邻域窗口中像素的深度值,来确定目标点的深度值。

可选地,在本公开上述任一方法实施例中,所述根据当前帧图像中目标点的邻域窗口中像素的深度值,确定所述目标点的深度值之前,还包括:

根据交互界面接收到的所述当前帧图像中的坐标,或者根据预设算法得到的所述当前帧图像中的坐标,确定所述当前帧图像中的所述目标点。

基于实施例,可以确定当前帧图像中的所述目标点。

可选地,在本公开上述任一方法实施例中,所述基于所述目标点的深度值,对所述目标点在所述当前帧图像中的坐标进行坐标变换处理,得到所述目标点在世界坐标系中的坐标,包括:

基于所述目标点的深度值和所述视频采集设备的内部参数,对所述目标点在所述当前帧图像中的坐标进行坐标变换处理,得到所述目标点在当前所述视频采集设备的坐标系中的坐标;

基于所述视频采集设备当前的位姿信息,对所述目标点在当前所述视频采集设备的坐标系中的坐标进行坐标变换处理,得到所述目标点在世界坐标系中的坐标。

本实施例通过获取当前帧图像中目标点的深度信息,根据视频采集设备的内部参数和位姿信息,可以通过坐标变换得到当前帧图像中的目标点在真实场景的世界坐标系中的位置,实现方式简单,速度快,并且可以保证获得的世界坐标的精度。

可选地,在本公开上述任一方法实施例中,所述基于所述视频采集设备当前的位姿信息,对所述目标点在当前所述视频采集设备的坐标系中的坐标进行坐标变换处理之前,还包括:

根据同一个特征点在所述当前帧图像中的坐标与所述视频中第一帧图像中的坐标,确定所述视频采集设备当前的位姿信息,其中,采集所述第一帧图像时所述视频采集设备的坐标系与所述世界坐标系一致。

本实施例可以通过同一个特征点在当前帧图像中的坐标与视频中第一帧图像中的坐标,来确定视频采集设备当前的位姿信息。

可选地,在本公开上述任一方法实施例中,对所述目标点在所述世界坐标系中的坐标进行坐标变换处理,得到所述目标点在视频的至少一其他帧图像中的坐标,包括:

分别针对所述至少一其他帧图像中的每一帧图像,基于所述视频采集设备在采集所述每一帧图像时的位姿信息,对所述目标点在所述世界坐标系中的坐标进行坐标变换处理,得到所述目标点在采集所述每一帧图像时所述视频采集设备的坐标系中的坐标;

基于所述视频采集设备的内部参数,对所述目标点在采集所述每一帧图像时所述视频采集设备的坐标系中的坐标进行坐标变换处理,得到所述目标点在所述每一帧图像中的坐标。

本实施例根据视频采集设备的内部参数和位姿信息,可以通过坐标变换将在真实场景的世界坐标系中已知位置的目标点投影到相应的图像中,实现方式简单,速度快,并且可以保证获得的目标点在图像中的坐标的精度。

可选地,在本公开上述任一方法实施例中,所述基于所述视频采集设备在采集所述每一帧图像时的位姿信息,对所述目标点在所述世界坐标系中的坐标进行坐标变换处理之前,还包括:

根据同一个特征点在所述每一帧图像中的坐标与所述视频中第一帧图像中的坐标,确定所述视频采集设备在采集所述每一帧图像时的位姿信息,其中,采集所述第一帧图像时所述视频采集设备的坐标系与所述世界坐标系一致。

本实施例可以根据同一个特征点在每一帧图像中的坐标与视频中第一帧图像中的坐标,确定视频采集设备在采集所述每一帧图像时的位姿信息。

根据本公开实施例的另一个方面,提供一种图像处理装置,包括:

第一确定模块,用于根据当前帧图像中目标点的邻域窗口中像素的深度值,确定所述目标点的深度值;

第一变换模块,用于基于所述目标点的深度值,对所述目标点在所述当前帧图像中的坐标进行坐标变换处理,得到所述目标点在世界坐标系中的坐标;

第二变换模块,用于对所述目标点在所述世界坐标系中的坐标进行坐标变换处理,得到所述目标点在视频的至少一其他帧图像中的坐标;其中,所述其他帧图像为所述视频中除所述当前帧图像外的图像。

可选地,在本公开上述任一装置实施例中,所述第一确定模块包括:

第一获取单元,用于获取所述当前帧图像中所述目标点的邻域窗口中像素的深度值;

第一确定单元,用于基于所述邻域窗口中像素的深度值的标准差小于预设阈值,确定所述邻域窗口中像素的至少一个参考深度值;

第二获取单元,用于根据所述邻域窗口中像素的至少一个参考深度值的平均值,得到所述目标点的深度值。

可选地,在本公开上述任一装置实施例中,所述第一确定单元,具体用于:

对所述邻域窗口中像素的有效深度值按照从小到大的顺序进行排序,得到候选深度值列表,其中,所述有效深度值包括所述邻域窗口中大于零且小于预设值的深度值;

基于所述候选深度值列表中从最小深度值到当前深度值的标准差小于所述预设阈值,确定最大的当前深度值,以所述候选深度值列表中从所述最小深度值到所述最大的当前深度值作为所述至少一个参考深度值。

可选地,在本公开上述任一装置实施例中,所述第一获取单元,具体用于:

在所述当前帧图像中以所述目标点为中心、以预设尺寸为大小,选取所述目标点的邻域窗口;

从所述当前帧图像的深度图中提取所述邻域窗口中像素的深度值。

可选地,在本公开上述任一装置实施例中,还包括:

视频采集设备,用于采集所述当前帧图像;

第一获取模块,用于获取所述当前帧图像的深度图。

可选地,在本公开上述任一装置实施例中,还包括:

第二确定模块,用于根据交互界面接收到的所述当前帧图像中的坐标,或者根据预设算法得到的所述当前帧图像中的坐标,确定所述当前帧图像中的所述目标点。

可选地,在本公开上述任一装置实施例中,所述第一变换模块包括:

第一变换单元,用于基于所述目标点的深度值和所述视频采集设备的内部参数,对所述目标点在所述当前帧图像中的坐标进行坐标变换处理,得到所述目标点在当前所述视频采集设备的坐标系中的坐标;

第二变换单元,用于基于所述视频采集设备当前的位姿信息,对所述目标点在当前所述视频采集设备的坐标系中的坐标进行坐标变换处理,得到所述目标点在世界坐标系中的坐标。

可选地,在本公开上述任一装置实施例中,还包括:

第三确定模块,用于根据同一个特征点在所述当前帧图像中的坐标与所述视频中第一帧图像中的坐标,确定所述视频采集设备当前的位姿信息,其中,采集所述第一帧图像时所述视频采集设备的坐标系与所述世界坐标系一致。

可选地,在本公开上述任一装置实施例中,所述第二变换模块包括:

第三变换单元,用于分别针对所述至少一其他帧图像中的每一帧图像,基于所述视频采集设备在采集所述每一帧图像时的位姿信息,对所述目标点在所述世界坐标系中的坐标进行坐标变换处理,得到所述目标点在采集所述每一帧图像时所述视频采集设备的坐标系中的坐标;

第四变换单元,用于基于所述视频采集设备的内部参数,对所述目标点在采集所述每一帧图像时所述视频采集设备的坐标系中的坐标进行坐标变换处理,得到所述目标点在所述每一帧图像中的坐标。

可选地,在本公开上述任一装置实施例中,还包括:

第三确定模块,用于根据同一个特征点在所述每一帧图像中的坐标与所述视频中第一帧图像中的坐标,确定所述视频采集设备在采集所述每一帧图像时的位姿信息,其中,采集所述第一帧图像时所述视频采集设备的坐标系与所述世界坐标系一致。

根据本公开实施例的又一个方面,提供的一种电子设备,包括:

存储器,用于存储可执行指令;以及

处理器,用于执行所述可执行指令从而完成上述任一实施例所述的方法。

根据本公开实施例的再一个方面,提供的一种计算机程序,包括计算机可读代码,当所述计算机可读代码在设备上运行时,所述设备中的处理器执行用于实现上述任一实施例所述方法的指令。

根据本公开实施例的再一个方面,提供的一种计算机存储介质,用于存储计算机可读指令,所述指令被执行时实现上述任一实施例所述的方法。

基于本公开上述实施例提供的图像处理方法及装置、电子设备和计算机存储介质,可以根据当前帧图像中目标点的邻域窗口中像素的深度值,得到该目标点的深度值,然后,基于该目标点的深度值对该目标点在当前帧图像中的坐标进行坐标变换处理,得到该目标点在世界坐标系中的坐标,进而,对该目标点在世界坐标系中的坐标进行坐标变换处理,得到该目标点在当前帧图像所在视频的至少一其他帧图像中的坐标。本公开实施例在目标点的深度值受到噪声干扰的情况下,同样能够获得准确的深度值,从而可以得到该目标点在所在视频的其他帧图像中的坐标,从而实现在各帧图像中锚点位置的准确定位和有效放置,能够提高锚点放置的鲁棒性,进而提高增强现实应用的效果,提高用户体验。

下面通过附图和实施例,对本公开的技术方案做进一步的详细描述。

附图说明

构成说明书的一部分的附图描述了本公开的实施例,并且连同描述一起用于解释本公开的原理。

参照附图,根据下面的详细描述,可以更加清楚地理解本公开,其中:

图1为本公开一些实施例的图像处理方法的流程图;

图2a和图2b为采用本公开实施例提供的图像处理方法实现锚点放置的一个示例的示意图;

图3为本公开一些实施例根据目标点的邻域窗口中像素的深度值确定目标点的深度值的流程图;

图4为本公开一些实施例根据目标点的深度值得到目标点在世界坐标系中的坐标的流程图;

图5为本公开一些实施例根据目标点在世界坐标系中的坐标得到目标点在图像中的坐标的流程图;

图6为本公开一些实施例的图像处理装置的结构示意图;

图7为本公开另一些实施例的图像处理装置的结构示意图;

图8为本公开一些实施例提供的电子设备的结构示意图。

具体实施方式

现在将参照附图来详细描述本公开的各种示例性实施例。应注意到:除非另外具体说明,否则在这些实施例中阐述的部件和步骤的相对布置、数字表达式和数值不限制本公开的范围。

同时,应当明白,为了便于描述,附图中所示出的各个部分的尺寸并不是按照实际的比例关系绘制的。

以下对至少一个示例性实施例的描述实际上仅仅是说明性的,决不作为对本公开及其应用或使用的任何限制。

对于相关领域普通技术人员已知的技术、方法和设备可能不作详细讨论,但在适当情况下,所述技术、方法和设备应当被视为说明书的一部分。

应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步讨论。

本公开实施例可以应用于计算机系统/服务器,其可与众多其它通用或专用计算系统环境或配置一起操作。适于与计算机系统/服务器一起使用的众所周知的计算系统、环境和/或配置的例子包括但不限于:个人计算机系统、服务器计算机系统、瘦客户机、厚客户机、手持或膝上设备、基于微处理器的系统、机顶盒、可编程消费电子产品、网络个人电脑、小型计算机系统﹑大型计算机系统和包括上述任何系统的分布式云计算技术环境,等等。

计算机系统/服务器可以在由计算机系统执行的计算机系统可执行指令(诸如程序模块)的一般语境下描述。通常,程序模块可以包括例程、程序、第三程序、组件、逻辑、数据结构等等,它们执行特定的任务或者实现特定的抽象数据类型。计算机系统/服务器可以在分布式云计算环境中实施,分布式云计算环境中,任务是由通过通信网络链接的远程处理设备执行的。在分布式云计算环境中,程序模块可以位于包括存储设备的本地或远程计算系统存储介质上。

图1为本公开一些实施例的图像处理方法的流程图。该方法可以由终端设备执行,例如:照相机、摄像机、手机、机器人、可穿戴设备等移动终端设备;另外,也可以有服务器执行,本公开实施例对此不做限制。如图1所示,该实施例的图像处理方法包括:

102,根据当前帧图像中的目标点的邻域窗口中像素的深度值,确定目标点的深度值。

在本公开实施例中,当前帧图像可以为视频中的任一帧图像,例如,当前帧图像可以为视频中的第一帧图像、最后一帧图像、或者任一中间帧图像,本公开实施例对当前帧图像在视频中的位置不做限定。可选地,当前帧图像所在的视频可以为实时采集的视频,也可以为预先存储的视频,本公开实施例对此不作限定。可选地,当前帧图像所在的视频可以为经过一定的预处理后的视频,例如:对视频进行解压、去噪、增强等预处理,本公开实施例对预处理的类型和实现方法不作限定。

可选地,可以根据交互界面接收到的当前帧图像中的坐标确定目标点,例如,在ar测量中,通过用户点击交互界面中被测物体的端点确定目标点;或者,也可以根据预设算法得到的当前帧图像中的坐标确定目标点,例如,在ar测量中,通过检测算法自动检测出被测物体的端点确定目标点,本公开实施例对确定当前帧图像中目标点的方法不作限定。

可选地,上述目标点可以为图像的前景中的一点,也可以为图像的背景中的一点,本公开实施例对此不做限定。当目标点为图像的前景中的一点或图像的背景中的一点时,若目标点的邻域窗口中的像素均为图像的前景中的像素或均为图像的背景中的像素,则可以根据目标点的邻域窗口中像素的深度值的平均值,得到该目标点的深度值;若目标点的邻域窗口中的像素既包括图像的前景中的像素也包括图像的背景中的像素,则可以先确定邻域窗口中属于图像的前景中的像素的深度值或属于图像的背景中的像素的深度值,然后根据邻域窗口中属于图像的前景中的像素的深度值的平均值,或根据邻域窗口中属于图像的背景中的像素的深度值的平均值,得到目标点的深度值。本公开实施例对根据邻域窗口中像素的深度值得到目标点的深度值的实现方法不作限定。

104,基于目标点的深度值,对该目标点在当前帧图像中的坐标进行坐标变换处理,得到该目标点在世界坐标系中的坐标。

在本公开实施例中,在获得目标点的深度值后,可以通过对目标点在当前帧图像中的坐标进行两次坐标变换处理,得到目标点在世界坐标系中的坐标。可选地,可以将目标点的深度值作为该目标点在当前视频采集设备的坐标系中的三维坐标中的一个维度的坐标,根据该视频采集设备的内部参数,对该目标点在当前帧图像中的二维坐标进行坐标变换处理,得到该目标点在当前视频采集设备的坐标系中的三维坐标,然后,根据该视频采集设备当前的位姿信息,对该目标点在当前视频采集设备的坐标系中的三维坐标进行坐标变换处理,得到该目标点在世界坐标系中的三维坐标,即锚点所在位置。

106,对目标点在世界坐标系中的坐标进行坐标变换处理,得到该目标点在所属视频的至少一其他帧图像中的坐标。

其中,所述其他帧图像为所述目标点所在视频中除当前帧图像外的图像,例如,可以是该视频中在时序上位于当前帧图像之前的图像,也可以是该视频中在时序上位于当前帧图像之后的图像。

例如,在一个可选的例子中,可以对于视频中位于当前帧图像之后的中的每一帧图像,通过对目标点在世界坐标系中的坐标进行两次坐标变换处理,得到该目标点在该每一帧图像中的坐标。可选地,对于视频中位于当前帧图像之后的每一帧图像,可以基于视频采集设备在采集该每一帧图像时的位姿信息,对上述目标点在世界坐标系中的三维坐标进行坐标变换处理,得到上述目标点在采集该每一帧图像时该视频采集设备的坐标系中的三维坐标,然后,基于该视频采集设备的内部参数,对上述目标点在采集该帧图像时视频采集设备的坐标系中的三维坐标进行坐标变换处理,得到上述目标点在该每一帧图像中的二维坐标,进而得到上述目标点在该每一帧图像中的坐标。

基于本公开实施例提供的图像处理方法,可以根据当前帧图像中目标点的邻域窗口中像素的深度值,得到该目标点的深度值,然后,基于该目标点的深度值对该目标点在当前帧图像中的坐标进行坐标变换处理,得到该目标点在世界坐标系中的坐标,进而,对该目标点在世界坐标系中的坐标进行坐标变换处理,得到该目标点在当前帧图像所在视频的至少一其他帧图像中的坐标。本公开实施例在目标点的深度值受到噪声干扰的情况下,同样能够获得准确的深度值,从而可以得到该目标点在所在视频的其他帧图像中的坐标,从而实现在各帧图像中锚点位置的准确定位和有效放置,能够提高锚点放置的鲁棒性,进而提高增强现实应用的效果,提高用户体验。

图2a和图2b为采用本公开实施例提供的图像处理方法实现锚点放置的一个示例的示意图,其中,图2a为视频中的当前帧图像,图2b为视频中位于当前帧图像之后的一帧图像,如图2a和图2b所示,随着视频采集设备的移动,在图2a和图2b中柜子的大小和角度均发生了变化,当在图2a中的柜子角设定目标点p时,可以采用本公开实施例提供的图像处理方法确定目标点p在图2b中的位置,以保证目标点p不会随着视频采集设备的移动而移动。

图3为本公开一些实施例根据目标点的邻域窗口中像素的深度值确定目标点的深度值的流程图。下面将结合图3所示的例子,详细描述根据当前帧图像中目标点的邻域窗口中像素的深度值,确定目标点的深度值的流程。如图3所示,该实施例的流程包括:

302,获取当前帧图像中目标点的邻域窗口中像素的深度值。

可选地,可以从当前帧图像的深度图中获取当前帧图像中目标点的邻域窗口中像素的深度值。例如,在一个可选的例子中,可以通过立体匹配等深度估计的方法对当前帧图像进行处理,获得当前帧图像的深度图,或者可以通过深度摄像头或者类似的设备,例如tof(timeofflight,飞行时间)摄像头等,在采集当前帧图像时获取当前帧图像的深度图,本公开实施例对获取当前帧图像的深度图的方法不作限定。其中,直接通过深度摄像头等类似的设备获取图像的深度信息(即深度图),可以简化深度信息的获取过程,提高深度信息的获取速度。

在一个可选的例子中,可以在当前帧图像中以目标点为中心,以预设尺寸为邻域窗口的大小,在当前帧图像中选取目标点的邻域窗口,然后从当前帧图像的深度图中提取该邻域窗口中像素的深度值。其中,可以通过以下条件确定邻域窗口的预设尺寸:不会因预设尺寸过大而使邻域窗口中的深度值与目标点的真实深度值差距较大,而产生误差,也不会因预设尺寸过小而起不到使深度值的分布平滑的效果,从而不能有效避免深度信息的噪声。

304,基于邻域窗口中像素的深度值的标准差小于预设阈值,确定邻域窗口中像素的至少一个参考深度值。

可选地,若目标点为图像中物体边缘上的一点或者靠近物体边缘的一点,则该目标点的邻域窗口中不但包括物体的像素,即图像的前景中的像素,还可能会包括图像的背景中的像素。例如,在图2a中,将目标点p选定在柜子角时,目标点的邻域窗口中不但会包括柜子的像素,即图像的前景中的像素,还会包括地面的像素,即图像的背景中的像素。其中,邻域窗口中像素的深度值会很明显的分散为两部分,属于图像的前景中的像素的深度值较小,而图像的背景中的像素的深度值较大,此时,利用邻域窗口中像素的深度值的标准差小于预设阈值,通过对预设阈值大小的设置,可以将邻域窗口中属于图像的前景中的像素的深度值和属于图像的背景中的像素的深度值区分开。例如,只包含属于图像的前景中的像素的深度值的标准差较小,若同时也包含了属于图像的背景中的像素的深度值,则标准差会变大。

可选地,由于受到深度信息获取技术局限,例如tof摄像头深度获取的原理等,当前帧图像中目标点的邻域窗口中可能会包括因过近、过远、或者物体表面为黑色等原因而无法获取正确的深度值的部分区域,通常这部分区域在深度估计时会被赋予零值或者一个非常大的值,可以将零值或大于某预设值的值称为无效深度值,而将邻域窗口中大于零且小于预设值的深度值称为有效深度值。此时,利用邻域窗口中像素的深度值的标准差小于预设阈值,通过对预设阈值大小的设置,可以将邻域窗口中像素的有效深度值和无效深度值区分开。

在一个可选的例子中,可以对邻域窗口中像素的有效深度值按照从小到大的顺序进行排序,得到候选深度值列表,然后基于该候选深度值列表中从最小深度值到当前深度值的标准差小于预设阈值,确定最大的当前深度值,以该候选深度值列表中从最小深度值到最大的当前深度值,作为上述至少一个参考深度值。其中,可以通过以下条件确定预设阈值的大小:不会因预设阈值过大而将邻域窗口中属于图像的背景中的像素包含进来,而产生误差,也不会因预设阈值过小而只包含部分深度值较小的属于图像的前景中的像素,而导致结果不够平滑。

306,根据邻域窗口中像素的至少一个参考深度值的平均值,得到上述目标点的深度值。

在一个可选的例子中,可以从当前帧图像对应的深度图中提取以目标点为中心、大小为m×m个像素的邻域窗口中像素的深度值,其中m=9,对其中的有效深度值按照从小到大进行排序,得到候选深度值列表{d1,d2,…,dn},其中1≤n≤m,设变量k=1;

若k+1≤n,且前k+1个深度值的标准差则令k=k+1,在满足该步骤的条件下重复执行该步骤,直至不满足该步骤的条件退出此过程,执行下一步骤;其中,τ=1厘米,为前k+1个深度值的平均值;

计算前k个深度值的平均值为目标点的深度值。

本实施例通过对目标点邻域窗口中像素的深度值的标准差进行计算,可以在邻域窗口中同时包含图像的前景和背景的时候,有效剔除邻域窗口中属于图像的背景中的像素的深度值,只根据邻域窗口中属于图像的前景中的像素的深度值的平均值得到目标点的深度值,可以使所得到的目标点的深度值的结果更加准确。本实施例可以避免在锚点放置的过程由于进行交互的用户的误操作而将锚点放置在错误的位置上,例如,用户希望将锚点放置在物体边缘上,而由于误操作点击到背景上,导致将锚点放置在错误的位置上,可以保证锚点放置到正确的位置,可以进一步提高锚点放置的鲁棒性。

图4为本公开一些实施例根据目标点的深度值得到目标点在世界坐标系中的坐标的流程图。下面将结合图4所示的例子,详细描述基于目标点的深度值,对目标点在当前帧图像中的坐标进行坐标变换处理,得到目标点在世界坐标系中的坐标的流程。如图4所示,该实施例的流程包括:

402,基于目标点的深度值和视频采集设备的内部参数,对该目标点在当前帧图像中的坐标进行坐标变换处理,得到目标点在当前视频采集设备的坐标系中的坐标。

可选地,在目标点在当前帧图像中的坐标为像素坐标时,可以基于视频采集设备的内部参数,对该目标点在当前帧图像中的像素坐标进行坐标变换处理,得到该目标点在当前帧图像的图像坐标系中的坐标,然后基于目标点的深度值和视频采集设备的内部参数,对目标点在当前帧图像的图像坐标系中的坐标进行坐标变换处理,得到该目标点在当前视频采集设备的坐标系中的坐标。在目标点在当前帧图像中的坐标为图像坐标系中的坐标时,可以基于目标点的深度值和视频采集设备的内部参数,对该目标点在当前帧图像的图像坐标系中的坐标进行坐标变换处理,得到目标点在当前视频采集设备的坐标系中的坐标。

404,基于视频采集设备当前的位姿信息,对目标点在当前视频采集设备的坐标系中的坐标进行坐标变换处理,得到目标点在世界坐标系中的坐标。

可选地,在已知视频采集设备当前的位姿信息时,可以基于视频采集设备当前的位姿信息,对目标点在当前视频采集设备的坐标系中的坐标进行坐标变换处理,得到目标点在世界坐标系中的坐标。在未知视频采集设备的当前位姿信息时,可以将采集视频中第一帧图像时的视频采集设备的坐标系作为世界坐标系,从而根据同一个特征点在当前帧图像与第一帧图像中的坐标,可以确定视频采集设备当前的位姿信息,然后基于视频采集设备当前的位姿信息,对目标点在当前视频采集设备的坐标系中的坐标进行坐标变换处理,得到目标点在世界坐标系中的坐标。

在一个可选的例子中,可以设当前帧图像中目标点p的像素坐标为p1=[u1,v1],对应地它在视频采集设备的坐标系中的坐标为pcam=[x,y,z],则根据视频采集设备成像的模型,在已知坐标p1的情况下,可以得到对应的坐标pcam,视频采集设备成像的模型如下:

其中,z为目标点的深度值,为视频采集设备的内部参数,fx和fy分别为视频采集设备的横向焦距和纵向焦距,cx和cy分别为图像光心位置的像素坐标,视频采集设备的内部参数代表了设备的固有性质,通常可以通过对视频采集设备进行标定获得。

可以根据即时定位与地图构建(simultaneouslocalizationandmapping,简称slam)算法,利用同一特征点在当前帧图像与视频中第一帧图像之间的位置偏移关系,得到当前视频采集设备的坐标系与世界坐标系(采集第一帧图像时的视频采集设备的坐标系)之间的转换关系,从而得到视频采集设备当前的位姿信息,它包括一个大小为3x3的旋转矩阵r1和一个大小为3x1的平移向量t1,则根据视频采集设备成像的模型,在已知坐标pcam的情况下,可以得到对应的在世界坐标系中的坐标pworld,视频采集设备成像的模型如下:

pworld=r1·cam+t1(公式2)

本实施例通过获取当前帧图像中目标点的深度信息,特别是利用深度摄像头获得的深度图来获取深度信息,根据视频采集设备的内部参数和位姿信息,可以通过坐标变换得到当前帧图像中的目标点在真实场景的世界坐标系中的位置,实现方式简单,速度快,并且可以保证获得的世界坐标的精度。

图5为本公开一些实施例根据目标点在世界坐标系中的坐标得到目标点在图像中的坐标的流程图。下面将结合图5所示的例子,详细描述对目标点在世界坐标系中的坐标进行坐标变换处理,得到目标点在视频的至少一其他帧图像中的坐标的流程。如图5所示,该实施例的流程包括:

502,分别针对至少一其他帧图像中的每一帧图像,基于视频采集设备在采集每一帧图像时的位姿信息,对目标点在世界坐标系中的坐标进行坐标变换处理,得到目标点在采集每一帧图像时的视频采集设备的坐标系中的坐标。

可选地,针对上述至少一其他帧图像中的每一帧图像,在已知视频采集设备在采集每一帧图像时的位姿信息时,可以基于视频采集设备在采集每一帧图像时的位姿信息,对目标点在世界坐标系中的坐标进行坐标变换处理,得到目标点在采集每一帧图像时视频采集设备的坐标系中的坐标。在未知视频采集设备在采集每一帧图像时的位姿信息时,可以采用世界坐标系作为采集视频中第一帧图像时的视频采集设备的坐标系,从而根据同一个特征点在每一帧图像中的坐标与第一帧图像中的坐标,确定视频采集设在备采集每一帧图像时的位姿信息,然后基于视频采集设备在采集每一帧图像时的位姿信息,对目标点在世界坐标系中的坐标进行坐标变换处理,得到目标点在采集每一帧图像的视频采集设备的坐标系中的坐标。

504,基于视频采集设备的内部参数,对目标点在采集每一帧图像时视频采集设备的坐标系中的坐标进行坐标变换处理,得到目标点在每一帧图像中的坐标。

可选地,基于视频采集设备的内部参数,对目标点在采集每一帧图像时视频采集设备的坐标系中的坐标进行坐标变换处理,得到目标点在每一帧图像的图像坐标系中的坐标;在得到目标点在每一帧图像的图像坐标系中的坐标后,还可以基于视频采集设备的内部参数,对目标点在每一帧图像的图像坐标系中的坐标进行坐标变换处理,得到目标点在每一帧图像中的像素坐标。

在一个可选的例子中,可以设目标点p在世界坐标系中的坐标为pworld=[x,y,z],根据slam算法,可以得到采集视频中在设定p的一帧图像之后的每一帧图像时的视频采集设备坐标系与世界坐标系之间的转换关系,从而得到视频采集设备在采集该帧图像时的位姿信息,它包括一个大小为3x3的旋转矩阵r2和一个大小为3x1的平移向量t2,则根据视频采集设备成像的模型,在已知坐标pworld的情况下,可以得到对应的在采集该帧图像时的视频采集设备的坐标系中的坐标pcam,视频采集设备成像的模型如下:

可以设目标点在该帧图像中的像素坐标为p2=[u2,v2],则根据视频采集设备成像的模型,在已知坐标pcam的情况下,可以得到对应的坐标p2,视频采集设备成像的模型如下:

其中,为视频采集设备的内部参数,fx和fy分别为视频采集设备的横向焦距和纵向焦距,cx和cy分别为图像光心位置的像素坐标,视频采集设备的内部参数代表了设备的固有性质,通常可以通过对视频采集设备进行标定获得。

本实施例根据视频采集设备的内部参数和位姿信息,可以通过坐标变换将在真实场景的世界坐标系中已知位置的目标点投影到相应的图像中,实现方式简单,速度快,并且可以保证获得的目标点在图像中的坐标的精度。

本公开实施例提供的图像处理方法可以应用于三维建模、增强现实、图像处理、拍照、游戏、动画、影视、电子商务、教育、房产、家居装修等多个领域。

例如:

在一个应用场景中,当用户点击视频中当前帧图像中的某个位置,并根据本公开实施例提供的方法实时计算出锚点的位置,摆放虚拟物体,在移动视频采集设备后,可以保证该虚拟物体始终摆放在真实场景中原来的位置,使虚拟物体与真实场景完全融合,没有出现漂移;

在另一个应用场景中,在进行ar尺寸测量时,用户可以选取被测量物体的两个端点,根据本公开实施例提供的方法计算出锚点的位置,在被测量物体的两个端点放置锚点,通过计算两个锚点之间的距离得到物体的真实长度,在移动手机后,可以保证锚点始终附着在被测物体上,不会移动;

在又一个应用场景中,在进行ar游戏时,可以根据本公开实施例提供的方法,保证虚拟角色和/或道具与真实场景融为一体,不随视频采集设备的移动而移动,给玩家一种虚拟角色仿佛来到现实世界中的体验;

在又一个应用场景中,在摆放ar家具时,根据本公开实施例提供的方法,用户可以将虚拟家具摆放在想要的位置,然后在不同视角下进行观察,家具将始终被摆放在初始位置,仿佛真实存在一般。

图6为本公开一些实施例的图像处理装置的结构示意图。本公开实施例的图像处理装置可用于实现上述各图像处理方法实施例的流程。如图6所示,在其中一些实施例中,图像处理装置包括:第一确定模块,第一变换模块和第二变换模块。其中:

第一确定模块,用于根据当前帧图像中目标点的邻域窗口中像素的深度值,确定所述目标点的深度值。

第一变换模块,用于基于所述目标点的深度值,对所述目标点在所述当前帧图像中的坐标进行坐标变换处理,得到所述目标点在世界坐标系中的坐标。

第二变换模块,用于对所述目标点在所述世界坐标系中的坐标进行坐标变换处理,得到所述目标点在视频的至少一其他帧图像中的坐标;其中,所述其他帧图像为所述视频中除所述当前帧图像外的图像。

基于本公开上述实施例提供的图像处理装置,可以根据当前帧图像中目标点的邻域窗口中像素的深度值,得到该目标点的深度值,然后,基于该目标点的深度值对该目标点在当前帧图像中的坐标进行坐标变换处理,得到该目标点在世界坐标系中的坐标,进而,对该目标点在世界坐标系中的坐标进行坐标变换处理,得到该目标点在当前帧图像所在视频的至少一其他帧图像中的坐标。本公开实施例在目标点的深度值受到噪声干扰的情况下,同样能够获得准确的深度值,从而可以得到该目标点在所在视频的其他帧图像中的坐标,从而实现在各帧图像中锚点位置的准确定位和有效放置,能够提高锚点放置的鲁棒性,进而提高增强现实应用的效果,提高用户体验。

可选地,在其中一些实现方式中,所述第一确定模块包括:第一获取单元,用于获取所述当前帧图像中所述目标点的邻域窗口中像素的深度值;第一确定单元,用于基于所述邻域窗口中像素的深度值的标准差小于预设阈值,确定所述邻域窗口中像素的至少一个参考深度值;第二获取单元,用于根据所述邻域窗口中像素的至少一个参考深度值的平均值,得到所述目标点的深度值。

在一个可选的例子中,所述第一确定单元,具体用于:对所述邻域窗口中像素的有效深度值按照从小到大的顺序进行排序,得到候选深度值列表,其中,所述有效深度值包括所述邻域窗口中大于零且小于预设值的深度值;基于所述候选深度值列表中从最小深度值到当前深度值的标准差小于所述预设阈值,确定最大的当前深度值,以所述候选深度值列表中从所述最小深度值到所述最大的当前深度值作为所述至少一个参考深度值。

在一个可选的例子中,所述第一获取单元,具体用于:在所述当前帧图像中以所述目标点为中心、以预设尺寸为大小,选取所述目标点的邻域窗口;从所述当前帧图像的深度图中提取所述邻域窗口中像素的深度值。

图7为本公开另一些实施例的图像处理装置的结构示意图。如图7所示,与图6所示的实施例相比,该实施例的图像处理装置还包括:视频采集设备和第一获取模块。其中:

视频采集设备,用于采集所述当前帧图像。

第一获取模块,用于获取所述当前帧图像的深度图。

在一个可选的例子中,所述视频采集设备和所述第一获取模块可以通过一个深度摄像头实现。

另外,再参见图7,在又一实施例的图像处理装置中,还可以包括:第二确定模块,用于根据交互界面接收到的所述当前帧图像中的坐标,或者根据预设算法得到的所述当前帧图像中的坐标,确定所述当前帧图像中的所述目标点。

可选地,在其中一些实现方式中,所述第一变换模块包括:第一变换单元,用于基于所述目标点的深度值和所述视频采集设备的内部参数,对所述目标点在所述当前帧图像中的坐标进行坐标变换处理,得到所述目标点在当前所述视频采集设备的坐标系中的坐标;第二变换单元,用于基于所述视频采集设备当前的位姿信息,对所述目标点在当前所述视频采集设备的坐标系中的坐标进行坐标变换处理,得到所述目标点在世界坐标系中的坐标。

另外,再参见图7,在再一实施例的图像处理装置中,还可以包括:第三确定模块,用于根据同一个特征点在所述当前帧图像中的坐标与所述视频中第一帧图像中的坐标,确定所述视频采集设备当前的位姿信息,其中,采集所述第一帧图像时所述视频采集设备的坐标系与所述世界坐标系一致。

可选地,在其中一些实现方式中,所述第二变换模块包括:第三变换单元,用于分别针对所述至少一其他帧图像中的每一帧图像,基于所述视频采集设备在采集所述每一帧图像时的位姿信息,对所述目标点在所述世界坐标系中的坐标进行坐标变换处理,得到所述目标点在采集所述每一帧图像时所述视频采集设备的坐标系中的坐标;第四变换单元,用于基于所述视频采集设备的内部参数,对所述目标点在采集所述每一帧图像时所述视频采集设备的坐标系中的坐标进行坐标变换处理,得到所述目标点在所述每一帧图像中的坐标。

另外,在上述实施例的图像处理装置中,第三确定模块,还可用于根据同一个特征点在所述每一帧图像中的坐标与所述视频中第一帧图像中的坐标,确定所述视频采集设备在采集所述每一帧图像时的位姿信息,其中,采集所述第一帧图像时所述视频采集设备的坐标系与所述世界坐标系一致。

另外,本公开实施例提供的另一种电子设备,包括:存储器,用于存储计算机程序;处理器,用于执行存储器中存储的计算机程序,且计算机程序被执行时,实现本公开上述任一实施例的图像处理方法。

图8为本公开电子设备一个应用实施例的结构示意图。下面参考图8,其示出了适于用来实现本公开实施例的终端设备或服务器的电子设备的结构示意图。如图8所示,该电子设备包括一个或多个处理器、通信部等,所述一个或多个处理器例如:一个或多个中央处理单元(cpu),和/或一个或多个图像处理器(gpu)等,处理器可以根据存储在只读存储器(rom)中的可执行指令或者从存储部分加载到随机访问存储器(ram)中的可执行指令而执行各种适当的动作和处理。通信部可包括但不限于网卡,所述网卡可包括但不限于ib(infiniband)网卡,处理器可与只读存储器和/或随机访问存储器中通信以执行可执行指令,通过总线与通信部相连、并经通信部与其他目标设备通信,从而完成本公开实施例提供的任一图像处理方法对应的操作,例如,根据当前帧图像中目标点的邻域窗口中像素的深度值,确定所述目标点的深度值;基于所述目标点的深度值,对所述目标点在所述当前帧图像中的坐标进行坐标变换处理,得到所述目标点在世界坐标系中的坐标;对所述目标点在所述世界坐标系中的坐标进行坐标变换处理,得到所述目标点在视频的至少一其他帧图像中的坐标;其中,所述其他帧图像为所述视频中除所述当前帧图像外的图像。

此外,在ram中,还可存储有装置操作所需的各种程序和数据。cpu、rom以及ram通过总线彼此相连。在有ram的情况下,rom为可选模块。ram存储可执行指令,或在运行时向rom中写入可执行指令,可执行指令使处理器执行本公开上述任一方法对应的操作。输入/输出(i/o)接口也连接至总线。通信部可以集成设置,也可以设置为具有多个子模块(例如多个ib网卡),并在总线链接上。

以下部件连接至i/o接口:包括键盘、鼠标等的输入部分;包括诸如阴极射线管(crt)、液晶显示器(lcd)等以及扬声器等的输出部分;包括硬盘等的存储部分;以及包括诸如lan卡、调制解调器等的网络接口卡的通信部分。通信部分经由诸如因特网的网络执行通信处理。驱动器也根据需要连接至i/o接口。可拆卸介质,诸如磁盘、光盘、磁光盘、半导体存储器等等,根据需要安装在驱动器上,以便于从其上读出的计算机程序根据需要被安装入存储部分。

需要说明的,如图8所示的架构仅为一种可选实现方式,在具体实践过程中,可根据实际需要对上述图8的部件数量和类型进行选择、删减、增加或替换;在不同功能部件设置上,也可采用分离设置或集成设置等实现方式,例如gpu和cpu可分离设置或者可将gpu集成在cpu上,通信部可分离设置,也可集成设置在cpu或gpu上,等等。这些可替换的实施方式均落入本公开公开的保护范围。

特别地,根据本公开的实施例,上文参考流程图描述的过程可以被实现为计算机软件程序。例如,本公开的实施例包括一种计算机程序产品,其包括有形地包含在机器可读介质上的计算机程序,计算机程序包含用于执行流程图所示的方法的程序代码,程序代码可包括对应执行本公开任一实施例提供的图像处理方法步骤对应的指令。在这样的实施例中,该计算机程序可以通过通信部分从网络上被下载和安装,和/或从可拆卸介质被安装。在该计算机程序被cpu执行时,执行本公开的方法中限定的上述功能。

另外,本公开实施例还提供了一种计算机程序,包括计算机指令,当计算机指令在设备的处理器中运行时,实现本公开上述任一实施例的图像处理方法。

另外,本公开实施例还提供了一种计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时,实现本公开上述任一实施例的图像处理方法。

应理解,本公开实施例中的“第一”、“第二”等术语仅仅是为了区分,而不应理解成对本公开实施例的限定。

还应理解,在本公开中,“多个”可以指两个或两个以上,“至少一个”可以指一个、两个或两个以上。

还应理解,对于本公开中提及的任一部件、数据或结构,在没有明确限定或者在前后文给出相反启示的情况下,一般可以理解为一个或多个。

还应理解,本公开对各个实施例的描述着重强调各个实施例之间的不同之处,其相同或相似之处可以相互参考,为了简洁,不再一一赘述。

可能以许多方式来实现本发明的方法和装置、设备。例如,可通过软件、硬件、固件或者软件、硬件、固件的任何组合来实现本发明的方法和装置、设备。用于方法的步骤的上述顺序仅是为了进行说明,本发明的方法的步骤不限于以上具体描述的顺序,除非以其它方式特别说明。此外,在一些实施例中,还可将本发明实施为记录在记录介质中的程序,这些程序包括用于实现根据本发明的方法的机器可读指令。因而,本发明还覆盖存储用于执行根据本发明的方法的程序的记录介质。

本发明的描述是为了示例和描述起见而给出的,而并不是无遗漏的或者将本发明限于所公开的形式。很多修改和变化对于本领域的普通技术人员而言是显然的。选择和描述实施例是为了更好说明本发明的原理和实际应用,并且使本领域的普通技术人员能够理解本发明从而设计适于特定用途的带有各种修改的各种实施例。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1