机器视觉学习笔记(三)-- 图像采集(镜头)

2.2  镜头

        镜头是一种光学设备,用于聚集光线在摄像机内部成像。镜头的作用是产生锐利的图像,以得到被测物的细节。不同的镜头产生不同的成像几何,以及镜头的主要像差,像差会影响图像的质量,同时也会影响算法的相关精度。

2.2.1  针孔摄像机

        如果我们忽略光的波的特性,我们可以将光看作在同类介质中直线传播的光线。图2.17表示了针孔摄像机成像的模型。左端物体在右边像平面上成像。像平面相当于一个方盒子的一个面,在这个面的对面是针孔所在的面,针孔相当于投影的中心。针孔摄像机所成的像为物体的倒像。

        从投影中心左右两侧的相似三角形我们可以得到像的高度h':

h'=h{\frac{c}{s}}

        其中h为物体高度,s为物体到投影中心的距离,c为像平面到投影中心的距离。c被称为摄像机常数或主距。从等式(2.2)可以看出,增加主距c,像高h'也会增加,反过来,如果增加物距s,则h'就会减小。

2.2.2  高斯光学

        针孔摄像机模型基本可以满足通过摄像机标定来测量被测物的要求。但是这种简单模型不能反映真实的情况,由于针孔太小,只有极少量的光线能够通过小孔到达像平面,因此必须采用非常长的曝光时间以得到亮度足够的图像。因此真正的摄像机使用镜头收集光线。镜头通常由一定形状的玻璃或塑料构成。玻璃或塑料的形状决定了镜头可能使光线发散或会聚。

        镜头是基于折射原理构造而成的。光线在一定介质中的传播速度v,小于在真空中的传播速度c,其比值n=c/v称作此介质的折射率。在常温常压下,空气的折射率为1.0002926,接近于1.不同的玻璃的折射率大致在1.48~1.62之间。

        假设第一种介质折射系数为n1,第二种介质折射系数为n2,当光线以入射角\alpha 1到达介质一与介质二分界面时,光线将分成折射光与反射光,其中入射角\alpha 1是入射光线与分界面法线的夹角。对于要讲述的镜头,我们只关注折射光。如图2.18所示,折射光以出射角\alpha2传输通过第二种介质,其中出射角\alpha2是出射光线与分界面法线的夹角。这两个角度之间的关系可以用折射定律表示:

n_{1}sin\alpha_{1}=n_{2}sin\alpha_{2}

        折射率n实际上取决于波长n=n(\lambda)。白光是由多种不同波长的光组成,因此当白光折射时会散成多种颜色,这种效果称作色散。

        从折射定律表达式可以看出折射定律是非线性的。显然,与针孔模型不同,镜头成像是非线性过程。也就是说同心光束通过镜头后将不能完全汇聚在一点。当入射角\alpha很小时我们可以用\alpha代替sin\alpha,通过这个近轴近似,我们可以得到线性的折射定律:

n_{1}\alpha_{1}=n_{2}\alpha_{2}

        根据近轴近似可以得到高斯光学,在高斯光学中同心光束通过由球面透镜构成的镜头后又汇聚到一点。高斯光学是理想化的光学系统,所有与高斯光学的背离均称做像差。光学系统设计的目标就是使得镜头的结构在满足高斯光学基础上使入射角足够大,以满足实际应用。

        现在看看光线通过一个镜头将会发生什么。为了达到这一目的,可以将镜头看作是由两个球心位于同一直线的折射球面组成,两个球面之间为同一种均匀介质。镜头外两侧介质也是相同的,镜头具有一定厚度。如图2.19所示的模型我们称之为厚透镜模型[9, 10],我们将要讨论的就是这样一种模型。注意光线是从左向右传播的,所有水平间距均按光的防线测量,因此所有在镜头前的水平间距为负。而且,所有向上的间距为正,向下的间距为负:

        位于镜头前方的物体在镜头后方成像。镜头有两个焦点F和F',在镜头一侧的平行于光轴的光线经过镜头后汇聚到另一侧的对应焦点。主平面P和P'可以由镜头一侧入射的平行光线与另一侧过交点的对应光线的交点得到,该平面与光轴垂直。相应的焦点F和F'与主平面P和P'的距离为f和f'。由于镜头两侧的介质相同,因此f=-f',f'为镜头焦距。物体到主平面P的距离为物距s,而像到主平面P'的距离为像距s'。图2.19中虚点线表示的是光轴,为镜头两个折射球面的旋转对称轴。折射球面与光轴的交点为顶点V和V'。节点N和N'的特点是当镜头两边介质相同,节点N和N'为主平面与光轴的交点。如果介质不同,节点就不在主平面上。

        在上述定义下,厚镜头成像法则如下:

        1)镜头前平行于光轴的光线过F';

        2)过F点的光线通过镜头后平行于光轴;

        3)过N点的光线也会过N'点,并且通过镜头之前与通过镜头之后与光轴夹角不变。

        从图2.19可以看出,3条光线聚于一点,由于像的几何尺寸完全取决于F,F'、N和N',这四个点称作镜头的基本要素。注意,对于平行于主平面P和P'的物面上的所有物点,其对应的像点也会在平行于P和P'的平面上,这个平面叫做像平面。

        与针孔摄像机一样,我们同样可以利用相似三角形来确定物像之间的基本关系。可以看出h/s = h'/s',类似前向的等式我们可以得到:

h'=h{\frac{s'}{s}}

        定义放大系数为\beta =h'/h,可以得到\beta =s'/s,利用光轴上下两侧的相似三角形,可以得出h'/h = f/(f-s)h'/h = (f'-s')/f',这两个三角形分别位于镜头两侧,并且光轴是它们中的一条公共边,F和F'是其中的一个顶点,同时正负符号根据前面多提到的符号定义。因此,当f=-f'可以推出:

\frac{1}{s'}-\frac{1}{s}=\frac{1}{f'}

        这个等式非常有用,从中可以推出当物距s变化时,通过镜头的光线将相交于何处,即物体将于何处成像。例如物体靠近镜头,也就是s的绝对值变小,像距s'就会变大;同理,如果物距变大,像距就会变小。所以,聚焦过程就相当于改变像距的过程。其极限情况非常有意思:如果物距无穷远,所有的光线都会成为平行光,此时s'=f'。从另一方面讲,如果把被测物置于F,像平面将在无穷远处。如果继续把物体向镜头移动使其位于F之内,将看到光线在成像端发散,上面所推出的公式中s'的正负号发生变化,其像为在物体同一侧的虚像,如图2.20所示,这就是放大镜的主要原理。

        从\beta =h'/h= f/(f-s)=f'/(f'+s)可以得出,对于相同物距s,随着焦距f'的增加,放大倍率\beta也会增加。

        实际的镜头系统远远比讨论的厚镜头要复杂的多。为了减少像差,通常镜头由多个球心位于同一光轴上的光学镜片组成。图2.21是一个真实的镜头的例子。尽管真实的镜头更加复杂,一个镜头系统仍可以看作是一个厚镜头,因此也可以用它的主要元素来描述。图2.21表示了焦点F和F',节点N和N'及主平面的位置。请注意,在这个镜头中,物方焦点F位于第二个镜片内部。而且N'在N的前面。

        真实的镜头由一定孔径大小限制。为了控制可以到达像平面光线的多少,镜头系统中一般都设计有可变光阑。在镜头筒上有个环可以用来调整光阑大小。在图2.21中以D来表示系统的光阑。镜头的其他组成部件,比如说镜筒也会限制到达像平面光线的总量。这些因素统称为光阑,其中最大程度限制通光量的光阑称作镜头的孔径光阑。需要注意的是并不是最小的光阑即为镜头的孔径光阑,因为在光穿过镜头时,光阑前后的镜片可能放大或缩小光阑的实际尺寸。因此,镜头中相对较大的光阑也可能成为镜头系统的孔径光阑。

        基于孔径光阑,定义镜头系统中两个重要的虚拟光阑:入瞳与出瞳。入瞳决定镜头入口可以接收光线的面积。入瞳是孔径光阑被前面的光学系统在物方所成的像,通常为虚像。入瞳是物面上所有各点发出的光束的共同入口,通过入瞳的光线可以进入到镜头系统中,在镜头中传播并通过镜头;同样,出瞳是孔径光阑被其后面的光学系统在像方所成的像,通常也为虚像。只有能通过出瞳的光线才能通过整个光学系统。在图2.21中入瞳和出瞳以ENP和EXP表示。

        可以从同心光束中挑选出一条通过镜头系统的重要光线——主光线。主光线过孔径光阑中心,其在物方和像方的对应光线或光线延长线也分别过入瞳和出瞳的中心,在图2.22中主光线的实际光路以粗实线表示,过入瞳中心Q和出瞳中心Q'的主光线的延长虚拟光路以粗虚线表示。在这个镜头中,主光线真实的传播路径非常靠近Q点。图2.22也画出了过入瞳和出瞳边缘的光线,以细线表示,与主光线一样,实际光路以实线表示,而过入瞳和出瞳边缘的延长虚拟光路则以虚线表示。这些光线形成了进、出镜头系统的光锥,从而决定了能够到达像平面的光通量。

        镜头的另外一个重要的参数是光瞳的放大率\beta_{p}=d_{EXP}/d_{ENP},也就是出射光瞳的直径与入射光瞳直径之比,\beta_{p}的大小也与物方和像方视场角相关:

\beta_{p}=\frac{tan\omega }{tan\omega'}

        需要注意通常情况下\omega'\omega不相等,仅在\beta_{p}=1时两者才一致。

        在上述基础上来讨论针孔模型中的光线相当于高斯光学中的主光线。在针孔模型中仅有一个投射中心,而在高斯光学中有两个投射中心,一个是针对物方光束,位于入射光瞳,另一个是针对像方光束,位于出射光瞳。此外,在通常情况下,高斯光学中\omega'\neq \omega,而在针孔摄像机中\omega' =\omega。为了使二者一致,我们必须保证在物方和像方的视场角一样,特别是物方视场角\omega必须保持不变,因为它仅取决于被测物的几何尺寸。此外要建立一个单一投射中心系统,由于\omega必须保持不变,因此只能通过将出瞳上的投射中心移动到入瞳上的投射中心来实现这一目的,如图2.23所示,同时我们还必须将像平面虚拟地移到与入瞳投射中心Q的距离为c的点上,而保持像的大小不变。如2.21节所述,c成为摄像机常数或主距。这时就有了新的像方视角\omega'',根据tan\omega=tan\omega'',可以得到h/s=h'/c,也就是:

c=\frac{h'}{h}s={\beta}s=f'(1-\frac{\beta}{​{\beta}_{p}})

        3.9节中论述了如何通过摄像机标定得到主距c。需要注意的是主距与焦距f'可能不同。在我们的例子中相差10%左右。c取决于物距s。从上述的公式中可以看出c同时取决于像距s'。因此,如果摄像机聚焦于另一个平面必须重新标定。

2.2.3  景深

        到目前为止,讨论都是基于所有的光线聚于一点。对于物距s,像平面一定在像距为s'的像平面IP上。因此只有位于垂直于光轴,与像平面平行的平面上的被测物才能聚焦。不在这个对焦面上由被测物所成的像将是模糊的。对于到摄像机的距离比到焦面更远的,物距为s_{f}的物面上的物体,如图2.24中所示,将成像于IP之前,像距为s_{f}'。同样,对于到摄像机的距离比对焦面近的,物距为s_{n}的物面上的物体,将成像于IP之后,像距为s_{n}'。在这两种情况下,物点在像平面IP上都将成一弥散圆斑,直径分别为d_{f}'d_{n}'

        通常情况下希望即时被测物所在平面不完全与像平面平行,也能够得到锐利的图像。由于用于捕获图像的传感器每个像素尺寸有一定大小,因此如果弥散圆斑的尺寸与像素尺寸差不多,则可以认为是聚焦的。目前的像素尺寸在5~10\mu m之间。

        从图2.24可以看出,弥散圆的大小取决于同心光束的大小,即取决于入瞳的直径。如果我们把可变光阑调小,入瞳也相应变小,则弥散圆的直径将会变小。假定可以被接受的弥散圆直径为d',如果设d'=d_{f}'=d_{n}',我们可以计算出产生弥散圆直径为d's_{f}s_{n}

s_{f,n}=\frac{sf'^2}{f'^2\pm Fd'(s+f'/{\beta}_{p})}

        这里的F定义为镜头的f数:

        F=f'/d_{ENP}

        通常f数可以用镜头筒上的环进行调节。f数通常以\sqrt{2}的幂表示,f/1,f/1.4,f/2,f/2.8,f/4,f/5.6,f/8,f/11,f/16,f/22等。按 \sqrt{2}的幂表示是由于到达传感器的能量与时间t和入瞳面积A成正比,也就是与f数的平方成反比:

E\sim \frac{t}{A}\sim \frac{t}{F^2}

        这样增大一级f数,比如从f/4f/5.6,可使图像的亮度减少一半。根据以上等式可以得到景深\Delta s

\Delta s=\frac{2sf'^2Fd'(s+f'/{\beta}_{p})}{f'^4-F^2d'^2(s+f'/{\beta}_{p})^2}

        如果假设s比f'/{\beta}_{p}大,我们可以用s代替s+f'/{\beta}_{p},如果还假设f'比分母中其他项都大,可以得到:

\Delta s\approx \frac{2s^2Fd'}{f'^2}

        从上式可以看出景深\Delta s1/f'^2成正比。f'减少一半,景深将增加4倍。另一方面,f数减少一半会使景深减少一半。这也意味着曝光时间需要是原来的4倍才能得到同样亮度的图像。

        图2.25是使用f'=12.5mm的镜头在F=2和F=16时对一个具有一定视场深度的目标所采集到的两个图像。被测物是成45°角的金属尺子上的刻度及数字。如上述的等式所言,F=2时的景深比F=16时的景深要小得多。

        需要注意的是不能任意加大景深,由于光的波动特性,如果使用非常小的孔径光阑,光线将在光阑处发生衍射,这将会使对焦平面上的物点在像面上所成的像为条纹圆环斑,从而影响图像的清晰度。对于有效f数为F_{e}的圆形孔径光阑,一个物点的像为一艾里衍射圆斑。

2.2.4  远心镜头

        至今讨论的镜头系统都是实际物体的透视投影。明显可以看出距离镜头越近,物体所成的像就越大。因此,与像平面不平行的被测物体所成的像就会变形。然而,在许多测量应用中,非常需要产生平行投影的成像系统,以消除透视变形以及由于透视变形产生的被测物的遮挡。

        从概念上讲,可以通过在镜头系统像方焦点F'处安装无限小的针孔孔径光阑来实现平行投影。根据图2.19的厚透镜成像定律,可以推断出这个孔径光阑仅允许物方平行于光轴的光线通过,如图2.27所示。因此镜头至少要与被测物体一样大。

        如同针孔摄像机一样,这种结构后能够到达传感器的光线太少了,是没有实用意义的。因此,孔径光阑必须有一定的大小,如图2.28所示。为了简化起见,主平面画在了一起,也就是P=P',从主光线可以看出,不同物距的被测物成像在相同的位置。与一般普通镜头一样,不在对焦平面上的物体将会产生弥散圆斑。

        入瞳是孔径光阑被前面的光学系统在物方所成的虚像,现在孔径光阑位于像方焦点F'处,则可以推出入瞳位于物方无穷远处,其大小为无穷大。由于入瞳中心扮演投射中心的角色,而投射中心位于非常远处,因此这种平行投射方式被称为远心,特别是当投射中心位于物方无穷远处时,镜头系统被称为物方远心镜头。注意,此时镜头的出瞳即为孔径光阑。

        与以上论述的简单针孔远心镜头不同,如图2.28所示有到达孔径光阑边缘的光线,因此需要考虑孔径光阑的大小,物方远心镜头必须要比被测物体大。

        物方远心镜头的景深为:

\Delta s=-\frac{d'}{​{\beta}sin\alpha}=\frac{d'}{​{\beta}^2sin{\alpha}'}

        d'为可接受的弥散圆的直径,\beta为镜头的放大倍率,\beta=-sin\alpha/sin\alpha 'A=sin\alpha为镜头的数值孔径,与f数的关系为F=1/(2A),同样,sin\alpha '为像方数值孔径。

        另外一种远心镜头是在物方远心镜头孔径光阑后面再加上第二个镜头系统,使第一个镜头的像方焦点F_{1}'与第二个镜头的物方焦点F_{2}重合,如图2.29所示。根据图2.19的厚镜头成像定律可以得出第二个镜头的像方主光线也将平行于光轴。这种结构将出瞳也移到了无穷远,因此也被称作双远心镜头。

        双远心镜头的放大倍率可表示为\beta = -f_{2}'/f_{1}'。因此放大倍率与被测物的位置及像平面的位置无关。而在物方远心镜头中,对一个固定的像平面,放大倍率是一个常数。

        双远心镜头的景深可表示如下:

\Delta s=-\frac{d'}{​{\beta}sin\alpha}

        图2.30为\beta = 0.17F=5.6时远心镜头对一个具有一定视场深度的目标所采集的图像。与图2.25中使用的镜头形成对比,这张图中没有透视畸变。

2.25  镜头的像差

        至此为止,一直假设在高斯光学中同心光束通过镜头后会聚一点。而在实际中通常是不会发生这种情况的。

        图2.31(a)表示了球差。球差的产生是由于远离光轴的光线与近轴光线并不交于一点,这是由于球面镜头边缘的折射增大造成的。无论像平面在哪里,都会有一个弥散圆,只能使这个圆尽量小。减少球差的一个方法是使用较大的f数,使用较小的同光光圈可以阻止远离光轴的光线通过镜头。然而如在2.2.3节尾所述,由于衍射的存在,无法使孔径光阑无限小。另外一种办法就是在镜头中使用非球面来代替球面,这样的镜头被称为非球面镜头。

        图2.31(b)表示了另外一种类似的像差。与光轴成一定角度的光线通过镜头后不聚于一点。在这种情况下,像不是圆形的而是类似彗星形状。因此这种像差被称作彗差。与球差不一样,彗差是非对称的。这种像差会使如边缘提取这类的特征提取算法得到错误的位置。可通过使用大的f数来减小彗差。

        图2.32表示的是又一种像差。轴外物点和光轴所定义的平面称为子午平面,而过光轴且与子午平面相互垂直的平面称为弧矢平面。轴外物点发出的在子午平面和弧矢平面上的光线通过镜头后不交于一点,而是聚焦成两条短线,分别垂直于子午平面和弧矢平面。基于这一特性,这种像差称为像散,这两条短线分别称为子午焦线I_{T}和弧矢焦线I_{S}。在这两者之间的某一位置会得到最小的弥散圆斑。可以通过使用大f数的孔径光阑或者通过仔细的镜头设计来减小像散。

        图2.33(a)表示了另外一种与像散关系非常密切的像差。子午像与弧矢像不一定在同一像平面上。实际上,子午像和弧矢像所在的面(称为子午焦面和弧矢焦面)甚至不是平面,这种像差称为场曲。场曲导致了不可能使整个图像完全聚焦。图2.33(b)为由一个具有较大场曲像差的镜头所采集的图像,图像中心聚焦清晰,而边缘则散焦很严重。与其他像差一样,也可以通过使用大f数的孔径光阑或者通过仔细的镜头设计来减小场曲。

        以上像差除彗差外都会影响图像的聚焦。除此以外,镜头像差还会造成图像变形,也就是会使不经过光轴的直线通过镜头后成的像不再是一直线,参看图2.34.根据一个矩形成像后的特征可以定义两种畸变:枕形畸变和桶形畸变。注意通过光轴的直线不产生畸变。而且,以光轴为圆心的圆所成的像是或大或小的圆。因此,这样的畸变称为径向畸变。此外,如果镜头的各个光学元件的中心线不在一条直线上,则会产生偏心畸变。

        上述所有像差都是单色光像差。如果被测物被白光等多波长光照明,还会产生色差。如图2.35所示,不同波长的光线不聚在同一点。对于彩色摄像机,色差会在物体边缘产生彩条,而对于黑白摄像机,色差会造成模糊。而且,由于色差是非对称的,它会使边缘提取等特征提取算法产生位置错误。色差可以通过采用大f数的孔径光阑来减小。而且,可以通过镜头设计使二种不同波长的光线聚于一点。这种镜头称作消色差镜头。甚至可以通过镜头设计使三种指定波长的光线聚于同一点,这种镜头称作复消色差镜头。然而,其他波长的光线仍然不能聚于同一点,导致了剩余色差。

        通常情况下不可能设计出完美的镜头系统消除上述所有像差,以及还没有谈到的高阶像差。因此,镜头设计者需要在各种相差之间权衡。尽管剩余像差可能已经很小了,但是在高精度特征提取算法中仍然很明显,这是由于像差会造成不对称灰度轮廓,影响所有的亚像素算法。图2.36上分别为完美衍射极限镜头所得到的理想阶跃边缘剖面图、使用实际镜头对轴上阶跃边缘和对距离光轴5mm的圆上的轴外阶跃边缘(也就是轴外阶跃的边缘剖面与圆正交)所得到的边缘剖面图。注意,衍射极限镜头产生的理想剖面图和轴上剖面图是轴对称的,因此不会产生问题。而轴外剖面图是非轴对称的,将会使亚像素精度的边缘检测算法得出错误的位置,参考3.7.4节。

        本节最后来讨论一种效果,这种效果本身不是像差,但仍然影响图像质量。从2.33(b)可以看出对于有些镜头,其采集的图像边缘亮度有很大的下降。这种效果称作渐晕。造成渐晕的原因有很多种。首先,镜头在小f数时,对于与光轴成大角度的光线而言,可变光阑不再是系统的孔径光阑,孔径光阑变成了某一个镜片或者镜筒,如图2.37所示。对于轴外点发出的光线,其有效入瞳要比轴上点的有效孔径小,因此,从轴外点到达传感器的光通量也就小了。对于这种光晕,可以增加f数来消除,这样对于所有的光线可变光阑都是孔径光阑。

        第二个造成光晕的原因是轴外点光线强度降低。从图2.22可以看出,轴外点光线从出瞳出来与光轴成一个像方视场角\omega',这就意味着当\omega ' \neq 0时轴外点的出瞳不是圆而是比圆小一个系数cos\omega'的椭圆,因此,轴外像点接收到的光要比轴上像点少。而且,轴外点光线到达像平面所通过的距离比轴上点光线长1/cos\omega'。根据照明的距离平方反比律,像平面接受到的能量与光源到像点的距离平方成反比,因此,轴外像点的光强将减少(cos\omega')^2。最后,光线到达像平面时与像平面呈\omega'角,这又使得到达像平面光的总量为原有的cos\omega'。综上所述,轴外点的光强为轴上点的(cos\omega')^4。进一步的分析显示对于大光圈(f数大于5),轴外点的光强减小会稍小于(cos\omega')^4 。这种光晕无法通过增加f数来减小。

  • 4
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值