适用于墙装式全景摄像机的鱼眼图像的畸变校正方法
技术领域
本发明涉及数字图像处理技术领域,具体为一种适合于墙装式全景摄像机的鱼眼图像的畸变快速校正方法。
背景技术
目前,在安防监控领域,大量的摄像机被安装在政府机关、工厂、银行、宾馆、监狱、港口码头、城市主干道乃至居民小区、楼道等各种地点。而且,在视频会议领域、远程教育领域、机器人导航、军事侦查、倒车影像等其他领域,摄像机也有不断扩大的应用。随着科学技术的发展,安防监控摄像机的种类和功能越来越多,摄像机的像素越来越高,视场越来越大。其中墙装式全景摄像机有着最广泛的应用。
墙装式全景摄像机的结构如图1所示:全景摄像机安装于垂直建筑物上,拍摄的方向为水平方向或者略微向下(向上)倾斜;图2所示墙装式全景摄像机采用鱼眼镜头,摄像机的水平视场可以达到甚至超过180度。正是因为其具备大视场、无死角的特性,所以墙装式全景摄像机在安防监控领域有着最广泛的应用。但是墙装式全景摄像机的鱼眼镜头所成图像有严重畸变,影响了图像效果。图5即为墙装式全景摄像机的原始输出图像,可以看到图中的楼层和树木有明显的弯曲形变,所以在应用中,我们需要把鱼眼图像校正成“看起来”正常的图像,去除或减少畸变的影响,这个过程称之为畸变校正。
图像畸变校正是成像领域一个基础问题。研究者们将一幅完整的180度的鱼眼图像对应于一个三维的半球,如果用经度和纬度作为半球的坐标系,根据鱼眼图像的成像模型,鱼眼图像的每个像素点都可以对应到一个经纬度上。因此可以把鱼眼图像的畸变校正当成是把半球面映射到一个平面上的问题。研究者们提出了上百种映射方法,著名的有墨卡托投影、高斯‐克吕格投影。根据不同需求或约束,会得到不同的映射方法。这些映射方法大多有着较为复杂的运算量,对实现平台有着较高的要求,这样的方法实现起来难度较大,即使实现了,也会对***产生很大的延时,影响硬件性能。
因此,现有的鱼眼图像畸变校正方法并未真正考虑延时因素,实现这些方法一般会带来1帧量级的延时,这限制了这些算法的实际应用。无论哪种映射方法,都不能很好地在减少计算量和硬件延时的情况下保证畸变校正的质量。
发明内容
本发明为了解决现有的针对鱼眼全景图像的畸变校正方法存在的上述问题,提供了一种适合于墙装式全景摄像机的鱼眼图像的畸变校正方法。
本发明是采用如下技术方案实现的:
一种适用于墙装式全景摄像机的鱼眼图像的畸变校正方法,包括如下步骤:
(1)、全景摄像机输出的矩形的全景图像为原始输入图像,以原始输入图像为基准建立直角坐标系XOY:
以原始输入图像的左上直角点作为直角坐标系的原点O、水平边为X轴、垂直边为Y轴;原始输入图像的中心点为E(Xe,Ye),即为矩形对角线的交点;设原始输入图像的高度和宽度分别为H和W,则H和W分别等于原始输入图像的纵向和横向的像素值。
(2)、如图3所示,根据原始输入图像的畸变弯曲特性,确定原始输入图像的两个最大圆弧ADG和CFQ,其中A(L,0),D(0,H/2),G(L,H),C(W-L,0),F(W,H/2),Q(W-L,H),B(W/2,0),K(W/2,H);即两个最大圆弧ADG和CFQ关于点E对称,L是点A到原点O的距离。
定义:原始输入图像上的两条最大圆弧ADG与CFH之间的区域为校正目标图像ACQG;校正目标图像ACQG经畸变校正后的图像为矩形的校正后图像A′C′G′Q′,其中A′(0,0),C′(W,0),G′(0,H),Q′(W,H),D′(0,H/2),F′(W,H/2),B′(W/2,0),K′(W/2,H),E′(Xe,Ye),如图4所示;
(3)、对原始输入图像进行畸变校正就是将校正目标图像ACQG映射到校正后图像A′C′Q′G′上去,对于校正后图像A′C′Q′G′中的任何一行图像上的每一像素点,都与校正目标图像ACQG中的相应行上的每一像素点成一一对应关系,得到在每一行上校正目标图像ACQG与校正后图像A′C′Q′G′之间的比例关系后,再通过插值算法由校正目标图像ACQG计算得到校正后图像A′C′Q′G′,从而完成图像的畸变校正;具体方法如下:
(Ⅰ)、设最大圆弧ADG的圆心为I(Xi,Yi),如公式(ⅰ):
(Ⅱ)得出圆弧段AD的函数表达式:
由公式(ⅰ)求得最大圆弧ADG的圆心坐标I(Xi,Yi),设n为行序号,圆弧段AD上的坐标点为P(n)(Xp(n),Yp(n)),其中1≤n≤H/2、且n为整数,纵坐标由1到H/2递增,得出圆弧段AD坐标,如公式(ⅱ):
即得到了圆弧段AD的每一行横坐标;
(Ⅲ)、根据得出的圆弧段AD的每一行横坐标求出四分之一的校正目标图像ABED与四分之一的校正后图像A′B′E′D′之间每一行的校正系数r(n),如公式(ⅲ):
(Ⅳ)、根据求得的校正系数r(n),对四分之一的校正目标图像ABED进行校正:
设m为列序号,1≤m≤W/2、且m为整数;对于四分之一的校正后图像A′B′E′D′上的任意像素点,用坐标S′(m,n)来表示,其在四分之一的校正目标图像ABED上的对应点设为S(x,y),关系如公式(ⅳ):
由公式(ⅳ)可以求出四分之一的校正目标图像ABED和四分之一的校正后图像A′B′E′D′之间的每一像素点之间的一一对应关系;
(Ⅴ)、根据S点横坐标所在的位置进行一维图像插值法得到最终的四分之一的校正后图像A′B′E′D′的像素值;
(Ⅵ)、同理,得到四分之一的校正后图像B′C′F′E′、E′F′Q′K′、D′E′K′G′;即将校正目标图像ACQG进行畸变校正后成校正后图像A′C′Q′G′。
基于墙装式全景摄像机拍摄得到的全景图像本身具有的畸变特性,求出原始畸变图像(校正目标图像)上每行的每个像素点与校正后图像上的每行的每个像素点之间的形变一一对应关系,这种关系可以用一个校正系数r(n)来表示。在实际应用中,只需将每一行的校正系数r(n)(形变系数)存储在一个查找表里,然后在每一行计算开始时查表得到其形变系数,根据此形变系数做图像插值得到校正后图像。这种做法避免了大量的复杂的运算,减少实现平台的运算时间,从而减少了***的延时;同时也节省了计算资源,有利于在嵌入式平台上的实现。这种对应关系可以使垂直坐标保持不变,只对全景图像的水平方向进行畸变校正。
工作时,主要进行如下步骤:(1)根据原始鱼眼图像的畸变特性,标定出鱼眼图像最大圆弧在第一行上的列坐标;(2)根据(1)求得的坐标计算出最大圆弧的圆心坐标;(3)根据(2)求得的圆心坐标计算出最大圆弧在每一行上的列坐标;(4)根据(3)在每一行上求得的圆弧坐标和已知的图像宽度,计算出鱼眼图像在每一行上的校正系数;(5)根据(4)求得的校正系数,配合图像插值算法,逐行对图像进行水平方向的校正,得到畸变校正后的最终校正后图像。
具体使用时,对应不同类型的墙装式全景摄像机,其所拍摄到的图像的畸变特性有所不同。两条最大弯曲圆弧的端点、圆心坐标等会有偏差。在具体软硬件实现的时候,只需先根据所拍摄到的原始输入图像的畸变特性完成上述(1)、(2)、(3)、(4)步,将求得的校正系数作为一个查找表存储,然后在每一行计算开始时查找该表,再完成步骤(5)即可。
本发明设计合理,提出了一种无延时的鱼眼图像畸变快速校正方法,该方法能用尽量少的运算做畸变校正。实验结果表明所提出校正方法能有效减少畸变效果,其延时为1行的量级,该方法能方便地应用于各种嵌入式***中,在不增加***延时的情况下,对鱼眼镜头输出的图像畸变进行有效地校正还原。解决了由于墙装式全景摄像机的鱼眼镜头拍摄获得的180度全景图像存在较大的畸变,校正这种畸变时存在运算量大,在实际应用中硬件延时长,图像校正质量不佳等等问题。
附图说明
图1是全景摄像机的安装示意图。
图2是全景摄像机的俯视示意图。
图3是校正目标图像ACGQ的示意图。
图4是校正后图像A′C′G′Q′的示意图。
图5是畸变校正前的全景图像示意图。
图6是畸变校正后的全景图像示意图。
图中,1‐墙装式全景摄像机,2‐垂直建筑物,3‐地面。
具体实施方式
下面结合附图对本发明的具体实施例进行详细说明。
一种适用于墙装式全景摄像机的鱼眼图像的畸变校正方法,包括如下步骤:
(1)、全景摄像机输出的矩形的全景图像为原始输入图像,以原始输入图像为基准建立直角坐标系XOY:
以原始输入图像的左上直角点作为直角坐标系的原点O、水平边为X轴、垂直边为Y轴;原始输入图像的中心点为E(Xe,Ye);设原始输入图像的高度和宽度分别为H和W,则H和W分别等于原始输入图像的纵向和横向的像素值;实际应用中,原始输入图像的四个点都可以作为直角坐标系XOY的原点。
(2)、根据原始输入图像的畸变弯曲特性,确定原始输入图像的两个最大圆弧ADG和CFQ,其中A(L,0),D(0,H/2),G(L,H),C(W-L,0),F(W,H/2),Q(W-L,H),B(W/2,0),K(W/2,H);
对墙装式全景摄像机1所拍摄的180度全景图像首先分析观察其弯曲程度,由图5可以看出,两个最大圆弧为ADG和CFQ,其弯曲程度基本和原始输入图像的畸变程度一致。
定义:原始输入图像上的两条最大圆弧ADG与CFH之间的区域为校正目标图像ACQG;校正目标图像ACQG经畸变校正后的图像为矩形的校正后图像A′C′Q′G′,其中A′(0,0),C′(W,0),G′(0,H),Q′(W,H),D′(0,H/2),F′(W,H/2),B′(W/2,0),K′(W/2,H),E′(Xe,Ye)。
(3)、对原始输入图像进行畸变校正就是将校正目标图像ACQG映射到校正后图像A′C′Q′G′上去,对于校正后图像A′C′Q′G′中的任何一行图像上的每一像素点,都与校正目标图像ACQG中的相应行上的每一像素点成一一对应关系,得到在每一行上校正目标图像ACQG与校正后图像A′C′Q′G′之间的比例关系后,再通过插值算法由校正目标图像ACQG计算得到校正后图像A′C′Q′G′,从而完成图像的畸变校正;具体方法如下:
(Ⅰ)、设最大圆弧ADG的圆心为I(Xi,Yi),如公式(ⅰ):
(Ⅱ)得出圆弧段AD的函数表达式:
由公式(ⅰ)求得最大圆弧ADG的圆心坐标I(Xi,Yi),设n为行序号,圆弧段AD上的坐标点为P(n)(Xp(n),Yp(n)),其中1≤n≤H/2、且n为整数,也就是说圆弧段AD由H/2个像素点组成,纵坐标由1到H/2递增,得出圆弧段AD坐标,如公式(ⅱ):
即得到了圆弧段AD的每一行横坐标。
(Ⅲ)、根据得出的圆弧段AD的每一行横坐标求出四分之一的校正目标图像ABED与四分之一的校正后图像A′B′E′D′之间每一行的校正系数r(n);
对于校正后图像A′C′Q′G′中的第一行图像A′C′(如图4所示),其在校正目标图像ACQG中所对应的也应该是第一行图像AC,对于A′C′上的任意一个像素点,在AC中均存在一个相应的坐标与之一一相对应。因此在水平方向上看来,就相当于将校正目标图像ACQG的每一行进行了不同比例的水平拉伸,这个比例系数则称之为校正系数r,即计算出每一行校正目标图像ACQG被最大圆弧截断的长度与校正后图像A′C′Q′G′中相应行的宽度之间的比例系数,得到在该行上校正目标图像ACQG与校正后图像A′C′Q′G′之间的比例关系。如公式(ⅲ):
(Ⅳ)、根据求得的校正系数r(n),对四分之一的校正目标图像ABED进行校正:
对于四分之一的校正后图像A′B′E′D′中的每一行上的每个像素点,都是通过四分之一的校正目标图像ABED中最大圆弧ADG与CFH之间的每一行上的每个像素点一一对应而来。在水平方向看来,就相当于将四分之一的校正目标图像ABED逐行进行了水平拉伸。以第一行为例,图4中A′B′中的第一个像素点即对应图3中AB的第一个像素点,而A′B′的第二个像素点的对应点则是在AB第一点的基础上加上r(1);A′B′的第三个像素点的对应点则是在AB第一点的基础上加上r(2);以此类推。
设m为列序号,1≤m≤W/2、且m为整数;对于四分之一的校正后图像A′B′E′D′上的任意像素点,用坐标S′(m,n)来表示,其在四分之一的校正目标图像ABED上的对应点设为S(x,y),关系如公式(ⅳ):
由公式(ⅳ)可以求出四分之一的校正目标图像ABED和四分之一的校正后图像A′B′E′D′之间的每一像素点之间的一一对应关系。
(Ⅴ)、由式(ⅳ)可知,对应点的纵坐标保持不变,只做行坐标的校正。但是对应的四分之一的校正目标图像ABED上的S点的横坐标不一定是整数,经常会落在两个像素之间,所以根据S点横坐标所在的位置进行一维图像插值法得到最终的四分之一的校正后图像A′B′E′D′的像素值。插值方法可以选用最近邻插值、线性插值或立体插值等等方法。所述插值方法为本领域技术人员所公知的,插值法是用来计算非整数点位置的像素值,利用邻近整数点位置的像素值进行插值得到。
(Ⅵ)、同理,得到四分之一的校正后图像B′C′F′E′、E′F′Q′K′、D′E′K′G′;即将校正目标图像ACQG进行畸变校正后成校正后图像A′C′Q′G′。
通过上述方法提出的针对墙装式全景摄像机采集到的180度全景图像所进行的畸变校正。虽然只在水平方向上进行校正,仍然能够有效去除校正鱼眼图像的畸变,同时还保持鱼眼图像原有的水平成像视野180度的优势。如图6所示为进行畸变校正后的全景图像,与图5中发生明显变形弯曲的楼层和树木相比,畸变校正后,楼层和树木的弯曲变形得到了明显的纠正改善。而且,本发明提出的算法几乎没有延时,简单有效,计算量小,非常容易集成到摄像机硬件***中,进而实现全景图像的实时校正输出。