一种全景图像校正方法及系统与流程

文档序号:15935658发布日期:2018-11-14 02:20阅读:505来源:国知局

本发明涉及全景图像技术领域,特别是涉及一种全景图像校正方法及系统。

背景技术

全景相机是指能够一次性拍摄360°全景的相机,以全新方式让用户拥有使用传统相机无法捕捉到的场景,除拍照外,全景相机还可以应用于动态影像的拍摄,也被称为全景摄像机。现有相机镜头的视角范围小于360°,因此,全景相机至少配备两个相机镜头才能拍摄全景图像。与传统相机/智能手机的旋转拍摄全景图像的方式不同,全景相机能够在水平和垂直方向同时拍摄图像,拍摄得到的多幅图像经过全景拼接之后,便可生成360°全景图像。

目前市面上主流的全景相机搭载有两个背靠背的鱼眼光学镜头,这两个鱼眼镜头在同一时刻分别拍摄视场角足够大的鱼眼图像,并将拍摄得到的两幅鱼眼图像进行全景拼接处理,最终得到拍摄时刻的全景图像。但是,由于两个鱼眼镜头在实际搭载过程中常常会出现镜头光轴不同轴的微小偏差,因此,两幅鱼眼图像在拼接部分易出现明显的错位现象,导致用户的全景体验较差。



技术实现要素:

本发明实施例中提供了一种全景图像校正方法及系统,以解决现有全景相机拍摄的两幅鱼眼图像在拼接部分出现错位现象的问题。

为了解决上述技术问题,本发明实施例公开了如下技术方案:

一种全景图像校正方法,应用于携带有背向设置的两个鱼眼镜头的全景相机拍摄的鱼眼图像,所述方法包括:

控制全景相机上的两个鱼眼镜头同时拍摄包含特征图片的鱼眼图像,所述特征图片属于预设世界坐标系,且展示有多个特征点;

根据所述特征图片上的特征点获取两个鱼眼镜头的内参、畸变参数以及外参;

获取每幅鱼眼图像中所有像素点的图像坐标值;

根据鱼眼镜头成像模型、每幅鱼眼图像对应鱼眼镜头的内参和畸变参数,以及两幅鱼眼图像中每个像素点的图像坐标值,分别计算两幅鱼眼图像中每个像素点对应的相机坐标值;

利用对应鱼眼镜头的外参,分别将两幅鱼眼图像中每个像素点对应的相机坐标值,转换并更新为预设世界坐标系下的世界坐标值;

根据两幅鱼眼图像中每个像素点对应的更新后的相机坐标值,分别获得两个鱼眼镜头拍摄的鱼眼图像的校正数据;

利用所述校正数据,重新生成全景相机在任意时刻拍摄的两幅鱼眼图像中每个像素点的图像坐标值,并将重新生成的两幅鱼眼图像拼接成一幅全景图像。

可选地,所述根据所述特征图片上的特征点获取两个鱼眼镜头的内参、畸变参数以及外参,包括:

获取特征图片上每个特征点在预设世界坐标系下的世界坐标值;

分别获取两幅鱼眼图像中每个特征点的图像坐标值;

根据两幅鱼眼图像中每个特征点的图像坐标值和对应的世界坐标值,分别计算两个鱼眼镜头的内参、外参以及畸变参数。

可选地,所述控制全景相机上的两个鱼眼镜头同时拍摄包含特征图片的鱼眼图像,包括:

将全景相机设置在预设世界坐标系的原点位置;

控制全景相机上的一个鱼眼镜头朝预设世界坐标系选定坐标轴的正方向拍摄特征图片,控制全景相机上另一个鱼眼镜头朝预设世界坐标系选定坐标轴的负方向拍摄特征图片。

可选地,所述利用对应鱼眼镜头的外参,分别将两幅鱼眼图像中每个像素点对应的相机坐标值,转换并更新为预设世界坐标系下的世界坐标值,包括:

利用两个鱼眼镜头的外参,计算两幅鱼眼图像中每个像素点对应的相机坐标值转换到预设世界坐标系时的转换坐标值,所述转换坐标值中选定坐标轴上的值为正数;

将朝预设世界坐标系选定坐标轴正方向拍摄的鱼眼镜头得到的鱼眼图像中,每个像素点对应的相机坐标值更新为对应的转换坐标值;

将朝预设世界坐标系选定坐标轴负方向拍摄的鱼眼镜头得到的鱼眼图像中,每个像素点对应的相机坐标值中选定坐标轴上的值,更新为对应的转换坐标值中选定坐标轴上值的相反数,并且,将每个像素点对应的相机坐标值中非选定坐标轴上的值,更新为对应的转换坐标值中相匹配的坐标轴上的值。

可选地,所述根据两幅鱼眼图像中每个像素点对应的更新后的相机坐标值,分别获得两个鱼眼镜头拍摄的鱼眼图像的校正数据,包括:

根据两个鱼眼镜头的内参和畸变参数,将两幅鱼眼图像中每个像素点对应的更新后的相机坐标值,投影至像素点所在鱼眼图像的图像坐标系中,重新获取每个像素点的图像坐标值;

分别建立两幅鱼眼图像中每个像素点原始的图像坐标值和重新获取的图像坐标值之间的映射表格,将所述映射表格作为对应鱼眼镜头所拍摄鱼眼图像的校正数据。

可选地,在执行所述根据所述特征图片上的特征点获取两个鱼眼镜头的内参、畸变参数以及外参的步骤之后,还包括:

利用两个鱼眼镜头的内参、畸变参数和外参,以及,特征点在预设世界坐标系下的世界坐标值,计算两幅鱼眼图像中每个特征点的图像坐标值;

判断鱼眼图像中每个特征点原始的图像坐标值与被计算出的图像坐标值之差是否属于预设范围,

如果是,利用两个鱼眼镜头的内参、畸变参数和外参执行后续步骤;

如果否,重新执行所述根据所述特征图片上的特征点获取两个鱼眼镜头的内参、畸变参数以及外参的步骤。

一种全景图像校正系统,应用于携带有背向设置的两个鱼眼镜头的全景相机拍摄的鱼眼图像,包括:

拍摄控制单元,用于控制全景相机上的两个鱼眼镜头同时拍摄包含特征图片的鱼眼图像,所述特征图片属于预设世界坐标系,且展示有多个特征点;

镜头参数获取单元,用于根据所述特征图片上的特征点获取两个鱼眼镜头的内参、畸变参数以及外参;

图像坐标值获取单元,用于获取每幅鱼眼图像中所有像素点的图像坐标值;

相机坐标值获取单元,用于根据鱼眼镜头成像模型、每幅鱼眼图像对应的鱼眼镜头的内参和畸变参数,以及两幅鱼眼图像中每个像素点的图像坐标值,分别计算两幅鱼眼图像中每个像素点对应的相机坐标值;

相机坐标值转换单元,用于利用对应鱼眼镜头的外参,分别将两幅鱼眼图像中每个像素点对应的相机坐标值,转换并更新为预设世界坐标系下的世界坐标值;

校正数据获取单元,用于根据两幅鱼眼图像中每个像素点对应的更新后的相机坐标值,分别获得两个鱼眼镜头拍摄的鱼眼图像的校正数据;

全景图像拼接单元,用于利用所述校正数据,重新生成全景相机在任意时刻拍摄的两幅鱼眼图像中每个像素点的图像坐标值,并将重新生成的两幅鱼眼图像拼接成一幅全景图像。

可选地,所述镜头参数获取单元,包括:

世界坐标值获取单元,用于获取特征图片上每个特征点在预设世界坐标系下的世界坐标值;

特征点图像坐标值获取单元,用于分别获取两幅鱼眼图像中每个特征点的图像坐标值;

镜头参数计算单元,用于根据两幅鱼眼图像中每个特征点的图像坐标值和对应的世界坐标值,分别计算两个鱼眼镜头的内参、外参以及畸变参数。

可选地,拍摄控制单元,包括:

相机设置单元,用于将全景相机设置在预设世界坐标系的原点位置;

控制单元,用于控制全景相机上的一个鱼眼镜头朝预设世界坐标系选定坐标轴的正方向拍摄特征图片,控制全景相机上另一个鱼眼镜头朝预设世界坐标系选定坐标轴的负方向拍摄特征图片。

可选地,所述相机坐标值转换单元,包括:

转换坐标值获取单元,用于利用两个鱼眼镜头的外参,计算两幅鱼眼图像中每个像素点对应的相机坐标值转换到预设世界坐标系时的转换坐标值,所述转换坐标值中选定坐标轴上的值为正数;

相机坐标值更新单元,用于将朝预设世界坐标系选定坐标轴正方向拍摄的鱼眼镜头得到的鱼眼图像中,每个像素点对应的相机坐标值更新为对应的转换坐标值;将朝预设世界坐标系选定坐标轴负方向拍摄的鱼眼镜头得到的鱼眼图像中,每个像素点对应的相机坐标值中选定坐标轴上的值,更新为对应的转换坐标值中所述选定坐标轴上值的相反数,并且,将每个像素点对应的相机坐标值中非选定坐标轴上的值,更新为对应的转换坐标值中相匹配坐标轴上的值。

由以上技术方案可见,本发明实施例提供的全景图像校正方法及系统,首先,获取全景相机上两个鱼眼镜头的参数,以及,两个鱼眼镜头拍摄的两幅鱼眼图像中所有像素点的图像坐标值;然后,根据两个鱼眼镜头的参数,以及两幅鱼眼图像中所有像素点的图像坐标值,分别计算每个像素点对应的相机坐标值,并将相机坐标值转换、更新为预设世界坐标系下的世界坐标值;最后,根据两幅鱼眼图像中每个像素点对应的更新后的相机坐标值,分别获得两个鱼眼镜头所拍摄鱼眼图像的校正数据;利用该校正数据,重新生成全景相机在任意时刻拍摄的两幅鱼眼图像中每个像素点的图像坐标值,并将重新生成的两幅鱼眼图像拼接成一幅全景图像。

本发明的有益效果包括:在计算得到两幅鱼眼图像中每个像素点对应的相机坐标值后,将每个像素点对应的相机坐标值转换并更新为预设世界坐标系下的世界坐标值,该过程相当于将两个鱼眼镜头的相机坐标系都转换为同一个预设世界坐标系。从而,使两个鱼眼镜头相机坐标系中与相机光轴共线的坐标轴,例如z轴,都转换到预设世界坐标系下对应的坐标轴,如z轴。采用上述方式能够模拟两个鱼眼镜头光轴共线时拍摄鱼眼图像的场景,并由此获得两个鱼眼镜头所拍摄鱼眼图像的校正数据。

全景相机在任意时刻拍摄的两幅鱼眼图像,都可利用校正数据,重新生成鱼眼图像中每个像素点的图像坐标值,从而使重新生成的两幅鱼眼图像在拼接成一幅全景图像时,相当于是拼接两个鱼眼镜头光轴共线状态下拍摄的两幅鱼眼图像,因此,拼接部分不会出现错位现象。

附图说明

为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,对于本领域普通技术人员而言,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。

图1为本发明实施例提供的一种全景图像校正方法的流程示意图;

图2为本发明实施例提供的一种鱼眼镜头成像过程的示意图;

图3为空间点投影在两个鱼眼镜头光轴共线时拍摄的鱼眼图像上的示意图;

图4为空间点投影在两个鱼眼镜头光轴不共线时拍摄的鱼眼图像上的示意图;

图5为本发明实施例提供的一种执行图1中步骤s102的流程示意图;

图6为本发明实施例提供的一种执行图1中步骤s101的流程示意图;

图7为本发明实施例提供的一种执行图1中步骤s105的流程示意图;

图8为本发明实施例提供的一种执行图1中步骤s106的流程示意图;

图9为本发明实施例提供的另一种全景图像校正方法的流程示意图;

图10为本发明实施例提供的一种全景图像校正系统的结构示意图。

具体实施方式

为了使本技术领域的人员更好地理解本发明中的技术方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本发明保护的范围。

图1为本发明实施例提供的一种全景图像校正方法的流程示意图,该方法应用于携带有背向设置的两个鱼眼镜头的全景相机拍摄的鱼眼图像,如图1所示,该方法包括以下步骤。

步骤s101:控制全景相机上的两个鱼眼镜头同时拍摄包含特征图片的鱼眼图像。

在本发明公开的实施例中,将全景相机与标定装置相结合完成步骤s101,其中,标定装置可以为现有的全景相机的标定箱。例如,标定箱为矩形箱体,箱体内壁设置有用于进行全景相机标定工作的特征图片,特征图片上展示有多个特征点。在本发明具体实施例中,该特征图片可以为棋盘格标定板,特征图片上的特征点可以为棋盘格上黑格与白格相交处的内角点。

特征图片属于预设的一个世界坐标系,特征图片上每一个特征点都在该世界坐标系下对应一个能表示其空间位置的世界坐标值。

控制全景相机上两个鱼眼镜头在同一时刻各自拍摄一幅包含特征图片的鱼眼图像,从而使全景相机在该时刻共拍摄得到两幅鱼眼图像。由于鱼眼图像在边缘部分畸变最严重,因此,在本发明公开的实施例中,令鱼眼图像的边缘部分尽量多的包含特征点,以使执行后续利用特征点计算两个鱼眼镜头的内参、畸变参数和外参的步骤时,能够得到更加精确的结果。

步骤s102:根据特征图片上的特征点获取两个鱼眼镜头的内参、畸变参数以及外参。

在获得两个鱼眼镜头拍摄的两幅包含特征图片的鱼眼图像后,可根据特征图片上的特征点获取两个鱼眼镜头的内参、畸变参数以及外参。在本发明公开的一个实施例中,可通过获取特征点在预设世界坐标系下的世界坐标值,以及,特征点在鱼眼图像中的图像坐标值,结合张正友相机标定法,计算得到两个鱼眼镜头的内参、畸变参数以及外参。

步骤s103:获取每幅鱼眼图像中所有像素点的图像坐标值。

通常情况下,将鱼眼图像的中心点作为鱼眼图像的图像坐标系的原点。在本发明公开的实施例中,可以通过现有图像处理软件获得鱼眼图像中每个像素点在图像坐标系下的图像坐标值。

步骤s104:根据鱼眼镜头成像模型、每幅鱼眼图像对应鱼眼镜头的内参和畸变参数,以及两幅鱼眼图像中每个像素点的图像坐标值,分别计算两幅鱼眼图像中每个像素点对应的相机坐标值。

鱼眼镜头成像时遵循的鱼眼镜头成像模型可以近似为单位球面投影模型。因此可以将鱼眼镜头的成像过程分解成两步:第一步,将三维空间点线性地投影到一个虚拟的单位球面上,其球心与鱼眼镜头相机坐标系的原点重合;第二步,单位球面上的点投影到鱼眼图像上,该过程是非线性的。

如图2所示,空间中的一点x以入射角θ,通过鱼眼镜头光心oc。由于鱼眼镜头所拍摄的鱼眼图像会发生畸变,因此入射角也会随之发生畸变,将畸变后的入射角表示为θd。在入射角畸变的基础上,空间点x映射到鱼眼图像上的m点,该点m到鱼眼图像的中心点o的距离为rd。

普通相机镜头成像时遵循的是针孔相机成像模型,空间中的直线在成像时仍被投影为图像上的直线。但是鱼眼镜头拍摄角度远远大于普通相机镜头,因此,如果按照针孔相机成像模型将空间物体映射到鱼眼图像中,鱼眼图像的面积会非常大,当鱼眼镜头视场角达到180°时,鱼眼图像的面积甚至会变为无穷大。因此,为将尽可能大的场景投影到有限的图像内,鱼眼镜头的成像模型允许鱼眼图像存在畸变。

目前鱼眼镜头应用最多的成像模型是等距投影模型,等距投影模型公式为:rd=fθ,其中,f是鱼眼镜头的焦距。

在本发明公开的实施例中,采用鱼眼镜头成像模型是由kannala提出的一种鱼眼镜头的一般多项式近似模型,即:

θd=k0θ+k1θ3+k2θ5+k3θ7

其中,k0,k1,k2,k3是畸变参数。

这是一种通用鱼眼镜头多项式模型,可以根据θ得到θd,获知空间点x在鱼眼图像中的映射点到图像中心的距离,进而计算得到该映射点在鱼眼图像中的图像坐标值(x,y),最后通过鱼眼镜头的内参得到该映射点的像素坐标值(u,v),一般情况下,鱼眼图像的像素坐标系以鱼眼图像的左上角为原点。公式如下:

u=αxx+u0

v=αyy+v0

其中,u0,v0为鱼眼图像的中心点,αx为单位像素在图像坐标系x轴方向上边长dx的倒数,αy为单位像素在图像坐标系y轴方向上边长dy的倒数。

因此,可以通过上述获得鱼眼图像中像素点图像坐标值的方式反运算出入射角θ,从而计算得到鱼眼图像中,某个像素点的图像坐标值在鱼眼镜头相机坐标系下对应的相机坐标值。计算公式为:

x=sinθ*x′/r

y=sinθ*y′/r

z=cosθ

其中,x,y,z为相机坐标值,x’,y’为图像坐标值,r2=x′2+y′2

步骤s105:利用对应鱼眼镜头的外参,分别将两幅鱼眼图像中每个像素点对应的相机坐标值,转换并更新为预设世界坐标系下的世界坐标值。

由于鱼眼镜头的畸变属于非线性问题,因此,无法计算得到预设世界坐标系与相机坐标系转换时对应的单应性矩阵。在本发明公开的实施例中,从鱼眼图像中的每个像素出发,求出预设世界坐标系与相机坐标系之间的转换关系,转换关系可转化为以下公式:

r2=x′2+y′2

θ=atan(r)

θ′=θ(1+k1θ2+k2θ4+k3θ6+k4θ8)

u=fxx′+cx

v=fyy′+cy

其中x,y,z是世界坐标值,x,y,z为相机坐标值,x’,y’为图像坐标值,u,v为像素坐标值。r,t分别为旋转矩阵与平移向量,即外参。fx,fy,cx,cy为内参中的四个参数。k1,k2,k3,k4是畸变参数。

上式不仅体现出从预设世界坐标系到相机坐标系的转换关系,也整体体现了从世界坐标系到像素坐标系的转换关系。

将两幅鱼眼图像中每个像素点对应的相机坐标值,转换并更新为按照上述公式计算得到的世界坐标值。

步骤s106:根据两幅鱼眼图像中每个像素点对应的更新后的相机坐标值,分别获得两个鱼眼镜头拍摄的鱼眼图像的校正数据。

将鱼眼图像中每个像素点对应的相机坐标值更新为预设世界坐标系下的世界坐标值之后,相当于将拍摄鱼眼图像的鱼眼镜头的相机坐标系转换到预设世界坐标系。

鱼眼镜头光轴是穿过鱼眼镜头中心的线,其与鱼眼图像平面的交点是鱼眼图像的图像坐标系的原点,鱼眼镜头光轴一般为鱼眼镜头相机坐标系的z轴。

根据鱼眼镜头成像模型可知,鱼眼镜头成像过程中,首先将三维空间点投影到一个虚拟的单位球面上,鱼眼镜头的光轴通过该球面的球心,然后将单位球面上的点投影到鱼眼图像上,鱼眼图像平面与鱼眼镜头的光轴相互垂直。若两个鱼眼镜头的光轴共线,那么,两幅鱼眼图像的平面应该是平行的,同一个空间点投影在两幅鱼眼图像上的投影点在各自鱼眼图像上的位置应该是对应的,如图3所示,投影点距离两幅鱼眼图像边缘的距离d1、d2均相等。但是,如果两个鱼眼镜头的光轴不共线,那么,两幅鱼眼图像的平面必然不是平行的,同一个空间点投影在两幅鱼眼图像上的投影点在各自鱼眼图像上的位置也不会对应,如图4所示,投影点距离两幅鱼眼图像边缘的距离d1、d2通常不相等。

因此,本发明实施例中公开的方法,采用将两个鱼眼镜头的相机坐标系转换为相同的预设世界坐标系的方式,实现两个鱼眼镜头光轴的模拟共线。在此基础上,通过获得两幅鱼眼图像中每个像素点对应的世界坐标值,并将其与每个像素点建立对应关系,即可根据该对应关系将两幅鱼眼图像调整为两个鱼眼镜头光轴共线时的状态,使两幅鱼眼图像实现准确拼接。

在本发明公开的一个具体实施例中,上述对应关系可以为:根据鱼眼镜头的内参和畸变参数,将其拍摄的鱼眼图像中每个像素点对应的更新后的相机坐标值投影至鱼眼图像,得到鱼眼图像中每个像素点的新的图像坐标值。建立每幅鱼眼图像中每个像素点原始图像坐标值与新图像坐标值之间的对应关系,将该对应关系作为鱼眼镜头所拍摄鱼眼图像的校正数据。根据该校正数据可校正两幅鱼眼图像,以使两幅鱼眼图像实现准确拼接。

步骤s107:利用校正数据,重新生成全景相机在任意时刻拍摄的两幅鱼眼图像中每个像素点的图像坐标值,并将重新生成的两幅鱼眼图像拼接成一幅全景图像。

根据获得的校正数据,重新生成全景相机在任意时刻拍摄的两幅鱼眼图像中每个像素点对应的图像坐标值,校正后的两幅鱼眼图像可视为是由两个光轴共线的鱼眼镜头同时拍摄的,因此,这两幅鱼眼图像能够拼接成一幅在拼接部分没有错位的全景图像。

在本发明公开的另一个实施例中,前述实施例中的步骤s102根据特征图片上的特征点获取两个鱼眼镜头的内参、畸变参数以及外参,如图5所示,包括以下步骤。

步骤s1021:获取特征图片上每个特征点在预设世界坐标系下的世界坐标值。

在本发明公开的一个具体实施例中,获取两个鱼眼镜头的内参、畸变参数以及外参的过程是在用于标定鱼眼镜头的标定装置内进行的,标定装置可以是现有的标定箱,该标定箱的内壁上设置有多个特征图片,每特征图片均展示有多个特征点。

在标定箱内部空间建立预设世界坐标系,并精确测量特征图片上每个特征点在预设世界坐标系下的世界坐标值。例如,特征图片为棋盘格标定板,精确测量棋盘格上每个黑白相交处内角点的世界坐标值。

步骤s1022:分别获取两幅鱼眼图像中每个特征点的图像坐标值。

在本发明公开的实施例中,可以采用现有图像检测软件获取两幅鱼眼图像中每个特征点的图像坐标值。例如,通过应用opencv软件中的findchessboardcorners功能,获取每幅鱼眼图像中所有特征点的图像坐标值。

步骤s1023:根据两幅鱼眼图像中每个特征点的图像坐标值和对应的世界坐标值,分别计算两个鱼眼镜头的内参、外参以及畸变参数。

在获取每个特征点的世界坐标值和两幅鱼眼图像中每个特征点的图像坐标值之后,利用相机标定算法,如张正友标定算法,计算得到两个鱼眼镜头的内参、外参和畸变参数。

在本发明公开的另一个实施例中,前述实施例中的步骤s101控制全景相机上的两个鱼眼镜头同时拍摄包含特征图片的鱼眼图像,如图6所示,包括以下步骤。

步骤s1011:将全景相机设置在预设世界坐标系的原点位置。

本发明公开的实施例中,采用现有标定装置完成鱼眼镜头的标定,其中,标定装置可以为标定箱。在标定箱内部空间建立预设世界坐标系,将全景相机安装在预设世界坐标系的原点位置,使全景相机上两个鱼眼镜头光轴的交点能够投影在预设世界坐标系的原点。

步骤s1012:控制全景相机上的一个鱼眼镜头朝预设世界坐标系选定坐标轴的正方向拍摄特征图片,控制全景相机上另一个鱼眼镜头朝预设世界坐标系选定坐标轴的负方向拍摄特征图片。

例如,预设世界坐标系的z轴作为选定坐标轴。控制全景相机上一个鱼眼镜头朝预设世界坐标系z轴正方向拍摄特征图片,控制全景相机上另一个鱼眼镜头朝预设世界坐标系z轴负方向拍的特征图片。

在本发明公开的另一个实施例中,前述实施例中的步骤s105利用对应鱼眼镜头的外参,分别将两幅鱼眼图像中每个像素点对应的相机坐标值,转换并更新为预设世界坐标系下的世界坐标值,如图7所示,包括以下步骤。

步骤s1051:利用两个鱼眼镜头的外参,计算两幅鱼眼图像中每个像素点对应的相机坐标值转换到预设世界坐标系时的转换坐标值。

利用两幅鱼眼图像各自对应鱼眼镜头的外参,以及,前述实施例中获取的两幅鱼眼图像中每个像素点对应的相机坐标值,根据前述实施例中的计算公式,计算得到每个像素点对应的相机坐标值转换到预设世界坐标系下的转换坐标值,该转换坐标值在任意一个轴上的值均为正数,因此,转换坐标值在选定坐标轴上的值为正数。

步骤s1052:将朝预设世界坐标系选定坐标轴正方向拍摄的鱼眼镜头得到的鱼眼图像中,每个像素点对应的相机坐标值更新为对应的转换坐标值。

在前述实施例的基础上,可知,全景相机上设置的两个鱼眼镜头,分别朝向选定坐标轴的正方向和负方向拍摄。上述方式计算得到的每个像素点对应的转换坐标值为正数,而朝向预设世界坐标系选定坐标值正方向拍摄的鱼眼镜头,拍摄得到的每个像素点对应的空间点的坐标值在选定坐标轴上必然是正数,因此,将该鱼眼镜头拍摄的鱼眼图像中每个像素点对应的相机坐标值更新为对应的转换坐标值。

步骤s1053:将朝预设世界坐标系选定坐标轴负方向拍摄的鱼眼镜头得到的鱼眼图像中,每个像素点对应的相机坐标值中选定坐标轴上的值,更新为对应的转换坐标值中选定坐标轴上值的相反数,并且,将每个像素点对应的相机坐标值中非选定坐标轴上的值,更新为对应的转换坐标值中相匹配坐标轴上的值。

由上述内容可知,朝预设世界坐标系选定坐标轴负方向拍摄的鱼眼镜头,拍摄得到的像素点对应的空间点必然是负数,而按照步骤s1051计算得到的转换坐标值在选定坐标轴上的值为正数。因此,将该鱼眼镜头拍摄的鱼眼图像中,每个像素点对应的相机坐标值中选定坐标轴上的值,更新为对应转换坐标值中选定坐标轴上的值的相反数,使每个像素点对应的相机坐标值中选定坐标轴上的值为负数。并且,将每个像素点对应的相机坐标值中非选定坐标轴上的值,更新为对应的转换坐标值中相匹配坐标轴上的值。

例如,选定坐标轴为z轴,则将鱼眼图像中每个像素点对应相机坐标值中的z值更新为转换坐标值中z值的相反数,将每个像素点对应相机坐标值中的x值更新为转换坐标值中的x值,将每个像素点对应相机坐标值中的y值更新为转换坐标值中的y值。

在本发明公开的一个实施例中,前述实施例中的步骤s106根据两幅鱼眼图像中每个像素点对应的更新后的相机坐标值,分别获得两个鱼眼镜头拍摄的鱼眼图像的校正数据,如图8所示,包括以下步骤。

步骤s1061:根据两个鱼眼镜头的内参和畸变参数,将两幅鱼眼图像中每个像素点对应的更新后的相机坐标值,投影至像素点所在鱼眼图像的图像坐标系中,重新获取每个像素点的图像坐标值。

在获得两幅鱼眼图像中每个像素点对应的更新后的相机坐标值之后,利用每幅鱼眼图像对应鱼眼镜头的内参和畸变参数,将其投影在鱼眼图像的图像坐标系中,并获得每个像素点新的图像坐标值。

步骤s1062:分别建立两幅鱼眼图像中每个像素点原始的图像坐标值和重新获取的图像坐标值之间的映射表格,将映射表格作为对应鱼眼镜头所拍摄的鱼眼图像的校正数据。

建立每幅鱼眼图像中,每个像素点的原始的图像坐标值和重新获取的图像坐标值之间的映射表格,该表格记录每个像素点的原始图像坐标值和新图像坐标值之间的一一对应关系。当全景相机在任意时刻拍摄两幅鱼眼图像时,将该映射表格作为鱼眼图像的校正数据,使校正后的两幅鱼眼图像中每个像素点的图像坐标值,都可被认为是在两个鱼眼镜头光轴共线的状态下获得的。从而在两幅鱼眼图像拼接时,避免出现拼接部分错位的情况。

在本发明公开的一个实施例中,在执行前述实施例中的步骤s102根据特征图片上的特征点获取两个鱼眼镜头的内参、畸变参数以及外参的步骤之后,如图9所示,还包括以下步骤。

步骤s201:利用两个鱼眼镜头的内参、畸变参数和外参,以及,特征点在预设世界坐标系下的世界坐标值,计算两幅鱼眼图像中每个特征点的图像坐标值。

在获得两个鱼眼镜头的内参、畸变参数和外参之后,利用上述参数将特征图片上的特征点重新投影至鱼眼图像的图像平面,根据每个特征点在预设世界坐标系下的世界坐标值,计算两幅鱼眼图像中每个特征点的图像坐标值。

步骤s202:判断鱼眼图像中每个特征点原始的图像坐标值与被计算出的图像坐标值之差是否属于预设范围。

针对鱼眼图像中每一个特征点,比较计算出的图像坐标值与原始的图像坐标值,判断二者在相对应坐标轴上值之差是否属于预设范围,例如,该预设范围可以为-0.5至0.5个像素边长之间的范围。

如果二者之差属于预设范围,说明前述步骤中获得的鱼眼镜头的内参、畸变参数和外参符合精度要求,则利用两个鱼眼镜头的内参、畸变参数和外参执行后续步骤。

如果二者之差不属于预设范围,说明前述步骤中获得的鱼眼镜头的内参、畸变参数和外参不符合精度要求,则重新执行根据特征图片上的特征点获取两个鱼眼镜头的内参、畸变参数以及外参的步骤s102。

图10为本发明公开的一种全景图像校正系统的结构示意图,该系统应用于携带有背向设置的两个鱼眼镜头的全景相机拍摄的鱼眼图像,如图10所示,系统包括以下单元。

拍摄控制单元11,被配置为控制全景相机上的两个鱼眼镜头同时拍摄包含特征图片的鱼眼图像,特征图片属于预设世界坐标系,且展示有多个特征点;

镜头参数获取单元12,被配置为根据特征图片上的特征点获取两个鱼眼镜头的内参、畸变参数以及外参;

图像坐标值获取单元13,被配置为获取每幅鱼眼图像中所有像素点的图像坐标值;

相机坐标值获取单元14,被配置为根据鱼眼镜头成像模型、每幅鱼眼图像对应的鱼眼镜头的内参和畸变参数,以及两幅鱼眼图像中每个像素点的图像坐标值,分别计算两幅鱼眼图像中每个像素点对应的相机坐标值;

相机坐标值转换单元15,被配置为利用对应鱼眼镜头的外参,分别将两幅鱼眼图像中每个像素点对应的相机坐标值,转换并更新为预设世界坐标系下的世界坐标值;

校正数据获取单元16,被配置为根据两幅鱼眼图像中每个像素点对应的更新后的相机坐标值,分别获得两个鱼眼镜头拍摄的鱼眼图像的校正数据;

全景图像拼接单元17,被配置为利用校正数据,重新生成全景相机在任意时刻拍摄的两幅鱼眼图像中每个像素点的图像坐标值,并将重新生成的两幅鱼眼图像拼接成一幅全景图像。

在本发明公开的另一个实施例中,前述实施例中公开的镜头参数获取单元12,包括以下单元。

世界坐标值获取单元,被配置为获取特征图片上每个特征点在预设世界坐标系下的世界坐标值;

特征点图像坐标值获取单元,被配置为分别获取两幅鱼眼图像中每个特征点的图像坐标值;

镜头参数计算单元,被配置为根据两幅鱼眼图像中每个特征点的图像坐标值和对应的世界坐标值,分别计算两个鱼眼镜头的内参、外参以及畸变参数。

在本发明公开的另一个实施例中,前述实施例中公开的拍摄控制单元11,包括以下单元。

相机设置单元,被配置为将全景相机设置在预设世界坐标系的原点位置;

控制单元,被配置为控制全景相机上的一个鱼眼镜头朝预设世界坐标系选定坐标轴的正方向拍摄特征图片,控制全景相机上另一个鱼眼镜头朝预设世界坐标系选定坐标轴的负方向拍摄特征图片。

在本发明公开的另一个实施例中,前述实施例中公开的相机坐标值转换单元15,包括以下单元。

转换坐标值获取单元,利用两个鱼眼镜头的外参,计算两幅鱼眼图像中每个像素点对应的相机坐标值转换到预设世界坐标系时的转换坐标值,所述转换坐标值中选定坐标轴上的值为正数;

相机坐标值更新单元,被配置为将朝预设世界坐标系选定坐标轴正方向拍摄的鱼眼镜头得到的鱼眼图像中,每个像素点对应的相机坐标值更新为对应的转换坐标值;将朝预设世界坐标系选定坐标轴负方向拍摄的鱼眼镜头得到的鱼眼图像中,每个像素点对应的相机坐标值中选定坐标轴上的值,更新为对应的转换坐标值中选定坐标轴上值的相反数,并且,将每个像素点对应的相机坐标值中非选定坐标轴上的值,更新为对应的转换坐标值中相匹配坐标轴上的值。

需要说明的是,在本文中,诸如“第一”和“第二”等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。

以上所述仅是本发明的具体实施方式,使本领域技术人员能够理解或实现本发明。对这些实施例的多种修改对本领域的技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本发明的精神或范围的情况下,在其它实施例中实现。因此,本发明将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。

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