对清华“玉衡”光谱成像芯片原理的个人理解

微信视频号:sph0RgSyDYV47z6

快手号:4874645212

抖音号:dy0so323fq2w

小红书号:95619019828

B站1:UID:3546863642871878

B站2:UID: 3546955410049087

 

前几天在公众号上刷到这个工作时,刚看到还是挺惊讶的。这东西不比cmos芯片大多少,还能在每个像素处都能获得一个高分辨率的光谱,并且有在400–1,000 nm之间0.5 Å的逆天光谱分辨率 (R = 12,000), 以及2,048 × 2,048的空间分辨率 。于是作为一个天文技术爱好者,再加上自己组里做的积分视场光谱仪方向,和这个小芯片的最终功能也类似,固然在来回坐地铁的时候,仔细阅读理解了一下原文里这个东西的原理。这里就当个笔记分享一下。

要知道传统的光谱仪要靠狭缝、准直镜、光栅、聚焦镜、ccd或者cmos搞一个笨重的大盒子包起来才行。就这样还只能获得沿着狭缝上的一列光谱,不能成图。若是达到每个像素获得一个光谱,变成一个三维的数据立方,在遥感上会使用一排排扫描的方式成图,叫做高光谱成像。

经典的天文用积分视场光谱仪原理图 credit:IFS wiki

而在天文上,近年来会使用积分视场光谱仪这个技术,可以理解成搞一堆光纤绑一起,每根光纤对应类似一个像素,光纤里的光被引导到后头的光谱仪里色散,最后重构出图像(当然还有像切分器或微透镜阵列等技术也能把图像分成一个个小元素色散),但总之都很笨重。 然而这个Nature工作竟然只需要一个小cmos前加些个薄膜就行了。这似乎是要革命啊。当时我非常好奇这到底是什么原理。

于是我就把原文下载下来了,不是做这个方向的纯外行,对背景知识发展现状不太了解(指大家不要完全信我),只能硬理解原文里面的原理。下面把我理解的讲一讲,不一定对和到位,懂行的老师请指正。

先对原理做一个总的概述:

这个技术是在一个cmos芯片前面,放了个不同像素处厚度随机的"铌酸锂"薄膜,并夹在两个分布式布拉格反射器中(于是这个前置器件可以理解成一种干涉式滤光片?)。这个铌酸锂薄膜在不同电压下会具有不同折射率,于是会导致整个前置的器件,对于不同波长的光穿过时,能够透过的比率不一样(也就是这个带薄膜的器件在不同电压下会改变透过率曲线)。

最后cmos上的某个像素上,探测到的其实只是一个灰度值,而这个灰度值是不同波长的透过率曲线与物体原始光谱相乘后积分而来,该积分方程可以被离散为两个向量点积的方程,方程左侧是cmos直接探测到的信号,而右侧是透过率曲线与待求解光谱的点积。如果我们改变电压,会得到不同的透过率曲线,便能建立多个方程,再联合一堆具有类似光谱的像素,便能形成一大堆方程组,理论上便能求解得到每个像素的光谱。不过实际上获得的方程数远小于未知数,严重欠定。好在天文上的典型恒星光谱只在部分波长有吸收线特征,因此满足"压缩感知"重建技术里的稀疏性要求。作者使用了一套基于深度学习的方法求解这套方程组,获得了每个像素处的高分辨率光谱(其实刚开始注意到用了深度学习还是有点失望的,我还是偏心于纯使用光学技术实现的光谱仪而不引入带先验的计算光学)。

下面截一些论文里的图,再详细介绍一下这个原理:

原文1a

首先这个芯片的结构就是上面这样的,在一个cmos芯片前面,放了个夹在两个分布式布拉格反射器中的,随机厚度的铌酸锂薄膜(这个新闻里给的封面宣传图还挺形象的)

铌酸锂具有电光效应,在不同电压下具有不同折射率,而分布式布拉格反射器也是一堆固定厚度的薄膜,所以这组东西可以理解为一个干涉式滤光片我觉得。加电压改变了折射率,也就是改变了光程,反正其最后的效果就是,给它加上不同电压后,在某个像素处能获得不同的透过率曲线,再考虑其随机厚度的特点,不同像素处的透过率曲线就也不一样。文章中总共给了11的电压。而在cmos上直接探测到的,其实还是每个像素的一个灰度值。但是经过后面一些巧妙的操作,竟然能靠这个灰度值"变出"每个像素处对应12000个波长处的可见光光谱。

原文2a和b 那些横轴波长、纵轴波浪线的,就是不同电压下产生不同透过率曲线

这个神奇的操作,便是文章中最核心的原理,其实也就是下面这个方程。每个cmos的像素(x,y)处,获得的是某个电压s下的灰度值Ys(x,y) (已知量)。而我们想要知道的是每个像素处的光谱X(x,y,λ)(未知量)。后者在某个波长处乘以透过率曲线T(x,y,λ)以及量子效率QE(λ)(这俩是可标定的已知量)后再积分(并加上噪声G),便得到了前者(每个像素处的灰度值)。我们可以把这个积分方程离散成一个观测矩阵Ms与X的乘积再加上噪声G。那么为了获得光谱X(x,y,λ)(这是一个有12000个不同波长处强度的一维向量),我们就需要12000个方程组才能行。

来自原文Methods部分

上哪儿搞这么多方程组呢?首先,可以给铌酸锂加11个不同的电压。然后,假设在20×20个像素中的光谱都是一样的谱形,那么就可以有11×20×20共4400个方程组。记得这里的铌酸锂薄薄膜还有个特性就是随机厚度,意味着不同像素之间的透过率曲线T(λ)也是完全独立的,可以获得像素间独立的方程组。但是,这似乎还是不够。好在,自然界的和天文上的光谱只在部分波长处有发射线和吸收线特征,这样的稀疏特征满足"压缩感知"理论里重建的条件(压缩感知是由著名数学家陶哲轩等提出的,对于稀疏信号在低于奈奎斯特采样下也能恢复原始信号的技术),因而,只需要4000-5000个方程就能恢复12000个波长处的光谱了。

那么接下来就剩下求解了,求解方程组其实就是让灰度值Y与观测矩阵Ms与光谱X相乘后的差值最小化,此时对应的解就是光谱X。

在文章中,我看作者使用了一个包括transformer注意力机制以及U-net的深度学习模型SPECAT来求解,Ys作为输入,光谱X作为输出。这个模型其实还是基于现有的光谱数据作为训练集了,比如我关心的天文方面,其使用了SDSS斯隆数字化巡天的光谱数据作为了训练集。而上面的公式8作为训练时的损失函数。

原文3a

当然求解这个方程还需要不同电压和像素的铌酸锂产生的透过率曲线才行,作者使用了一个叫PSAM的基于物理建模结合数据驱动的方法来获得不同电压和像素处不同厚度的铌酸锂透过率曲线,并搞成了一个查找表方便求解时查找。以及还搞了个基于MAE encoder和decoder结构的深度学习模型用于优化动态连续曝光下的图像质量(在单帧成像时就,没使用这个模型)。不过核心求解还是靠SPECAT。总之这个光谱还是恢复的很不错的,恒星光谱的预测值和实际用天文光谱仪看到的比较接近。

原文Extended Data Fig. 2

我个人怎么说呢,我还是觉得引入深度学习计算光学是比较"可惜"的。如果能包括更多方程组之间求解, 少一点先验,也许更加"真实"一点? 比如这个工作中的SPECAT,使用了SDSS的光谱作为训练集,建立深度学习模型来求解光谱。那么对于超出SDSS参数空间的光谱难道会恢复不了?(SDSS参数范围以内的我估计是能恢复的不错的)。以及对于某些非常特殊的目标,比如类星体会具有非常复杂多变的发射和吸收光谱特征,这时候还能很好的恢复吗?文章中展示的至少都是比较简单的常见的光谱(不过我顺便想想其实平时天文里拿到光谱后,做模型拟合来导出物理参数,又何尝不是使用了先验的数据和模型呢,人家这只是一开始就提前用上了先验信息罢了)。

这个技术本身还是非常有意思,作为一个外行的我相信未来一定有极大的潜力和应用价值,尤其是遥感、地面的多光谱成像等各行各业的工业界。这类叫微纳光子学的技术以后在面向市场的产品中也许也能大放光彩,比如业余爱好者也能更方便地使用小型的望远镜拍摄天体的光谱。听说这个芯片还将被用在了10.4米的GTC望远镜上,期待一下效果了。

说到这有个彩蛋,文章中做外场实验的望远镜是星特朗DX90EQ,淘宝售价也就1000多,可见小镜子也能发《Nature》正刊哈哈。(不过光谱仪是不是拿个没有色差的反射望远镜更好啊)

 

微信视频号:sph0RgSyDYV47z6

快手号:4874645212

抖音号:dy0so323fq2w

小红书号:95619019828

B站1:UID:3546863642871878

B站2:UID: 3546955410049087

 

参考文献链接

对清华“玉衡”光谱成像芯片原理的个人理解

posted @ 2025-10-22 06:25  吴建明wujianming  阅读(18)  评论(0)    收藏  举报