在 RK3588 平台上,利用 NPU(神经网络处理器) 来加速 Lens Shading Correction (LSC,镜头阴影校正) 的参数生成,属于 AI-ISP(人工智能增强图像信号处理)的前沿应用。
传统的 LSC 是通过查表和线性插值完成的,而 AI 化的 LSC 则能实现动态、自适应的精密校正。以下是这一过程的技术架构和实现逻辑:
1. 为什么需要 NPU 介入 LSC?
传统 LSC 的局限:
- 静态性:传统 ISP 只能预存几组固定色温(如 D65, TL84, A 光源)下的校正系数(Mesh Grid)。
- 混合光源失效:在复杂混合光环境下,传统插值算法会导致画面边缘出现色偏(Color Casting)。
- 模组差异:不同摄像头模组的物理特性略有不同,生产线的静态校准难以覆盖所有动态场景。
NPU 加速的优势:
- 实时场景分析:NPU 可以通过一个轻量级神经网络(如 CNN),分析当前画面的亮度分布和光谱特征。
- 参数预测 :NPU 不是直接处理几千万像素的图像,而是预测 LSC 的增益矩阵参数,再交给 ISP 硬件去执行。
2. 技术实现方案架构
利用 RK3588 的 NPU 加速 LSC 参数生成的流程如下:
第一步:数据输入 (Feature Extraction)
- 缩略图提取:从 VICAP 或 ISP 拿到一帧下采样(Downsampled)的 RAW 数据(例如 256x256)。
- 统计信息:获取 ISP 硬件统计出的 AWB(自动白平衡)数据和亮度直方图。
第二步:NPU 模型推理 (Inference)
- 模型设计:通常使用一个轻量级的深度学习网络(如 MobileNet 骨架的变体)。
- 输入:缩略图 + 当前 AWB 状态。
- 输出 :一组 LSC Mesh Gain(增益矩阵)。例如 17x17 或 33x33 的网格参数。
- 工具链 :使用 Rockchip 的 RKNN-Toolkit2 将训练好的模型(Pytorch/TensorFlow)转换为
.rknn格式,运行在 6 TOPS 算力的 NPU 上。
第三步:参数注入 ISP (Parameter Injection)
- 格式转换:NPU 输出的张量(Tensor)通过驱动层转换为 RKISP 硬件能识别的 LSC 寄存器格式。
- 动态更新 :利用
rkaiq(AIQ 算法服务器) 的接口,将计算出的新参数实时写入 ISP 控制流。
3. RK3588 上的具体流水线 (Pipeline)
text
[ Sensor RAW ]
|
|-----> [ ISP Hardware Block: LSC Unit ] ----> [ 正常图像输出 ]
| ^
| | (实时更新增益矩阵)
| |
|-----> [ Downsample 下采样 ]
|
V
[ RK3588 NPU ]
(运行 LSC 参数生成模型)
|
| (输出预测的 17x17 Mesh)
V
[ RKAIQ / 用户态算法服务 ]
4. 核心代码逻辑参考 (C++ / RKNN)
在 RK3588 上实现该功能的伪代码流程:
cpp
// 1. 初始化 RKNN 模型(LSC 预测模型)
rknn_init(&ctx, model_path, 0, 0, NULL);
// 2. 循环采集图像缩略图
while(capturing) {
void* raw_thumb = get_downsampled_raw(); // 获取下采样的RAW
// 3. NPU 推理
inputs[0].buf = raw_thumb;
rknn_inputs_set(ctx, io_num.n_input, inputs);
rknn_run(ctx, NULL);
rknn_outputs_get(ctx, io_num.n_output, outputs, NULL);
// 4. 解析 NPU 输出的 LSC 矩阵
float* predicted_mesh = (float*)outputs[0].buf;
// 5. 通过 RKAIQ 接口动态修改 ISP 参数
// 这里的接口通常是 rkaiq_uapi_setLscAttrib
rk_aiq_lsc_attrib_t lsc_attr;
convert_mesh_to_isp_format(predicted_mesh, &lsc_attr);
rk_aiq_user_api_lsc_SetAttrib(aiq_ctx, &lsc_attr);
}
5. 这种方案的挑战与优势
- 挑战:
- 模型训练:需要收集成千上万种不同光照、不同镜头下的阴影样本作为训练集。
- 同步性:NPU 推理延迟必须控制在几毫秒内,否则 LSC 参数更新会滞后于画面变化(产生闪烁)。
- 优势:
- 消除色偏:能完美解决人造光源(如廉价 LED 灯)引起的复杂边缘偏绿或偏紫问题。
- 节省内存:不需要在固件里预存几百兆的静态 LSC 查找表,只需一个几兆的 NPU 模型。
总结
在你的香橙派 5(RK3588)上,如果你觉得默认的 rkaiq_3A_server 提供的 LSC 校正不够好(例如画面边缘依然有色差),利用 NPU 自定义一个 智能 LSC 参数生成器 是目前最高端的解决方案。这正是 RK3588 被称为"AI-ISP"级芯片的核心能力之一。