1. 课程导论与成像基础

各位同学好,我是这门课的主讲。在图像处理这个行当摸爬滚打了十几年,我见过太多「白天是龙,晚上是虫」的摄像头方案。说实话,低照度场景一直是消费电子和安防领域的硬骨头。今天咱们就从物理根因讲起,把「为什么晚上拍不清楚」这件事彻底聊透。

1.1 低照度成像的物理原理

你想想看,一张照片的本质是什么?是光子撞击感光元件,产生电信号,再被量化成数字。问题就出在这个「光子撞击」的过程上——光线越暗,光子越少,信号就越不稳定。

光子噪声(Shot Noise)

这是最根本的噪声,躲不掉的。光子到达传感器的时间是随机的,服从泊松分布。信号越弱,信噪比越低。我记得有一次调试一个手机夜景模式,发现暗部全是颗粒感,一开始以为是算法问题,后来一算——纯粹是光子不够,物理极限。

关键公式: 信噪比 SNR = 10·log₁₀(N),N 是收集到的光子数。光线减半,SNR 下降 3dB。

读出噪声(Read Noise)

光子转成电压、电压再被放大的过程中,电路本身会引入噪声。这个我深有体会——早年做一款工业相机,换了三版读出电路才把噪声压下去。读出噪声跟曝光时间无关,但跟增益(ISO)强相关。增益一拉高,读出噪声也跟着放大。

暗电流(Dark Current)

传感器本身的热激发也会产生电子,跟光照无关。温度每升高 6-8°C,暗电流翻一倍。我在项目中遇到过夏天户外监控画面全是「热噪点」的情况,后来加了主动制冷才解决。

噪声类型 来源 与曝光时间关系 与温度关系
光子噪声 光子随机到达 √(信号) 无关
读出噪声 电路读出 常数 弱相关
暗电流 热激发 线性 强相关
避坑指南: 我曾经以为暗电流噪声可以靠后期算法完全消除,后来发现长时间曝光下暗电流会饱和,导致像素值「卡死」在最大值,算法根本拉不回来。所以硬件上的温度控制比你想的重要得多。

1.2 HDR合成的基本概念与意义

说白了,HDR(高动态范围)就是解决「亮部过曝、暗部死黑」的问题。单帧图像受限于传感器位深和动态范围,拍不出人眼看到的真实场景。HDR 合成的思路很简单:拍多张不同曝光的图,把亮部、中间调、暗部各自最好的部分拼起来。

我习惯把 HDR 分成两类:

  • 多帧 HDR: 拍 2-3 张不同曝光时间的帧,合成一张。优点是画质好,缺点是有运动鬼影。
  • 单帧 HDR: 利用传感器原生支持的分区曝光(如索尼的 DOL 模式),一帧内完成长短曝光。速度快,但动态范围略低。
我的经验: 做手机影像时,多帧 HDR 的「去鬼影」是最头疼的。运动物体在长帧和短帧里位置不一样,直接融合会出现半透明拖影。后面我们会专门讲光流对齐和权重融合的算法。

1.3 课程整体项目架构与学习路径

这门课一共 30 章,我把它设计成「从物理到算法,从仿真到落地」的完整闭环。下面这张图能帮你快速建立全局认知:

课程知识体系架构图 课程知识体系架构图 成像物理与噪声模型 光子噪声·读出噪声·暗电流 HDR合成原理 多帧融合·去鬼影·色调映射 降噪算法基础 空域·时域·频域降噪 传统降噪算法 BM3D·NLM·小波阈值 深度学习降噪 CNN·UNet·Transformer HDR融合算法 光流对齐·权重图·色调映射 数据集构建 合成数据·真实采集·标注 模型训练与优化 损失函数·蒸馏·量化 端侧部署 NPU·DSP·OpenCL优化 综合实战:低照度HDR降噪系统 从数据采集 → 算法设计 → 模型训练 → 端侧部署 全流程 说明:课程按「基础 → 算法 → 工程 → 实战」四层递进,每层都有配套代码和数据集

整个课程分四个阶段:

  1. 基础篇(第1-5章): 成像物理、噪声模型、HDR 基础、图像质量评价。这部分我会带着你手写一个噪声仿真器。
  2. 算法篇(第6-15章): 传统降噪算法(BM3D、NLM)、深度学习降噪(UNet、Transformer)、HDR 融合与色调映射。每个算法都有可运行的代码。
  3. 工程篇(第16-25章): 数据集构建、模型训练技巧、量化部署、端侧优化。这里我会分享实际项目中踩过的坑。
  4. 实战篇(第26-30章): 一个完整的低照度 HDR 降噪系统,从零搭建到手机端运行。
学习建议: 我建议你每章都动手跑一遍代码,别只看不练。代码都在 GitHub 上,环境配置文档写得很详细。遇到问题先看 issue,实在解决不了可以来课程讨论区找我。