1. 暗电流基础:什么是暗电流、暗电流对图像质量的影响、CCD与CMOS暗电流差异
各位工程师朋友,咱们今天聊聊暗电流。说实话,这玩意儿是图像传感器设计里最让人头疼的问题之一。我做了十几年传感器设计,每次遇到暗电流超标,都得折腾好一阵子。
1.1 什么是暗电流?
暗电流,说白了就是传感器在完全没光的情况下,像素里自己冒出来的电荷。你想想看,明明没有光照,像素却产生了信号,这不是捣乱吗?
为什么会这样?根源在于半导体材料的热激发。硅材料里的电子在室温下会获得热能,从价带跃迁到导带,形成电子-空穴对。这些额外产生的电荷被收集到像素的势阱里,就成了暗电流。
核心公式:暗电流密度 Jdark ∝ T² · exp(-Eg/kT)
其中T是温度,Eg是硅的禁带宽度,k是玻尔兹曼常数。温度每升高6-8°C,暗电流大约翻一倍。
我记得刚入行时,有个项目在高温环境下测试,暗电流直接飙到了正常值的8倍。嗯,那次教训让我深刻理解了温度对暗电流的影响有多可怕。
1.2 暗电流对图像质量的影响
暗电流带来的问题,我归纳为三个层面:
- 固定模式噪声(FPN):每个像素的暗电流大小不一样,导致图像上出现固定的亮斑或条纹。这玩意儿最难消除,因为它跟像素的工艺偏差有关。
- 动态范围压缩:暗电流占用了势阱的容量,能容纳的光生电荷就少了。说白了,本来能拍100dB的场景,现在只能拍80dB了。
- 信噪比恶化:暗电流本身也是一种噪声源(散粒噪声),会叠加到信号上。长曝光时尤其明显,拍出来的照片全是噪点。
避坑指南:我曾经有个项目,客户反馈夜景照片全是白点。排查了半天,发现是暗电流校正参数没跟上温度变化。后来我养成了习惯——每次做暗电流校正,必须同时采集温度数据。
1.3 CCD与CMOS暗电流差异
CCD和CMOS的暗电流表现,差别还挺大的。我画了张图,帮你快速理解:
从图上你能看出来,CMOS的暗电流通常比CCD大3-5倍。原因其实很简单:CMOS每个像素里都有晶体管,这些晶体管的漏电会额外贡献暗电流。
我个人的经验是:
- CCD适合长曝光:比如天文摄影、科学成像,暗电流均匀性好,容易校正。
- CMOS适合高速应用:虽然暗电流大,但读出速度快,短曝光下影响不大。
实战技巧:如果你在做CMOS设计,建议在像素里加一个「屏蔽像素」(optically black pixel)。这些像素被金属层挡住光,专门用来测量暗电流。我习惯用它们做实时暗电流校正,效果比查表法好得多。
1.4 暗电流的测量方法
怎么测暗电流?我常用的方法是:
- 把传感器完全遮光(用黑胶带或金属盖)
- 设置不同的曝光时间(比如1ms、10ms、100ms)
- 记录每个曝光时间下的输出信号
- 做线性拟合,斜率就是暗电流
// 暗电流测量伪代码
float measure_dark_current(sensor_t *s, float temp) {
uint16_t *data;
float t[] = {0.001, 0.01, 0.1}; // 曝光时间(秒)
float signal[3];
for (int i = 0; i < 3; i++) {
set_exposure_time(s, t[i]);
capture_frame(s);
data = get_raw_data(s);
signal[i] = average_pixel(data, 100, 100, 200, 200); // 取中心区域
}
// 线性回归求斜率
float slope = linear_regression(t, signal, 3);
return slope; // 单位:DN/s
}
这里要注意,测量时一定要控制温度。我吃过亏——有次在实验室测暗电流,空调突然关了,温度从25°C升到30°C,暗电流直接翻倍。后来我都在恒温箱里测。
1.5 暗电流的温度依赖性
前面提到温度每升6-8°C暗电流翻倍,这个规律在实际中非常准。我整理了个表格,方便你参考:
| 温度 (°C) | 暗电流倍数 (相对25°C) | 典型应用场景 |
|---|---|---|
| -20 | 0.01x | 低温科学成像 |
| 0 | 0.1x | 户外冬季 |
| 25 | 1x (基准) | 室内常温 |
| 50 | 8x | 车载摄像头(夏季) |
| 85 | 64x | 工业高温环境 |
你看,85°C时暗电流是25°C的64倍!所以做车载或工业级产品时,暗电流消除是必须过的坎。
核心结论:暗电流是图像传感器的「原罪」,无法完全消除,但可以通过工艺优化、温度控制、校正算法来抑制。CCD和CMOS的暗电流特性不同,设计策略也要区别对待。
好了,这一章就聊到这儿。暗电流的基础概念搞清楚了,后面咱们再深入讲怎么消除它。
公众号:蓝海资料掘金营,微信deep3321