CN114004890B - 姿态确定方法、装置、电子设备和存储介质 - Google Patents
姿态确定方法、装置、电子设备和存储介质 Download PDFInfo
- Publication number
- CN114004890B CN114004890B CN202111300669.9A CN202111300669A CN114004890B CN 114004890 B CN114004890 B CN 114004890B CN 202111300669 A CN202111300669 A CN 202111300669A CN 114004890 B CN114004890 B CN 114004890B
- Authority
- CN
- China
- Prior art keywords
- camera model
- image
- camera
- planar structure
- target image
- 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
Images
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/75—Determining position or orientation of objects or cameras using feature-based methods involving models
Landscapes
- Engineering & Computer Science (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Image Analysis (AREA)
- Studio Devices (AREA)
Abstract
本公开实施例公开了一种姿态确定方法、装置、电子设备和存储介质。该姿态确定方法包括:获取图像拍摄设备在第一方向与第二方向之间的角度值小于或等于预设角度阈值的情况下拍摄的目标图像;其中,上述目标图像中包含的拍摄对象指示的拍摄实体具有平面结构;上述第一方向表征上述平面结构到上述图像拍摄设备的方向,上述第二方向表征上述平面结构的朝向;将上述目标图像转换为预设相机模型下的相机模型图像;基于上述相机模型图像,确定上述平面结构中的点与上述目标图像中的相应像素之间的相对姿态信息。本公开实施例可以丰富通过图像计算拍摄实体姿态的方法的使用场景和适用范围,有助于提高姿态计算的准确度。
Description
技术领域
本公开涉及计算机技术领域,尤其是一种姿态确定方法、装置、电子设备和存储介质。
背景技术
随着计算机技术的不断发展,现有技术中,确定世界坐标系中的一个点与相机坐标系下的相应像素的相对姿态信息,成为计算机视觉、图像处理等领域广泛研究的一项课题。
例如,在VR(虚拟现实技术,Virtual Reality)数据采集过程中,可以利用移动计算设备的定位功能,来获取图像拍摄设备(例如全景相机)的姿态。具体而言,可以将图像拍摄设备与移动计算设备刚性连接。然而,刚性连接的安装方式所对应的相对朝向并不唯一,例如,可能发生翻转等问题。此外,在某些安装方式下难以进行相对姿态的计算。因此,现有技术中的姿态计算的实现,往往需要依赖于特定的连接方式,其使用场景和适用范围较为有限。
可见,如何丰富姿态计算方法的使用场景和适用范围,提高姿态计算的准确度,是一个值得关注的问题。
发明内容
本公开实施例提供一种姿态确定方法、装置、电子设备和存储介质,以丰富姿态计算方法的使用场景和适用范围,提高姿态计算的准确度。
根据本公开实施例的第一个方面,提供的一种姿态确定方法,包括:
获取图像拍摄设备在第一方向与第二方向之间的角度值小于或等于预设角度阈值的情况下拍摄的目标图像;其中,所述目标图像中包含的拍摄对象指示的拍摄实体具有平面结构;所述第一方向表征所述平面结构到所述图像拍摄设备的方向,所述第二方向表征所述平面结构的朝向;
将所述目标图像转换为预设相机模型下的相机模型图像;
基于所述相机模型图像,确定所述平面结构中的点与所述目标图像中的相应像素之间的相对姿态信息,其中,所述目标图像中的相应像素为:所述目标图像中,所述平面结构中的点的影像。
可选地,在本公开任一实施例的方法中,所述将所述目标图像转换为预设相机模型下的相机模型图像;基于所述相机模型图像,确定所述平面结构中的点与所述目标图像中的相应像素之间的相对姿态信息,包括:
S1:确定第一旋转信息;
S2:将预先确定的初始焦距作为相机焦距;
S3:基于所述第一旋转信息和所述相机焦距,将所述目标图像转换为相机模型下的相机模型图像;
S4:检测所述相机模型图像中的所述平面结构,根据检测结果更新所述相机焦距;
S5:执行S3,得到更新后的所述相机模型图像;
S6:检测所述相机模型图像中的所述平面结构,计算第二旋转信息;
S7:根据所述第一旋转信息和所述第二旋转信息,确定所述平面结构中的点与所述目标图像中的相应像素之间的姿态信息。
可选地,在本公开任一实施例的方法中,所述获取图像拍摄设备在第一方向与第二方向之间的角度值小于或等于预设角度阈值的情况下拍摄的目标图像,包括:
获取图像拍摄设备在满足预设拍摄条件的情况下拍摄的目标图像;
其中,所述预设拍摄条件包括:第一方向与第二方向之间的角度值小于或等于预设角度阈值,并且,所述图像拍摄设备与拍摄实体之间的距离小于或等于预设距离阈值。
可选地,在本公开任一实施例的方法中,所述预设相机模型为针孔相机模型;以及
所述将所述目标图像转换为预设相机模型下的相机模型图像,包括:
将所述目标图像转换为针孔相机模型下的相机模型图像。
可选地,在本公开任一实施例的方法中,所述确定第一旋转信息,包括:
基于所述拍摄实体在所述图像拍摄设备的第一相机坐标系下的投影方向,以及所述第一相机坐标系的Z轴方向,确定所述投影方向到所述光轴方向的第一旋转信息;
基于所述第一旋转信息和所述相机焦距,将所述目标图像转换为相机模型下的相机模型图像。
可选地,在本公开任一实施例的方法中,所述基于所述第一旋转信息和所述相机焦距,将所述目标图像转换为相机模型下的相机模型图像,包括:
基于所述相机模型图像中的像素在像素坐标系下的坐标,确定所述相机模型图像中的像素在投影坐标系中的齐次坐标;
基于所述第一旋转信息和所述相机焦距,确定所述齐次坐标在所述第一相机坐标系下的相机坐标;
基于所述第一相机坐标,确定预设相机模型下的相机模型图像中的像素的像素值,得到针孔相机模型下的相机模型图像。
可选地,在本公开任一实施例的方法中,所述基于所述第一相机坐标,确定预设相机模型下的相机模型图像中的像素的像素值,包括:
将所述第一相机坐标归一化到单位球面上,得到球面坐标;
基于所述球面坐标,确定所述目标图像中的浮点数像素坐标;
采用双线性插值算法,基于所述目标图像中的浮点数像素坐标,确定预设相机模型下的相机模型图像中的像素的像素值。
可选地,在本公开任一实施例的方法中,所述平面结构包含至少一个四边形标记,所述相机模型图像包含四边形标记中的至少局部四边形标记的标记对象;以及
所述检测所述相机模型图像中的所述平面结构,根据检测结果更新所述相机焦距,包括:
在所述相机模型图像中检测得到各个角点对象,其中,角点对象为:所述四边形标记的角点的影像;
从所述相机模型图像中的各个角点对象到所述相机模型图像的中心的距离中,确定数值最大的距离;
基于所述数值最大的距离和所述相机焦距,更新所述针孔相机模型的相机焦距。
可选地,在本公开任一实施例的方法中,所述平面结构包含至少一个四边形标记,所述相机模型图像包含四边形标记中的至少局部四边形标记的标记对象;以及
所述检测所述相机模型图像中的所述平面结构,计算第二旋转信息,包括:
基于所述相机模型图像,确定所述平面结构中每个四边形标记的角点与所述相机模型图像中的相应像素之间的第二旋转信息,其中,所述相机模型图像中的相应像素为:所述相机模型图像中,该四边形标记的角点的影像。
可选地,在本公开任一实施例的方法中,四边形标记包含方向标识;以及
所述基于所述相机模型图像,确定所述平面结构中每个四边形标记的角点与所述相机模型图像中的相应像素之间的第二旋转信息,包括:
检测所述相机模型图像中的每个四边形标记的角点,得到该四边形标记的角点坐标序列,其中,角点坐标序列中的角点坐标按照预定顺序排列,角点坐标序列中的首个角点坐标基于四边形标记包含的方向标识指示的方向确定;
计算该四边形标记的角点坐标序列到理想坐标系下的预设角点坐标序列的单应性变换矩阵;
基于所述单应性变换矩阵,确定所述平面结构中该四边形标记的角点与所述相机模型图像中的相应像素之间的第二旋转信息。
可选地,在本公开任一实施例的方法中,所述平面结构为显示屏,所述显示屏呈现的图像中包含呈行列排布的四边形标记的标记对象,所述显示屏呈现的图像中的标记对象的尺寸基于所述显示屏的分辨率确定。
可选地,在本公开任一实施例的方法中,所述根据所述第一旋转信息和所述第二旋转信息,确定所述平面结构中的点与所述目标图像中的相应像素之间的姿态信息包括:
所述平面结构中的点与所述目标图像中的相应像素之间的姿态信息为所述第一旋转信息与所述第二旋转信息的乘积。
根据本公开实施例的第二个方面,提供的一种姿态确定装置,包括:
获取单元,被配置成获取图像拍摄设备在第一方向与第二方向之间的角度值小于或等于预设角度阈值的情况下拍摄的目标图像;其中,所述目标图像中包含的拍摄对象指示的拍摄实体具有平面结构;所述第一方向表征所述平面结构到所述图像拍摄设备的方向,所述第二方向表征所述平面结构的朝向;
转换单元,被配置成将所述目标图像转换为预设相机模型下的相机模型图像;
确定单元,被配置成基于所述相机模型图像,确定所述平面结构中的点与所述目标图像中的相应像素之间的相对姿态信息,其中,所述目标图像中的相应像素为:所述目标图像中,所述平面结构中的点的影像。
可选地,在本公开任一实施例的装置中,所述获取单元包括:
获取子单元,被配置成获取图像拍摄设备在满足预设拍摄条件的情况下拍摄的目标图像;
其中,所述预设拍摄条件包括:第一方向与第二方向之间的角度值小于或等于预设角度阈值,并且,所述图像拍摄设备与拍摄实体之间的距离小于或等于预设距离阈值。
可选地,在本公开任一实施例的装置中,所述预设相机模型为针孔相机模型;以及
所述转换单元包括:
转换子单元,被配置成将所述目标图像转换为针孔相机模型下的相机模型图像。
可选地,在本公开任一实施例的装置中,所述转换子单元包括:
第一确定模块,被配置成基于所述拍摄实体在所述图像拍摄设备的第一相机坐标系下的投影方向,以及所述第一相机坐标系的Z轴方向,确定所述投影方向到所述光轴方向的第一旋转信息;
转换模块,被配置成基于所述第一旋转信息和所述相机焦距,将所述目标图像转换为相机模型下的相机模型图像。
可选地,在本公开任一实施例的装置中,所述转换模块包括:
第一确定子模块,被配置成基于所述相机模型图像中的像素在像素坐标系下的坐标,确定所述相机模型图像中的像素在投影坐标系中的齐次坐标;
第二确定子模块,被配置成基于所述第一旋转信息和所述相机焦距,确定所述齐次坐标在所述第一相机坐标系下的相机坐标;
第三确定子模块,被配置成基于所述第一相机坐标,确定预设相机模型下的相机模型图像中的像素的像素值,得到针孔相机模型下的相机模型图像。
可选地,在本公开任一实施例的装置中,所述第三确定子模块,具体被配置成:
将所述第一相机坐标归一化到单位球面上,得到球面坐标;
基于所述球面坐标,确定所述目标图像中的浮点数像素坐标;
采用双线性插值算法,基于所述目标图像中的浮点数像素坐标,确定预设相机模型下的相机模型图像中的像素的像素值。
可选地,在本公开任一实施例的装置中,
所述检测所述相机模型图像中的所述平面结构,根据检测结果更新所述相机焦距,包括:
在所述相机模型图像中检测得到各个角点对象,其中,角点对象为:所述四边形标记的角点的影像;
从所述相机模型图像中的各个角点对象到所述相机模型图像的中心的距离中,确定数值最大的距离;
基于所述数值最大的距离和所述相机焦距,更新所述针孔相机模型的相机焦距。可选地,在本公开任一实施例的装置中,所述平面结构包含至少一个四边形标记,所述相机模型图像包含四边形标记中的至少局部四边形标记的标记对象;以及
所述检测所述相机模型图像中的所述平面结构,计算第二旋转信息,包括:
基于所述相机模型图像,确定所述平面结构中每个四边形标记的角点与所述相机模型图像中的相应像素之间的第二旋转信息,其中,所述相机模型图像中的相应像素为:所述相机模型图像中,该四边形标记的角点的影像。
可选地,在本公开任一实施例的装置中,四边形标记包含方向标识;以及
所述第一确定子单元包括:
检测模块,被配置成检测所述相机模型图像中的每个四边形标记的角点,得到该四边形标记的角点坐标序列,其中,角点坐标序列中的角点坐标按照预定顺序排列,角点坐标序列中的首个角点坐标基于四边形标记包含的方向标识指示的方向确定;
计算模块,被配置成计算该四边形标记的角点坐标序列到理想坐标系下的预设角点坐标序列的单应性变换矩阵;
第二确定模块,被配置成基于所述单应性变换矩阵,确定所述平面结构中该四边形标记的角点与所述相机模型图像中的相应像素之间的第二旋转信息。
可选地,在本公开任一实施例的装置中,所述平面结构为显示屏,所述显示屏呈现的图像中包含呈行列排布的四边形标记的标记对象,所述显示屏呈现的图像中的标记对象的尺寸基于所述显示屏的分辨率确定。
可选地,在本公开任一实施例的装置中,所述根据所述第一旋转信息和所述第二旋转信息,确定所述平面结构中的点与所述目标图像中的相应像素之间的姿态信息包括:
所述平面结构中的点与所述目标图像中的相应像素之间的姿态信息为所述第一旋转信息与所述第二旋转信息的乘积。
根据本公开实施例的第三个方面,提供的一种电子设备,包括:
存储器,用于存储计算机程序;
处理器,用于执行所述存储器中存储的计算机程序,且所述计算机程序被执行时,实现本公开上述第一方面的姿态确定方法中任一实施例的方法。
根据本公开实施例的第四个方面,提供的一种计算机可读介质,该计算机程序被处理器执行时,实现如上述第一方面的姿态确定方法中任一实施例的方法。
根据本公开实施例的第五个方面,提供的一种计算机程序,该计算机程序包括计算机可读代码,当该计算机可读代码在设备上运行时,使得该设备中的处理器执行用于实现如上述第一方面的姿态确定方法中任一实施例的方法中各步骤的指令。
基于本公开上述实施例提供的姿态确定方法、装置、电子设备和存储介质,可以获取图像拍摄设备在第一方向与第二方向之间的角度值小于或等于预设角度阈值的情况下拍摄的目标图像;其中,上述目标图像中包含的拍摄对象指示的拍摄实体具有平面结构;上述第一方向表征上述平面结构到上述图像拍摄设备的方向,上述第二方向表征上述平面结构的朝向,然后,将上述目标图像转换为预设相机模型下的相机模型图像,之后,基于上述相机模型图像,确定上述平面结构中的点与上述目标图像中的相应像素之间的相对姿态信息,其中,上述目标图像中的相应像素为:上述目标图像中,上述平面结构中的点的影像。由此,本公开实施例可以基于图像拍摄设备在第一方向与第二方向之间的角度值小于或等于预设角度阈值的情况下拍摄的目标图像,来确定平面结构中的点与上述目标图像中的相应像素之间的相对姿态信息,从而丰富了通过图像计算拍摄实体姿态的方法的使用场景和适用范围,有助于提高姿态计算的准确度。
下面通过附图和实施例,对本公开的技术方案做进一步的详细描述。
附图说明
构成说明书的一部分的附图描述了本公开的实施例,并且连同描述一起用于解释本公开的原理。
参照附图,根据下面的详细描述,可以更加清楚地理解本公开,其中:
图1为本公开姿态确定方法的第一个实施例的流程图。
图2为本公开姿态确定方法的第二个实施例的流程图。
图3为本公开姿态确定方法的第三个实施例的流程图。
图4A-图4D为本公开姿态确定方法中涉及的坐标系之间的关系示意图。
图4E-图4G为本公开姿态确定方法的一个实施例的应用场景示意图。
图5为本公开姿态确定装置的一个实施例的结构示意图。
图6是本公开一示例性实施例提供的电子设备的结构图。
具体实施方式
现在将参照附图来详细描述本公开的各种示例性实施例。应注意到:除非另外具体说明,否则在这些实施例中阐述的部件和步骤的相对布置、数字表达式和数值不限制本公开的范围。
本领域技术人员可以理解,本公开实施例中的“第一”、“第二”等术语仅用于区别不同步骤、设备或模块等,既不代表任何特定技术含义,也不表示它们之间的必然逻辑顺序。
还应理解,在本公开实施例中,“多个”可以指两个或两个以上,“至少一个”可以指一个、两个或两个以上。
还应理解,对于本公开实施例中提及的任一部件、数据或结构,在没有明确限定或者在前后文给出相反启示的情况下,一般可以理解为一个或多个。
另外,本公开中术语“和/或”,仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。另外,本公开中字符“/”,一般表示前后关联对象是一种“或”的关系。
还应理解,本公开对各个实施例的描述着重强调各个实施例之间的不同之处,其相同或相似之处可以相互参考,为了简洁,不再一一赘述。
同时,应当明白,为了便于描述,附图中所示出的各个部分的尺寸并不是按照实际的比例关系绘制的。
以下对至少一个示例性实施例的描述实际上仅仅是说明性的,决不作为对本公开及其应用或使用的任何限制。
对于相关领域普通技术人员已知的技术、方法和设备可能不作详细讨论,但在适当情况下,所述技术、方法和设备应当被视为说明书的一部分。
应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步讨论。
本公开实施例可以应用于终端设备、计算机系统和服务器中的至少一种电子设备,其可与众多其它通用或专用计算系统环境或配置一起操作。适于与终端设备、计算机系统和服务器中的至少一种电子设备一起使用的众所周知的计算系统、环境和/或配置的例子包括但不限于:个人计算机系统、服务器计算机系统、瘦客户机、厚客户机、手持或膝上设备、基于微处理器的系统、机顶盒、可编程消费电子产品、网络个人电脑、小型计算机系统﹑大型计算机系统和包括上述任何系统的分布式云计算技术环境,等等。
终端设备、计算机系统和服务器中的至少一种电子设备可以在由计算机系统执行的计算机系统可执行指令(诸如程序模块)的一般语境下描述。通常,程序模块可以包括例程、程序、目标程序、组件、逻辑、数据结构等等,它们执行特定的任务或者实现特定的抽象数据类型。计算机系统/服务器可以在分布式云计算环境中实施,分布式云计算环境中,任务是由通过通信网络链接的远程处理设备执行的。在分布式云计算环境中,程序模块可以位于包括存储设备的本地或远程计算系统存储介质上。
请参考图1,示出了根据本公开的姿态确定方法的第一个实施例的流程100。该姿态确定方法,包括:
101,获取图像拍摄设备在第一方向与第二方向之间的角度值小于或等于预设角度阈值的情况下拍摄的目标图像。
在本实施例中,姿态确定方法的执行主体(例如服务器、终端设备、具有图像处理功能的图像处理单元、本公开中的姿态确定装置等)可以通过有线连接方式或者无线连接方式从其他电子设备或者本地,获取图像拍摄设备在第一方向与第二方向之间的角度值小于或等于预设角度阈值的情况下拍摄的目标图像。
在本实施例中,上述目标图像中包含的拍摄对象指示的拍摄实体具有平面结构。
拍摄实体,可以是存在于三维空间中的、具有平面结构的物理实体。作为示例,拍摄实体可以是一张照片、多面体形状的物体、具有显示屏的移动终端等等。
拍摄对象,可以是目标图像中所包含的上述拍摄实体的影像。
目标图像,可以是在第一方向与第二方向之间的角度值小于或等于预设角度阈值的情况下,经由图像拍摄设备拍摄得到的图像。
图像拍摄设备,可以是具有图像拍摄功能的设备。作为示例,图像拍摄设备,可以是设置有两个鱼眼镜头的全景相机,也可以是只设置有一个鱼眼镜头的全景相机,或者是非全景相机等,本实施例在此不做限制。
在本实施例中,上述第一方向表征上述平面结构到上述图像拍摄设备的方向。上述第二方向表征上述平面结构的朝向。
可选地,上述第一方向、第二方向可以分别采用向量的形式进行表征。这里,第一方向,可以是平面结构中的预定位置(例如,平面结构的中心,或者,平面结构中的预先确定的任一点)指向上述图像拍摄设备的预定位置(例如,图像拍摄设备的中心,或者,图像拍摄设备中的预先确定的任一点)的向量。第二方向,可以是垂直于上述平面结构并且指向上述图像拍摄设备的方向。
预设角度阈值,可以是预先确定的角度值。作为示例,预设角度阈值是60度。如果第一方向与第二方向之间的角度超过预设角度阈值,容易导致图像拍摄设备拍摄不到该平面结构的图像。
102,将上述目标图像转换为预设相机模型下的相机模型图像。
在本实施例中,上述执行主体可以将上述目标图像转换为预设相机模型下的相机模型图像。
其中,上述预设相机模型可以包括但不限于:针孔相机模型、实际成像模型。
这里,以预设相机模型为针孔相机模型为例,对上述102进行示例性说明,从而针对相机模型图像中的每个像素坐标,采用如下方式计算该像素坐标相对应的像素P的RGB值,以获得相机模型图像:
具体而言,针孔相机模型中的针孔相机为一理想的虚拟相机,可以首先给定投影方向d(也即虚拟相机中心视线的朝向),设d的向量在第二相机(例如针孔相机模型)坐标系下的坐标为(xd,yd,zd),在世界坐标系下坐标系z轴单位向量ez的坐标为(0,0,1),根据罗德里格斯公式计算向量d到向量ez的旋转矩阵Rcd。这里,若拍摄对象位于图像拍摄设备的正下方,可以将d的坐标确定为(0,1,0)。其中,世界坐标系,即三维世界的坐标系,用于描述物体在真实世界里的位置而被引入。
然后,给定目标图像初始焦距f和分辨率的宽w、分辨率的高h,计算相机模型图像中的像素P的像素RGB(Red Green Blue,红绿蓝)值。其中,设相机模型图像中像素P在相机模型图像中像素坐标系下的坐标为(up,vp),fx的值为f,fy的值为f,cx的值为w/2,cy的值为h/2,通过如下公式计算矩阵K:
之后,计算像素P在投影坐标系中的齐次坐标P’,其中,P’的坐标为(xp,yp,zp)。投影坐标系,也称非地球投影坐标系统(notearth),或者是平面坐标。若世界坐标系采用(x,y,z)表征,则投影坐标系可以表征为(x,y)。
随后,根据下式计算P’在图像拍摄设备的第一相机坐标系的坐标表示Pd=(xc,yc,zc)。其中,第一相机坐标系,是以全景相机的聚焦中心为原点,以光轴为Z轴建立的三维直角坐标系。
接下来,将Pd归一化到单位球面上,得到归一化处理后的Pc:
Pc=Pd/||Pd||
最后,根据球面坐标Pc计算目标图像中浮点数像素坐标(u’,v’),例如,如果球面坐标Pc表征为(a,b,1),那么,像素坐标(u’,v’),即为(a,b)。之后,在坐标(u’,v’)对应的相邻4个目标图像的整数像素中,使用双线性插值计算RGB值,该值就是相机模型图像中与该像素P相对应的像素值。例如,由相机模型图像中的像素P的坐标计算得到的目标图像中浮点数像素坐标为(10.4,3.75),则与(10.4,3.75)相对应的4个整数像素坐标为(10,3)、(10,4)、(11,3)、(11,4),利用这4个整数像素的RGB值进行双线性插值,得到浮点数像素坐标为(10.4,3.75)的RGB值,作为相机模型图像中P点的RGB值,得到相机模型图像中每个像素点P的RGB值后,即可得到相机模型图像。
可选地,上述执行主体还可以采用预先确定的转换矩阵,将上述目标图像转换为预设相机模型(例如针孔相机模型、实际成像模型、鱼眼相机模型)下的相机模型图像。
其中,将目标图像转换为预设相机模型下的相机模型图像后,可以通过预设相机模型确定出被拍摄物体和被拍摄物体的影像之间的关系(例如针孔成像模型,被拍摄物体和被拍摄物体的影像会满足相似三角形的关系),从而简化确定平面结构中的点与目标图像中的相应像素之间的相对姿态信息的计算。
103,基于上述相机模型图像,确定上述平面结构中的点与上述目标图像中的相应像素之间的相对姿态信息。
在本实施例中,上述执行主体可以基于上述相机模型图像,确定上述平面结构中的点与上述目标图像中的相应像素之间的相对姿态信息。其中,上述目标图像中的相应像素为:上述目标图像中,上述平面结构中的点的影像。
在这里,上述相对姿态信息可以表征上述平面结构中的任一点与上述目标图像中的该点的相应像素之间的相对姿态。相对姿态信息可以包括但不限于以下至少一项:旋转信息、距离信息、方位信息等等。
作为示例,在相对姿态信息包括距离信息的情况下,上述执行主体可以基于上述相机模型图像中与上述目标图像中的相应像素的数量或者相应像素在该相机模型图像中所占的比例,来确定上述平面结构中的点与上述目标图像中的相应像素之间的距离信息,从而得到相对姿态信息。
作为又一示例,在相对姿态信息包括方位信息的情况下,上述执行主体可以基于上述相机模型图像中与上述目标图像中的相应像素在该相机模型图像中的位置,来确定上述平面结构中的点与上述目标图像中的相应像素之间的方位信息,从而得到相对姿态信息。
在本实施例的一些可选的实现方式中,所述平面结构中的点与所述目标图像中的相应像素之间的姿态信息为所述第一旋转信息与所述第二旋转信息的乘积。
本公开的上述实施例提供的姿态确定方法,可以获取图像拍摄设备在第一方向与第二方向之间的角度值小于或等于预设角度阈值的情况下拍摄的目标图像;其中,上述目标图像中包含的拍摄对象指示的拍摄实体具有平面结构;上述第一方向表征上述平面结构到上述图像拍摄设备的方向,上述第二方向表征上述平面结构的朝向,然后,将上述目标图像转换为预设相机模型下的相机模型图像,之后,基于上述相机模型图像,确定上述平面结构中的点与上述目标图像中的相应像素之间的相对姿态信息,其中,上述目标图像中的相应像素为:上述目标图像中,上述平面结构中的点的影像。由此,本公开实施例可以基于图像拍摄设备在第一方向与第二方向之间的角度值小于或等于预设角度阈值的情况下拍摄的目标图像,来确定平面结构中的点与上述目标图像中的相应像素之间的相对姿态信息,从而丰富了通过图像计算拍摄实体姿态的方法的使用场景和适用范围,有助于提高姿态计算的准确度。
在本实施例的一些可选的实现方式中,上述执行主体可以采用如下方式执行上述101,以获取图像拍摄设备在第一方向与第二方向之间的角度值小于或等于预设角度阈值的情况下拍摄的目标图像:
获取图像拍摄设备在满足预设拍摄条件的情况下拍摄的目标图像。其中,上述预设拍摄条件包括:第一方向与第二方向之间的角度值小于或等于预设角度阈值,并且,上述图像拍摄设备与拍摄实体之间的距离小于或等于预设距离阈值。
可以理解,在上述可选的实现方式中,图像拍摄设备拍摄目标图像不仅需要满足“第一方向与第二方向之间的角度值小于或等于预设角度阈值”,还需要满足“上述图像拍摄设备与拍摄实体之间的距离小于或等于预设距离阈值”。这样,可以通过限定图像拍摄设备与拍摄实体之间的距离,使得目标图像以及相机模型图像中的纹理信息更为丰富和准确。进而可以提高姿态计算的准确度。
在本实施例的一些可选的实现方式中,上述平面结构为显示屏,上述显示屏呈现的图像中包含呈行列排布的四边形标记的标记对象,上述显示屏呈现的图像中的标记对象的尺寸基于上述显示屏的分辨率确定。
可以理解,上述可选的实现方式中,可以通过调整显示屏的亮度来控制目标图像以及相机模型图像的对比度,通过显示屏的分辨率确定标记对象的数量,进而调整目标图像以及相机模型图像中的清晰度,并通过显示屏呈现呈行列排布的多个四边形标记的标记对象,来确保目标图像以及相机模型图像中包含至少一个四边形标记的标记对象的影像,从而通过至少一个四边形标记的标记对象的影像呈现出的几何关系,来确定平面结构中的点与目标图像中的相应像素之间的相对姿态信息,由此,可以进一步提高姿态计算的准确度。
在本实施例的一些可选的实现方式中,目标图像可以经由图像拍摄设备,在第一方向与第二方向之间的角度值为小于或等于预设角度阈值的任一角度值的情况下,拍摄得到。
可以理解,在上述可选的实现方式中,无需固定第一方向与第二方向之间的角度值,只要第一方向与第二方向之间的角度值小于或等于预设角度阈值即可,由此可以提高通过图像计算拍摄实体姿态的方法的使用场景和适用范围,从而一定程度上避免了由于图像拍摄设备与拍摄实体之间的相对位置不符合要求而导致的姿态计算错误的问题。
进一步参考图2,图2是本公开的姿态确定方法的第二个实施例的流程图。该姿态确定方法的流程200,包括:
201,获取图像拍摄设备在第一方向与第二方向之间的角度值小于或等于预设角度阈值的情况下拍摄的目标图像。
在本实施例中,姿态确定方法的执行主体(例如服务器、终端设备、具有图像处理功能的图像处理单元、姿态确定装置等)可以通过有线连接方式或者无线连接方式从其他电子设备或者本地,获取图像拍摄设备在第一方向与第二方向之间的角度值小于或等于预设角度阈值的情况下拍摄的目标图像。
其中,上述目标图像中包含的拍摄对象指示的拍摄实体具有平面结构。上述第一方向表征上述平面结构到上述图像拍摄设备的方向,上述第二方向表征上述平面结构的朝向
在本实施例中,201与图1对应实施例中的101基本一致,这里不再赘述。
202,将上述目标图像转换为针孔相机模型下的相机模型图像。
在本实施例中,上述执行主体可以将上述目标图像转换为针孔相机模型下的相机模型图像。
在本实施例的一些可选的实现方式中,上述执行主体可以采用如下方式执行上述202,以将上述目标图像转换为针孔相机模型下的相机模型图像:
步骤一,基于上述拍摄实体在上述图像拍摄设备的第一相机坐标系下的投影方向,以及上述第一相机坐标系的Z轴方向,确定上述投影方向到上述光轴方向的第一旋转信息。
作为示例,可以根据罗德里格斯公式,计算上述投影方向到上述光轴方向的第一旋转信息。
步骤二,基于上述第一旋转信息,将上述目标图像转换为针孔相机模型下的相机模型图像。
在上述可选的实现方式的一些应用场景下,上述执行主体可以采用如下方式执行上述步骤二,以基于上述第一旋转信息,将上述目标图像转换为针孔相机模型下的相机模型图像:
第一子步骤,基于所述相机模型图像中的像素在像素坐标系下的坐标,确定所述相机模型图像中的像素在投影坐标系中的齐次坐标。其中,像素坐标系x-y的原点,为像素坐标系的中点。像素坐标系u-v的横坐标u和纵坐标v分别是图像所在的行和列。在视觉处理库OpenCV中,u对应x,v对应y。
第二子步骤,基于所述第一旋转信息和所述相机焦距,确定所述齐次坐标在所述第一相机坐标系下的相机坐标。
第三子步骤,基于所述第一相机坐标,确定所述预设相机模型下的相机模型图像中的像素的像素值,得到所述预设相机模型下的所述相机模型图像。
可以理解,上述应用场景中,可以基于上述第一旋转信息和上述相机模型图像中的像素在像素坐标系下的坐标,得到针孔相机模型下的相机模型图像。
在上述应用场景的一些情况下,上述执行主体可以采用如下方式执行上述第三子步骤,以基于上述第一相机坐标,确定预设相机模型下的相机模型图像中的像素的像素值:
首先,将上述第一相机坐标归一化到单位球面上,得到球面坐标。
然后,基于上述球面坐标,确定上述目标图像中的浮点数像素坐标。
最后,采用双线性插值算法,基于上述目标图像中的浮点数像素坐标,确定预设相机模型下的相机模型图像中的像素的像素值。
可以理解,上述情况下,可以通过归一化处理和双线性插值算法,确定预设相机模型下的相机模型图像中的像素的像素值。这样,基于该相机模型图像进行姿态估计,可以进一步提高姿态估计的准确度。
在上述可选的实现方式的一些应用场景下,上述平面结构包含至少一个四边形标记,上述相机模型图像包含四边形标记中的至少局部四边形标记的标记对象。在此基础上,上述执行主体可以采用如下方式,来检测所述相机模型图像中的所述平面结构,根据检测结果更新所述相机焦距:
首先,在所述相机模型图像中检测得到各个角点对象,其中,角点对象为:所述四边形标记的角点的影像。
然后,从所述相机模型图像中的各个角点对象到所述相机模型图像的中心的距离中,确定数值最大的距离。
之后,基于所述数值最大的距离和所述相机焦距,更新所述针孔相机模型的相机焦距。
这里,可以通过以下公式,来计算目标焦距f’:
f’=(h÷2)÷r×f
其中,h表征目标图像的分辨率的高,r表征上述距离中的最大的距离,f表征上述初始焦距。
最后,基于上述目标焦距,将上述目标图像转换为针孔相机模型下的相机模型图像。
这里,基于目标焦距,将目标图像转换为针孔相机模型下的相机模型图像的方式,可以参考上述基于初始焦距将目标图像转换为针孔相机模型下的相机模型图像的方式来实现,也即将上述初始焦距更新为此处获得的目标焦距,即可得到这里的针孔相机模型下的相机模型图像。
可以理解,上述应用场景中,可以基于初始焦距重新计算针孔相机模型的目标焦距,并将目标焦距作为最优焦距,进而将上述目标图像转换为针孔相机模型下的相机模型图像。这样,基于该相机模型图像进行姿态估计,可以进一步提高姿态估计的准确度。
这里,上述可选的实现方式中,可以基于上述拍摄实体在上述图像拍摄设备的第一相机坐标系下的投影方向,以及上述第一相机坐标系的Z轴方向,将上述目标图像转换为针孔相机模型下的相机模型图像。
203,基于上述相机模型图像,确定上述平面结构中的点与上述目标图像中的相应像素之间的相对姿态信息。
在本实施例中,上述执行主体可以基于上述相机模型图像,确定上述平面结构中的点与上述目标图像中的相应像素之间的相对姿态信息。其中,上述目标图像中的相应像素为:上述目标图像中,上述平面结构中的点的影像。
在本实施例中,步骤203与图1对应实施例中的步骤103基本一致,这里不再赘述。
需要说明的是,除上面所记载的内容外,本申请实施例还可以包括与图1对应的实施例相同或类似的特征、效果,在此不再赘述。
从图2中可以看出,本实施例中的姿态确定方法的流程200可以将目标图像转换为针孔相机模型下的相机模型图像,由此简化了获得相机模型图像的计算复杂度,减少了计算资源的消耗,提高了姿态计算的速度。
请继续参考图3,图3是本公开的姿态确定方法的第三个实施例的流程图。该姿态确定方法的流程300,包括:
301,获取图像拍摄设备在第一方向与第二方向之间的角度值小于或等于预设角度阈值的情况下拍摄的目标图像。
在本实施例中,姿态确定方法的执行主体(例如服务器、终端设备、具有图像处理功能的图像处理单元、姿态确定装置等)可以通过有线连接方式或者无线连接方式从其他电子设备或者本地,获取图像拍摄设备在第一方向与第二方向之间的角度值小于或等于预设角度阈值的情况下拍摄的目标图像。其中,上述目标图像中包含的拍摄对象指示的拍摄实体具有平面结构;上述第一方向表征上述平面结构到上述图像拍摄设备的方向,上述第二方向表征上述平面结构的朝向。
在本实施例的一些可选的实现方式中,所述平面结构包含至少一个四边形标记,所述相机模型图像包含四边形标记中的至少局部四边形标记的标记对象;以及
所述检测所述相机模型图像中的所述平面结构,根据检测结果更新所述相机焦距,包括:
在所述相机模型图像中检测得到各个角点对象,其中,角点对象为:所述四边形标记的角点的影像。
从所述相机模型图像中的各个角点对象到所述相机模型图像的中心的距离中,确定数值最大的距离。
基于所述数值最大的距离和所述相机焦距,更新所述针孔相机模型的相机焦距。
这里,可以通过以下公式,来计算目标焦距f’:
f’=(h÷2)÷r×f
其中,h表征目标图像的分辨率的高,r表征上述数值最大的距离,f表征上述相机焦距。
最后,基于上述目标焦距,将上述目标图像转换为针孔相机模型下的相机模型图像。
这里,基于目标焦距,将目标图像转换为针孔相机模型下的相机模型图像的方式,可以参考上述基于初始焦距将目标图像转换为针孔相机模型下的相机模型图像的方式来实现,也即将上述初始焦距更新为此处获得的目标焦距,即可得到这里的针孔相机模型下的相机模型图像。
可以理解,上述应用场景中,可以基于初始焦距重新计算针孔相机模型的目标焦距,并将目标焦距作为最优焦距,进而将上述目标图像转换为针孔相机模型下的相机模型图像。这样,基于该相机模型图像进行姿态估计,可以进一步提高姿态估计的准确度。
这里,上述可选的实现方式中,可以基于上述拍摄实体在上述图像拍摄设备的第一相机坐标系下的投影方向,以及上述第一相机坐标系的Z轴方向,将上述目标图像转换为针孔相机模型下的相机模型图像。
在本实施例的一些可选的实现方式中,所述平面结构包含至少一个四边形标记,所述相机模型图像包含四边形标记中的至少局部四边形标记的标记对象;以及
所述检测所述相机模型图像中的所述平面结构,计算第二旋转信息,包括:
基于所述相机模型图像,确定所述平面结构中每个四边形标记的角点与所述相机模型图像中的相应像素之间的第二旋转信息。其中,所述相机模型图像中的相应像素为:所述相机模型图像中,该四边形标记的角点的影像。
优选地,四边形标记包含方向标识。在此基础上,所述基于所述相机模型图像,确定所述平面结构中每个四边形标记的角点与所述相机模型图像中的相应像素之间的第二旋转信息,包括:
第一步,检测所述相机模型图像中的每个四边形标记的角点,得到该四边形标记的角点坐标序列。其中,角点坐标序列中的角点坐标按照预定顺序排列,角点坐标序列中的首个角点坐标基于四边形标记包含的方向标识指示的方向确定;
第二步,计算该四边形标记的角点坐标序列到理想坐标系下的预设角点坐标序列的单应性变换矩阵。
第三步,基于所述单应性变换矩阵,确定所述平面结构中该四边形标记的角点与所述相机模型图像中的相应像素之间的第二旋转信息。
在本实施例中,上述平面结构包含至少一个四边形标记,上述相机模型图像包含四边形标记中的至少局部四边形标记的标记对象。除此之外,步骤301与图1对应实施例中的步骤101可以基本一致,这里不再赘述。
302,确定第一旋转信息。
在本实施例中,上述执行主体可以确定第一旋转信息。
在本实施例的一些可选的实现方式中,所述确定第一旋转信息,包括:
基于所述拍摄实体在所述图像拍摄设备的第一相机坐标系下的投影方向,以及所述第一相机坐标系的Z轴方向,确定所述投影方向到所述光轴方向的第一旋转信息。
作为示例,可以根据罗德里格斯公式,计算上述投影方向到上述光轴方向的第一旋转信息。
303,将预先确定的初始焦距作为相机焦距。
在本实施例中,上述执行主体可以将预先确定的初始焦距作为相机焦距。
304,基于所述第一旋转信息和所述相机焦距,将所述目标图像转换为相机模型下的相机模型图像。
在本实施例中,上述执行主体可以基于所述第一旋转信息和所述相机焦距,将所述目标图像转换为相机模型下的相机模型图像。
在本实施例的一些可选的实现方式中,所述基于所述第一旋转信息和所述相机焦距,将所述目标图像转换为相机模型下的相机模型图像,包括:
首先,基于所述相机模型图像中的像素在像素坐标系下的坐标,确定所述相机模型图像中的像素在投影坐标系中的齐次坐标。其中,像素坐标系x-y的原点,为像素坐标系的中点。像素坐标系u-v的横坐标u和纵坐标v分别是图像所在的行和列。在视觉处理库OpenCV中,u对应x,v对应y。
之后,基于所述第一旋转信息和所述相机焦距,确定所述齐次坐标在所述第一相机坐标系下的第一相机坐标。
最后,基于所述第一相机坐标,确定所述预设相机模型下的相机模型图像中的像素的像素值,得到所述预设相机模型下的所述相机模型图像。
作为示例,基于所述第一相机坐标,确定所述预设相机模型下的相机模型图像中的像素的像素值,包括:将所述第一相机坐标归一化到单位球面上,得到球面坐标;基于所述球面坐标,确定所述目标图像中的浮点数像素坐标;采用双线性插值算法,基于所述目标图像中的浮点数像素坐标,确定所述预设相机模型下的相机模型图像中的像素的像素值。这样,可以通过归一化处理和双线性插值算法,确定预设相机模型下的相机模型图像中的像素的像素值。这样,基于该相机模型图像进行姿态估计,可以进一步提高姿态估计的准确度。
可以理解,上述应用场景中,可以基于上述第一旋转信息和上述目标图像中的像素在像素坐标系下的坐标,得到针孔相机模型下的相机模型图像。
305,检测所述相机模型图像中的所述平面结构,根据检测结果更新所述相机焦距。
在本实施例中,上述执行主体可以检测所述相机模型图像中的所述平面结构,根据检测结果更新所述相机焦距。
作为示例,可以从上述相机模型图像中的各个角点对象到上述相机模型图像的中心的距离中,确定数值最大的距离。其中,角点对象为:上述相机模型图像中,四边形标记的角点的影像。之后,基于上述数值最大的距离和上述初始焦距,计算上述针孔相机模型的目标焦距。
这里,可以通过以下公式,来计算相机焦距f’:
f’=(h÷2)÷r×f
其中,h表征目标图像的分辨率的高,r表征上述数值最大的距离,f表征上述初始焦距。
306,基于所述第一旋转信息和所述相机焦距,将所述目标图像转换为相机模型下的相机模型图像,得到更新后的所述相机模型图像。
在本实施例中,上述执行主体可以基于所述第一旋转信息和所述相机焦距,将所述目标图像转换为相机模型下的相机模型图像,得到更新后的所述相机模型图像。
这里,基于目标焦距,将目标图像转换为针孔相机模型下的相机模型图像的方式,可以参考上述基于初始焦距将目标图像转换为针孔相机模型下的相机模型图像的方式来实现,也即将上述初始焦距更新为此处获得的目标焦距,即可得到这里的针孔相机模型下的相机模型图像。
307,检测所述相机模型图像中的所述平面结构,计算第二旋转信息。
在本实施例中,上述执行主体可以检测所述相机模型图像中的所述平面结构,计算第二旋转信息。
作为示例,上述执行主体可以基于上述相机模型图像,确定上述平面结构中每个四边形标记的角点与上述相机模型图像中的相应像素之间的第二旋转信息。
其中,上述相机模型图像中的相应像素为:上述相机模型图像中,该四边形标记的角点的影像。
308,根据所述第一旋转信息和所述第二旋转信息,确定所述平面结构中的点与所述目标图像中的相应像素之间的姿态信息。
在本实施例中,上述执行主体可以根据所述第一旋转信息和所述第二旋转信息,确定所述平面结构中的点与所述目标图像中的相应像素之间的姿态信息。
在本实施例的一些可选的实现方式中,所述平面结构中的点与所述目标图像中的相应像素之间的姿态信息为所述第一旋转信息与所述第二旋转信息的乘积。
在本实施例中,上述执行主体可以将预先确定的初始焦距作为相机焦距。
在本实施例的一些可选的实现方式中,四边形标记包含方向标识。在此基础上,上述执行主体可以采用如下方式执行上述303,以基于上述相机模型图像,确定上述平面结构中每个四边形标记的角点与上述相机模型图像中的相应像素之间的第二旋转信息:
首先,检测上述相机模型图像中的每个四边形标记的角点,得到该四边形标记的角点坐标序列。其中,角点坐标序列中的角点坐标按照预定顺序排列。角点坐标序列中的首个角点坐标基于四边形标记包含的方向标识指示的方向确定。
这里,示例性的,方向标识可以用于指示四边形标记的初始方向。例如,可以将方向标识设置于四边形标记的下方(也可以是是其他位置)。由此,在方向标识位于四边形标记的下方时,可以确定四边形标记的朝向为初始方向,从而实现对拍摄实体的朝向的标识。进一步地,可以将四边形标记的朝向为初始方向时四边形标记的左上角点(也可以是其他角点),作为角点坐标序列中的首个角点坐标。进而从首个角点坐标开始,按照顺时针(或逆时针)的方向,来排列各个角点的坐标,得到角点坐标序列。
然后,计算该四边形标记的角点坐标序列,到理想坐标系下的预设角点坐标序列的单应性(Homography)变换矩阵。其中,理想坐标系,即无畸变情况下的坐标系。
作为示例,请参考图4A-图4C。图4A-图4C为本公开姿态确定方法中涉及的坐标系之间的关系示意图。这里对以上所提及的世界坐标系、图像坐标系、像素坐标系、相机坐标系、理想坐标系的原点及坐标轴的设置方式作如下说明:
在图4A中,其中,M为三维空间点,m为M在图像平面投影成的像点。
其中:
世界坐标系,也即全景相机坐标系(第一相机坐标系),是客观三维世界的绝对坐标系,也称客观坐标系。因为相机安放在三维空间中,我们需要世界坐标系这个基准坐标系来描述相机的位置,并且用它来描述安放在此三维环境中的其它任何物体的位置,用(xc,yc,zc)表示其坐标值。
虚拟相机坐标系(光心坐标系,第二相机坐标系),以虚拟相机的光心为坐标原点,X轴和Y轴分别平行于像素坐标系的X轴和Y轴,相机的光轴为Z轴,用(xd,yd,zd)表示其坐标值。
图像坐标系,以图像平面的中心为坐标原点,X轴和Y轴分别平行于图像平面的两条垂直边,用(x,y)表示其坐标值。
像素坐标系,以图像平面的左上角顶点为原点,X轴和Y轴分别平行于图像坐标系的X轴和Y轴,用(u,v)表示其坐标值。
下面请参考图4B,图4B是像素坐标系与图像坐标系的关系图。其中,(u0,v0)是图像坐标系原点在像素坐标系中的坐标。
请继续参考图4C,理想的透视模型是针孔成像模型,物和像会满足相似三角形的关系。但是实际上由于相机光学系统存在加工和装配的误差,透镜就并不能满足物和像成相似三角形的关系,所以相机图像平面上实际所成的像与理想成像之间会存在畸变。畸变属于成像的几何失真,是由于焦平面上不同区域对图像的放大率不同形成的画面扭曲变形的现象,这种变形的程度从画面中心至画面边缘依次递增,主要在画面边缘反映比较明显。这里,理想坐标系,即为无畸变情况下的坐标系,mr(xr,yr)表示实际投影点的像平面坐标系下的物理坐标,mi(xi,yi)表示理想投影点的像平面坐标系下的物理坐标。
这里,全景相机坐标系下的坐标(xc,yc,zc),与虚拟相机坐标系下的坐标(xd,yd,zd)之间的关系可以如图4D所示。
在上述实施例中,(u,v)是任意一个像素坐标,其在虚拟相机归一化平面中采用Pd表示,其转换过程可以参考以上描述,在此不再赘述。
之后,基于上述单应性变换矩阵,确定上述平面结构中该四边形标记的角点与上述相机模型图像中的相应像素之间的第二旋转信息。
在这里,上述执行主体可以从单应性变换矩阵中,分解出第二旋转信息。
可以理解,上述可选的实现方式可以通过方向标识来确定拍摄实体的朝向,进而可以使得后续的姿态计算结果更为准确。
304,基于所确定的各个第二旋转信息,确定上述平面结构中的点与上述目标图像中的相应像素之间的相对姿态信息。
在本实施例中,上述执行主体可以基于所确定的各个第二旋转信息,确定上述平面结构中的点与上述目标图像中的相应像素之间的相对姿态信息。
其中,上述目标图像中的相应像素为:上述目标图像中,上述平面结构中的点的影像。第二旋转信息可以通过矩阵的形式表征。
作为示例,上述执行主体可以首先确定所确定的各个第二旋转信息的均值,得到融合之后的旋转矩阵。然后基于该旋转矩阵,确定上述平面结构中的点与上述目标图像中的相应像素之间的相对姿态信息。
作为又一示例,由此,上述执行主体可以首先确定所确定的各个第二旋转信息的均值,得到融合之后的旋转矩阵。然后,计算采用如上所描述的方式获得的第一旋转矩阵以及该融合之后的旋转矩阵相乘的结果,作为上述平面结构中的点与上述目标图像中的相应像素之间的相对姿态信息。
需要说明的是,除上面所记载的内容外,本申请实施例还可以包括与图1或图2对应的实施例相同或类似的特征、效果,在此不再赘述。
从图3中可以看出,本实施例中的姿态确定方法的流程300中,基于平面结构中各个四边形标记的角点与上述相机模型图像中的相应像素之间的第二旋转信息,来确定上述平面结构中的点与上述目标图像中的相应像素之间的相对姿态信息。从而充分利用了相机模型图像中的纹理信息进行姿态估计,由此可以提高姿态估计的准确度。
作为示例,请参考图4E-图4G。图4E-图4G为本公开姿态确定方法的一个实施例的应用场景示意图。
在图4E-图4G所示的应用场景中,上述执行主体采用如下方式,确定上述平面结构中的点与上述目标图像中的相应像素之间的相对姿态信息:
第一步骤,获取图像拍摄设备在第一方向与第二方向之间的角度值小于或等于预设角度阈值的情况下拍摄的目标图像。
其中,上述目标图像中包含的拍摄对象指示的拍摄实体(图示中为移动计算设备,例如手机)具有平面结构,即显示屏。上述第一方向表征上述平面结构到上述图像拍摄设备的方向。上述第二方向表征上述平面结构的朝向。上述平面结构包含至少一个四边形标记。上述相机模型图像包含四边形标记中的至少局部四边形标记的标记对象四边形标记包含方向标识。上述平面结构为显示屏。上述显示屏呈现的图像中包含呈行列排布的四边形标记的标记对象。上述显示屏呈现的图像中的标记对象的尺寸基于上述显示屏的尺寸确定。
这里,请参考图4E,图4E示出了图像拍摄设备(例如全景相机)和移动计算设备(即拍摄实体)的刚性连接示意图。其中,移动计算设备402的显示屏朝向为第二方向d1,从移动计算设备402到全景相机(即图像拍摄设备)401的连接点方向为第一方向d2。这里,第二方向d1与第一方向d2之间的夹角a不超过70度(即上述预设角度阈值)。其中,夹角a的度数越大,通常后续拍摄得到的目标图像中包含的图像信息越少,标记被检出的难度越大。
之后,可以根据移动计算设备402的显示屏的宽高比,设计对应的四边形标记,并以图片的方式保存在移动计算设备402中。其中,上述四边形标记可以选择其中一种,如aruco、apriltag、自定义图像、自定义文本等能过够被识别和进行姿态解算的标记图形。
请继续参考图4F,以文本为例,上述应用场景中,单个标记外框为正方形,背景为黑色文本图形,在外框内部的内容下方放置白色条形标记(图示中标号403为其中一个四边形标记中的白色条形标记)用于标识方向。显示屏中呈现有8个四边形标记,这样的多标记排列方式可以在全景相机安装位置不恰当,引起拼缝问题时,保证能够检测出足够数量的标记。并且,这种多标记排列保证了足够的召回率。因为全景相机拼缝多数时候呈直线状,当任一直线切割如上排列的标记,至少有一个标记不会被切割,并在随后的过程中被检出。
接下来,在拍摄现场刚性连接完成后,全景相机拍摄目标图像前,还需要将显示屏的亮度调整到合适的值,当前较合适的亮度为显示屏最大亮度的70%。这里,亮度过大,将导致后续获得的图像曝光过度;亮度过小,将导致后续获得的图像的对比度较低。
进行上述设定后,可以在移动计算设备的显示屏上显示上述包含8个四边形标记的图像。之后,用户即可向全景相机发出拍摄指令,等待拍摄完成后,可以将显示屏所显示的图像移除,拍摄过程结束。
至此,即可获得目标图像。
第二步骤,基于上述拍摄实体在上述图像拍摄设备的第一相机坐标系下的投影方向,以及上述第一相机坐标系的Z轴方向,确定上述投影方向到上述光轴方向的第一旋转信息。
具体而言,可以给定上述拍摄实体在上述图像拍摄设备的第一相机坐标系下的投影方向d,设d在第二相机(例如针孔相机模型)坐标系下的坐标为(xd,yd,zd),第一相机坐标系的Z轴方向的单位向量ez的坐标为(0,0,1),根据罗德里格斯公式计算向量d向量ez的第一旋转信息Rcd。这里取d的坐标为(0,1,0)。
至此,即可获得第一旋转信息。
第三步骤,基于所述相机模型图像中的像素在像素坐标系下的坐标,确定所述相机模型图像中的像素在投影坐标系中的齐次坐标。
具体而言,可以首先设定目标图像的初始焦距f和分辨率的宽w、分辨率的高h。计算所有相机模型图像中像素P(up,vp)的像素RGB值。将fx的值确定为f,fy的值确定为f,cx的值确定为w/2,cy的值确定为h/2,采用如下公式,计算矩阵K:
然后,计算投影坐标系中的齐次坐标P’。这里,可以通过以下公式基于K的逆矩阵和矩阵(up,vp,1)相乘的结果,确定P’的坐标(xp,yp,zp)对应的矩阵。
第四步骤,基于上述第一旋转矩阵Rcd和P’坐标对应的矩阵相乘的结果,确定上述齐次坐标在第一相机坐标系下的第一相机坐标Pd。其中,设Pd在第一相机坐标系下的坐标为(xc,yc,zc)。
第五步骤,将上述第一相机坐标Pd归一化到单位球面上,得到球面坐标Pc,再基于上述球面坐标Pc,确定上述目标图像中的浮点数像素坐标(u’,v’)。
其中,Pc=Pd÷||Pd||
第六步骤,采用双线性插值算法,基于上述目标图像中的浮点数像素坐标(u’,v’),确定预设相机模型下的相机模型图像中的像素的像素值,得到针孔相机模型下的初始图像(即根据初始焦距f计算得到的相机模型图像)。
具体而言,可以在浮点数像素坐标(u’,v’)对应的相邻4个整数像素坐标中,使用双线性插值计算浮点数像素坐标(u’,v’)的RGB值,该值就是初始图像所要计算的坐标为P(up,vp)的像素点的像素值。
第七步骤,检测上述初始图像中的每个四边形标记的角点,得到该四边形标记的角点坐标序列。
其中,角点坐标序列中的角点坐标按照预定顺序排列。角点坐标序列中的首个角点坐标基于四边形标记包含的方向标识指示的方向确定。
具体而言,可以检测初始图像中的平行四边形,以四边形任意一个顶点为起始点,获取按顺序排列的4个坐标{Px}。之后,检测正方形图像中白色参考线的位置。将参考线所贴合的边确定为正方形的底边。根据底边位置来确定左上角顶点为第一个点,以顺时针的方式排列4个顶点,得到{Px}的一个新的排列,得到角点坐标序列{Px’}。
第八步骤,计算该四边形标记的角点坐标序列到理想坐标系下的预设角点坐标序列的单应性变换矩阵H。
具体而言,可以通过计算角点坐标序列{Px}到理想坐标系下正方形顶点序列(即上述预设角点坐标序列){Px0}的单应性变换矩阵,将四边形所围成区域像素映射到固定大小的正方形图像。其中,可以规定理想坐标系下正方形顶点序列为{[0,1],[1,1],[1,0],[0,0]}。
第九步骤,基于上述单应性变换矩阵H,确定上述平面结构中该四边形标记的角点与上述相机模型图像中的相应像素之间的第二旋转信息。其中,上述相机模型图像中的相应像素为:上述相机模型图像中,该四边形标记的角点的影像。
这里,可以从单应性变换矩阵H中分解得到平面结构中的四边形标记到虚拟针孔模型相机的旋转信息Rm,即上述第二旋转信息。
第十步骤,从上述相机模型图像中的各个角点对象到上述初始图像的中心的距离中,确定数值最大的距离r。
其中,角点对象为:上述初始图像中,四边形标记的角点的影像。
第十一步骤,基于所述数值最大的距离和所述相机焦距f,更新所述针孔相机模型的相机焦距f’。
具体而言,可以参照图4G,来计算目标焦距f’。图4G示出了目标焦距f’、初始焦距f、数值最大的距离r、分辨率的高h之间的几何关系示意图。这里,如图4G所示,三角形ABC与三角形OBD相似。角DOB、角A的角度均为a,点D在线段BD上,点O在线段AB上,线段AB的长度为f’,线段OB的长度为f,线段BD的长度为r,线段BC的长度为h/2。由此,可以采用如上所描述的方法获得一张虚拟针孔模型照片,即上述相机模型图像,并根据以上所描述的检测方法提取出角点坐标序列{Px’}。之后,可以通过以下公式,来计算目标焦距f’:
f’=(h÷2)÷r×f
第十二步骤,基于上述目标焦距f’,将上述目标图像转换为针孔相机模型下的相机模型图像。
具体而言,可以将上述初始焦距f的值替换为此处获得的目标焦距f’的值,从而采用上述获得初始图像的方法,得到针孔相机模型下的相机模型图像。也即,采用上述方法基于初始焦距所获得的是初始图像;基于目标焦距获得的是针孔相机模型下的相机模型图像。
这里,还可以再次根据以上所描述的方法计算标记到虚拟针孔模型相机的旋转信息Rm,并采用这里计算得到的Rm对之前计算得到的Rm进行更新。
第十三步骤,基于所确定的各个第二旋转信息(即更新后的各个第二旋转信息Rm),确定上述平面结构中的点与上述目标图像中的相应像素之间的相对姿态信息。其中,上述目标图像中的相应像素为:上述目标图像中,上述平面结构中的点的影像。
具体而言,可以计算所有第二旋转信息的均值,得到融合之后的旋转矩阵Rm_fuse,该旋转矩阵Rm_fuse为标记到虚拟针孔相机的相对旋转的最终值。之后,可以根据如下公式计算平面结构中的点与上述目标图像中的相应像素之间的相对姿态信息R:
R=Rcd×Rm_fuse
上述应用场景中,提供了一种新的从全景相机照片上检测控制设备屏幕特征标记的方法以及计算相对位姿的方法。此外,上述标识排列方法,可以使得在控制设备和全景相机的夹角在大范围内都能正常工作,设备屏幕上的标记能够被高概率检测。上述焦距调整方法,可以使得标记检测在全景相机与移动计算设备连接距离在较大范围内尽可能多地检测到标记,降低了现场安装要求。
进一步参考图5,作为对上述各图所示方法的实现,本公开提供了一种姿态确定装置的一个实施例,该装置实施例与图1至图3所示的方法实施例相对应,除下面所记载的特征外,该装置实施例还可以包括与图1至图3所示的方法实施例相同或相应的特征,以及产生与图1至图3所示的方法实施例相同或相应的效果。该装置具体可以应用于各种电子设备中。
如图5所示,本实施例的姿态确定装置500包括:获取单元501、转换单元502和确定单元503。其中,获取单元501,被配置成获取图像拍摄设备在第一方向与第二方向之间的角度值小于或等于预设角度阈值的情况下拍摄的目标图像;其中,上述目标图像中包含的拍摄对象指示的拍摄实体具有平面结构;上述第一方向表征上述平面结构到上述图像拍摄设备的方向,上述第二方向表征上述平面结构的朝向。转换单元502,被配置成将上述目标图像转换为预设相机模型下的相机模型图像。确定单元503,被配置成基于上述相机模型图像,确定上述平面结构中的点与上述目标图像中的相应像素之间的相对姿态信息,其中,上述目标图像中的相应像素为:上述目标图像中,上述平面结构中的点的影像。
在本实施例中,姿态确定装置500的获取单元501可以获取图像拍摄设备在第一方向与第二方向之间的角度值小于或等于预设角度阈值的情况下拍摄的目标图像;其中,上述目标图像中包含的拍摄对象指示的拍摄实体具有平面结构;上述第一方向表征上述平面结构到上述图像拍摄设备的方向,上述第二方向表征上述平面结构的朝向。
在本实施例中,上述转换单元502可以将上述目标图像转换为预设相机模型下的相机模型图像。
在本实施例中,上述确定单元503可以基于上述相机模型图像,确定上述平面结构中的点与上述目标图像中的相应像素之间的相对姿态信息。其中,上述目标图像中的相应像素为:上述目标图像中,上述平面结构中的点的影像。
在本实施例的一些可选的实现方式中,上述获取单元501包括:
获取子单元(图中未示出),被配置成获取图像拍摄设备在满足预设拍摄条件的情况下拍摄的目标图像;
其中,上述预设拍摄条件包括:第一方向与第二方向之间的角度值小于或等于预设角度阈值,并且,上述图像拍摄设备与拍摄实体之间的距离小于或等于预设距离阈值。
在本实施例的一些可选的实现方式中,上述预设相机模型为针孔相机模型;以及
上述转换单元502包括:
转换子单元(图中未示出),被配置成将上述目标图像转换为针孔相机模型下的相机模型图像。
在本实施例的一些可选的实现方式中,上述转换子单元包括:
第一确定模块(图中未示出),被配置成基于上述拍摄实体在上述图像拍摄设备的第一相机坐标系下的投影方向,以及上述第一相机坐标系的Z轴方向,确定上述投影方向到上述光轴方向的第一旋转信息;
转换模块(图中未示出),被配置成基于上述第一旋转信息,将上述目标图像转换为针孔相机模型下的相机模型图像。
在本实施例的一些可选的实现方式中,上述转换模块502包括:
第一确定子模块(图中未示出),被配置成基于所述相机模型图像中的像素在像素坐标系下的坐标,确定所述相机模型图像中的像素在投影坐标系中的齐次坐标;
第二确定子模块(图中未示出),被配置成基于所述第一旋转信息和所述相机焦距,确定所述齐次坐标在所述第一相机坐标系下的相机坐标;
第三确定子模块(图中未示出),被配置成基于上述第一相机坐标,确定预设相机模型下的相机模型图像中的像素的像素值,得到针孔相机模型下的相机模型图像。
在本实施例的一些可选的实现方式中,所述将所述目标图像转换为预设相机模型下的相机模型图像;基于所述相机模型图像,确定所述平面结构中的点与所述目标图像中的相应像素之间的相对姿态信息,包括:
S1:确定第一旋转信息;
S2:将预先确定的初始焦距作为相机焦距;
S3:基于所述第一旋转信息和所述相机焦距,将所述目标图像转换为相机模型下的相机模型图像;
S4:检测所述相机模型图像中的所述平面结构,根据检测结果更新所述相机焦距;
S5:执行S3,得到更新后的所述相机模型图像;
S6:检测所述相机模型图像中的所述平面结构,计算第二旋转信息;
S7:根据所述第一旋转信息和所述第二旋转信息,确定所述平面结构中的点与所述目标图像中的相应像素之间的姿态信息。
在本实施例的一些可选的实现方式中,上述确定第一旋转信息,具体被配置成:
将上述第一相机坐标归一化到单位球面上,得到球面坐标;
基于上述球面坐标,确定上述目标图像中的浮点数像素坐标;
采用双线性插值算法,基于上述目标图像中的浮点数像素坐标,确定预设相机模型下的相机模型图像中的像素的像素值。
在本实施例的一些可选的实现方式中,上述平面结构包含至少一个四边形标记,上述相机模型图像包含四边形标记中的至少局部四边形标记的标记对象;以及
上述转换模块包括:
第一转换子模块(图中未示出),被配置成在所述相机模型图像中检测得到各个角点对象,其中,角点对象为:所述四边形标记的角点的影像;
第四确定子模块(图中未示出),被配置成从上述初始图像中的各个角点对象到上述相机模型图像的中心的距离中,确定数值最大的距离;
计算子模块(图中未示出),被配置成基于所述数值最大的距离和所述相机焦距,更新所述针孔相机模型的相机焦距;
第二转换子模块(图中未示出),被配置成基于上述目标焦距,将上述目标图像转换为针孔相机模型下的相机模型图像。
在本实施例的一些可选的实现方式中,上述平面结构包含至少一个四边形标记,上述相机模型图像包含四边形标记中的至少局部四边形标记的标记对象;以及
上述所述检测所述相机模型图像中的所述平面结构,计算第二旋转信息,包括:
第二确定子单元(图中未示出),被配置成基于所确定的各个第二旋转信息,确定上述平面结构中的点与上述目标图像中的相应像素之间的相对姿态信息。
在本实施例的一些可选的实现方式中,四边形标记包含方向标识;以及
上述第一确定子单元包括:
检测模块(图中未示出),被配置成检测上述相机模型图像中的每个四边形标记的角点,得到该四边形标记的角点坐标序列,其中,角点坐标序列中的角点坐标按照预定顺序排列,角点坐标序列中的首个角点坐标基于四边形标记包含的方向标识指示的方向确定;
计算模块(图中未示出),被配置成计算该四边形标记的角点坐标序列到理想坐标系下的预设角点坐标序列的单应性变换矩阵;
第二确定模块(图中未示出),被配置成基于上述单应性变换矩阵,确定上述平面结构中该四边形标记的角点与上述相机模型图像中的相应像素之间的第二旋转信息。
在本实施例的一些可选的实现方式中,上述平面结构为显示屏,上述显示屏呈现的图像中包含呈行列排布的四边形标记的标记对象,上述显示屏呈现的图像中的标记对象的尺寸基于上述显示屏的分辨率确定。
在本实施例的一些可选的实现方式中,所述根据所述第一旋转信息和所述第二旋转信息,确定所述平面结构中的点与所述目标图像中的相应像素之间的姿态信息包括:
所述平面结构中的点与所述目标图像中的相应像素之间的姿态信息为所述第一旋转信息与所述第二旋转信息的乘积。
本公开的上述实施例提供的姿态确定装置500中,获取单元501可以获取图像拍摄设备在第一方向与第二方向之间的角度值小于或等于预设角度阈值的情况下拍摄的目标图像;其中,上述目标图像中包含的拍摄对象指示的拍摄实体具有平面结构;上述第一方向表征上述平面结构到上述图像拍摄设备的方向,上述第二方向表征上述平面结构的朝向,之后,转换单元502可以将上述目标图像转换为预设相机模型下的相机模型图像,最后,确定单元503可以基于上述相机模型图像,确定上述平面结构中的点与上述目标图像中的相应像素之间的相对姿态信息,其中,上述目标图像中的相应像素为:上述目标图像中,上述平面结构中的点的影像。由此,本公开实施例可以基于图像拍摄设备在第一方向与第二方向之间的角度值小于或等于预设角度阈值的情况下拍摄的目标图像,来确定平面结构中的点与上述目标图像中的相应像素之间的相对姿态信息,从而丰富了通过图像计算拍摄实体姿态的方法的使用场景和适用范围,有助于提高姿态计算的准确度。
下面,参考图6来描述根据本公开实施例的电子设备。该电子设备可以是第一设备和第二设备中的任一个或两者、或与它们独立的单机设备,该单机设备可以与第一设备和第二设备进行通信,以从它们接收所采集到的输入信号。
图6图示了根据本公开实施例的电子设备的框图。
如图6所示,电子设备6包括一个或多个处理器601和存储器602。
处理器601可以是中央处理单元(CPU)或者具有数据处理能力和/或指令执行能力的其他形式的处理单元,并且可以控制电子设备中的其他组件以执行期望的功能。
存储器602可以包括一个或多个计算机程序产品,所述计算机程序产品可以包括各种形式的计算机可读存储介质,例如易失性存储器和/或非易失性存储器。所述易失性存储器例如可以包括随机存取存储器(RAM)和/或高速缓冲存储器(cache)等。所述非易失性存储器例如可以包括只读存储器(ROM)、硬盘、闪存等。在所述计算机可读存储介质上可以存储一个或多个计算机程序指令,处理器601可以运行所述程序指令,以实现上文所述的本公开的各个实施例的姿态确定方法以及/或者其他期望的功能。在所述计算机可读存储介质中还可以存储诸如输入信号、信号分量、噪声分量等各种内容。
在一个示例中,电子设备还可以包括:输入装置603和输出装置604,这些组件通过总线系统和/或其他形式的连接机构(未示出)互连。
例如,在该电子设备是第一设备或第二设备时,该输入装置603可以是上述的麦克风或麦克风阵列,用于捕捉声源的输入信号。在该电子设备是单机设备时,该输入装置603可以是通信网络连接器,用于从第一设备和第二设备接收所采集的输入信号。
此外,该输入装置603还可以包括例如键盘、鼠标等等。该输出装置604可以向外部输出各种信息,包括确定出的距离信息、方向信息等。该输出装置604可以包括例如显示器、扬声器、打印机、以及通信网络及其所连接的远程输出设备等等。
当然,为了简化,图6中仅示出了该电子设备中与本公开有关的组件中的一些,省略了诸如总线、输入/输出接口等等的组件。除此之外,根据具体应用情况,电子设备还可以包括任何其他适当的组件。
除了上述方法和设备以外,本公开的实施例还可以是计算机程序产品,其包括计算机程序指令,所述计算机程序指令在被处理器运行时使得所述处理器执行本说明书上述“示例性方法”部分中描述的根据本公开各种实施例的姿态确定方法中的步骤。
所述计算机程序产品可以以一种或多种程序设计语言的任意组合来编写用于执行本公开实施例操作的程序代码,所述程序设计语言包括面向对象的程序设计语言,诸如Java、C++等,还包括常规的过程式程序设计语言,诸如“C”语言或类似的程序设计语言。程序代码可以完全地在用户计算设备上执行、部分地在用户设备上执行、作为一个独立的软件包执行、部分在用户计算设备上部分在远程计算设备上执行、或者完全在远程计算设备或服务器上执行。
所述计算机可读存储介质可以采用一个或多个可读介质的任意组合。可读介质可以是可读信号介质或者可读存储介质。可读存储介质例如可以包括但不限于电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。
以上结合具体实施例描述了本公开的基本原理,但是,需要指出的是,在本公开中提及的优点、优势、效果等仅是示例而非限制,不能认为这些优点、优势、效果等是本公开的各个实施例必须具备的。另外,上述公开的具体细节仅是为了示例的作用和便于理解的作用,而非限制,上述细节并不限制本公开为必须采用上述具体的细节来实现。
本说明书中各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其它实施例的不同之处,各个实施例之间相同或相似的部分相互参见即可。对于系统实施例而言,由于其与方法实施例基本对应,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
本领域普通技术人员可以理解:实现上述方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成,前述的程序可以存储于一计算机可读取存储介质中,该程序在执行时,执行包括上述方法实施例的步骤;而前述的存储介质包括:ROM、RAM、磁碟或者光盘等各种可以存储程序代码的介质。
本说明书中各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其它实施例的不同之处,各个实施例之间相同或相似的部分相互参见即可。对于系统实施例而言,由于其与方法实施例基本对应,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
可能以许多方式来实现本公开的方法和装置。例如,可通过软件、硬件、固件或者软件、硬件、固件的任何组合来实现本公开的方法和装置。用于所述方法的步骤的上述顺序仅是为了进行说明,本公开的方法的步骤不限于以上具体描述的顺序,除非以其它方式特别说明。此外,在一些实施例中,还可将本公开实施为记录在记录介质中的程序,这些程序包括用于实现根据本公开的方法的机器可读指令。因而,本公开还覆盖存储用于执行根据本公开的方法的程序的记录介质。
本公开的描述是为了示例和描述起见而给出的,而并不是无遗漏的或者将本公开限于所公开的形式。很多修改和变化对于本领域的普通技术人员而言是显然的。选择和描述实施例是为了更好说明本公开的原理和实际应用,并且使本领域的普通技术人员能够理解本公开从而设计适于特定用途的带有各种修改的各种实施例。
Claims (10)
1.一种姿态确定方法,其特征在于,所述方法包括:
获取图像拍摄设备拍摄的目标图像;其中,所述目标图像中包含的拍摄对象指示的拍摄实体具有平面结构;所述平面结构到所述图像拍摄设备的方向为第一方向,所述平面结构的朝向为第二方向,所述第一方向与所述第二方向之间的角度值小于或等于预设角度阈值;
将所述目标图像转换为预设相机模型下的相机模型图像;
基于所述相机模型图像,确定所述平面结构中的点与所述目标图像中的相应像素之间的相对姿态信息,其中,所述目标图像中的相应像素为:所述目标图像中所述平面结构中的点的影像。
2.根据权利要求1所述的方法,其特征在于,所述将所述目标图像转换为预设相机模型下的相机模型图像;基于所述相机模型图像,确定所述平面结构中的点与所述目标图像中的相应像素之间的相对姿态信息,包括:
S1:确定第一旋转信息;
S2:将预先确定的初始焦距作为相机焦距;
S3:基于所述第一旋转信息和所述相机焦距,将所述目标图像转换为相机模型下的相机模型图像;
S4:检测所述相机模型图像中的所述平面结构,根据检测结果更新所述相机焦距;
S5:执行S3,得到更新后的所述相机模型图像;
S6:检测所述相机模型图像中的所述平面结构,计算第二旋转信息;
S7:根据所述第一旋转信息和所述第二旋转信息,确定所述平面结构中的点与所述目标图像中的相应像素之间的姿态信息。
3.根据权利要求2所述的方法,其特征在于,所述确定第一旋转信息,包括:
基于所述拍摄实体在所述图像拍摄设备的第一相机坐标系下的投影方向,以及所述第一相机坐标系的Z轴方向,确定所述投影方向到光轴方向的第一旋转信息。
4.根据权利要求3所述的方法,其特征在于,所述基于所述第一旋转信息和所述相机焦距,将所述目标图像转换为相机模型下的相机模型图像,包括:
基于所述相机模型图像中的像素在像素坐标系下的坐标,确定所述相机模型图像中的像素在投影坐标系中的齐次坐标;
基于所述第一旋转信息和所述相机焦距,确定所述齐次坐标在所述第一相机坐标系下的第一相机坐标;
基于所述第一相机坐标,确定所述预设相机模型下的相机模型图像中的像素的像素值,得到所述预设相机模型下的所述相机模型图像。
5.根据权利要求4所述的方法,其特征在于,所述基于所述第一相机坐标,确定所述预设相机模型下的相机模型图像中的像素的像素值,包括:
将所述第一相机坐标归一化到单位球面上,得到球面坐标;
基于所述球面坐标,确定所述目标图像中的浮点数像素坐标;
采用双线性插值算法,基于所述目标图像中的浮点数像素坐标,确定所述预设相机模型下的相机模型图像中的像素的像素值。
6.根据权利要求2-5之一所述的方法,其特征在于,所述平面结构包含至少一个四边形标记,所述相机模型图像包含四边形标记中的至少局部四边形标记的标记对象;以及
所述检测所述相机模型图像中的所述平面结构,根据检测结果更新所述相机焦距,包括:
在所述相机模型图像中检测得到各个角点对象,其中,角点对象为:所述四边形标记的角点的影像;
从所述相机模型图像中的各个角点对象到所述相机模型图像的中心的距离中,确定数值最大的距离;
基于所述数值最大的距离和所述相机焦距,更新针孔相机模型的相机焦距。
7.根据权利要求2-5之一所述的方法,其特征在于,所述平面结构包含至少一个四边形标记,所述相机模型图像包含四边形标记中的至少局部四边形标记的标记对象;以及
所述检测所述相机模型图像中的所述平面结构,计算第二旋转信息,包括:
基于所述相机模型图像,确定所述平面结构中每个四边形标记的角点与所述相机模型图像中的相应像素之间的第二旋转信息,其中,所述相机模型图像中的相应像素为:所述相机模型图像中,该四边形标记的角点的影像;
四边形标记包含方向标识;以及
所述基于所述相机模型图像,确定所述平面结构中每个四边形标记的角点与所述相机模型图像中的相应像素之间的第二旋转信息,包括:
检测所述相机模型图像中的每个四边形标记的角点,得到该四边形标记的角点坐标序列,其中,角点坐标序列中的角点坐标按照预定顺序排列,角点坐标序列中的首个角点坐标基于四边形标记包含的方向标识指示的方向确定;
计算该四边形标记的角点坐标序列到理想坐标系下的预设角点坐标序列的单应性变换矩阵;
基于所述单应性变换矩阵,确定所述平面结构中该四边形标记的角点与所述相机模型图像中的相应像素之间的第二旋转信息。
8.根据权利要求1-5之一所述的方法,其特征在于,所述平面结构为显示屏,所述显示屏呈现的图像中包含呈行列排布的四边形标记的标记对象。
9.根据权利要求2所述的方法,其特征在于,所述根据所述第一旋转信息和所述第二旋转信息,确定所述平面结构中的点与所述目标图像中的相应像素之间的姿态信息包括:
所述平面结构中的点与所述目标图像中的相应像素之间的姿态信息为所述第一旋转信息与所述第二旋转信息的乘积。
10.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该计算机程序被处理器执行时,实现上述权利要求1-9任一所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111300669.9A CN114004890B (zh) | 2021-11-04 | 2021-11-04 | 姿态确定方法、装置、电子设备和存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111300669.9A CN114004890B (zh) | 2021-11-04 | 2021-11-04 | 姿态确定方法、装置、电子设备和存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN114004890A CN114004890A (zh) | 2022-02-01 |
CN114004890B true CN114004890B (zh) | 2023-03-24 |
Family
ID=79927649
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111300669.9A Active CN114004890B (zh) | 2021-11-04 | 2021-11-04 | 姿态确定方法、装置、电子设备和存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114004890B (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114615410B (zh) * | 2022-03-09 | 2023-05-02 | 张磊 | 一种自然灾害全景头盔及其影像的拍摄姿态确定方法 |
CN115272483B (zh) * | 2022-07-22 | 2023-07-07 | 北京城市网邻信息技术有限公司 | 一种图像生成方法、装置、电子设备及存储介质 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109829947A (zh) * | 2019-02-25 | 2019-05-31 | 北京旷视科技有限公司 | 位姿确定方法、托盘装载方法、装置、介质及电子设备 |
CN110610465A (zh) * | 2019-08-26 | 2019-12-24 | Oppo广东移动通信有限公司 | 图像校正方法和装置、电子设备、计算机可读存储介质 |
CN112528831A (zh) * | 2020-12-07 | 2021-03-19 | 深圳市优必选科技股份有限公司 | 多目标姿态估计方法、多目标姿态估计装置及终端设备 |
CN113329179A (zh) * | 2021-05-31 | 2021-08-31 | 维沃移动通信有限公司 | 拍摄对位方法、装置、设备及存储介质 |
-
2021
- 2021-11-04 CN CN202111300669.9A patent/CN114004890B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109829947A (zh) * | 2019-02-25 | 2019-05-31 | 北京旷视科技有限公司 | 位姿确定方法、托盘装载方法、装置、介质及电子设备 |
CN110610465A (zh) * | 2019-08-26 | 2019-12-24 | Oppo广东移动通信有限公司 | 图像校正方法和装置、电子设备、计算机可读存储介质 |
CN112528831A (zh) * | 2020-12-07 | 2021-03-19 | 深圳市优必选科技股份有限公司 | 多目标姿态估计方法、多目标姿态估计装置及终端设备 |
CN113329179A (zh) * | 2021-05-31 | 2021-08-31 | 维沃移动通信有限公司 | 拍摄对位方法、装置、设备及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN114004890A (zh) | 2022-02-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11748906B2 (en) | Gaze point calculation method, apparatus and device | |
JP6902122B2 (ja) | ダブル視野角画像較正および画像処理方法、装置、記憶媒体ならびに電子機器 | |
JP5830546B2 (ja) | 対象物のモデル変換に基づくモデルパラメータの決定 | |
JPWO2018235163A1 (ja) | キャリブレーション装置、キャリブレーション用チャート、チャートパターン生成装置、およびキャリブレーション方法 | |
CN103839227B (zh) | 鱼眼图像校正方法和装置 | |
CN109479082B (zh) | 图象处理方法及装置 | |
EP1453001A1 (en) | IMAGE PROCESSING APPARATUS, IMAGE PROCESSING METHOD, STORAGE MEDIUM, AND COMPUTER PROGRAM | |
CN112444242A (zh) | 一种位姿优化方法及装置 | |
CN113689578B (zh) | 一种人体数据集生成方法及装置 | |
US11380016B2 (en) | Fisheye camera calibration system, method and electronic device | |
CN110111388A (zh) | 三维物体位姿参数估计方法及视觉设备 | |
CN114143528B (zh) | 多视频流融合方法、电子设备、存储介质 | |
CN113643414B (zh) | 一种三维图像生成方法、装置、电子设备及存储介质 | |
CN114004890B (zh) | 姿态确定方法、装置、电子设备和存储介质 | |
CN112819892B (zh) | 图像处理方法和装置 | |
CN114640833B (zh) | 投影画面调整方法、装置、电子设备和存储介质 | |
CN113029128A (zh) | 视觉导航方法及相关装置、移动终端、存储介质 | |
CN114549289A (zh) | 图像处理方法、装置、电子设备和计算机存储介质 | |
CN111383264A (zh) | 一种定位方法、装置、终端及计算机存储介质 | |
KR101868740B1 (ko) | 파노라마 이미지 생성 방법 및 장치 | |
US20220405968A1 (en) | Method, apparatus and system for image processing | |
CN113129346B (zh) | 深度信息获取方法和装置、电子设备和存储介质 | |
CN113344789B (zh) | 图像拼接方法及装置、电子设备、计算机可读存储介质 | |
CN114511447A (zh) | 图像处理方法、装置、设备及计算机存储介质 | |
CN113132708A (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 | ||
TA01 | Transfer of patent application right | ||
TA01 | Transfer of patent application right |
Effective date of registration: 20220325 Address after: 100085 8th floor, building 1, Hongyuan Shouzhu building, Shangdi 6th Street, Haidian District, Beijing Applicant after: As you can see (Beijing) Technology Co.,Ltd. Address before: 101300 room 24, 62 Farm Road, Erjie village, Yangzhen Town, Shunyi District, Beijing Applicant before: Beijing fangjianghu Technology Co.,Ltd. |
|
GR01 | Patent grant | ||
GR01 | Patent grant |