基于圆柱面图像展开法在全向视觉上的应用

时间:2022-10-19 05:36:47

基于圆柱面图像展开法在全向视觉上的应用

摘要:针对实际中全向视觉的畸变图像,介绍了如何合理的处理全景摄像头拍摄的实际图像及构建正常图像的必要性。研究了单视点全景视觉成像系统的限制条件,再而提出了全景图的圆柱面展开形式,讨论并实现了两种不同的插值算法,同时计算完成了双曲面反射镜的拟合公式并最终通过带有CCD摄像头和双曲面反射镜的机器车实现。结果表明,图柱面展开法在显示目标信息方面优于全景图像,且更有利于进一步目标识别的实现,同时非常简洁与方便。

关键词:全向视觉;圆柱面图像展开;双曲面反射镜;插值算法;像素处理

中图分类号:TP391文献标识码:A文章编号:1009-3044(2011)28-6954-03

Application of Panoramic Vision Based on Unfolding of Cylindrical Image

WANG Wen-bo, HU Ya-qi

(The School of Electronic & Information Engineering, Jiaotong University, Xi'an 710049, China)

Abstract: Aiming at distort images caused by panoramic vision in real life, how to deal with distort images and the necessary of constructing normal images are introduced. The limitation of single point image system and the method of cylindrical image unfolding are come up. Then, two different methods of interpolation are discussed and realized. At the same time, the fitting formula of hyperboloid mirror is accomplished by calculating. The experiment is finally verified by machine car equipped with both CCD camera and hyperboloid mirror. The result shows that the method of cylindrical Image is superior to panoramic image on the showing target information, and conducive to the realization of further target identification. Besides, it's simple and convenient .

Key words: panoramic vision; cylindrical image unfolding; hyperboloid mirrot; method of interpolation; pixel processing

基于全景视觉系统的导航,在移动机器人的控制领域具有重要的作用。它往往应用于视频监视,全景摄像机,全景车载辅助系统等领域。

相比于普通视觉系统来说,全景视觉系统为移动机器人提供了更广阔的视角,可以实时捕捉360度范围内的所有图像信息。同时在目标跟踪过程中,由于不受视角的限制,因此,可以更快的捕捉到运动目标,并且不会因为目标移出视角范围而造成丢失。同时由于全景摄像头具有360度的视角,在实时跟踪过程中,摄像头不需要随目标移动,也不需要像多组摄像头一样还原图像要进行相应的拼接。这样简化了视觉系统的设计,同时也避免了机械结构寿命相对较短的问题。

1 圆柱面展开法处理畸变图像

1.1 圆柱面展开分析与设计

1.1.1 正常全景图构造的必要性

在大多数情况下摄像头所采集到的图像往往都不是正常的,如公交车后门的摄像头,图像或多或少都存在着一些畸变,但这没有什么大的影响,因为只要其能看见后面的人就行了,但是对于识别并要追踪物体的机器车而言,实际上,在对于机器车运动追踪物体时的准确定位追踪时,即后面的识别,以及追踪时都会带来处理上的麻烦。机器车的摄像的反射面是双曲面,这就意味着产生的图像具有双曲面的一些性质:当球体和摄像头的距离在一定范围内时,球体的大小几乎不发生变化,而当球体远离摄像机时,球体尺寸快速减小。同时当球体离得很近时,球体依旧很小,这就有悖与人们习惯的视觉感受。

如图1所示,以一颗橙色的球体为标志物,可以看到当球体和摄像头的距离在一定范围内时,球体的大小几乎不发生变化,而当球体远离摄像机时,球体尺寸快速减小。

同时因为其要对球体进行定位,必须要建立相应的笛卡尔坐标系,如果采用畸变的图像,也就意味着要采用相应畸变的坐标系。这样就变得再次复杂化了。而从人类习惯的视觉来考虑还是处理畸变能够更直观一些。

1.1.2 一般全景图构造解算设计

镜面形状是环绕 轴对称的。过z轴做切面,在得到的切面上建立二维坐标系。因为是单视点视觉系统,所以设系统有效视点为原点v(0,0),水平方向的坐标轴为r,竖直方向坐标轴为z。可以得到空间坐标点在二维空间的坐标图,令空间坐标点经过镜面上一点(r,z)反射时其入射光线延长线经过有效视点。其中r=,x,y是反射点(r,z)在三维空间中的坐标。有效视点到小孔成像点的距离为c,反射光线与z轴夹角为γ,入射光线与r轴夹角是θ。

由图2可知,对于入射光线与r轴夹角:

(1)

反射光线与r轴夹角:

(2)

反射点(r,z)的法线垂直于镜面的曲面,β是镜面法线与z轴的夹角,可以得到镜面方程满足:

(3)

图1中的夹角满足关系。相互带入可以得到:

(4)

进而得到:

(5)

公式(4)等号两边同时取正切值:

(6)

由正切函数和角公式可以得到:

(7)

将公式(1)公式(3)和公式(4)带入公式(7)得到:

(8)

整理得到:

(9)

方程的通解为:

(10)

(11)

式中:k ―― 标识了不同曲面的曲率,反映了曲面的形状

公式(10)和公式(11)为单视点成像系统的镜面约束方程,又简单的分析可以知道。当c>0且k=2时,该方程为平面反射镜表达式;当c=0 且k≥2时,该方程为圆锥面反射镜表达式;当c=0 且k>0时,该方程为球面反射镜表达式;当c>0 且k>0时,该方程为椭圆面反射镜表达式;当c>0 且k>2时,该方程为双曲面反射镜表达式。当c->∞,k->∞且c/k=h,h为一常量时,该方程为抛物面反射镜表达式。

2.1.3 基于图柱面展开的快速全景还原

由于一般双曲面的图像畸变处理还是比较复杂的。并且如果没有双区镜面的焦距等参数信息,因此找到真实目标点与全景图像像素点的对应关系不是很容易,直接测量焦距易造成较大的误差。在这里可以用到更简单方便的圆柱面展开快速全景还原算法。

和图2比较,可以将全景视觉系统采集到的图像有效区域简单抽象成图3所示模型。

由于发现在圆形全景图像的边缘处像素点足够多同时呈像与正常平面镜成像基本正常。因此可以将近似圆形的全景图像以圆心为中心等分为n个扇形。当扇形夹角足够小,扇形的弧足够短时,可以将扇形的弧近似看作线段,因此,将圆形的全景图沿其圆周展开。并且将扇形扩展为以圆半径R为长,弧长2πR/n为宽的矩形,得到全景图展开的柱面矩形图像。

如图4所示,当以全景图像圆周长2πR为宽,半径R为高将图像展开,得到矩形的柱状展开图,以展开图左下角为原点建立直角坐标系xo'y,展开柱状图为与坐标系第一象限,则柱状图内任意点可以表示为p'(x,y)。P(θ,R)和p’(x,y)满足如下换算关系

(12)

Y=R (13)

经过这样一个线性的映射处理,便得到了一个拉长后的矩形图像,如图5:

图5 圆柱面法还原图

实际上,由于双曲镜面在曲线突出处有盲点,即摄像头在曲线突出处有影像故而挡住了目标实现,因此实际上的即便图像是一个近似的环形,但这并不妨碍畸变图像的转换,只需h=Rmax-Rmin,而Rmin为盲区半径即可。其余处理仍然是上述的映射。即将原先的像素点颜色值赋予给新的坐标点处。

全景图像快速柱状图展开方法可以描述为:

1) 寻找全景图圆心坐标,确定其全景图半径长度Rmax以及盲区半径长度Rmin;

2) 计算矩形图像的宽和高,宽为w=2πRmax,高为h=Rmax-Rmin;

3) 设期望的图像高为h',对半径方向上的特征点进行采样,得到h到h'的映射关系h'

4) 构造一个矩形图像使其满足宽为w高为h’;

5) 通过公式(12)以及映射关系的逆运算得到,p'(x,y)到p(θ,r)的逆映射,并令全景图像圆心坐标为I(x0,y0),且通过I(x,y)=I(rsinθ+x0,rcosθ+y0)得到p'(x,y)在全景图中对应的像素点I(x,y)。

6) 将I(x,y)的颜色信息赋给p'(x,y),得到展开图像。

2.2 圆柱面展开构建正常全景图时像素点的处理

展开全景图后发现,其在半径上的非成比例的压缩使得图像纵向变的并不是标准的。y轴方向上,随着y值增大图像被拉伸,随着y值减小图像被压缩。这时,就得应用标定的方法。通过对y轴方向上进行采样,对采样点进行拟合,得出全景图半径方向上点的r坐标与矩形柱状图之间的映射关系。

具体方法为即将摄像头反光镜中的图像展开,应用黑白格图将其由上至下的长度一一测量出来,再对图像进行图像的相对调整,使其成为正常的图像。如图6。

令矩形展开图像素值为i,i=0,...,m,则其对应的全景图像中的像素点到全景图圆心的距离和盲区半径的差为R={ri}i=0,...,m,则有:

(14)

式中:

这时就要对像素进行填充,依照插值算法,有两种:临近插值和双线性插值。

最临近插值算法,即取I(x,y)对应的像素值。在全景图展开过程中,纵坐标取值越小,则其横坐标处可以作为取值点的像素点越少,而采用最临近插值算法,就会造成连续的像素,组成一个颜色单一的色块,可见虽然最邻近插值简单且直观,但得到的图像质量不高。

双线性插值算法,基本思路是通过Is(xs,ys)周围的像素点信息共同决定对应点的颜色信息。令I(x,y)是由浮点像素Is(xs,ys)取整得来的。

Is(xs,ys)的颜色信息可由其周围四个像素点计算得出。

令U=xs-x,V=ys-y

(15)

这样一来,Is(xs,ys)对应的矩形展开图上的像素点信息是由其周围四个像素点共同决定的。

其结果对比如图7。

图7是在摄像头采样分辨率为320×240的条件下进行结算的,可见双线性插值算法的结果要明显优于最临近插值算法,最临近插值算法易产生局部的色块,而双线系插值算法得到的图像更加平滑,相隔较远的像素之间的颜色过度较自然,尽量真实地反映了像素之间缺失的信息。更适合于图像跟踪算法使用。

2.3 应用于全向机器车

全向机器车的运动的控制中,其实验平台如图8,视觉系统主要为移动机器人提供两个控制变量,即运动方向和距离。而前面所述的全向柱面展开图的横纵坐标分别反映了这两个控制量。

当物体中心位于像素点I(x,y)时:

(16)

而d可以通过对纵轴进行标定得出距离的映射表。这样就可以直接应用到机器车的运动控制上了。

2 总结

对于双曲面反射镜全景视觉系统来说,直接通过反射镜面采集到的图像信息无论距离摄像头远近,信息都被过分压缩,不利于参与到基于图像信息的目标跟踪任务中去。从而提出将全景图像解算为圆柱面图像展开的快速解算方法,在降低解算复杂度的同时保证了柱面图的质量。同时,通过实测数据,证明在柱面图中进行目标跟踪,可以得到更多的图像信息,有利于图像跟踪。

在程序代码实现方面,对全景图解算部分的程序做了优化,大大减少运算量,提高了效率。

参考文献:

[1] Bradski G puter Vision Face Tracking For Use in a Perceptual User Interface[J].Intel Technology Journal,1998,17(8):790-799.

[2] Comaniciu D, Meer P.Mean Shift: A Robust Approach toward Feature Space Analysis[J].IEEE Transactions On Pattern Analysis And Machine Intelligence, 2002,24(5):603-619.

[3] Nayer S K. Omnidirectional Video Camera[J]. In Proceedings of the 1997 DARPA Image Understanding Workshop,1997,15(6):245-267.

[4] 于仕琪,刘瑞祯.学习OpenCV(中文版)[M].北京:清华大学出版社,2009:48-50.

[5] 曾吉勇,苏显渝.水平场景无畸变的折反射全景成像系统[J].光学学报,2003,23(9).

[6] 曾吉勇,苏显渝.水平场景无畸变的折反射全景成像系统[J].光学学报,2003,30(1).

[7] H M Deitel, P J Deitel.C++大学基础教程[M].张引,译.5版.北京:电子工业出版社,2006:30-35.

[8] 林锦国,钱厚亮,梅雪,等.双曲面折反射全景图像的柱面解算研究[J].计算机工程,2010,36(12):204-206.

[9] 徐玮,王炜,张茂军,等.一种基于凸曲面反射镜的柱面全景图像无缝快速生成系统[J].计算机工程与科学,2006,28(11):33-36.

上一篇:基于VB语言课程的案例教学法 下一篇:基于事件驱动模型的搜索引擎设计