【光设教程】一文搞懂鱼眼镜头的设计

百科   2024-10-15 09:01   陕西  
任务目的是设计一种具有180°视场的超广角鱼眼物镜光学系统,在进行光学设计前,要先对所设计系统的功能和指标进行说明,光学系统设计流程如下图所示:

一、光学系统指标

超广角光学系统以及鱼眼镜头具有极大的视场角,在进行指标论证时有一些特点需要说明,我们先来看一下主要设计指标:

最大视场:>180°
F数:F/#=4

成像谱段:420~700nm;
探测器规格:12.8mm×9.6mm(像元3.45微米)
工作环境:-40℃~+60℃
总长:<50mm
最大口径:<35mm
虽然说鱼眼镜头的优化过程和一般的折射镜头没有什么差别,但是,鱼眼镜头由于视场角大于180°,像高不再满足tanθ的关系,所以在指标论证和约束上,有一些特点需要特别说明。
1.视场的计算

在设计鱼眼镜头时,我们一般首先需要对像高和探测器选型进行论证,由于探测器尺寸和视场角往往是直接由需求约束的,因此在设计时,我们需要先讨论一下图像在探测器上是什么情况。

一般来说,透镜都是圆形,因此像场是一个圆域,而鱼眼镜头的图像不符合正常的投影关系,常用的探测器匹配方式有以下三种:

a情况可以完整接受全部鱼眼镜头的图像,c情况可以最大化利用探测器的有效像素。对于本文所设计的系统,探测器幅面比较大,像元不是很小,而视场只要求最大视场大于180°,因此可以采用c情况的方式,如果涉及到全景探测,为了保证没有盲区,则采用a情况。
这里有一个需要注意的问题,由于鱼眼镜头的视场角过大,如果让180度的像高恰好位于探测器边缘,则在装配时,考虑到装调误差,有达不到视场要求的风险。所以设计时我们需要留一点余量。例如,本文所涉及的指标,一英寸探测器对角线的一半约为8mm,可以让最大像高小于8mm,为了提高像素利用率,可以让设计最大像高不小于7.5mm,则考虑到加工装调,可以最大限度保证指标的实现。
2.畸变的计算

关于最常用的两种畸变类型我已经写过文章介绍了,同时我也介绍过畸变矫正算法,还展示了我自己做的实验。

【成像光学基础】F-theta畸变的概念及应用

相机标定与畸变图像校正

鱼眼图像的复原是全景相机的另一个关键问题,由于一般镜头的物像投影关系已经无法使用,在计算机视觉里,这里有几种常用的新物像关系,其中,类似于F-theta畸变的投影关系称为等距投影。由于不涉及复杂的三角函数运算,数学上最简单,因此也最常用。

在鱼眼镜头设计中,畸变的要求主要和校正算法有关,不管是什么投影关系,理论上都不影响图像的清晰度,但是考虑到实际使用,也不能让畸变过大。本文中我们采用F-theta畸变来约束系统,令F-theta畸变不大于10%,如果没有特殊需要,这对于图像算法来说一般是可以接受的。

3.相对照度下降问题

随着视场角的增加,光阑相当于在某个视场方向具有投影,因此边缘市场的相对照度本就比中心视场低,而对于鱼眼镜头,在90度方向光阑的投影面积为0,这说明鱼眼镜头的设计优化中也不能简单的将近轴光学的入瞳作为各个视场的入瞳,关于这一块的问题,大家可以查阅相关文献,会有详细的分析推导。

对应在软件优化层面,则在Zemax中需要打开光线瞄准,CodeV中需要使用中心主光线定位。本文所述的指标的视场还不是特别大,如果进一步增大视场,相对照度也是一个需要考虑的问题。

【成像光学进阶】变焦系统的初始结构计算

【成像光学基础】从初始结构设计一个可见光广角镜头

二、初始结构

查阅镜头手册,找到一个指标接近的初始结构,焦距为归一化的1,视场也较为接近,F数为2.8,系统整体比较复杂,不过我们可以在这个基础上减少镜片。我们先将光学系统的参数输入到软件里面,并缩放为6倍。如下图所示:

我们根据指标需要添加操作数,用REAY控制像高,DISC控制畸变,这样做比直接添加焦距操作数更灵活,同时我们需要把玻璃模型替换成真实玻璃,这里就使用成都光明的玻璃库。在这个基础上,由于我们需要的相对口径更小,可以先减少两片透镜,如下图。

在评价函数编辑器中采用RMS半径模式,由于没有非球面,初始优化时3环6臂即可,同时利用操作数控制透镜不要过薄,间隔不要出现干涉。在这个基础上,我们可以把玻璃设置成首选玻璃替换,跑跑锤形优化,这一步的结果如下:

三、进一步优化的过程

上面的结果看起来比初始结构好很多,但是我们还需要对光学系统进行进一步的优化,以提高成像质量。对于鱼眼镜头,往往公差对边缘视场的影响显著高于中心视场,因此我们在初步设计时也要尽可能提高边缘视场的传函,此外由于边缘的相对照度本来就低,我们就不在设置渐晕了。因此,上面的结果还需要大量的优化才可以使用。

检查一下上面的结果,发现Zemax自动把好几个透镜优化成了H-FK61,这种软材料不适合大量使用,更不适合用在首片透镜,会显著提高成本。同时,FK系列的玻璃热膨胀系数也很大,用在胶合透镜里会有一定的风险,也应该尽量避免。

现在我们需要手动替换一下玻璃,根据我的经验,我把第一片换成了H-LAK52,并替换了胶合透镜的材料。此时我们需要再次尝试提高传函。和上次的变焦系统类似,我个人还是习惯Zemax和CodeV换着用,二者优化算法有一定差异,熟练的话可以提高设计的速度。这里我把上面的结果导入CodeV中,选择扩展优化,并跑了两轮glass expert。效果如下:

在CodeV里面再跑一跑,把参数导入回Zemax,此时玻璃配置已经相对合理了,传函也进一步提高了。

最终针对不合理的厚度间隔再进行调整。某些表面的曲率半径过小,可能会带来严格的公差,这里也是需要注意的,如有必要,也可以使用CVLT和CVGT操作数控制。这里我发现继续用光斑半径作为评价函数有些优化不动了,我又以此使用波前和对比度作为优化函数跑了跑,结果如下:


大体上看起来还可以,此时我们可以进行无热化的操作,结构采用铝合金,热膨胀系数设为23.7。由于镜头本身还是很小,而热差是一种离焦,焦深和波长以及F数有关,因此这种小镜头的无热化还是比较容易实现的。关于无热化的细节,大家可以参考这篇文章。
光学系统的无热化简介(已修订)


镜头在-40℃下的表现略差一点点,但140线对处也都大于0.3。某些表面厚度略小,半径略小,再调整一下,结果如下:


此时90度视场对应像高是7.54mm,三个温度组态下传函相差不明显,有些表面光线偏转的角度有点大。我们可以公差分析看一看现在哪些表面比较灵敏。给定初始公差分析如下,由于透镜口径都不是很大,两个圈的公差也不是很严,间隔偏心都先给两丝,倾斜给一个角分。
如何进行基础的公差分析

先来跑100次灵敏度分析试试,评价方式选衍射MTF平均,我们来看一下140线对时的公差情况:

和名义值相比,此时的MTF下降还是比较明显的,主要公差来源在第三个透镜,和孔径光阑后的第一个胶合透镜。
保证成像质量的方法有两种,第一种就是提高加工公差要求,这个和加工方的工艺水平以及成本有关。这里可以使这两个地方的公差减为一丝,这样的精度要求对于一般的镜头来说已经很高的,我们可以再看一下现在情况怎么样,这一次我们可以多跑几次,比如500次,并且在公差分析选项里选上按视场分类。

可见现在虽然平均传函比之前有所提升,0.7视场左右和边缘视场的传函还是下降的比较明显。而且检测环节,0.7视场的传函是一个关键指标。
此时我们可以发现,第六个透镜,即孔径光阑前的透镜也较为敏感,而这个透镜前表面的半径为7.8mm,曲率较大,如果不想增加加工装调成本,我们可以尝试第二种方法,即对这个透镜形状进一步优化,需要注意的是,直接用操作数限制曲率半径可能很难直接优化出来,我们可以直接尝试替换材料。例如这个透镜的材料是ZK3,我们可以手动换成更高级的材料试试。
这里我简单演示一下,比如我们把ZK3换成LAK50A,这个材料折射率更高,同时阿贝数也较高(不是最常见的玻璃,其实应该有更好的选择,大家可以自己试试),重新优化一下,传函差别不大,按照同样的设置跑一下公差分析,可见边缘视场的传函提高了一些。

如果成本和工艺要求可接受,直接提高对这个透镜的加工要求当然是简单的。但在时间允许的情况下,我们最好还是通过不断修改设计尽量降低公差要求。如果是民品批产项目,最重要的是降低成本和提高良品率,那么这一步就尤为重要。这里我就简单演示,不再花时间修改了。

感谢大家看到这里,本文涉及的初始结构/设计过程文件/结果我都有保存,大家需要的话可以付费阅读并下载,同时附赠一个未完工的F/#2.8版本,可以作为练手的作业,这个镜头透镜数比较多,仍有一定的视场扩展和相对口径扩展潜力。之后我也会更新一些这样的文章,里面有付费的内容也有免费的内容,大家多多点赞、转发、点击在看,也是对我的支持。

之晓光学
发一点光学科普和DIY小知识,发一点没营养的生活感悟,纯纯日常向,想学知识也许也行
 最新文章