乐于分享
好东西不私藏

Optiland 入门教程(1)——不会写代码?手把手教你安装 Optiland

Optiland 入门教程(1)——不会写代码?手把手教你安装 Optiland

在光学领域,可微分光线追迹方法正在从科研走向工程

这里我想要系统性的介绍一个开源项目:

Optiland

我们不讲太多概念,第一期直接从最实际的问题开始:

Optiland 怎么安装?不会写代码,能不能打开图形界面?

这篇文章就带大家从零跑一遍。

本文默认读者没有 Python 编程基础,只要会复制命令、打开终端、按照步骤操作即可。

如果只是能优化镜头,Optiland 还不算特别稀奇。它真正有意思的地方,是可以切换到 PyTorch 后端,把光线追迹过程放进自动微分框架。简单说,我们可以把 RMS spot radius 当成 loss,把透镜曲率半径当成待训练参数,然后用优化器自动更新曲率。
官方示例中,一个 BK7 单透镜的两个曲率半径从 R1=70 mm、R2=-70 mm 开始优化,RMS spot radius 从约 0.944 mm 降到约 0.115 mm。这个例子并不复杂,但它说明光学系统已经可以像机器学习模型一样进入 forward、backward、optimizer step 的流程。
这里我会做成一个大型系列,通过这个开源项目,向大家介绍可微分光线追迹的使用方法和光学软件的二次开发。

1—开始使用前的准备工作

考虑到可能大家不一定有python使用经验,这里我先教大家配置环境,提前说明一下,大家实际操作的时候有可能会出现各种各样的状况,如果有问题,可以直接把对应的报错信息或者相关代码复制给LLM,一般的问题都能解决。

我们的目标很简单:从 GitHub 下载 Optiland 官方源码包,然后一步一步把 Optiland 的图形界面启动起来。

(1)编程环境
首先大家需要先安装:

1. Python 3.11 或 Python 3.12

2. Optiland 官方 GitHub 源码包

虽然官方支持更高版本,但对普通用户来说,3.11 / 3.12 一般来说更稳定。如果后续需要新的python版本支持,再根据提示更新即可。

方便起见,操作的时候可以首先win+R,在弹出窗口里面输入:powershell。

之后就会进入这样一个页面,在这个页面里面,我们粘贴进:

winget install -e --id Python.Python.3.12

之后回车,就会自动安装需要的包,等待完成。如果中途询问是否同意协议之类的,输入:Y,根据提示完成即可。
之后我们可以检查一下,还是输入以下代码,之后回车:
python --version
或:py --version
弹出版本号即说明安装成功。这里也需要补充一下,后续实际运行的时候这个地方也可能会提示缺少一下包之类的,如果大家不知道怎么做,把对应的一整段复制给LLM,然后根据返回的结果一步步来一般就能解决。有的读者可能会习惯使用Anaconda之类的工具,这里就不再赘述。
(2)程序本体
  1. 打开 Optiland 官方 GitHub 页面:

    https://github.com/optiland/optiland

  2. 点击页面右上方绿色的Code按钮。

3.点击 Download ZIP

4.下载完成后,把 zip 文件解压到一个简单路径,例如:D:\Optiland\optiland-master

尽量不要放在中文路径、移动硬盘路径或很深的文件夹里。路径越简单,出现问题的概率就越低。

(3)开始运行
首先,我们新开一个powershell窗口,在解压后的文件夹里面鼠标右键空白的地方,点击在终端中打开。
然后依次输入:
python -m venv .venv
.\.venv\Scripts\Activate.ps1
这一步非常关键,核心目的是创建一个虚拟运行环境,让这个程序运行在虚拟环境里面,这样我们在编程的时候就不会误伤其他的文件。成功的状态如下图,注意,每一行的开头会有一个(.venv)
如果提示不允许运行脚本,可以输入下面的代码,每一行之后都回车:
Set-ExecutionPolicy -Scope CurrentUser RemoteSigned
Y
.\.venv\Scripts\Activate.ps1
进入虚拟环境没有问题的话,下一步,安装升级工具和图形依赖,输入:
python -m pip install --upgrade pip
python -m pip install -e ".[gui]"
正常这一步会安装:
  • Optiland 本体
  • 图形界面依赖 PySide6
  • 内置脚本终端依赖 qtconsole
  • 绘图、科学计算、3D 显示等依赖

第一次安装可能需要几分钟。如果网络较慢,等待即可。

安装过程中看到很多英文输出是正常现象。只要最后没有红色报错,一般就是安装成功。

然后我们就可以启动这个软件了,输入:

python -m optiland_gui.run_gui

等待一会儿,就能启动起来界面。这个界面是optiland本身给出的ui,如果大家有别的想法,其实也很容易二次开发。

关闭之后下一次再启动的时候,就很简单了,在对应的工作路径下面启动powershell,直接启动环境并启动程序即可。
.\.venv\Scripts\Activate.ps1
python -m optiland_gui.run_gui

2—开始探索

软件已经成功启动的话,
我们就可以试着探索一下了,
我们之后再给大家介绍可微分光线追迹
大家可以先尝试熟悉一下基本功能
在optiland中

官方也给我们提供了一些参考案例

我们可以在这里随便加载一个镜头
默认配置下,左上角为镜头参数
鼠标右键点击后可以设置光阑或者优化变量
在左下角即为镜头布局

在右侧,我们可以看到分析界面,查看MTF等各项参数

这一期我们先不评价 Optiland 能不能替代商业软件。至少从本次实测看,它已经完成了一个基本闭环:可以通过 GUI 打开示例镜头,可以修改表面参数并运行常规分析,也可以通过 Python/PyTorch 做一个最小可微分光追优化案例。

它现在仍然是一个快速开发中的开源项目,GUI 和工程生态还不能和成熟商业软件相比。但它的方向很清楚:让光学设计从封闭软件里的表格,变成 Python 生态中可分析、可优化、可复现、可二次开发的对象。

下一期,我们从零开始搭一个单透镜系统

还请持续关注

END

更多内容请到之晓光学公众号主页

xiaoshuinan@hitoptics.com