基于全景高速球一体机的全景图像校正算法
技术领域
本发明主要涉及到数字图像处理领域,具体为一种基于全景高速球一体机的全景图像校正算法。
背景技术
目前,在安防监控领域,大量的摄像机被安装在政府机关、工厂、银行、宾馆、监狱、港口码头、城市主干道乃至居民小区、楼道等各种地点。而且,在视频会议领域、远程教育领域、机器人导航、军事侦查、倒车影像等其他领域,摄像机也有不断扩大的应用。然而,随着摄像机的大规模普及应用,传统摄像机的不足之处也日益显现,由于拍摄视角范围有限,传统摄像机只能监控前方某一固定角度空间内的场景,存在监控盲区和监控死角,而很多重要场所都要求对180度视角范围内的场景进行持续监视,这种情况下则需要安装多个传统摄像机。近年来,随着视频监控技术的发展,利用鱼眼镜头获取180度全景图像的技术越来越成熟。所谓180度全景图像,指的是在水平方向对180度视角范围内的场景拍摄所成的图像,由于是采用鱼眼镜头成像,图像会发生畸变。虽然180度全景图像满足了大视角范围内成像的需求,能够得到180度视角范围内的所有景物,但由于受图像分辨率的限制,对图像中某些景物的细节方面表现不足。如图1(a)所示为全景摄像机拍摄得到的180度全景图像,图中白框区域中有一辆小轿车,若想要对这辆车进行重点凝视观察,则只能将该区域的图像进行放大,如图1(b)所示,但这样也只能看到一个模糊的轿车图像,无法达到实际监控的需要。因此,仅仅利用单一的180度全景图像仍然无法满足安防需求。
为克服上述缺陷,出现了全景摄像机与高速球相配合的全景高速球一体机。如图2所示为全景高速球一体机实物图,图3所示为其结构示意图,全景摄像机1用以拍摄180度全景图像,高速球2则用以对全景图像中感兴趣的区域进行重点的凝视观察。由于高速球能够进行变焦拍摄,因此对全景图像中细节缺失模糊不清的景物能够拍摄出清晰的图像。如图4(a)所示,对于图1(a)中白框区域内的图像,通过高速球能够拍摄到清晰的图像,甚至连汽车的车牌号都能观察清楚,如图4(b)所示。然而,高速球只能在水平360度方向以及垂直180度方向上旋转,而全景摄像机又位于高速球的上端,若将全景摄像机水平放置进行拍摄的话,180度视角范围内的某些场景则无法被高速球拍摄到,存在凝视死角。因此,需要将全景摄像机向重力方向倾斜,使得拍摄的180度视角范围内的所有景物都能够被高速球拍摄到。由于全景摄像机向重力方向倾斜,拍摄得到的全景图像在水平方向会发生较大的畸变,针对全景高速球一体机拍摄得到的全景图像中存在的这种畸变,如何进行有效地校正还原,使之符合正常的人眼观察习惯,成为急需解决的问题。
发明内容
本发明为解决目前全景高速球一体机中全景摄像机向重力方向倾斜拍摄,获得的180度全景图像存在较大的畸变的技术问题,提供一种基于全景高速球一体机的全景图像校正算法。
本发明是采用以下技术方案实现的:一种基于全景高速球一体机的全景图像校正算法,包括如下步骤:
步骤一对原始输出图像进行垂直方向的畸变校正:
以图像的左上角为坐标原点O,水平方向为X轴,垂直方向为Y轴,建立二维坐标系;设垂直校正图像中的第一个列图像EE’在原始输出图像中对应于第一个圆弧图像ACA’,对于第一个列图像EE’上的任意一个像素点P,第一个圆弧图像ACA’上存在一个像素点P’与之相对应;由于只在垂直方向上进行畸变校正,相对应的两个像素点的纵坐标值相同;对于原始输出图像中无法映射到垂直校正图像中的OA,其长度L称为垂直畸变冗余长度;
对于垂直校正图像中的任意一个列图像FF’,假设其对应于原始输出图像中的圆弧图像BDB’,列图像FF’上的像素点F(Xf,Yf)与圆弧图像BDB’上的像素点B(Xb,Yb)相对应;假设列图像FF’中像素点的横坐标值为w,即Xf=w,通过推导计算可得:
其中,W为图像的宽度,L为垂直畸变冗余长度;根据式(1)求得的像素点B的坐标值,可以求出圆弧BDB’所在圆的半径R为:
其中,W为图像的宽度,H为图像的高度;
对于列图像FF’上的任意一像素点q(Xq,Yq),假设其对应于圆弧图像BDB’上的像素点q'(X0,Y0);根据求得的圆弧BDB’所在圆的半径R,可推导计算出像素点q’的坐标值为:
按照上述方法,按列遍历垂直校正图像,计算出每一列图像中的像素点所对应于原始输出图像中圆弧图像上的像素点,从而得到整幅图像所对应的像素值,实现全景图像在垂直方向上的畸变校正;
步骤二基于垂直畸变校正后的全景图像在水平方向上进行畸变校正:
将进行了上述垂直畸变校正后的全景图像称为垂直校正图像,将水平畸变校正后的全景图像称为水平校正图像,以两幅图像的左上角为坐标原点,以水平方向为X轴,垂直方向为Y轴,分别建立二维坐标系;在水平校正图像中,任意一个行图像都与垂直校正图像中水平方向上的一个圆弧图像相对应;由于只在水平方向上进行畸变校正,相对应的两个像素点的横坐标值相同;
水平校正图像中第一个行图像MM’与垂直校正图像中第一个圆弧图像GIG’相对应,同样地,对于垂直校正图像中无法映射到水平校正图像中的OG,其长度L'称为水平畸变冗余长度;对于水平校正图像中的任意一个行图像NN’,假设其对应于垂直校正图像中的圆弧图像SJS’,NN’上的像素点k(Xk,Yk)与SJS’上的像素点k'(X1,Y1)相对应;假设行图像NN’中像素点k的纵坐标值为h,即Yk=h,通过推导计算可得圆弧图像SJS’所在圆的半径R'为
其中,W、H分别为两幅图像的宽度和高度,L'为水平畸变冗余长度;根据求得的圆弧图像SJS’所在圆的半径R',可计算求得像素点k'的坐标值为:
按照上述方法,通过按行遍历水平校正图像,最终能够得到整幅图像所对应的像素值,实现全景图像在水平方向上的畸变校正,整个图像就完成校正。
图11为本发明所述的校正原理图。基于全景高速球一体机拍摄得到的全景图像本身具有的畸变特性,首先对全景图像进行垂直方向的畸变校正,建立垂直校正目标图像上的列图像与原始全景图像垂直方向上发生畸变的圆弧图像之间的对应关系,将圆弧图像上的像素点映射赋值给列图像上的像素,从而实现全景图像在垂直方向的畸变校正。对全景图像垂直方向进行畸变校正后,再基于垂直校正后的全景图像,采用相同原理,建立水平校正目标图像上的行图像与垂直校正后全景图像水平方向上发生畸变的圆弧图像之间的对应关系,将圆弧图像上的像素点映射赋值给行图像上的像素,从而实现对全景图像在水平方向的畸变校正。按照上述算法,按列遍历垂直校正图像,计算出每一列图像中的像素点所对应于原始输出图像中圆弧图像上的像素点,从而便能够得到整幅图像所对应的像素值,实现全景图像在垂直方向上的畸变校正;通过调整垂直畸变冗余长度L的大小,能够实现对全景图像在垂直方向的畸变校正程度的调节控制。同样地,通过调整水平畸变冗余长度L’的大小,能够实现对全景图像在水平方向的畸变校正程度的调节控制。
本发明通过上述算法很好的校正了由于全景高速球一体机中全景摄像机向重力方向倾斜拍摄所导致的全景图像发生的畸变,使之符合正常的人眼观察习惯。同时,本发明所述算法简单有效,计算速度快,便于集成到摄像机硬件系统中,进而实现全景图像的实时校正输出。
附图说明
图1(a)是本发明所述全景摄像机拍摄的180度全景图像,图1(b)是图1(a)中框内的细节放大图。
图2(a)、(b)、(c)是本发明所述全景高速球一体机实物图。
图3是本发明所述全景高速球一体机结构示意图。
图4(a)是本发明所述高速球拍摄的凝视放大图像,图4(b)是图4(a)中框内的细节放大图。
图5是本发明全景摄像机平视拍摄的180度全景图像。
图6是本发明所述进行垂直畸变校正前的全景图像示意图。
图7是本发明所述进行垂直畸变校正后的全景图像示意图。
图8是本发明所述进行水平畸变校正前的全景图像示意图。
图9是本发明所述进行水平畸变校正后的全景图像示意图。
图10是采用本发明方法对对图1进行畸变校正后的全景图像。
图11是本发明所述图像校正算法的原理图。
1-全景摄像机2-高速球。
具体实施方式
一种基于全景高速球一体机的全景图像校正算法,包括如下步骤:
步骤一对原始输出图像进行垂直方向的畸变校正:
以图像的左上角为坐标原点O,水平方向为X轴,垂直方向为Y轴,建立二维坐标系;设垂直校正图像中的第一个列图像EE’在原始输出图像中对应于第一个圆弧图像ACA’,对于第一个列图像EE’上的任意一个像素点P,第一个圆弧图像ACA’上存在一个像素点P’与之相对应;由于只在垂直方向上进行畸变校正,相对应的两个像素点的纵坐标值相同;对于原始输出图像中无法映射到垂直校正图像中的OA,其长度L称为垂直畸变冗余长度;
对于垂直校正图像中的任意一个列图像FF’,假设其对应于原始输出图像中的圆弧图像BDB’,列图像FF’上的像素点F(Xf,Yf)与圆弧图像BDB’上的像素点B(Xb,Yb)相对应;假设列图像FF’中像素点的横坐标值为w,即Xf=w,通过推导计算可得:
其中,W为图像的宽度,L为垂直畸变冗余长度;根据式(1)求得的像素点B的坐标值,可以求出圆弧BDB’所在圆的半径R为:
其中,W为图像的宽度,H为图像的高度;
对于列图像FF’上的任意一像素点q(Xq,Yq),假设其对应于圆弧图像BDB’上的像素点q'(X0,Y0);根据求得的圆弧BDB’所在圆的半径R,可推导计算出像素点q'的坐标值为:
按照上述方法,按列遍历垂直校正图像,计算出每一列图像中的像素点所对应于原始输出图像中圆弧图像上的像素点,从而得到整幅图像所对应的像素值,实现全景图像在垂直方向上的畸变校正;如图6所示为进行垂直畸变校正前的全景图像示意图,称为原始输出图像;图7所示为垂直方向畸变校正后的全景图像示意图,称为垂直校正图像。对原始输出图像进行畸变校正的实质就是将原始输出图像中的像素映射到垂直校正图像上去,对于原始输出图像中的垂直方向而言,成像造成的畸变就是使场景在垂直方向发生弯曲变形,产生一定的弧度,越往图像边缘,产生的弧度就越大。因此,在垂直方向进行图像校正实质上就是使这些发生弯曲的场景变回垂直。本发明假设校正后图像的大小不变,对于垂直校正图像中的任何一列图像,都与原始输出图像中的一条圆弧图像相对应,因此列图像与圆弧图像上的像素也存在相互对应的关系。通过按列遍历整幅垂直校正图像,算出每一个列图像在原始输出图像中所对应的圆弧图像,再找到它们上面像素点之间的对应关系,进而就能得到整个垂直校正图像所对应的像素值,从而完成图像的畸变校正。具体算法如下所示:
如图6、7,假设原始输出图像与垂直校正图像的高度和宽度都分别为H和W,对于垂直校正图像中的第一个列图像EE’,其在原始输出图像中所对应的也应该是第一个圆弧图像ACA’,对于EE’上的任意一个像素点P,在ACA’中存在像素点P’与之相对应。由于只对图像进行垂直方向的校正,即把原始输出图像中在垂直方向发生畸变的圆弧图像还原成垂直直线图像,而由于校正后图像的高度不变,在水平方向看来,就相当于将图像逐行进行了水平拉伸。因此,垂直畸变校正后,发生变化的只是像素点的横坐标值,纵坐标值不会改变,即像素点P与像素点P’的纵坐标值相同。对于原始输出图像中无法映射到垂直校正图像中的OA,其长度L称为垂直畸变冗余长度,如图6所示。
步骤二基于垂直畸变校正后的全景图像在水平方向上进行畸变校正:
将进行了上述垂直畸变校正后的全景图像称为垂直校正图像,将水平畸变校正后的全景图像称为水平校正图像,以两幅图像的左上角为坐标原点,以水平方向为X轴,垂直方向为Y轴,分别建立二维坐标系;在水平校正图像中,任意一个行图像都与垂直校正图像中水平方向上的一个圆弧图像相对应;由于只在水平方向上进行畸变校正,相对应的两个像素点的横坐标值相同;
水平校正图像中第一个行图像MM’与垂直校正图像中第一个圆弧图像GIG’相对应,同样地,对于垂直校正图像中无法映射到水平校正图像中的OG,其长度L'称为水平畸变冗余长度;对于水平校正图像中的任意一个行图像NN’,假设其对应于垂直校正图像中的圆弧图像SJS’,NN’上的像素点k(Xk,Yk)与SJS’上的像素点k'(X1,Y1)相对应;假设行图像NN’中像素点k的纵坐标值为h,即Yk=h,通过推导计算可得SJS’所在圆的半径R'为
其中,W、H分别为两幅图像的宽度和高度,L'为水平畸变冗余
长度;根据求得的圆弧图像SJS’所在圆的半径R',可计算求得像素点k'的坐标值为:
按照上述方法,通过按行遍历水平校正图像,最终能够得到整幅图像所对应的像素值,实现全景图像在水平方向上的畸变校正,整个图像就完成校正。基于垂直畸变校正后的全景图像,采用与上述相同的原理,在水平方向也对全景图像进行畸变校正。如图8所示为进行水平畸变校正前的全景图像结构示意图,即为进行了垂直畸变校正的垂直校正图像;图9所示为水平畸变校正后的全景图像示意图,称为水平校正图像。水平校正图像中,任意一个行图像都与垂直校正图像中水平方向上的一个圆弧图像相对应。由于只对图像进行水平方向的校正,即把垂直校正图像中在水平方向发生畸变的圆弧图像还原成水平直线图像,在垂直方向看来,就相当于将图像逐列进行了垂直拉伸。因此,水平畸变校正后,发生变化的只是像素点的纵坐标值,横坐标值不会改变。
通过以上本发明提出的针对全景高速球一体机采集到的180度全景图像所进行的垂直和水平方向的畸变校正算法,能够实现将180度全景图像校正还原为符合人眼观察习惯的图像。如图10所示为进行畸变校正后的全景图像,与图1(a)中发生明显变形弯曲的公路和河流相比,畸变校正后,公路和河流的弯曲变形得到了明显的纠正改善。通过调整垂直畸变冗余长度L和水平畸变冗余长度L'的取值大小,能够对全景图像的畸变校正程度进行有效地调节。而且,此算法仅仅根据全景图像本身具有图像特点进行畸变校正,与现有的柱面投影法、平面投影法等空间投影算法相比,本发明提出的算法更加简单有效,计算速度更快,更容易集成到摄像机硬件系统中,进而实现全景图像的实时校正输出。