用于校正广角图像的系统和方法与流程

文档序号:18061926发布日期:2019-07-03 03:08阅读:191来源:国知局
用于校正广角图像的系统和方法与流程

本专利文档的公开的一部分包含受到版权保护的材料。版权所有者不反对任何人对专利文档或专利公开的传真复制(因为它出现在专利和商标局的专利文件或记录中),但在其他方面保留所有版权。

所公开的实施例总体上涉及图像处理和计算机视觉,更具体地但非排他地,涉及校正广角图像。



背景技术:

诸如鱼眼镜头之类的广角镜头可以用于受益于宽视角的各种娱乐和商业应用。例如,鱼眼镜头可用于诸如全景相机和视觉系统(例如,用于停车或安全监控)之类的产品中。然而,由于需要有效地消除广角图像中的几何畸变,大多数广角镜头应用并不令人满意。这是本发明的实施例旨在涉及的一般领域。



技术实现要素:

本文描述了一种提供用于校正使用广角镜头捕捉的广角图像的技术方案的系统和方法。该系统可以获得广角镜头的投影模型,其中投影模型将广角图像与目标图像中的多个目标图像部分相对应。此外,系统可以基于投影模型确定广角图像中针对多个目标图像部分中的目标像素的多个参考像素。然后,系统可以基于广角图像中的多个参考像素来计算所述目标像素的一个或多个像素值。

本文还描述了一种提供用于校正使用鱼眼镜头捕捉的鱼眼图像的技术方案的系统和方法。系统可以针对目标图像中的目标像素集合来确定鱼眼图像中的一个或多个参考点。此外,系统可以基于所述一个或多个参考点来获得鱼眼图像的子部分。然后,系统可以基于鱼眼图像的子部分中的一个或多个像素的像素值,来计算该目标像素集合中的每个所述目标像素的一个或多个像素值。

附图说明

图1示出了根据本发明的各种实施例的鱼眼视觉系统的示例性图示。

图2示出了根据本发明的各种实施例的使用投影模型来校正鱼眼图像的示例性图示。

图3示出了根据本发明的各种实施例的用于校正鱼眼图像的处理器的示例性图示。

图4示出了根据本发明的各种实施例的用于校正鱼眼图像的示例性投影模型的图示。

图5示出了根据本发明的各种实施例的处理目标图像中的目标像素。

图6示出了根据本发明的各种实施例的校正示例性鱼眼图像。

图7示出了根据本发明的各种实施例的对使用广角镜头捕捉的广角图像进行校正的流程图。

图8示出了根据本发明的各种实施例的用于使用基于网格的方法来校正鱼眼图像的示例性投影模型。

图9示出了根据本发明的各种实施例的使用基于网格的方法处理目标像素。

图10示出了根据本发明的各种实施例的使用基于网格的方法校正鱼眼图像。

图11示出了根据本发明的各种实施例的用于使用基于网格的方法来校正鱼眼图像的划分方案。

图12示出了根据本发明的各种实施例的校正使用鱼眼镜头捕捉的鱼眼图像的流程图。

具体实施方式

作为示例而非限制,在附图的各图中示出了本发明,其中相似的附图标记指示相似的元素。应当注意到,在本公开中针对“实施例”或“一个实施例”或“一些实施例”的引用不一定指的是相同实施例,且这种引用意味着至少一个实施例。

以下对本发明的描述使用鱼眼镜头作为广角镜头的示例。对于本领域技术人员显而易见的是,可以使用其他类型的广角镜头而没有限制。

根据各种实施例,可以提供校正使用广角镜头捕捉的广角图像的技术方案。该系统可以获得广角镜头的投影模型,其中投影模型将广角图像与目标图像中的多个目标图像部分相对应。此外,系统可以基于投影模型确定广角图像中针对多个目标图像部分中的目标像素的多个参考像素。然后,系统可以基于广角图像中的多个参考像素来计算所述目标像素的一个或多个像素值。

根据各种实施例,可以提供校正使用鱼眼镜头捕捉的鱼眼图像的技术方案。系统可以针对目标图像中的目标像素集合来确定鱼眼图像中的一个或多个参考点。此外,系统可以基于一个或多个参考点来获得鱼眼图像的子部分。然后,系统可以基于鱼眼图像的子部分中的一个或多个像素的像素值,来计算该目标像素集合中的每个所述目标像素的一个或多个像素值。

图1示出了根据本发明的各种实施例的鱼眼视觉系统的示例性图示。如图1所示,图像设备101(例如,具有鱼眼镜头110的相机)可用于捕捉鱼眼图像102。

例如,相机可以具有视角为180度的鱼眼镜头110,并且能够捕捉相机前方的半球形场的图像。替代地,鱼眼镜头110可具有不同的视角角度。因此,图像设备101可以捕捉具有不同视场的图像。在如

图1所示的示例中,鱼眼图像102可以是圆形鱼眼图像,其具有内切于图像帧中的图像圆。替代地,鱼眼图像102可以是全帧鱼眼图像,其具有外切的图像圆部分。

根据各种实施例,与传统图像相比,鱼眼图像102由于较大的视场而可以产生显著较多的成像信息。因此,在各种应用中使用具有鱼眼镜头110的图像设备101是有利的。根据各种实施例,鱼眼图像102可以用在各种应用103(例如,计算机视觉)中。例如,无人机(uav)可以在控制系统的重量和复杂性的同时依靠鱼眼镜头相机或图像传感器来执行各种基于计算机视觉的导航任务,而不是对具有窄视角的多个传统相机进行组合。

另一方面,包括诸如鱼眼镜头之类的超宽镜头的广角镜头可能具有使用传统针孔相机模型难以近似的固有畸变。如图1所示,鱼眼图像102具有几何畸变,尤其是在靠近边缘的区域中。在一些情况下,不同的鱼眼镜头可能使图像不同地畸变,这可以使用映射函数或投影模型来表征。

为了支持各种应用,例如不同的计算机视觉算法,系统可以使用校正过程来校正或消除所捕捉的鱼眼图像中的几何畸变。在一些情况下,可以使用各种算法来校正鱼眼图像。例如,可以使用具有经度映射的球形坐标方法来校正鱼眼图像。但是,这种方法的准确性并不令人满意。而且,球形坐标方法可能需要放弃鱼眼图像的边缘部分,这限制了在计算机视觉领域中的应用。另一方面,多项式坐标变换方法需要复杂且密集的计算来拟合高阶多项式。另外,基于球形透视投影约束的校正方法需要使用非线性优化方法来求解切向和径向变形参数(即,该方法的准确度取决于初始值的选择)。这两种方法都是计算密集型的,这限制了它们在计算机视觉领域中的应用。

图2示出了根据本发明的各种实施例的在图像处理环境200中使用投影模型来校正鱼眼图像的示例性图示。如图2所示,投影模型210可用于校正鱼眼图像201,该鱼眼图像201可使用具有鱼眼镜头的相机来捕捉。在一个实施例中,投影模型210可以基于针孔模型,该针孔模型更常用于具有窄视角的传统相机。将针孔模型应用于鱼眼图像201的缺点在于,由于需要知道每个图像点的背投影光线的方向,因此难以实现完全校准。

根据各种实施例,投影模型210可用于将诸如鱼眼图像201之类的广角图像投影成目标图像202的多个图像部分212。例如,三次曲面投影模型可以将鱼眼图像201(例如,具有球形视图的至少一部分,例如半球形视图)投影成五个图像部分,例如三次曲面的前部、后部、左部、右部和底部(或顶部)。替代地,投影模型可以被配置为将鱼眼图像201投影成任意数量的图像部分。

根据各种实施例,可以基于投影模型210来确定目标图像202中的每个像素的像素值。在此,目标图像202中的目标像素的投影可能无法准确地定位在鱼眼图像201中的像素上。因此,相邻块203中的多个鱼眼图像像素的像素值可以用于计算目标图像202中的像素204的像素值。

图3示出了根据本发明的各种实施例的使用处理器来校正鱼眼图像的示例性图示。如图3所示,在步骤301,处理器可以基于鱼眼校准来获得各种校准参数。根据各种实施例,校准过程可以基于投影模型(或相机模型)来校准广角镜头,例如鱼眼镜头。

图4示出了根据本发明的各种实施例的用于校正鱼眼图像的示例性投影模型400的图示。在如图4所示的示例中,可以基于使用多项式函数的投影模型来校正鱼眼图像401,

f(ρ)=a0+alρ+a2ρ2+a3ρ3+a4ρ4

其中,对于鱼眼图像401中的在图像坐标系(u-v)中的每个点(u,v),f(u,v)=f(ρ)是通过仿射变换在参考坐标系(x-y-z)中的对应映射值405。

根据各种实施例,可以通过鱼眼镜头403的校准来确定上述多项式函数中的系数。例如,校准过程可以包括使用鱼眼镜头403来捕捉棋盘的图像,并基于水平和垂直单元的数量、单元尺寸和其他参数来提取角点。然后,校准过程可以通过优化目标函数来获得诸如多项式系数之类的校准参数。此外,校准过程可以调整图像中心位置以优化校准结果。

再参考图3,在步骤302处,处理器可以建立参考坐标系。可以基于所获得的校准参数来建立参考坐标系。

如图4所示,球形表面420可用于将鱼眼图像坐标系与参考坐标系相关。在该示例中,鱼眼图像401和球形表面402可以沿轴410对齐。轴410可以穿过鱼眼图像401的中心点(o’)(例如,参考坐标系x-y-z的原点)和球形表面402的中心点(o”)(例如,图像坐标系u-v的原点)。此外,鱼眼镜头403的光学中心(o)也可以沿轴410对齐。例如,对于具有180度视角的鱼眼镜头,鱼眼镜头403的光学中心(o)可以配置在以下位置,使得从该光学中心(o)发射的光线穿过鱼眼图像401的边缘点也与半球形表面402的边缘点相交。

如图4所示,在鱼眼图像401中具有坐标(u,v)的点p可以被投影到参考坐标系中的球形表面402上的点p’,其坐标为(x,y,z)。在此,鱼眼图像401中坐标为(u,v)的点p与原点o’的距离是投影模型400可以经由对应的映射值405f(ρ)来确定鱼眼图像401、球形表面402和鱼眼镜头403的光学中心之间的空间关系。例如,可以基于以下表达式来确定参考坐标系中的投影模型400。

因此,图像圆中的每个点(u,v)都可以被投影到参考坐标系x-y-z中的球形表面402上的点(x,y,z)。

再参考图3,在步骤303,系统可以对鱼眼图像进行投影以基于投影模型获得目标图像的不同图像部分。可以规定不同的投影模型,用于将鱼眼图像投影成不同数量的图像部分。因此,可以从目标图像的每个个体图像部分(对应于每个单独的投影角度)消除鱼眼图像中包含的畸变。

例如,如图4所示,投影模型400可用于将球形表面402上的点投影到不同的三次曲面420。可以使用位于直接对准不同的三次曲面420的球形表面420的中心(o”)处的五个单独的成像针孔相机来规定三次曲面投影模型400。例如,可以使用以下表达式来确定每个成像器针孔相机的投影模型

r=rz*ry*rx

其中

以及

其中,x={0,-90,0,90,0},y={90,0,0,0,-90},并且z=0。

因此,鱼眼图像401中的每个点可以投影到半球形表面402上的点,半球形表面402上的点又可以相应地投影到三次曲面上的点。结果,使用这种三次曲面投影模型计算的目标图像可以包括正对鱼眼图像401的正方形区域和用于侧角的四个矩形区域。在半球形视图的情况下,每个立方体侧表面的仅一半用于从半球形表面402投影。在其他示例中,三次曲面的不同尺寸或部分可用于从表面402投影。

图5示出了根据本发明的各种实施例的在图像处理环境500中处理目标图像中的目标像素。如图5所示,可以使用具有多个图像部分521-525的目标图像502来校正鱼眼图像501。例如,目标图像502可以包括中心部分525,其是正方形区域。围绕正方形区域525的是四个矩形区域521-524。

在如图4所示的示例中,将90度的视角应用于半球形视图,可以使用公式w=h=2f+v基于像素焦距f和重叠像素的数量v来确定目标图像的中心部分(即,块525)的尺寸。例如,可以由各种应用或不同处理模块使用的目标图像502可以具有640×480的分辨率。因此,对于像素焦距240,中心部分的尺寸可以是480×480。此外,目标图像的四个侧部的尺寸可分别为480×240和240×480。

根据各种实施例,可以基于投影模型来获得目标图像502中的每个点。在如图4所示的示例中,使用基于鱼眼校准参数建立的参考坐标系,目标图像中的像素p”可以追迹回球形表面402上的点p′。然后,系统可以获得鱼眼图像401上的点p的坐标,该点p对应于与球形表面402上的点p’,即目标图像中的像素p”(在立方体体表面420上)。

如图5所示,可以基于鱼眼图像501中的投影坐标511(例如,图4中的点p)来确定目标图像中的像素512(例如,图4中的点p”)的像素值。例如,可以通过在鱼眼图像501中应用四个相邻像素510的加权平均来计算目标像素512的像素值。例如,可以使用以下公式在鱼眼图像501中针对具有投影坐标(i+g,j+h)的每个目标像素确定像素值p。

p(i+g,,j+h)=(1-g)×(1-h)×p(i,,j)+(1-g)×h×p(i,,j+1)

+g×(1-h)×p(i+1,,j)+g×h×p(i+1,,j+1)

在此,p(i,,j)表示鱼眼图像501中的坐标(i,j)处的像素值,并且g和而指示距相应鱼眼图像像素(i,j)的浮动相对距离(即,具有0和1之间的值),这是因为投影坐标可能不位于整数像素位置(i,j)处。

根据各种实施例,可以在校准之后针对每个鱼眼镜头确定投影模型。此外,可以计算和存储目标图像502中的每个像素的投影坐标。因此,可以通过应用预先存储的映射关系来校正使用校准后的鱼眼镜头捕捉的任何图像,即可以基于所存储的投影坐标来估计目标图像502中的每个目标像素的像素值。

图6示出了根据本发明的各种实施例的校正示例性鱼眼图像。如

图6所示,校正过程600可以计算校正鱼眼图像601的目标图像602。目标图像602可包括正方形中心部分和围绕正方形中心部分的四个矩形部分。每个图像部分可以针对相应方向遵循传统针孔投影模型。因此,目标图像602的每个个体部分可以用于各种应用,而不需要进一步转换或修改。例如,校正过程600可以用于计算利用鱼眼镜头的uav的周围环境的深度图。

图7示出了根据本发明的各种实施例的对使用广角镜头捕捉的广角图像进行校正的流程图。如图7所示,在步骤701,系统可以获得广角镜头的投影模型,其中投影模型将广角图像与目标图像中的多个目标图像部分相对应。例如,投影模型可以包括球形表面模型和三次曲面模型,如上面部分所述。此外,在步骤702,系统可以基于投影模型确定广角图像中针对多个目标图像部分中的目标像素的多个参考像素。然后,在步骤703,系统可以基于广角图像中的多个参考像素来计算所述目标像素的一个或多个像素值。

图8示出了根据本发明的各种实施例的用于使用基于网格的方法来校正鱼眼图像的示例性投影模型。如图8所示,目标图像802可用于校正鱼眼图像801。

根据各种实施例,鱼眼图像801的校正可以根据基于网格的方法。并非针对目标图像802中的每个目标像素直接计算在鱼眼图像801中的投影坐标,而是校正过程800可以利用目标图像802中的预定网格。例如,系统可以计算目标图像802中的目标像素(或网格像素812)的网格的坐标。在一些情况下,网格像素812可以均匀地分布在目标图像802中。替代地,网格点8l2的分布可能不均匀,并且可以被配置为遵循某些规则(例如,使用对数函数)。在一些情况下,多个网格像素812可以形成各种几何形状,例如多边形形状,如矩形。

并非针对目标图像802中的每个目标像素直接计算和预先存储在鱼眼图像中的投影坐标,而是系统可以首先计算每个网格像素812的投影坐标811(即,确定每个网格像素的映射关系)。在此,系统可以仅针对每个网格像素812预先存储鱼眼图像中的投影坐标。然后,系统可以基于网格像素812使用插值来估计目标像素(不是网格像素812)的投影坐标。

如图8所示,网格像素a-d(其是目标图像902中的矩形网格单元的角点)可以被映射到鱼眼图像801中的点a’-d’。由于投影变换,点a’-d’可能无法确切地定位在鱼眼图像801中的矩形的角点处。因此,可以基于鱼眼图像801中的点a’-d’的坐标使用插值来估计网格单元内的任何像素在鱼眼图像801中的投影坐标。

例如,对于在目标图像802中尺寸为n*n(例如,4x4)的网格单元中位置(i,j)处的像素t804,可以使用以下公式来计算在鱼眼图像801中的投影坐标803。

xt=(n-i)((n-,j)xa+,jxb)+i((n-,j)xc+,jxd)

yt=(n-i)((n-,j)ya+,jyb)+i((n-,j)yc+,jyd)

根据各种实施例,可以基于鱼眼图像801中的投影坐标803来确定目标图像802中的目标像素804的像素值。在如图9所示的示例中,可以在图像处理环境900中基于目标像素912的投影坐标911来确定鱼眼图像901中的相邻块910。然后,可以基于相邻块910中的像素(例如,使用线性插值)来计算目标像素912的像素值。

例如,可以使用以下公式来确定鱼眼图像中的相邻块910中的像素的坐标。

xl=floor(xt),xu=xl+1

yl=floor(yt),yu=yl+1

xd=xt-xl

yd=yt-yl

然后,可以使用以下公式来确定位置(i,j)处的像素t的像素值。

it=(1-yd)((1-xd)i(xl,yl)+xdi(xl+1,yl))+yd((1-xd)i(xl,yl+1)+xdi(xl+1,yl+1))

图10示出了根据本发明的各种实施例的使用基于网格的方法校正鱼眼图像。如图10所示,可以基于投影模型1010使用目标图像1002来校正鱼眼图像1001。校正可以基于基于网格的方法。

根据各种实施例,使用投影模型1010,校正过程1000可以确定鱼眼图像中网格像素1022与投影坐标1021之间的映射关系1020。在此,投影坐标1021被确定为目标图像1002中的图像子部分1012的参考点。例如,校正过程1000可以使用投影模型1010来计算每个网格像素1022的投影坐标1021。然后,校正过程1000可以基于网格点1022的投影坐标1021来确定鱼眼图像1001中的图像区域(例如,图像子部分1011)。例如,该图像子部分1011可以是包围网格像素1022的投影坐标1021的最小边界矩形区域。

根据各种实施例,基于网格的方法可以降低存储器和输入/输出(i/o)带宽的消耗。在一些情况下,对于单元尺寸为m*m的网格,可以将需要存储坐标映射的像素的所需数量估计为(w/m+1)*(h/m+1),其中w是图像宽度,h是图像高度。在如图8所示的示例中,网格尺寸为4*4。因此,需要处理和预存储的像素的数量可以大大减少(与存储所有像素的映射的直接映射方法相比)。结果,使用基于网格的方法,系统可以提高校正鱼眼图像801的效率并降低存储器的消耗。

图1l示出了根据本发明的各种实施例的用于使用基于网格的方法来校正鱼眼图像的划分方案。如图11所示,使用划分方案1100,目标图像1101可以被划分为多个块(例如块1-7),以有效地执行校正任务。此外,可以针对目标图像1102的每个个体块单独地(顺序地或并行地)执行校正任务。之后,系统可以将每个个体块的结果一起整合到目标图像1102中。

根据各种实施例,为了计算每个个体图像块1-7中的目标像素的像素值,处理器1111可以将鱼眼图像1101的对应块读入存储器1110以支持计算。处理器1111可以基于相应图像块中的所选择的网格点的预先存储的投影坐标,来计算个体图像块内的每个目标像素的投影坐标。

再参考图8,为了易于实施并实现输入/输出(i/o)效率,执行鱼眼图像801的校正的处理器可以利用包围鱼眼图像801中的投影坐标811的最小边界矩形区域(针对网格点812)。由于几何畸变,目标图像中的矩形形状(在四个角处具有网格点812)可以在鱼眼图像中投影成不规则的几何形状。因此,这种不规则形状的最小边界矩形区域可以覆盖鱼眼图像801的实际区域,尤其是对于靠近鱼眼图像801的边缘的网格点。

根据各种实施例,目标图像1101的划分可以考虑鱼眼图像在边缘部分处的畸变。在一些情况下,系统可以通过对目标图像应用划分方案来降低存储器和i/o消耗。例如,目标图像1102的上部和下部可以进一步划分成多个块,例如分别为块(1,2)和(6,7),以便减小用于执行校正计算的图像块的宽度。替代地,取决于划分方案,目标图像1102的左部和右部可以进一步划分为多个块(例如,划分成垂直堆叠的块)。因此,校正处理器1111可以避免在执行校正时需要处理鱼眼图像中的大面积像素值。之后,目标图像1101的不同部分可以组合在一起以被输出。

图12示出了根据本发明的各种实施例的校正使用鱼眼镜头捕捉的鱼眼图像的流程图。如图12所示,在步骤1201,系统可以针对目标图像中的目标像素集合来确定鱼眼图像中的一个或多个参考点。此外,在步骤1202,系统可以基于一个或多个参考点来获得鱼眼图像的子部分。然后,在步骤1203,系统可以基于鱼眼图像的子部分中的一个或多个像素的像素值,来计算该目标像素集合中的每个所述目标像素的一个或多个像素值。

本发明的许多特征可以以硬件、软件、固件或其组合的形式执行,或者使用硬件、软件、固件或其组合执行,或者借助于硬件、软件、固件或其组合执行。因此,可以使用处理系统(例如,包括一个或多个处理器)来实现本发明的特征。示例性处理器可以包括但不限于:一个或多个通用微处理器(例如,单核或多核处理器)、专用集成电路、专用指令集处理器、图形处理单元、物理处理单元、数字信号处理单元、协处理器、网络处理单元、音频处理单元、加密处理单元等。

本发明的特征可以以计算机程序产品的形式、或者使用计算机程序产品、或者借助于计算机程序产品执行,计算机程序产品是具有存储在其上/内的指令的存储介质(媒介)或计算机可读介质(媒介),这些指令可用于对处理系统进行编程以执行本文陈述的任何特征。存储介质可以包括但不限于任何类型的盘,包括:软盘、光盘、dvd、cd-rom、微型驱动器和磁光盘、rom、ram、eprom、eeprom、dram、vram、闪存设备、磁卡或光卡、纳米系统(包括分子存储器ic)或者适于存储指令和/或数据的任何类型的介质或设备。

存储在任何一个机器可读介质(媒介)上的本发明的特征可以并入软件和/或固件中,用来对处理系统的硬件进行控制,并且用来使处理系统能够利用本发明的结果与其他机构进行交互。这样的软件或固件可以包括但不限于应用程序代码、设备驱动程序、操作系统和执行环境/容器。

本发明的特征还可以使用例如诸如专用集成电路(asic)和现场可编程门阵列(fpga)设备等硬件组件在硬件中实现。实现硬件状态机以执行在此描述的功能对于相关领域的技术人员将是显而易见的。

此外,可以使用包括一个或多个处理器、存储器和/或根据本公开的教导编程的计算机可读存储介质在内的一个或多个常规通用或专用数字计算机、计算设备、机器或微处理器,来方便地实现本公开的实施例。编程技术人员可以根据本公开的教导容易地准备适当的软件编码,这对软件领域的技术人员将是显然的。

尽管上面已经描述了本发明的各种实施例,但是应当理解,它们仅仅是作为示例而不是限制来提出的。本领域普通技术人员应该清楚的是在不脱离本发明的精神和范围的情况下可以进行形式和细节上的各种变化。

以上已经在功能构建块的辅助下描述了本发明,这些功能构建块示出了指定功能及其关系的执行。为便于描述,本文通常任意定义这些功能构建块的边界。只要所指定的功能及其关系被适当地执行,就可以定义替代的边界。因此,任何这样的替代的边界都在本发明的范围和精神内。

已经提供了本发明的上述描述,用于说明和描述的目的。不是旨在是穷尽性的或将公开的精确形式作为对本发明的限制。本发明的宽度和范围不应当受到上述示例性实施例中任意一个的限制。许多修改和变化对于本领域普通技术人员将是显而易见的。这些修改和变化包括所公开的特征的任何相关组合。对实施例的选择和描述是为了最好地解释本发明的原理及其实际应用,从而使得本领域的其他技术人员能够理解本发明的各种实施例以及适合于预期特定用途的各种修改。意图在于,本发明的范围由所附权利要求及其等同物限定。

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