最近在追踪单像素成像和钙钛矿光电探测器交叉方向的时候,读到一篇很有意思的工作。论文思路并不复杂,但组合起来效果很新颖——用一个钙钛矿单像素探测器,通过一束控制光切换器件的响应波段,在器件层面完成了彩色图像的解密,整个过程不需要传统的彩色滤光片阵列,也不需要事后做复杂的多通道图像配准。这个工作发在光学领域的老牌权威期刊上,但它的价值不只是发文章本身,更在于把"光作为调控手段"和"单像素计算成像"这两个点真正结合到了同一个器件里。这篇文章我就从原理到实验链路,把这篇工作掰开揉碎讲一遍,包括我自己复现过程中遇到的一些坑。
1. 一张彩色图像,探测器真的分不清颜色吗
先说一个反直觉的事实:普通光电探测器本质上都是"色盲"的。它只输出一个与光强成正比的电流或者电压信号,不会主动告诉你入射光是红的还是蓝的。之所以我们的手机能拍彩色照片,是因为相机传感器前面覆盖了一层拜耳滤色片阵列,把空间上相邻的像素分别变成对红、绿、蓝敏感的亚像素,然后通过去马赛克算法猜回去。换句话说,颜色信息不是探测器自己测出来的,是"空间分光加算法猜"的结果。
1.1 传统光学加密系统的一般结构
光学加密并不是新话题。经典的做法是双随机相位编码(DRPE):在4f系统的输入面和频谱面各放一张随机相位掩膜,把图像信息打散成类噪声图案,没有密钥的人拿到加密图也恢复不出原始图像。这个方案从光学信息处理时代一直火到深度学习时代,但它本质是系统级加密——加密和解密都依赖一整套路镜组、空间光调制器、相机,密钥存在于相位掩膜或者SLM加载的相位图中。
在彩色图像加密上,传统方案往往会把彩色图拆成RGB三个通道,分别加密、分别传输、分别解密,最后再用图像配准把三张灰度图叠回去。这个过程非常依赖系统稳定性:三次拍摄之间只要有一丁点机械震动或者光源漂移,三个通道的像素就没办法严丝合缝地对齐,出来的彩色图边缘会出现明显的伪影。我也见过有些组用波长复用加双随机相位编码来减少通道数,但这样会增加系统的色差校正难度,镜头的轴向色差和横向色差会直接吃掉波长复用的精度。
1.2 系统级方案的三个软肋
把系统级方案的问题归纳下来,其实就三条。
第一是体积大。面阵相机、SLM、透镜组、激光器摆开就是一桌子,很难往紧凑场景迁移。
第二是通道一致性差。彩色图像最怕的就是通道之间错位,哪怕是亚像素级别的错位,在颜色变化剧烈的边缘也会表现成紫边或者绿边,观感非常糟糕。系统级做三通道对齐通常要引入标记点,费时费力。
第三是密钥维度单一。传统光学加密的密钥往往只存在于空间相位分布或者幅值分布里,只要有人获得了系统参数,加密形同虚设。一个更稳妥的思路,是把密钥扩展到"器件响应状态"这个维度——探测器自己能有两种截然不同的光谱响应状态,解密时必须先让器件处于正确的状态,才能读到正确的信息。这就是这篇工作里"光控双波段响应"的核心意义。
1.3 "器件级解密"到底意味着什么
所谓器件级解密,是指解密能力不再依赖额外的一堆光学元件,而是封装在探测器本身。这篇文章里的钙钛矿单像素探测器有两个响应状态:在暗态或者说自然状态下,它主要在某个波段有较高响应;用一束特定波长的控制光照射一段时间后,它的响应谱发生整体移位,对另一个波段变得敏感。整个过程中,探测器还是那一个探测器,光路里也没有增加任何可动部件或滤光片,变化的只是器件的电子态。
这个思路让我想到一个还算贴切的类比:普通探测器像一个只认黑白的人,彩色相机像戴了一副红绿条纹眼镜的人,而这个光控双波段器件更像是一个能调整自己视锥细胞光谱灵敏度的人。你告诉他"现在是解密模式A",他的眼睛就只对蓝紫色敏感;你说"切换到解密模式B",他眼睛就开始对红橙色敏感。信息没有被增加,但读取信息的方式变了,而且这种改变发生在物理层,不是算法层。
对光学加密来说,这种物理层状态切换带来的直接好处是:攻击者即使拿到了所有加密图案,如果不知道"需要先在紫外光下激活器件再采集"这一步骤,他采集到的波形就是另一套响应状态下的数据,重建出来只能得到噪声。密钥从"你知道什么"扩展成了"你的探测器处于什么状态",这比单纯依赖算法的加密方式要抗攻击得多。
2. 用一束紫外光切换响应波段:钙钛矿器件的物理机制
光控双波段响应听起来挺玄,说穿了其实是利用钙钛矿材料中的缺陷态和光生载流子动力学。我们先把器件结构看清楚,再讲物理过程。
2.1 器件结构并不复杂
这篇文章里的探测器结构属于非常经典的垂直型两端器件:透明导电电极/钙钛矿有源层/金属电极,或者更精细一点会在界面处加一层空穴传输层和一层电子传输层。钙钛矿有源层用的是比较常见的混合阳离子或者混合卤素体系,具体组分我不展开,重点在于薄膜里有意的"适度缺陷"——不是说材料做得越完美越好,恰恰是这些缺陷能级,给光控响应切换提供了存储和释放载流子的位置。
你可以把缺陷态想象成一个个"载流子仓库"。仓库空的时候,它会在禁带中间形成复合中心,把光生载流子非辐射复合掉;仓库装满载流子之后,复合通道被堵死,器件的光电导增益反而会变大。问题是怎么控制仓库的装填量。紫外光在这里就是"装货指令"。
2.2 陷阱态填充如何改变光谱响应
紫外光光子能量大,穿透深度很浅,主要在钙钛矿薄膜表面附近被吸收。表面区域产生的大量电子-空穴对中,有一部分会被深能级缺陷捕获,形成空间电荷积累。这些积累的空间电荷会改变界面处的能带弯曲,进而调制整个器件的载流子抽取效率。
关键点在于,能带弯曲对不同波长的光影响是不一样的。入射光波长越长,穿透深度越深,光生载流子越可能分布在薄膜深部,受表面能带弯曲影响的程度就越小;而短波长光生载流子本来就集中在表面,对表面空间电荷极其敏感。所以紫外光一照,表面缺陷被填充,能带结构变了,器件对短波长的响应提升幅度和长波长不对称,宏观表现就是响应光谱峰值发生移位。
从响应谱曲线上看,暗态时器件峰值可能落在红光区(比如650到700纳米附近),紫外光照过后峰值明显向短波方向移动(可能移到550纳米以下),两个波段之间的对比度能拉开到数倍甚至接近一个量级。更理想的是,这个状态切换是可逆的。关闭紫外光后,被捕获的载流子会通过热激发或者与后续光生载流子的复合逐渐释放,器件慢慢恢复原状。这个恢复过程通常有记忆效应——不会瞬间跳变,而是有一个秒量级甚至更长的弛豫时间,这正好让成像过程中的多次采样能维持在同一个响应状态下。
2.3 实测响应谱的两个状态特征
我根据这篇文章以及同方向的其他工作,整理出两种状态下的典型响应对比:
| 参数 | 暗态(状态A) | 紫外控制光激活后(状态B) |
|---|---|---|
| 响应峰值波段 | 偏长波,约650-700纳米 | 偏短波,约550纳米附近 |
| 峰值响应度 | 中等,约0.1-0.3 A/W | 提升明显,表面缺陷填充后可达0.4 A/W以上 |
| 长波/短波响应比 | 长波响应大于短波 | 短波响应反超长波 |
| 状态稳定性 | 稳定数小时以上 | 暗态下随时间弛豫,分钟量级内缓慢回落 |
| 切换方式 | 关闭紫外光自然恢复 | 紫外光照射数十秒内达到饱和 |
这里有个细节值得注意:紫外光照射时间的控制不是一个"照一下就行"的问题。照射太短,表面缺陷没有完全填充,响应谱只移了一半,两状态的区分度不够;照射太长,器件可能出现退化或者持续的光电流漂移。我在自己做类似器件的时候,一般会先扫一条"紫外照射时间-短波/长波响应比"曲线,找到比值饱和的平台区,把照射时间固定在平台区中间,才能保证实验可重复。
3. 单像素探测器如何拍出彩色图像
光电探测器只有一个光敏面,它怎么成像?这是单像素成像领域已经被回答过很多次的问题:不靠空间分辨,靠时间维度的编码调制。DMD上万块微镜就像一组高速光开关,把场景或者图像编码成一系列已知图案,探测器每次只测总光强,最后用数学方法把空间信息解出来。
3.1 为什么不用CCD或者CMOS直接拍
这里有一个选型逻辑上的问题需要用单像素探测器来做,而不是直接用面阵相机。首先,单像素探测器可以做得非常快,配合锁相放大器能检测到极其微弱的光信号,这是普通相机传感器很难做到的。其次,单像素成像天然支持非可见光波段,你把感光单元换成对红外敏感的探测器,红外图像同样能重建,这是硅基相机办不到的。
更重要的是,在这篇工作里,单像素探测器是"另一个功能的载体"——器件本身具备光控双波段响应能力。如果换成面阵相机,你要么在相机前面加机械切换的滤光轮,要么用多相机分光系统,那又回到了系统级方案的老路上。单像素探测器直接把"光谱响应可调"和"成像"压缩进了同一个光敏元件里,这才是器件级集成的意义。
3.2 DMD、Hadamard图案与逐次投影采集
单像素成像的采集过程可以这样描述。我们把待传输的加密光场用DMD调制,DMD上加载的是预先设计好的哈达玛基图案。哈达玛矩阵的元素只有+1和-1,但在光学上没法直接表示负值,所以工程实现时会把+1和-1拆成两幅互补的强度图案分别测量,然后做差。每个像素点在一组测量中都会被不同图案覆盖,探测器测到的是一系列总强度值。
具体到这篇文章的双波段解密流程,逻辑是这样的。加密端准备了一幅彩色图像,将其编码进两套不同的空间光场中:一套对应短波段信息,一套对应长波段信息。解码端首先要通过控制光把器件切换到与短波段匹配的响应状态,采集完整的一组Hadamard测量序列,得到一张灰度图;然后关闭控制光,等器件弛豫到长波段响应状态,再采集另一组序列,得到第二张灰度图。两张灰度图叠加映射到彩色空间,就还原出了原始彩色图像的信息。
这个过程有一个天然好处:两组测量是在不同物理状态下完成的,哪怕两次采集中存在时间间隔,只要每个状态内部是稳定的,两个通道之间不存在空间对齐问题,因为成像图案的分辨率网格完全由DMD的像素网格决定,跟探测器没有任何关系。
3.3 重建算法其实没那么神秘
哈达玛基图案的好处是正交完备,重建只需要做矩阵乘法。假设分辨率是32×32,那么只需要1024个基图案(每个图案拆成+1和-1两幅强度图案,一共采集2048次),然后对测量向量做逆哈达玛变换,就能得到原始图像的像素值。
伪代码可以写得很短:
import numpy as np # H 为 1024x1024 的哈达玛矩阵,pattern_mat 为逐次投影的图案矩阵(每行一个图案) # measurement 为探测器测得的1024维强度向量(已做±差分处理) H = hadamard(1024) image_vec = np.dot(H, measurement) image = image_vec.reshape(32, 32)实际实验里远比这个复杂,比如要考虑DMD的翻转时间、探测器响应带宽、锁相放大器的积分时间,但核心数学骨架就是矩阵求逆。做彩色重构时,两个波段分别重建后,还要做一次伪彩色映射或者色彩空间变换。我见过的多数工作是直接用两通道灰度映射到红绿两个通道,蓝色通道或者参考空白测量,或者用三状态测量补全。这篇工作如果只做双波段,那么还原出来的彩色图像在色彩丰富度上会有一定局限,但对特定颜色编码足以完成解密任务。
4. 解密实验链路与关键参数:加密端到解码端
纸上谈兵完了,我们看实际链路。整套系统从头到尾可以分成加密前端、解码探测端、重建与显示三段,需要统筹处理的参数其实非常多。
4.1 加密前端:彩色信息怎么变成两个波段的强度分布
加密前端的第一步是把原始彩色图拆开。比如有一幅包含红、蓝两种颜色信息的图像,可以把这个信息分别映射到两个照明波段上:蓝色的区域在短波段照明下呈现高透过率,在长波段照明下呈现低透过率;红色区域反之。DMD在这个环节的用法有两种,一种是把DMD当成空间光调制器直接调制照明光场,另一种是把DMD当成掩膜,调制物体反射或透射的光。
从实用的角度,DMD放在照明端更稳定,因为它调制的是单色均匀光源,调制度可以做很高。把两个波段的照明图案分别生成之后,用一个二向色镜或者分束器将其合并到同一光路里照射目标,这样后端探测器位置完全固定,不需要动光路。加密密钥的一部分就在这一步产生——两套照明图案本身就是密钥,或者更进阶一点,密钥嵌入在照明图案的伪随机序列中,不知道密钥就无法正确拼接重建出的通道灰度图。
4.2 解码探测端:采集时序和状态切换必须卡准
解密端是整个系统的灵魂。数据采集时序大概是:紫外控制光开、照射t1秒、关断,等待几十毫秒让光致响应稳定,然后DMD开始按Hadamard图案顺序投影,单像素探测器配合锁相放大器逐点记录强度。记录完全部图案后,停止该状态下的采集;让器件在暗态下弛豫t2秒,回到长波响应状态,再重复一遍投影与记录流程。
这里最容易翻船的就是时序。紫外光开和关的瞬间会产生很强的瞬态光电流,如果锁相放大器的积分窗口没有避开这段瞬态,数据会混入很大的伪迹。我的经验是,紫外光关闭后强制等待至少一个响应稳定时间常数,再开始灰度测量;正式测量前先测一个空白参考帧,确认基线已经回到稳定值。
测量时长也不是越短越好。单像素成像对噪声的容忍度低,采样率快但探测器电流噪声大,重建图会出现明显的椒盐噪声;采样率慢则整组采集时间拉长,器件状态可能在过程中弛豫漂移,导致重建结果灰蒙蒙。从论文数据和我的实操经验来看,32×32分辨率下单个波段完整采集控制在1到2分钟内比较合理,再快对探测器带宽要求很高,再慢状态漂移就很难控制。
4.3 关键参数表和调参思路
| 参数 | 建议范围/我的取值 | 说明 |
|---|---|---|
| 紫外控制光波长 | 365-405纳米 | 能量较高、穿透浅,能有效作用于表面缺陷态 |
| 紫外照射时间 | 10-30秒 | 需通过响应比曲线标定,取平台区 |
| 状态弛豫恢复时间 | 30-60秒 | 恢复过快则增加采集难度,恢复过慢则降低帧率 |
| DMD图案刷新率 | 几百赫兹 | 要与探测器响应带宽匹配 |
| 采样分辨率 | 32×32 / 64×64 | 越高采集次数越多,状态稳定性要求越高 |
| 锁相放大器积分时间常数 | 1-10毫秒 | 兼顾信噪比与总测量时长 |
实际操作时,我会建议先不采图像,先用两个波段的连续光分别测器件在两种状态下的光电流基线,确认短波/长波响应比真的拉开了,然后才上DMD投影。很多人一上来直接跑成像,结果发现重建出来的两个通道灰度几乎一样,回头排查才意识到紫外光根本没让器件发生足够的光谱移位。这一步标定不到五分钟,却决定了整个解密实验的成败。
5. 实测中踩过的坑、串扰校准与后续扩展
做这类交叉验证实验最多的就是意外的坑。原理上一切都通,动手之后各种幺蛾子。这里列出几个我在实现和调试过程中真实遇到的问题,以及对应的处理思路。
5.1 双波段响应之间的串扰与校准
第一个坑是波段串扰。所谓"光控双波段",不等于状态A只对长波敏感、状态B只对短波敏感。实际上状态A在短波段也有不小的残余响应,状态B在长波段同样会探测到信号。如果直接拿两个状态的测量值当通道灰度,重建出来的彩色图像颜色会很"淡",就像被洗过一样。
我的处理方法是做一次通道间串扰标定:用纯色光(比如只有一个波段的连续激光)照射,分别记录两种状态下器件的响应值,形成一个2×2的耦合矩阵。实际解算时,把测量向量乘以这个矩阵的逆矩阵,就能去掉大部分串扰。这个思路和相机的色彩校正矩阵(CCM)完全一样,属于标准操作,但很多人会忽略。
5.2 紫外光引起的光疲劳和响应漂移
第二个坑是光疲劳。紫外光长时间照射钙钛矿薄膜,靠的不是给薄膜加热,而是缺陷填充和可能的离子迁移,这会让材料状态慢慢衰减。连续做几十个循环之后,我发现器件的短波响应峰值明显下降,恢复时间也变长,整体响应谱往长波方向漂移。也就是说同一个紫外照射参数,第一次实验和第十次实验的效果可能差一大截。
对此我的对策有三个:一是控制紫外光照剂量,能照15秒就绝不用30秒;二是每次正式实验前先做一轮短时间标定,确认两个状态的响应比仍然在可接受区间;三是如果响应漂移超过初始值的20%,就换一片器件或者让器件在暗态中放置更长时间让它恢复。钙钛矿器件虽然便宜,但也经不起长期暴力使用。
5.3 速度瓶颈与后续可能的扩展方向
第三个客观限制是速度。当前方案里,单像素成像本身的采集次数就多,加上紫外光切换需要等待缺陷填充和弛豫,整个解密过程很难做快。这套系统本质上不是为了视频级实时解密设计的,它更适用于对安全性要求高而非对实时性要求高的静态场景。
后续扩展方向上,我有两个相对看好的思路。一是把紫外控制光换成阵列化的微型紫外LED,实现对不同区域的独立状态控制,这样可以在一个器件上并行处理不同波段的图像信息;二是引入压缩感知采样,牺牲部分重建精度换取采集次数下降,配合先验信息可以把解密时间压缩到原来的三分之一甚至更少。另外,光控状态切换本质上是器件一个可调属性,如果材料体系换成有机-无机混合体系或者二维材料异质结,响应波段调节范围和切换速度还有更大提升空间。
我自己做完这套实验之后最大的体会是:这个工作的亮点不在于任何一个单点元件有多先进,而在于它把"物理层状态可调"和"信息技术"之间的边界打通了。以前我们会习惯性地把成像解码问题交给算法,把探测器当成一个固定的线性响应元件;但实际上,探测器本身的物理状态完全可以作为信息解调的一个维度来设计。只要器件材料能提供某种可控的、可逆的、对光敏感的电子态变化,类似的思路就可以迁移到红外探测、太赫兹成像甚至非视觉信息解码上。这个方向以后应该还会长出更多有意思的工作,值得持续关注。