相机的焦距的获取方法及装置、设备
文献发布时间:2023-06-19 11:35:49
技术领域
本申请涉及电子信息领域,尤其涉及相机的焦距的获取方法及装置、设备。
背景技术
在运行增强现实(Augmented Reality,AR)相关的应用时,相机的内参(包括焦距等)是实现AR不可获缺的参数。而现有技术中,通常预先将相机的内参进行标定,并记录在AR相关的应用的文件中,以便于在运行AR相关的应用时调取。
这种预先获取相机的内参的方式称为离线标定方式,现有离线标定方式的工作量较大,并且,虽然工作量大,但也难以覆盖所有的相机类型而可能导致AR无法被实现。
发明内容
申请人在研究的过程中发现,导致现有的相机的内参获取方法工作量大且难以覆盖所有的相机类型的根本原因在于:离线方式。如果能够将离线获取改为在线获取,即在实现AR的过程中,已获知用于AR的影像数据的采集相机的某些参数的情况下,就可以仅针对该相机进行内参的标定。所以,如何对相机的内参进行在线标定,成为目前亟待解决的问题。
本申请提供了一种相机的焦距的获取方法及装置,目的在于解决如何实现相机的焦距的在线标定的问题。
为了实现上述目的,本申请提供了以下技术方案:
一种相机的焦距的获取方法,包括:
获取通过相机采集的图像;
依据预设的候选焦距以及所述图像的分辨率,获取所述候选焦距下的参数,所述参数包括内点数量以及重投影误差的至少一项;
依据所述参数,从所述候选焦距中选择所述相机的焦距,其中,所述候选焦距作为所述焦距的可能性与所述内点数量正相关,且与所述重投影误差反相关。
可选的,所述依据预设的候选焦距以及所述图像的分辨率,获取所述候选焦距下的参数,包括:
分别依据各个所述候选焦距以及所述图像的分辨率,构建内参矩阵,其中,依据目标候选焦距构建的所述内参矩阵中的焦距为所述目标候选焦距,所述依据目标候选焦距构建的所述内参矩阵中的坐标轴光心偏移参数由所述图像的分辨率确定;所述目标候选焦距为任意一个所述候选焦距;
使用所述依据目标候选焦距构建的所述内参矩阵,确定所述目标候选焦距下的所述参数。
可选的,所述使用所述依据目标候选焦距构建的所述内参矩阵,确定所述目标候选焦距下的所述参数,包括:
依据所述图像中的像素点的二维坐标、所述二维坐标对应的三维坐标、以及所述依据目标候选焦距构建的内参矩阵,获取所述目标候选焦距下的内点列表;
通过统计所述内点列表中的内点的数量,确定所述目标候选焦距下的所述内点数量。
可选的,还包括:
依据所述内参矩阵、所述二维坐标、所述三维坐标以及所述内点数量,获取所述目标候选焦距下的重投影误差。
可选的,所述依据所述内参矩阵、所述二维坐标、所述三维坐标以及所述内点的数量,获取所述目标候选焦距下的重投影误差,包括:
在所述目标候选焦距为第一有效候选焦距的情况下,依据所述内参矩阵、所述二维坐标、所述三维坐标以及所述内点数量,获取所述目标候选焦距下的重投影误差,所述第一有效候选焦距为所述内点数量不小于第一预设阈值的所述候选焦距;
所述依据所述参数,从所述候选焦距中选择所述相机的焦距,包括:
依据第二有效候选焦距下的所述参数,从所述第二有效候选焦距中选择所述相机的焦距,所述第二有效候选焦距为所述重投影误差不小于第二预设阈值的所述候选焦距。
可选的,所述三维坐标的获取过程包括:
将所述图像与预先构建的三维地图进行匹配,确定所述图像中的像素点的三维坐标。
可选的,所述参数包括:
内点数量以及重投影误差;
所述依据所述参数,从所述候选焦距中选择所述相机的焦距,包括:
获取各个所述候选焦距下的所述内点数量与所述重投影误差的比值;
将所述比值满足预设条件的所述候选焦距作为所述相机的焦距。
一种相机的焦距的获取装置,包括:
图像获取模块,用于获取通过相机采集的图像;
参数获取模块,用于依据预设的候选焦距以及所述图像的分辨率,获取所述候选焦距下的参数,所述参数包括内点数量以及重投影误差的至少一项;
选择模块,用于依据所述参数,从所述候选焦距中选择所述相机的焦距,其中,所述候选焦距作为所述焦距的可能性与所述内点数量正相关,且与所述重投影误差反相关。
可选的,所述参数获取模块用于依据预设的候选焦距以及所述图像的分辨率,获取所述候选焦距下的参数,包括:
所述参数获取模块具体用于,分别依据各个所述候选焦距以及所述图像的分辨率,构建内参矩阵,其中,依据目标候选焦距构建的所述内参矩阵中的焦距为所述目标候选焦距,所述依据目标候选焦距构建的所述内参矩阵中的坐标轴光心偏移参数由所述图像的分辨率确定;所述目标候选焦距为任意一个所述候选焦距;使用所述依据目标候选焦距构建的所述内参矩阵,确定所述目标候选焦距下的所述参数。
可选的,所述参数获取模块用于使用所述依据目标候选焦距构建的所述内参矩阵,确定所述目标候选焦距下的所述参数,包括:
所述参数获取模块具体用于,依据所述图像中的像素点的二维坐标、所述二维坐标对应的三维坐标、以及所述依据目标候选焦距构建的内参矩阵,获取所述目标候选焦距下的内点列表;通过统计所述内点列表中的内点的数量,确定所述目标候选焦距下的所述内点数量。
可选的,所述参数获取模块还用于:
依据所述内参矩阵、所述二维坐标、所述三维坐标以及所述内点数量,获取所述目标候选焦距下的重投影误差。
可选的,所述参数获取模块用于依据所述内参矩阵、所述二维坐标、所述三维坐标以及所述内点数量,获取所述目标候选焦距下的重投影误差,包括:
所述参数获取模块具体用于,在所述目标候选焦距为第一有效候选焦距的情况下,依据所述内参矩阵、所述二维坐标、所述三维坐标以及所述内点数量,获取所述目标候选焦距下的重投影误差,所述第一有效候选焦距为所述内点数量不小于第一预设阈值的所述候选焦距;
所述参数获取模块用于依据所述参数,从所述候选焦距中选择所述相机的焦距,包括:
所述参数获取模块具体用于,依据第二有效候选焦距下的所述参数,从所述第二有效候选焦距中选择所述相机的焦距,所述第二有效候选焦距为所述重投影误差不小于第二预设阈值的所述候选焦距。
可选的,还包括:
确定模块,用于将所述图像与预先构建的三维地图进行匹配,确定所述图像中的像素点的三维坐标。
可选的,所述参数包括:
内点数量以及重投影误差;
所述选择模块用于依据所述参数,从所述候选焦距中选择所述相机的焦距,包括:
所述选择模块具体用于,获取各个所述候选焦距下的所述内点数量与所述重投影误差的比值;将所述比值满足预设条件的所述候选焦距作为所述相机的焦距。
一种电子设备,包括:
处理器和存储器;
所述存储器用于存储程序,所述处理器用于运行所述程序,以实现上述的相机的焦距的获取方法。
一种计算机可读存储介质,其上存储有程序,在计算机设备读取并运行所述程序时,实现上述的相机的焦距的获取方法。
本申请所述的相机的焦距的获取方法及装置、设备,获取通过相机采集的图像,依据预设的候选焦距以及图像的分辨率,获取候选焦距下的参数,再依据参数,以候选焦距作为焦距的可能性与内点数量正相关,且与重投影误差反相关这一原则,从候选焦距中选择相机的焦距。即以相机采集的图像为依据,获取相机的焦距,因此,可以在实现AR的过程中相机采集图像后,基于图像以及预设的候选焦距进行焦距的标定,从而实现相机焦距的在线标定。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本申请实施例公开的一种相机的焦距的获取方法的流程图;
图2为本申请实施例公开的又一种相机的焦距的获取方法的流程图;
图3为本申请实施例公开的一种相机的焦距的获取装置的结构示意图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
申请人在研究的过程中发现:离线标定这种方式下,因为无法预知用于AR的影像数据的采集相机具体是哪一类型,所以,需要尽可能获取更多的相机的内参,因此,导致工作量大,并且,但就算工作大也难以覆盖所有的相机类型而可能导致AR无法被实现。
因此,解决上述技术问题的根本点在于:将离线方式改为在线方式,因为在实现AR过程中,需要使用相机,在已经能够获取到相机采集的作为实现AR的源数据的影像的情况下,仅对该相机进行标定即可,所以标定的工作量可以大大降低,更为重要的是,在线标定具有很强的针对性,即待标定的相机是确定的,所以不存在离线标定中因难以覆盖所有的相机类型而导致AR无法被实现的问题。
在以下实施例中,申请人创新性地提供了相机的焦距(重要的内参)的在线标定方式。
图1为本申请实施例公开的一种相机的焦距的获取方法,包括以下步骤:
S11、获取通过相机采集的图像。
本实施例中,通过相机采集的图像为用于实现AR的图像。
具体实现场景举例为:
在终端上的AR应用被启动后,AR应用触发终端的相机启动,所以,相机能够采集到图像。在此情况下,无论相机是否被触发拍摄,均能够采集到图像。
通常,终端上的相机采集的为二维彩色图像。
S12、依据预设的候选焦距以及图像的分辨率,获取候选焦距下的参数。
其中,候选焦距为预先设置的多个焦距,用于从中筛选出采集图像的相机的焦距。配置候选焦距的一种方式为,选择现有的相机的焦距作为候选焦距,可以理解的是,候选焦距覆盖的范围越大,则最终确定的相机的焦距的准确性越高。实际中,可以依据准确性和计算成本设置候选焦距。
需要说明的是,因为存储的计算量大大小于标定的计算量相比,所以,预先存储候选焦距与预先标定并存储焦距相比,工作量还是大大降低的。
参数包括内点数量以及重投影误差的至少一项。也就是说,参数包括以下三种情况:1、内点数量。2、重投影误差。3、内点数量和重投影误差。内点数量和重投影误差的定义可以参见现有技术,这里不再赘述。
可以理解的是,1和2与3相比,实现更快更简单,且占用资源更少。而3因为结合了两方面的因素,所以确定的结果的准确性更高。
S12的具体实现方式将在以下实施例中进行详细说明。
S13、依据参数,从候选焦距中选择相机的焦距。
其中,候选焦距作为焦距的可能性与内点数量正相关,且与重投影误差反相关。
具体的,在参数仅为内点数量的情况下,候选焦距下的内点数量越多则被选作相机的焦距的可能性越大。在参数仅为重投影误差的情况下,候选焦距下的重投影误差越小,则被选作相机的焦距的可能性越大。在参数为内点数量和重投影误差的情况下,候选焦距下的内点数量越多,且重投影误差越小,则被选作相机的焦距的可能性越大。
使用图1所示的流程实现AR的场景示例为:在终端上的AR应用被启动后,AR应用触发终端的相机启动,相机采集到图像后,AR应用执行上述流程,确定相机的焦距。再依据相机的焦距,实现AR。
使用现有的离线标定的方式实现AR的场景示例为:标定各类型的相机的焦距。在终端上的AR应用被启动后,AR应用触发终端的相机启动,相机采集到图像后,AR应用调用终端的相机的焦距,实现AR。
可见,本实施例所述的方法,在获取实现AR所使用的图像后,再确定采集图像的相机的焦距,所以无需再预先标定大量相机的焦距,因此内参标定的工作量可以大大降低,并且,能够避免缺失相机的焦距而导致的无法实现AR的问题。
需要说明的是,现有的离线标定的方式基于棋盘格确定焦距,而从上述步骤可以看出,本实施例中的技术步骤并非从离线模型的简单移植,而是基于在线场景进行的创新。
可以理解的是,用于实现AR的图像还可以从相册选择,在此情况下,有可能选择的图像并非终端上的相机采集,而本实施例中,使用的是图像的分辨率且确定的是采集图像的相机的焦距,所以在这种情况下也可以适用。
下面将对上述实施例所述的方法进行更为详细的说明。
图2为本申请实施例公开的又一种相机的焦距的获取方法,包括以下步骤:
S21、获取通过相机采集的图像。
S22、将图像与预先构建的三维地图进行匹配,确定图像中的像素点的三维坐标。
具体的,可以先识别出图像的内容,再调用预先构建的三维地图中,与图像中的内容相似的三维地图,与图像进行匹配,从而得到图像中的像素点的三维坐标。图像与三维地图的匹配方式包括但不限于图像检索、特征匹配等。
可选的,可以建立图像中的像素点的二维坐标与三维坐标的对应关系,如表1所示,以便于后续使用。
表1
S22与场景结合的一种示例为:在终端上的AR应用被启动后,AR应用触发终端的相机启动,相机采集到当前环境的图像。使用当前环境的图像与已构建的三维地图进行匹配,如果能够确定存在与当前环境相似的三维地图,则执行S22,如果否,则说明当前环境可能不能实现AR,则不执行S22,并发出提示信息,提示无法实现AR。
S23、获取预先设置的候选焦距。
本实施例中,将候选焦距的范围记为(f_min,f_max),并且预先设置的步长为focal_step,因此基于此步长得到候选焦距的列表为[f_min,f_min+1*focal_step、f_min+2*focal_step、…、f_max]。
以上可以看作预处理的过程,下面将依次对每个候选焦距进行处理,得到各个候选焦距下的参数,并进一步依据参数从候选焦距中筛选出相机的焦距。
设置计数参数i=1。
S24、依据候选焦距i以及图像的分辨率,构建内参矩阵。
候选焦距i为上述焦距列表中的一个焦距,如i=1的情况下,为第一个候选焦距f_min。
内参矩阵中的元素包括焦距、以及相机的x轴和y轴的光心偏移参数,本实施例中,将候选焦距i作为内参矩阵中的焦距。
具体的,图像的分辨率记为M*N,假设相机的光心无偏移,则可以确定相机的x轴的光心偏移参数为cx=M/2,y轴的光心偏移参数为cy=N/2。
因此,候选焦距i下的内参矩阵(即为内参矩阵i)为:
S25、使用内参矩阵i,确定候选焦距i下的内点数量(记为内点数量i)。
具体的,因为现有技术中已存在多种获得相机的内点列表的方式,所以可以使用能够得到内点列表的现有技术获得内点列表,再通过统计内点列表中的内点的数量,确定内点数量。
本实施例中,以ransacPnP算法为例,获得内点列表:
ransacPn算法用于计算拍摄当前图像时的相机(c)和世界坐标系(w)间的位姿关系T
T
其中,2D_points为图像中的像素点的二维坐标,3D_points为图像中的像素点的三维坐标,dist_coeffs为相机的畸变参数,因为对于实现AR的影响较小,所以这里可以取值为0。error_th为重投影误差的阈值,可以预先设置,设置规则可以参见现有技术。
在获取到内点列表inlines后,统计内点列表inlines中的内点的数量,得到内点数量。
可以理解的是,如果参数中仅包括内点数量,则至此完成候选焦距i下的参数的获取,本实施例中,以参数包括内点数量和重投影误差为例进行说明,则还需进一步获取重投影误差。
S26、判断候选焦距i是否为第一有效候选焦距,如果是,执行S27,否则令i=i+1,并返回执行S24。
其中,第一有效候选焦距为内点数量不小于第一预设阈值的候选焦距。
S27、依据内参矩阵、二维坐标、三维坐标以及内点数量,获取候选焦距i下的重投影误差值。
本实施例中,重投影误差的计算方式示例为:
其中,
S28、判断候选焦距i是否为第二有效候选焦距,如果是,执行S29,否则令i=i+1,并返回执行S24。
其中,第二有效候选焦距为重投影误差不小于第二预设阈值的候选焦距。
S29、获取候选焦距i下的内点数量与重投影误差的比值。
S210、判断i是否大于候选焦距的数量,如果是,执行S211,如果否,令i=i+1,并返回执行S24。
S211、将比值满足预设条件的候选焦距作为相机的焦距。
预设条件可以预先按照需求设置,一种示例为最大,即,将比值最大的候选焦距作为相机的焦距。
图2所示的流程具有以下有益效果:
1、提供了一种在线标定相机的焦距的方法,与离线标定方式相比,工作量大大降低并且避免了因无法获取焦距而导致的AR无法实现的问题。
2、依据内点数量第一次筛选候选焦距,依据重投影误差第二次筛选候选焦距,能够降低计算量,从而节省资源。
3、创新性地提出使用内点数量和重投影误差评估焦距的方式,实验证明,具有较高的准确性。
4、充分利用现有技术中获取内点数量和重投影误差的方式,并且获取重投影误差利用了内点数量,因此,易于实现且能够与现有的软硬件兼容。
可以理解的是,上述实施例中以依次确定各个候选焦距下的参数的流程为例进行说明,针对任一个候选焦距(称为目标候选焦距),可以概括为:依据目标候选焦距构建的内参矩阵中的焦距为目标候选焦距,依据目标候选焦距构建的内参矩阵中的坐标轴光心偏移参数由图像的分辨率确定。使用依据目标候选焦距构建的内参矩阵,确定目标候选焦距下的参数。
进一步的,使用依据目标候选焦距构建的内参矩阵,确定目标候选焦距下的参数的具体实现方式为:
依据图像中的像素点的二维坐标、二维坐标对应的三维坐标、以及依据目标候选焦距构建的内参矩阵,获取目标候选焦距下的内点列表;通过统计内点列表中的内点的数量,确定目标候选焦距下的内点数量。依据内参矩阵、二维坐标、三维坐标以及内点数量,获取目标候选焦距下的重投影误差。
进一步的,依据内参矩阵、二维坐标、三维坐标以及内点的数量,获取目标候选焦距下的重投影误差的具体实现方式为:
在目标候选焦距为第一有效候选焦距的情况下,依据内参矩阵、二维坐标、三维坐标以及内点数量,获取目标候选焦距下的重投影误差,第一有效候选焦距为内点数量不小于第一预设阈值的候选焦距。
依据参数,从候选焦距中选择相机的焦距的具体实现方式为:
依据第二有效候选焦距下的参数,从第二有效候选焦距中选择相机的焦距,第二有效候选焦距为重投影误差不小于第二预设阈值的候选焦距。
图3为本申请实施例公开的一种相机的焦距的获取装置,包括:图像获取模块、参数获取模块以及选择模块。
其中,图像获取模块用于获取通过相机采集的图像。参数获取模块用于依据预设的候选焦距以及所述图像的分辨率,获取所述候选焦距下的参数,所述参数包括内点数量以及重投影误差的至少一项。选择模块用于依据所述参数,从所述候选焦距中选择所述相机的焦距,其中,所述候选焦距作为所述焦距的可能性与所述内点数量正相关,且与所述重投影误差反相关。
可选的,参数获取模块用于依据预设的候选焦距以及所述图像的分辨率,获取所述候选焦距下的参数的具体实现方式包括:
参数获取模块具体用于,分别依据各个所述候选焦距以及所述图像的分辨率,构建内参矩阵,其中,依据目标候选焦距构建的所述内参矩阵中的焦距为所述目标候选焦距,所述依据目标候选焦距构建的所述内参矩阵中的坐标轴光心偏移参数由所述图像的分辨率确定;所述目标候选焦距为任意一个所述候选焦距;使用所述依据目标候选焦距构建的所述内参矩阵,确定所述目标候选焦距下的所述参数。
所述参数获取模块用于依据预设的候选焦距以及所述图像的分辨率,获取所述候选焦距下的参数的具体实现方式为:
所述参数获取模块具体用于,分别依据各个所述候选焦距以及所述图像的分辨率,构建内参矩阵,其中,依据目标候选焦距构建的所述内参矩阵中的焦距为所述目标候选焦距,所述依据目标候选焦距构建的所述内参矩阵中的坐标轴光心偏移参数由所述图像的分辨率确定;所述目标候选焦距为任意一个所述候选焦距;使用所述依据目标候选焦距构建的所述内参矩阵,确定所述目标候选焦距下的所述参数。
所述参数获取模块用于使用所述依据目标候选焦距构建的所述内参矩阵,确定所述目标候选焦距下的所述参数的具体实现方式为:
所述参数获取模块具体用于,依据所述图像中的像素点的二维坐标、所述二维坐标对应的三维坐标、以及所述依据目标候选焦距构建的内参矩阵,获取所述目标候选焦距下的内点列表;通过统计所述内点列表中的内点的数量,确定所述目标候选焦距下的所述内点数量。
所述参数获取模块还用于:依据所述内参矩阵、所述二维坐标、所述三维坐标以及所述内点数量,获取所述目标候选焦距下的重投影误差。
所述参数获取模块用于依据所述内参矩阵、所述二维坐标、所述三维坐标以及所述内点数量,获取所述目标候选焦距下的重投影误差的具体实现方式为:
所述参数获取模块具体用于,在所述目标候选焦距为第一有效候选焦距的情况下,依据所述内参矩阵、所述二维坐标、所述三维坐标以及所述内点数量,获取所述目标候选焦距下的重投影误差,所述第一有效候选焦距为所述内点数量不小于第一预设阈值的所述候选焦距;
所述参数获取模块用于依据所述参数,从所述候选焦距中选择所述相机的焦距的具体实现方式为:
所述参数获取模块具体用于,依据第二有效候选焦距下的所述参数,从所述第二有效候选焦距中选择所述相机的焦距,所述第二有效候选焦距为所述重投影误差不小于第二预设阈值的所述候选焦距。
可选的,所述装置还可以包括:确定模块,用于将所述图像与预先构建的三维地图进行匹配,确定所述图像中的像素点的三维坐标。
可选的,在参数包括内点数量以及重投影误差的情况下,所述选择模块用于依据所述参数,从所述候选焦距中选择所述相机的焦距的具体实现方式为:
所述选择模块具体用于,获取任意一个所述候选焦距下的所述内点数量与所述重投影误差的比值;将所述比值满足预设条件的所述候选焦距作为所述相机的焦距。
本实施例所述的装置,能够实现在线标定相机的焦距的功能,从而降低了标定的工作量并且能够保证AR的实现。
本申请实施例还公开了一种电子设备,包括处理器和存储器。所述存储器用于存储程序,所述处理器用于运行所述程序,以实现上述实施例所述的相机的焦距的获取方法。
本申请实施例还公开了一种计算机可读存储介质,其上存储有程序,在计算机设备读取并运行所述程序时,实现上述实施例所述的相机的焦距的获取方法。
本申请实施例方法所述的功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算设备可读取存储介质中。基于这样的理解,本申请实施例对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该软件产品存储在一个存储介质中,包括若干指令用以使得一台计算设备(可以是个人计算机,服务器,移动计算设备或者网络设备等)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其它实施例的不同之处,各个实施例之间相同或相似部分互相参见即可。
对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本申请。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本申请的精神或范围的情况下,在其它实施例中实现。因此,本申请将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。
- 相机的焦距的获取方法及装置、设备
- 一种获取含一阶径向畸变的变焦相机焦距的方法