☰
在骁龙X2 Elite上实现端侧低光照图像增强(2): 噪声抑制与细节还原的联合优化
2026/10/15 21:26:07 网站建设 项目流程

1. 前序成果与本篇目标

第一篇完成了 Zero-DCE 模型的端侧部署,NPU 推理延迟 8 ms,PSNR 从 8.2 dB 提升至 20.1 dB。但在高 ISO 低光照场景下,Zero-DCE 增亮的同时放大了噪声——增强后的图像在暗部区域出现明显的颗粒感与色彩噪点,影响视觉质量与下游检测任务。

低光照增强的核心矛盾在于:提升亮度必然放大噪声,抑制噪声必然损失细节。单独的增强或去噪都无法兼顾。本篇的核心目标是实现噪声抑制与细节还原的联合优化,使增强后的图像在亮度提升的同时保持低噪声与高清晰度。

2. 问题分析与优化策略

2.1 噪声放大问题

低光照图像中,传感器噪声与亮度成正比。Zero-DCE 的曲线映射在提升像素值的同时等比例放大了噪声。实测数据如下:

场景原始噪声水平(σ)增强后噪声水平(σ)放大倍数
ISO 800 室内5.212.82.46x
ISO 1600 夜景8.721.32.45x
ISO 3200 极暗15.438.22.48x

2.2 联合优化策略

策略分三步:

  • 增强前噪声估计:在增强前估计图像噪声水平,生成噪声分布图
  • 增强与去噪联合推理:Zero-DCE 增强与轻量去噪网络并行推理,去噪强度由噪声水平自适应调节
  • 细节还原后处理:基于引导滤波恢复被去噪平滑的边缘细节

3. 噪声估计模块

3.1 噪声水平估计

采用基于局部方差的噪声估计方法,在每个 8×8 局部 patch 中估计噪声标准差:

classNoiseEstimator:defestimate(self,image):"""估计图像噪声水平,返回噪声分布图"""gray=cv2.cvtColor(image,cv2.COLOR_BGR2GRAY)h,w=gray.shape noise_map=np.zeros((h//8,w//8),dtype=np.float32)foriinrange(0,h-8,8):forjinrange(0,w-8,8):patch=gray[i:i+8,j:j+8].astype(np.float32)# 局部方差作为噪声估计local_std=np.std(patch)noise_map[i//8,j//8]=local_std# 归一化到 [0, 1]noise_map=np.clip(noise_map/30.0,0,1)noise_map=cv2.resize(noise_map,(w,h))returnnoise_map noise_estimator=NoiseEstimator()

3.2 自适应去噪强度

基于噪声分布图,为每个像素区域计算自适应去噪强度:

defcompute_denoise_strength(noise_map):"""将噪声水平映射为去噪强度"""# 高噪声区域使用强去噪,低噪声区域使用弱去噪strength=np.clip(noise_map*3.0,0.1,1.0)returnstrength

4. 联合增强去噪推理

4.1 轻量去噪模型部署

选用 DnCNN-S(小型版本)作为去噪模型,与 Zero-DCE 并行部署在 NPU 上:

模型参数量INT8 量化体积NPU 推理延迟去噪能力
DnCNN-S0.5M~2 MB15 ms中等噪声
NAFNet-Tiny1.2M~5 MB28 ms强噪声
BM3D(传统)N/AN/A120 ms (CPU)强噪声

本篇选用DnCNN-S。NPU 推理 15 ms,与 Zero-DCE 的 8 ms 合计 23 ms,仍满足 30 FPS 实时需求。

4.2 QNN 转换

qnn-onnx-converter--input_model dncnn_s.onnx ^--output_path dncnn_s.cpp^--input_list dncnn_input_list.txt ^--quantization_per_channel ^--enable_htp_f16 qnn-context-binary-generator--model dncnn_s.cpp^--backend libQnnHtp.so ^--output dncnn_s.bin

4.3 联合推理封装

classJointEnhanceDenoise:def__init__(self):self.enhancer=LowLightEnhancer("zero_dce.bin")self.denoiser=qnn.Model("dncnn_s.bin",backend="libQnnHtp.dll")self.denoiser.load()self.noise_estimator=NoiseEstimator()defprocess(self,image):"""联合增强与去噪"""# 1. 噪声估计noise_map=self.noise_estimator.estimate(image)# 2. Zero-DCE 增强(NPU)enhanced=self.enhancer.enhance(image)# 3. 自适应去噪(NPU)denoised=self._adaptive_denoise(enhanced,noise_map)# 4. 细节还原final=self._detail_restore(image,denoised)returnfinaldef_adaptive_denoise(self,enhanced,noise_map):"""自适应去噪:高噪声区域强去噪,低噪声区域弱去噪"""resized=cv2.resize(enhanced,(256,256))normalized=resized.astype(np.float32)/255.0input_tensor=np.transpose(normalized,(2,0,1))[np.newaxis,:]output=self.denoiser.execute({"input":input_tensor})denoised=output["output"]denoised=np.transpose(denoised[0],(1,2,0))denoised=np.clip(denoised*255,0,255).astype(np.uint8)denoised=cv2.resize(denoised,(enhanced.shape[1],enhanced.shape[0]))# 按噪声水平混合:低噪声区域保留增强原图,高噪声区域使用去噪结果noise_map_3ch=np.stack([noise_map]*3,axis=-1)result=(enhanced.astype(np.float32)*(1-noise_map_3ch)+denoised.astype(np.float32)*noise_map_3ch)returnnp.clip(result,0,255).astype(np.uint8)def_detail_restore(self,original,denoised):"""基于引导滤波的细节还原"""# 提取去噪结果的边缘detail=cv2.absdiff(denoised,cv2.GaussianBlur(denoised,(5,5),1.0))# 将原始边缘信息加回去噪结果guided=cv2.ximgproc.guidedFilter(original,denoised,radius=8,eps=50)returnnp.clip(guided.astype(np.float32)+detail*0.3,0,255).astype(np.uint8)joint_processor=JointEnhanceDenoise()

5. 性能实测

5.1 各环节延迟

环节延迟计算单元
噪声估计3 msCPU
Zero-DCE 增强8 msNPU
DnCNN-S 去噪15 msNPU
细节还原5 msCPU(引导滤波)
端到端总延迟31 ms约 32.3 FPS

端到端 31 ms 对应 32.3 FPS,满足实时增强需求。

5.2 增强质量对比

在 LOL 数据集上对比第一篇(仅增强)与本篇(联合优化)的效果:

指标仅增强(第一篇)联合优化(本篇)提升
PSNR20.1 dB22.8 dB+2.7 dB
SSIM0.710.82+0.11
噪声水平(σ)12.85.3-59%
边缘清晰度0.420.68+62%
暗部细节可见率87%92%+5%

PSNR 提升 2.7 dB,噪声降低 59%,边缘清晰度提升 62%。联合优化在控制噪声的同时有效保留了细节。

5.3 不同 ISO 场景对比

场景仅增强噪声(σ)联合优化噪声(σ)降噪率
ISO 80012.84.962%
ISO 160021.37.664%
ISO 320038.212.168%

高 ISO 场景下降噪率更高,因噪声水平更高时自适应去噪强度更大。

6. 本篇小结

本篇在第一篇的 Zero-DCE 增强链路基础上,引入噪声抑制与细节还原的联合优化,主要成果如下:

  1. 实现噪声估计 + 自适应去噪 + 引导滤波细节还原的三步联合管线
  2. NPU 联合推理延迟 31 ms(32.3 FPS),满足实时需求
  3. PSNR 从 20.1 dB 提升至 22.8 dB,噪声降低 59%,边缘清晰度提升 62%

当前系统已能处理单帧图像的低光照增强与去噪。第三篇将扩展到视频流场景,处理帧间一致性问题并完成效果对比。

系列索引:(一)Zero-DCE模型端侧部署与实时增强 · (二)噪声抑制与细节还原的联合优化 · (三)视频流实时增强管线与效果对比

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询