实用指南:【图像处理 - 基础知识】ISP(Image Signal Processor)处理
文章目录
1. 图像传感背景
- 数字相机(包括手机、监控摄像头、数码相机等)成像的基本流程是:
光线 → 镜头 → 图像传感器(CMOS/CCD) → RAW 数据 → ISP 处理 → 彩色图像(JPEG/YUV) → 显示/存储
CMOS 和 CCD 是两种主要的图像传感器技术,它们负责将进入相机镜头的光信号转换为电信号
存在的问题:
| 问题类别 | 详细说明 | ISP 需要执行的处理步骤 |
|---|---|---|
| 1. 每个像素只有一种颜色(Bayer 模式) | 传感器表面覆盖着 Bayer 滤色阵列(如 RGGB),每个像素只能感知 R、G 或 B 中的一种颜色。 结果:原始图像呈“马赛克”状,无法直接显示彩色。 | 去马赛克(Demosaicing) 通过插值算法,为每个像素补全缺失的两个颜色分量,生成完整的 RGB 图像。 |
| 2. 颜色不真实(受光源影响) | 同一白色物体在不同光源下呈现不同颜色(如日光偏蓝、白炽灯偏黄)。 传感器“忠实”记录光线,但人眼具有“色彩恒常性”,会自动适应。 | 白平衡(White Balance, WB) 调整 R、G、B 通道增益,使白色在各种光照下仍呈现为白色,还原真实色彩。 |
| 3. 图像偏暗、对比度低、有噪声 | - 低光环境下信号弱,噪声明显 - 镜头进光不均导致“暗角”(四角变暗) - 传感器存在“黑电平偏移”或“坏点” | 多项校正与降噪: - 黑电平校正(BLC) - 坏点校正(BPC) - 降噪(Noise Reduction, NR) - 镜头阴影校正(LSC) - 自动曝光(AE) |
| 4. 图像模糊、细节不清晰 | 受限于传感器和镜头的物理特性,图像边缘可能不够锐利,细节模糊。 | 锐化(Sharpening / Edge Enhancement) 增强图像边缘对比度,提升主观清晰度和细节表现。 |
| 5. 动态范围有限 | 在强光与阴影并存的场景中,传感器容易出现过曝(亮部丢失)或欠曝(暗部漆黑)。 | HDR(高动态范围)融合 通过多帧不同曝光图像融合,保留亮部与暗部细节,扩展动态范围。 |
| 6. 颜色不准确 | 传感器对颜色的响应与人眼感知不同,导致拍出的颜色失真或“怪异”。 | 颜色校正矩阵(Color Correction Matrix, CCM) 将传感器原始颜色空间转换到标准色彩空间(如 sRGB),确保色彩准确自然。 |
2. RAW数据格式
Bayer滤色阵列(Bayer Filter Array)
发明者Bryce Bayer的名字命名
每个像素点上覆盖有一个滤色器,该滤色器只允许特定颜色的光通过并被像素捕捉。也就是说每个感光单元得到的像素只能反应某一种颜色的值。
因为人眼对绿色最为敏感,绿色滤色器的数量通常是红色或蓝色的两倍
如果不对Bayer颜色处理的话,看上去就如下图,每个像素只有一个颜色

常见的Bayer排列方式
| 名称 (OpenCV) | 2×2 单元格排列 | 说明 |
|---|---|---|
RGGB (COLOR_BAYER_RG2RGB) | R G G B | 左上角是 红色 (R),水平相邻是绿色,垂直方向为 G-B |
BGGR (COLOR_BAYER_BG2RGB) | B G G R | 左上角是 蓝色 (B),与 RGGB 对应,颜色通道交换 |
GRBG (COLOR_BAYER_GR2RGB) | G R B G | 左上角是 绿色 (G),右边是红色,下一行从蓝色开始 |
GBRG (COLOR_BAYER_GB2RGB) | G B R G | 左上角是 绿色 (G),右边是蓝色,下一行从红色开始 |
3. ISP(Image Signal Processor)
3.1. ISP定义
一个专门的 硬件/软件处理模块,主要任务是把 图像传感器输出的 Raw Bayer 数据 转换成 可用的彩色图像(RGB/YUV),并且进行一系列图像质量优化。
- 集成位置:
- CMOS 传感器内部 ISP
- 部分 手机摄像头模组 或低端相机模组,传感器本身内置一个简单 ISP。
- 优点:模组输出直接是 YUV 图像,主控只需要解码即可。
- 缺点:可配置性差,图像调校能力有限。
- SoC 芯片内部 ISP
- 常见于 手机 SoC (高通 Snapdragon、苹果 A 系列、华为麒麟)、嵌入式平台 (NVIDIA Jetson、树莓派 RP1、海思)。
- ISP 模块作为硬件单元集成在 SoC 内,性能高、功耗低。
- 图像传感器输出 RAW → MIPI CSI-2 接口传输 → SoC 内部 ISP → CPU/GPU/NPU 进一步处理。
- 独立 ISP 芯片
- 一些高端相机(如安防摄像机、专业单反)会使用独立的 ISP 芯片(如 Ambarella、Novatek)。
- 独立 ISP 提供更强大的图像处理能力,支持更复杂的调校和多通道输入。
- 成本较高,功耗也比 SoC 内部 ISP 更大。
- 软件 ISP(PC/服务器端)
- 如果图像传感器输出 Raw Bayer,而硬件平台没有 ISP,可以用 软件库(OpenCV、Halide、Camera ISP SDK) 在 CPU/GPU 上完成 ISP 流程。
- 优点:灵活,可实验新算法。
- 缺点:功耗高,实时性差。
3.2. 主要功能
基本图像信号处理
- 去噪(Denoising)
- 镜头阴影矫正(Lens Shading Correction, LSC)
- 坏点校正(Defect Pixel Correction, DPC)
- 去马赛克(Demosaicing / De-Bayer)
- 色彩校正(Color Correction Matrix, CCM)
- 白平衡(Auto White Balance, AWB)
- 伽马校正(Gamma Correction)
图像质量增强
- 自动曝光 (AE)
- 自动对焦 (AF)
- 动态范围增强 (HDR Merge / Tone Mapping)
- 锐化 (Sharpening)
- 色彩饱和度和亮度调整
输出格式转换
- 从 Bayer RAW → RGB → YUV
- 压缩编码(如 H.264/H.265)之前的预处理
3.3. ISP主要处理流程
RAW → BLC(黑电平校正) → DPC(坏点校正) → Gain(增益调节/ISO控制)→ AE (自动曝光) → Demosaic(去马赛克) → NR(降噪) → AWB(自动白平衡) → CCM(颜色校正矩阵) → Gamma(伽马校正) → Tone Mapping(色调映射/HDR压缩) → Sharpen(锐化) → Output(输出图像)
1. RAW 数据预处理
(1) 黑电平校正 (Black Level Correction, BLC)
- 问题:传感器在完全无光时,输出并不是 0,而是存在一定偏移(黑电平偏置),且不同像素、不同颜色通道可能不一致。
- 原理:从每个像素值中减去传感器测得的黑电平(通常由光学黑区域或标定获得),使得暗场信号归零。
- 作用:避免黑图像发灰、色偏。
- 公式:
I corrected = I raw − B I_\text{corrected} = I_\text{raw} - B Icorrected=Iraw−B
I raw I_\text{raw} Iraw:原始像素值, B B B:黑电平偏置(可以按通道设置 R/G/B)
可调参数:
- 黑电平值 B(例如 R: 64, G: 64, B: 64)
- 是否按通道分开
示例:
- 对 12-bit 传感器,黑电平 B 可以在 16~128 范围调整。
(2) 坏点校正 (Defect Pixel Correction, DPC)
问题:传感器中存在坏点(死点、热点、闪烁点),这些像素值异常(过亮/过暗)。
原理:检测出坏点(静态坏点可由工厂校准表获得,动态坏点可通过邻域统计检测),再用邻近像素插值替换。
作用:消除“亮点/黑点”噪声,提高画质。
检测阈值 T:判断像素是否异常
∣ I x , y − median ( I 邻域 ) ∣ > T |I_{x,y} - \text{median}(I_\text{邻域})| > T ∣Ix,y−median(I邻域)∣>T
插值方法:用邻域像素平均或中值替代
示例:
邻域 3×3,阈值 T = 50(12-bit)
插值公式:
I x , y = median ( I 邻域 ) I_{x,y} = \text{median}(I_\text{邻域}) Ix,y=median(I邻域)
(3) 镜头阴影校正 (Lens Shading Correction, LSC / Vignetting Correction)
- 问题:镜头中心亮、边缘暗(Vignetting),且不同颜色通道响应不均匀。
- 原理:利用校准表(R/G/B 通道的增益图),对每个像素进行增益补偿,使图像亮度在整个画面范围内均匀。
- 作用:校正暗角、避免颜色不均。
2. 去马赛克与颜色生成(此时得到三通道 RGB 图像)
(4) 去马赛克 (Demosaicing / De-Bayer)
问题:Raw 数据中每个像素只记录一个颜色分量(R/G/B),缺少完整的 RGB 信息。
原理:通过插值(最近邻、双线性、边缘导向、频域算法等)推算缺失的两个通道,从而恢复每个像素完整的 RGB 值。
作用:将单通道 Bayer 图转为三通道 RGB 图像。
参数及原理:
插值算法选择:最近邻 / 双线性 / Malvar-He-Cutler / LMMSE
锐化权重(部分算法用于边缘保留)
公式(双线性示例):
I R ( x , y ) = I R ( x − 1 , y ) + I R ( x + 1 , y ) + I R ( x , y − 1 ) + I R ( x , y + 1 ) 4 I_R(x,y) = \frac{I_R(x-1,y)+I_R(x+1,y)+I_R(x,y-1)+I_R(x,y+1)}{4} IR(x,y)=4IR(x−1,y)+IR(x+1,y)+IR(x,y−1)+IR(x,y+1)
3. 颜色与亮度处理
(5) 自动白平衡 (AWB)
- 问题:光源色温不同导致图像偏色(偏黄、偏蓝)。
- 原理:估计场景光源的色温(例如灰度世界假设、完美反射假设、统计直方图等),再对 R/G/B 通道施加不同增益,使白色物体呈现为中性灰。
- 作用:保证画面色彩自然。
- 公式:
I R ′ = I R ⋅ G R , I G ′ = I G ⋅ G G , I B ′ = I B ⋅ G B I_R^\prime = I_R \cdot G_R,\quad I_G^\prime = I_G \cdot G_G,\quad I_B^\prime = I_B \cdot G_B IR′=IR⋅GR,IG′=IG⋅GG,IB′=IB⋅GB
G R , G G , G B G_R, G_G, G_B GR,GG,GB:增益系数
可调参数:
- 增益范围(一般 1.0~4.0)
- AWB算法模式(灰度世界、亮度优先、2D统计等)
示例:
- 灰度世界 AWB:
G R = 平均G 平均R , G B = 平均G 平均B G_R = \frac{\text{平均G}}{\text{平均R}},\quad G_B = \frac{\text{平均G}}{\text{平均B}} GR=平均R平均G,GB=平均B平均G
(6) 颜色校正 (Color Correction Matrix, CCM)
- 问题:传感器对颜色响应并不理想(R/G/B 通道有串扰),导致色彩偏差。
- 原理:通过一个 3×3 矩阵(由标定获得),对 RGB 向量进行线性变换,校正色彩空间。
- 作用:恢复真实色彩,还原标准色卡。
- 公式:
[ R s G s B s ] = [ a 11 a 12 a 13 a 21 a 22 a 23 a 31 a 32 a 33 ] [ R G B ] \begin{bmatrix}R_s\\G_s\\B_s\end{bmatrix} = \begin{bmatrix}a_{11} & a_{12} & a_{13}\\ a_{21} & a_{22} & a_{23}\\ a_{31} & a_{32} & a_{33}\end{bmatrix} \begin{bmatrix}R\\G\\B\end{bmatrix} RsGsBs=a11a21a31a12a22a32a13a23a33RGB
参数 a_ij 为 CCM 系数,通常通过标定获得。
- 示例: 典型 sRGB CCM 范围:0.8~1.2
(7) 伽马矫正 (Gamma Correction)
- 问题:传感器输出线性光强,但人眼对亮度感知是非线性的(接近对数响应)。
- 原理:应用 非线性曲线映射(例如 sRGB 标准 γ≈2.2),提升暗部对比度、压缩高光。
- 作用:让图像看起来符合人眼习惯,同时适配显示器。
- 公式:
I out = I in 1 / γ I_\text{out} = I_\text{in}^{1/\gamma} Iout=Iin1/γ
- 常用 γ = 2.2~2.4
(8) 色彩空间转换 (RGB → YUV / HSV 等)
- 问题:视频编码、存储或图像分析常用非 RGB 格式(YUV 更利于压缩,HSV 便于颜色分割)。
- 原理:通过矩阵变换或几何映射,将 RGB 转换为其他颜色空间。
- 作用:支持后续编码(H.264/H.265)、显示或计算机视觉任务。
4. 图像细节增强
(9) 降噪 (Noise Reduction, 2D/3D NR)
问题:传感器高 ISO 或暗光条件下噪声明显。
原理:
- 2D NR:空间域滤波(均值、双边、小波、卷积神经网络)。
- 3D NR:利用视频的时间相关性,跨帧去噪。
作用:降低噪点,提升图像观感。
参数及公式示例:
- 强度(0~255)
- 滤波半径 r(3×3、5×5)
公式(简单均值滤波):
I x , y ′ = 1 N ∑ i = − r r ∑ j = − r r I x + i , y + j I_{x,y}^\prime = \frac{1}{N} \sum_{i=-r}^{r}\sum_{j=-r}^{r} I_{x+i, y+j} Ix,y′=N1i=−r∑rj=−r∑rIx+i,y+j
- 高级:双边滤波
I x , y ′ = ∑ i , j I i , j w s ( i , j ) w r ( i , j ) ∑ i , j w s ( i , j ) w r ( i , j ) I_{x,y}^\prime = \frac{\sum_{i,j} I_{i,j} w_s(i,j) w_r(i,j)}{\sum_{i,j} w_s(i,j) w_r(i,j)} Ix,y′=∑i,jws(i,j)wr(i,j)∑i,jIi,jws(i,j)wr(i,j)
- w s w_s ws:空间权重, w r w_r wr:像素差权重
(10) 锐化 (Sharpening)
问题:去马赛克和降噪往往会让图像边缘模糊。
原理:增强高频分量(如拉普拉斯锐化、USM 卷积),突出边缘。
作用:图像更清晰,但要避免过度锐化导致噪点增强或“光晕”。
参数及公式:
锐化权重 α(0~2)
- Laplacian 锐化示例:
I sharp = I in + α ⋅ ( I in − I blur ) I_\text{sharp} = I_\text{in} + \alpha \cdot (I_\text{in} - I_\text{blur}) Isharp=Iin+α⋅(Iin−Iblur)
(11) 宽动态范围处理 (WDR/HDR Tone Mapping)
问题:高对比度场景(室内外同时拍摄)会导致亮部过曝、暗部死黑。
原理:
- 多帧合成 HDR:融合不同曝光图像。
- 单帧 WDR:局部对比度增强或曲线映射。
作用:同时保留亮部细节和暗部层次。
公式(线性压缩示例):
I out = I in I in + k I_\text{out} = \frac{I_\text{in}}{I_\text{in}+k} Iout=Iin+kIin
- k 控制压缩强度

浙公网安备 33010602011771号