环状全景图展开技术的研究
2021-04-29孟竹朴燕毛雅棋
孟竹,朴燕,毛雅棋
(长春理工大学 电子信息工程学院,长春 130022)
随着社会的发展,国家对于社会安全以及个人安全越来越重视,监控器在商场、马路、学校等公共场合越来越普及。摄像头也被应用在车辆定位、机器人导航等智能产业中。在早些年,市面上大部分都是普通的摄像头,其视场范围非常小,存在较大区域的视场死角。随着科技快速发展和摄像头的不断更新,逐渐看到了超广角的摄像机,即鱼眼镜头。鱼眼镜头一般可获取视场角大于等于180°的全景图,由于不符合人们的观察习惯,因此需要对全景图展开,但展开后的全景图畸变较大且不易校正。直到另一种新的全景图镜头出现,即折反射全景镜头。折反射镜头将围绕光轴360°范围的视场通过折射投影到折反射面内的环形区域,获得环状折反射全景图。环状全景图像可用于机器人导航、车辆定位、军事侦察、大型公共场所监控,马路监控等。近年来逐渐成为计算机视觉等领域的研究热点问题。
环状折反射全景透镜是利用反射镜将水平360°方向上物体的光线通过光学原理投影到二维平面上,从而获得环状的全景图。全景图像开始于“摄影学”领域。20世纪初,鱼眼镜头的超大广角的光学镜头就已经被设计出来了,应用于全景摄像领域。全景图像虽然获得了水平360°的视场,但存在一定的几何畸变。之后在数字图像应用中不断的进行畸变矫正、二维图像复原以及三维重建等研究,最终得到畸变较小的全景图。2003年四川大学苏显渝和曾吉勇等人[1]对折反射光学全景成像原理进行了解析,同时利用其成像原理进行了全方位图像柱面展开。全景展开图存在较大的几何畸变,不能将真正的全景图还原出来。
目前,获取全景图主要有三种方法[2]:图像拼接成像、鱼眼镜头成像和折反射全景成像。
图像拼接成像[3]虽然成像分辨力高,但是成像速度比较慢,拼接算法复杂且不满足单一视点约束,最大的问题是不满足实时性;鱼眼镜头成像可以获取大于180°小于360°的全景图。鱼眼镜头获取的全景图存在较大的桶形畸变,不易矫正且成像分辨率较低;折反射全景成像,成像原理简单、几何计算简单、基本满足实时性的要求,能够实时获取环形全景图,展开后仍旧出现几何畸变,但是畸变相比于鱼眼镜头较小。目前,由于移动机器人定位技术的快速发展,环状折反射全景图展开技术已经成为热点研究项目。
本文将传统的同心圆近似展开法进行改进,传统方法是将环状全景图像投影到圆柱表面,然后再进行展开。改进后的环状全景图展开法,是通过成像原理,直接利用三角函数将全景图直接展开,即三角函数展开法。得到的展开图通过MATLAB进行仿真,结果表明,改进后的环状全景图展开算法相对于传统方法得到的全景图成像速度快、成像分辨率更高,基本满足实时性的要求。
1 折反射全景成像镜头的基本原理
折反射全景成像镜头主要是由凸面反射镜、成像透镜以及感光元件组成,如图1所示。折反射全景成像技术是利用水平360°视场上的光线,通过凸面反射镜反射,反射到成像透镜,成像透镜折射到感光元件上,形成环状全景图像。由于获取的环状全景图像不符合人们的视觉习惯,因此需要将其展开为圆柱面二维平面图,即展开图,如图2所示。
图1 折反射全景成像镜头系统组成
图2 环状全景图展开
折反射镜头反射镜面选取:折反射全景成像镜头的成像系统,是利用系统中的反射镜将周围360°的物体光线汇集到反射镜上。由于成像系统的曲面反射镜的镜面不同,因此成像原理不同、复杂度不同以及制作成本高低不同。常见的成像系统的曲面反射镜分为球面、双曲面、抛物面、圆锥面、椭球面等类型[3-4],如图3所示。本文根据是否满足单一视点约束、成像复杂程度以及造价成本选取双曲面反射面。
图3 折反射镜头中反射镜的光路示意图
如图3所示,球面反射镜虽然制作成本较低散光较小,但是其不满足单一视点约束;抛物面反射镜与圆锥反射镜均满足单一视点约束,但是抛物面反射镜不具有小孔成像基本条件,因此其成像复杂,而圆锥反射镜制作成本较高且散光较大。双曲面镜是两个曲面镜相对形成的光学碗,位于双曲面周围物体上的光线通过反射与折射将其投影到二维平面,形成环状全景图像。双曲面镜视场范围大,满足单一视点约束条件。相对于其它镜面,其成本比较低、更具实用性。本文将选取双曲面折反射镜头(如图4所示)。但是由于该成像系统要求双曲面镜的焦点必须与摄像机光心重合,因此有一定的局限性。
图4 双曲面折反射镜头
2 全景图展开
目前,图像拼接法、鱼眼镜头和折反射全景成像是全景成像的三种主要方法。本章主要分析鱼眼镜头全景图展开法、传统双曲面折反射全景图展开法和改进后的全景图展开法,并进行对比分析。
2.1 图像拼接法
图像拼接获取全景图[5-6]有两种方法。一种方法,首先以相机光轴为轴,相机绕其旋转一周,获取水平平面内360°的场景图,然后将不同方向的场景图通过图像融合技术拼接起来,最后获取360°全景展开图。但是,这种方法会出现信息遗漏、重叠等问题,且算法复杂,运算量比较大。
另一种方法是利用多个相机同步拍摄不同方向的场景图像,然后将获得的场景图进行融合拼接成一幅完整的全景图。但是由于不同相机其光学中心不在同一平面内,因此该方法也不满足单一视点约束条件,不能通过正常的转换获取透视图,而且成本比较高、系统复杂[7]。图像拼接法虽然成像分辨率比较高,但算法复杂、运算速度慢,不能满足实时性的要求。
2.2 鱼眼全景图展开法
通过郑利平,徐刚强,李琳等人[8]研究鱼眼镜头展开可得知,鱼眼镜头一般是由数量较多的不同的透镜组合在一起的,由于光线在透镜中不同程度的折射,其视场比普通相机的视场范围大,一般能够获取视场大于180°的全景图像。由于其焦距比较短,因此是超广角的镜头。鱼眼镜头对透镜的要求很高,所以其制作成本比较高,成像分辨率也比较低,且系统比较复杂。
鱼眼镜头展开利用文献[9]中的方法进行展开。主要有五步。首先将鱼眼全景图分块处理,块数不宜过多,否则展开后畸变会更加严重,此处选择分为4块。
(1)将图5中(1)转为(2);该过程采用“滚轮式”。将已经分成4块的子图像进行图像转换,以第一块子图像为基准。
图5 鱼眼镜头展开图
(2)将图5中(3)转为(4);根据比例,按照线性“拉伸”的方法,将由坐标(x,y)通过公式(1)转化为(x0,y0):
(3)将图5中(4)转为(5);对步骤(2)中得到的坐标,进行一个水平“拉伸”就可获得子图像的展开图。
(4)重复步骤(1)、步骤(2)、步骤(3),依次获取子图像2、图像3、图像4展开图。
(5)将4幅子图像进行图像拼接,进而得到完整的鱼眼图像全景展开图。
本文在鱼眼镜头获取的图像库里随机选取一张照片,通过上述方法获取鱼眼镜头展开图(如图6(b)所示),其畸变很大,垂直方向压缩较大。对于距离较远的位置产生严重压缩,距离较近的位置失真严重,且存在一定的信息丢失。对于车辆导航以及机器人导航会产生一定影响,并且不能满足人们的视觉观察习惯。因此,本文选取折反射镜头。
图6 鱼眼镜头成像展开图
2.3 折反射全景图展开
传统的折反射全景图展开,首先将获取到的环状全景图投影到圆柱表面,然后进行展开得到圆柱面二维全景展开图。
折反射全景成像光学原理如图7所示。
图7 折反射全景成像光学原理几何分析
根据光学几何原理分析,可获得折反射全景成像的镜面约束条件为[10]:
当k>2且m>0时,该方程为双曲面反射镜。
如图8所示,为双曲面全景图成像系统。位于双曲面的一个焦点为C,则另一个焦点为C'。设两焦点所在直线为Y轴,垂直Y轴且过焦点C'为X轴。光线通过双曲面折射最终聚集于C'点,因此该系统的投影中心为焦点C'点。
图8 双曲面全景图成像系统
因为双曲面折反射全景系统是旋转对称的,下面分析将在XOY坐标系进行,则双曲面折反射全景成像方程表达式为:
其中,a、b为双曲面反射镜面参数。
2.3.1 展开前期准备工作
本文的双曲面折反射全景图的分辨率为1 600×1 200,在进行展开之前需要进行一定的准备工作,即环状全景图像中心点像素坐标(m0,n0)的选取、内径R0、外径R1以及展开后图像的大小。关于中心点像素坐标的获取,一种方法是当双曲面折反射全景成像系统固定不变时,全景图像的运算时不变,可通过类似摄像机标定的处理确定(m0,n0),以及内径R0,外径R1。相机标定的方法虽然比较简单,但是由于该系统的双曲面焦点应与相机光心重合,因此其误差比较大。另外一种方法是原新,王亮等人[11]所提到的Hough变换,该变换能够有效地检测出图像中的圆和直线。但是,需要较大的存储空间和处理时间。本文采用Hough变换方法。展开后图像的长W为圆环的外径所对应的周长,即:W=2πR1,宽H为圆环的宽度,即:
在环状全景图上任取一点(mi,ni)以及向量(Δmi,Δni),则可定义一条直线,全景图像中心点(m0,n0)与向量以比例因子ki成比例关系:
在给定两条或者多条半径所在直线,即可确定中心点的像素坐标。获取的(m0,n0)、以及内径R0、外径R1在后面的计算中可以直接用。
2.3.2 同心圆近似展开法
圆环状全景图展开,传统方法利用同心圆近似展开法[12-13],如图9所示,将得到的环状全景图利用光线逆跟踪原理投影到圆柱表面,最后将柱面展开得到全景展开图。
图9 全景图
设入射角为α的光线与双曲面相交于一点Q(x1,2c),则:
由式(4)、式(6)、式(7)可得光线经过反射镜面反射前后光路映射关系式为:
由图9(a)到图9(b)将运用光线跟踪原理逆投影法得到。设式(8)tan(β) =γ(tan(α)),根据光路逆跟踪映射法的原理可知,圆环状全景图和柱面投影图之间有映射关系:
式中,R是圆环状全景图的外径;f为相机焦距;d为投影圆柱的半径;H为投影圆柱高。即由图9(b)到图9(c)中Y'=H
所以,图像的径向展开映射关系为:
如图9(a),图9(c)所示,其内径为R0,外径为R1之间是环状全景图的有效信息,在圆环内任取以半径为r的圆环,如图9(a)所示中虚线表示的圆环,该虚线对应着图9(c)中的L',由同心圆近似展开法可得:
其中,k为圆环“拉直”时的系数;θ为双曲面圆环全景图极坐标系下的角度分量。
由式(11)、式(12)可得到双曲面圆环状全景图的极坐标表示为(R,θ),则圆环状全景图在直角坐标系下的坐标为:
由式(11)-式(13)可得到同心圆环近似展开法后向映射算法的坐标映射关系为:
由于环状全景图靠近内径部分压缩比较大,远离内径部分其几何畸变越大,因此为减小展开后的几何畸变,展开后的基线应取在环状全景图有效信息的中间位置。
2.4 改进后的三角函数展开法
传统的环状全景图展开法利用同心圆近似展开算法,该方法运算速度慢,展开后存在无效信息较多;改进后的全景图展开法,直接利用极坐标转化,使其减少了由环状全景图利用光线逆跟踪投影法,因此其运算速度变快,基本满足移动机器人实时定位导航,且分辨率明显提高。建立XOY坐标系,如图10所示。
图10 三角函数展开法
设双曲面环形全景图中虚线所代表的圆环其展开图如图10右图中的虚线所示。则:
过原点做一条射线,则展开后射线与X轴的正半轴的夹角为θ1,且与虚线所代表的圆环相交于一点P(x1,y1),则:
则利用三角函数展开法,即极坐标转化法进行展开:
3 实验及结果分析
将打印好的鉴别率图贴在墙壁上。然后准备实验装置(如图11所示),将双曲面折反射镜头的网线端口与电脑连接,并且将镜头连接12 V直流电源,然后在AroundViewMonitor软件中匹配镜头的IP地址,最终达到镜头与软件连接。获取环状全景图。最后,应用MATLAB软件进行仿真处理,并实现上述两种全景图展开方法。如图12所示,双曲面折反射全景图展开的两种方法:传统方法同心圆展开法(如图11(b)所示)、三角函数直接展开法(如图11(c)所示)。两者进行对比,三角函数展开法相对简单,计算量较小,运行速度快且展开后图像相对传统方法畸变较小,分辨率高。
图11 实验装置图
如图12所示,折反射环状全景图的分辨率为1 600×1 200,利用两种方法展开后如图12(b)、图12(c)所示。经过两种方法仿真结果可知,三角函数展开法相对同心圆近似展开法运行数度快,为7.249 s。对比两种方法图中的鉴别率图,三角函数展开法其畸变较小,分辨率较高,因此,三角函数展开法基本满足移动机器人的定位导航等各项功能。
图12 双曲面折反射全景图展开
仿真结果表明,双曲面折反射镜头所能看到的视野范围比较大,但畸变程度比较大,在后续的研究中将着重处理畸变校正。对于环状全景图展开法,改进后的三角函数展开法,其运行速度更快,图像分辨率更高,具有一定的优势。
4 结论
目前,对于超广角视图的展开以及矫正已成为热点话题。本文通过对全景图的获取及展开的研究中可以得到以下结论:
(1)本文将同心圆近似展开法进行改进。更加直接的将环状全景图展开,省略了同心圆近似展开法中的光线逆跟踪投影法,大大加快了运算速度,并且提高了分辨率,减小了畸变。通过在MATLAB软件仿真证实了以上说法。
(2)双曲面全景镜头相较于鱼眼镜头,其视角范围更大,展开后全景图更能符合人们的视觉观察习惯。