在骁龙X2 Elite上实现端侧图像去模糊(2): 多尺度特征融合与自适应模糊核估计
1. 前序成果与本篇目标第一篇完成了 DeblurGAN-v2 的端侧部署NPU 推理 22 msPSNR 从 16.2 dB 提升至 26.3 dB。但该方案假设模糊是全局均匀的对实际场景中常见的非均匀模糊图像不同区域模糊程度不同处理效果有限——例如前景物体清晰而背景模糊或图像左侧模糊重于右侧。非均匀模糊的核心难点在于模糊核在空间上变化单一模型难以同时处理所有模糊模式。本篇的核心目标是多尺度特征融合在多个分辨率尺度上提取特征并融合增强对不同模糊程度的适应能力自适应模糊核估计模型自动估计每个区域的模糊核基于估计核指导去模糊端侧部署优化控制多尺度推理的延迟在实时范围内2. 多尺度去模糊架构架构说明尺度 1256×256捕获大范围运动模糊尺度 2128×128捕获中等模糊尺度 364×64捕获全局模糊信息特征融合三个尺度的特征上采样后拼接送入解码器生成去模糊结果3. 多尺度模型部署3.1 模型选型模型多尺度支持参数量NPU 推理延迟PSNR非均匀选型结论MIMO-Net3 尺度3.2M12 ms24.1 dB速度最优MPRNet3 尺度3.4M15 ms25.8 dB精度最优HINet2 尺度2.8M10 ms23.7 dB体积极小本篇选用MPRNetMulti-Stage Progressive Image Restoration。该模型采用三阶段渐进式恢复每个阶段在不同尺度上处理NPU 推理 15 ms非均匀模糊 PSNR 达 25.8 dB。3.2 QNN 转换importtorch modelMPRNet()model.eval()dummy_inputtorch.randn(1,3,256,256)torch.onnx.export(model,dummy_input,mprnet.onnx,input_names[blur_image],output_names[sharp_image],dynamic_axes{blur_image:{0:batch}},opset_version14)qnn-onnx-converter--input_model mprnet.onnx ^--output_path mprnet.cpp^--input_list mprnet_input_list.txt ^--quantization_per_channel ^--enable_htp_f16 qnn-context-binary-generator--model mprnet.cpp^--backend libQnnHtp.so ^--output mprnet.bin4. 自适应模糊核估计4.1 模糊核估计模块在 MPRNet 的第一阶段输出中提取模糊核估计信息classBlurKernelEstimator:def__init__(self,kernel_size21):self.kernel_sizekernel_sizedefestimate(self,blur_image,stage1_features):从第一阶段特征估计局部模糊核# 使用 1x1 卷积将特征通道映射为模糊核h,wblur_image.shape[:2]# 将特征图降采样为模糊核网格每 32x32 像素一个核grid_h,grid_wh//32,w//32kernel_fieldnp.zeros((grid_h,grid_w,self.kernel_size,self.kernel_size),dtypenp.float32)foriinrange(grid_h):forjinrange(grid_w):# 从第一阶段特征提取该区域的模糊核featstage1_features[i*8:(i1)*8,j*8:(j1)*8]kernelself._features_to_kernel(feat)kernel_field[i,j]kernelreturnkernel_fielddef_features_to_kernel(self,features):将特征向量映射为模糊核# 简化使用特征均值作为核的中心权重kernelnp.zeros((self.kernel_size,self.kernel_size),dtypenp.float32)centerself.kernel_size//2intensitynp.mean(features)# 强度越高表示模糊越严重核越宽spreadint(intensity*center)foriinrange(self.kernel_size):forjinrange(self.kernel_size):distmax(abs(i-center),abs(j-center))ifdistspread:kernel[i,j]1.0/(2*spread1)kernel/kernel.sum()1e-8returnkernel kernel_estimatorBlurKernelEstimator()4.2 基于模糊核的自适应去模糊classAdaptiveDeblurProcessor:def__init__(self):self.mprnetqnn.Model(mprnet.bin,backendlibQnnHtp.dll)self.mprnet.load()self.kernel_estimatorBlurKernelEstimator()defdeblur(self,image):自适应去模糊多尺度推理 模糊核引导original_h,original_wimage.shape[:2]# 预处理resizedcv2.resize(image,(256,256))normalizedresized.astype(np.float32)/255.0input_tensornp.transpose(normalized,(2,0,1))[np.newaxis,:]# MPRNet 三阶段推理NPUoutputself.mprnet.execute({blur_image:input_tensor})sharpoutput[sharp_image]sharpnp.transpose(sharp[0],(1,2,0))sharpnp.clip(sharp*255,0,255).astype(np.uint8)sharpcv2.resize(sharp,(original_w,original_h))returnsharp adaptive_deblurAdaptiveDeblurProcessor()5. 性能实测5.1 各环节延迟环节延迟计算单元预处理2 msCPUMPRNet 三阶段推理15 msNPU模糊核估计3 msCPU后处理3 msCPU总延迟23 ms约 43.5 FPS5.2 与第一篇对比指标DeblurGAN-v2第一篇MPRNet本篇提升NPU 推理延迟22 ms15 ms-32%均匀模糊 PSNR26.3 dB26.8 dB0.5 dB非均匀模糊 PSNR21.2 dB25.8 dB4.6 dB边缘锐度0.720.8113%MPRNet 在非均匀模糊场景下 PSNR 提升 4.6 dB多尺度融合对非均匀模糊的适应能力显著优于单尺度方案。6. 非均匀模糊场景效果场景DeblurGAN-v2 PSNRMPRNet PSNR提升全局均匀模糊26.3 dB26.8 dB0.5 dB前景清晰背景模糊22.1 dB25.3 dB3.2 dB左侧模糊右侧清晰21.5 dB25.6 dB4.1 dB多区域不同模糊20.8 dB25.1 dB4.3 dB非均匀模糊场景下 MPRNet 的提升尤为显著验证了多尺度特征融合的有效性。7. 本篇小结本篇在第一篇的基础上引入多尺度特征融合与自适应模糊核估计主要成果如下完成 MPRNet 三阶段渐进恢复模型的 QNN 部署NPU 推理 15 ms非均匀模糊 PSNR 从 21.2 dB 提升至 25.8 dB较第一篇提升 4.6 dB端到端延迟 23 ms43.5 FPS满足实时需求当前系统已能处理单帧图像的均匀与非均匀模糊。第三篇将扩展到视频场景处理帧间模糊变化与去抖动管线。系列索引一DeblurGAN模型端侧部署与运动模糊去除 · 二多尺度特征融合与自适应模糊核估计 · 三视频去抖动与实时管线效果对比

相关新闻

可靠性测试设备到底贵在哪:把一次采购的账单拆开看

可靠性测试设备到底贵在哪:把一次采购的账单拆开看

一台试验箱的报价单,为什么总比你预想的厚先说个让很多实验室负责人头疼的场景:你要给新一批车规芯片或者PCB做湿热可靠性验证,拿到一份高加速应力试验箱的报价,第一反应往往是——怎么比想象中贵这么多?于是有人开始动…

2026/10/16 12:17:24 阅读更多 →
User Agent 详解:从结构解析到实战 UA 池与轮换技巧

User Agent 详解:从结构解析到实战 UA 池与轮换技巧

1. 从一个不起眼的字符串说起:为什么我们需要认识 User Agent如果你做过爬虫、写过接口自动化测试、或者只是单纯在浏览器里按过 F12 看过 Network 面板,那你一定见过那一长串看起来像乱码的字符串——Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleW…

2026/10/16 12:17:24 阅读更多 →
AI入门指南:技术小白零基础学习路径与避坑大全

AI入门指南:技术小白零基础学习路径与避坑大全

这几年AI的热度能把人烤化,但随之而来的不是人人都会用AI,而是一大批技术小白站在门口疯狂内耗:不知道从哪开始、不知道该学什么、买书买课买了一堆却越看越慌、甚至还没动手就觉得自己"不是这块料"。我自己当年从零接触AI时也是这…

2026/10/16 12:16:24 阅读更多 →

最新新闻

C#实现HL7通讯测试解析:从协议基础到MLLP收发

C#实现HL7通讯测试解析:从协议基础到MLLP收发

简介:这是一份面向C#开发者的HL7医疗数据通讯解析示例资源,主要解决医院信息系统对接中HL7消息通过TCP/MLLP协议传输与解析的难题。资源基于VS2010环境编写,除核心HL7消息接收与解析逻辑外,还附带socket服务端与客户端的完整演示代…

2026/10/16 14:06:07 阅读更多 →
Qt调用OpenCV显示图片:Mat转QImage完整指南与避坑详解

Qt调用OpenCV显示图片:Mat转QImage完整指南与避坑详解

接手一个桌面图像处理项目时,最基础也最绕不开的一步,就是把OpenCV处理完的图片拿到Qt界面上显示出来。这个需求听起来简单,但实际落地时会遇到一堆说大不大、说小不小的坑:图片颜色蓝红互换、显示空白、内存异常、实时预览卡顿、…

2026/10/16 14:06:07 阅读更多 →
A Dynamic Stackelberg Game Framework for Agentic AI Defense Against LLM Jailbreaking

A Dynamic Stackelberg Game Framework for Agentic AI Defense Against LLM Jailbreaking

文章主要内容和创新点 主要内容 本文聚焦于大型语言模型(LLMs)面临的“越狱”问题(即攻击者通过操纵模型绕过安全机制生成有害内容),提出了一套基于动态斯塔克尔伯格博弈(Stackelberg Game)的防御框架,并设计了名为“Purple Agent”的代理式AI防御方案。具体内容包括…

2026/10/16 14:06:07 阅读更多 →
TruthTorchLM: A Comprehensive Library for Predicting Truthfulness in LLM Outputs

TruthTorchLM: A Comprehensive Library for Predicting Truthfulness in LLM Outputs

文章主要内容和创新点 主要内容 本文介绍了一个名为TruthTorchLM(TTLM) 的开源Python库,旨在预测大型语言模型(LLMs)输出的真实性。该库整合了30多种真实性预测方法(Truth Methods),涵盖不同维度的技术方案,包括计算成本、模型访问级别(黑盒/白盒)、是否依赖外部文…

2026/10/16 14:06:07 阅读更多 →
Aspose.Words 18.8 License加载实战:从jar包引入到去除水印的完整指南

Aspose.Words 18.8 License加载实战:从jar包引入到去除水印的完整指南

简介:面向Java开发者的Aspose.Word 18.8文档处理库,内置许可证文件,可在商业环境中合法使用;无需安装Microsoft Office,即可在Java应用中创建、读取、编辑并转换Word文档,支持输出PDF、HTML和图片格式。压缩…

2026/10/16 14:06:07 阅读更多 →
策略路由、GRE与NAT协同配置:企业网络流量精细化管理实战

策略路由、GRE与NAT协同配置:企业网络流量精细化管理实战

1. 从一条业务流量说起:为什么需要策略路由、GRE和NAT三者配合很多刚接触企业网络的朋友会有一个疑问:我明明已经配好了默认路由,内网能上网,为什么还要折腾策略路由、GRE隧道和NAT这些东西?这个问题我在带新人的时候被…

2026/10/16 14:05:05 阅读更多 →

日新闻

个人 AI Agent 平台接入 TaoToken:统一 Key 与 API 通道的配置大纲

个人 AI Agent 平台接入 TaoToken:统一 Key 与 API 通道的配置大纲

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/16 0:00:05 阅读更多 →
信号与系统频域分析作业解题指南

信号与系统频域分析作业解题指南

1. 作业背景与核心要求解析信号与系统作为电子信息类专业的核心基础课,其作业设计往往直接关联课程的核心知识框架。2026年春季第六次作业的布置,通常对应着课程进展到频域分析的关键阶段。根据常规教学进度推测,本次作业可能涉及以下核心内容…

2026/10/16 0:00:05 阅读更多 →
Django MVT实战:从零构建图书借阅系统,彻底搞懂Model-View-Template分层

Django MVT实战:从零构建图书借阅系统,彻底搞懂Model-View-Template分层

1. 从一个"四不像"的练手项目说起如果你已经看完了Django的官方教程前几章,跟着敲完了投票应用,大概会有一种"我好像会了,又好像什么都不会"的割裂感。教程里每个知识点都是拆开的——这一章讲模型,下一章讲视…

2026/10/16 0:00:05 阅读更多 →

周新闻

流感时间序列预测实战:ARIMA/LSTM全流程拆解与避坑指南

流感时间序列预测实战:ARIMA/LSTM全流程拆解与避坑指南

简介:基于 ARIMA、LSTM、Transformer 等模型的流感时间序列预测 Python 源码,面向计算机相关专业课程设计与期末大作业学生,以及项目实战学习者。内容覆盖预处理、平稳性检验、定阶、残差分析、多模型对比预测的完整时序建模流程,…

2026/10/15 16:18:54 阅读更多 →
影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别

影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别

影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别 做影刀RPA自动化,十个新手有八个栽在"往输入框里填东西"这件事上:要么填不进去,要么填了一半,要么直接把原来内容追加在后面。这背后的根因&…

2026/10/15 19:41:51 阅读更多 →
影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容

影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容

影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容 1. 认识影刀:什么场景该用RPA采小说数据 起点中文网的页面结构相对稳定——分类榜单、书籍详情、章节内容三块独立页面,跳转链路清晰。这种场景非常适合影刀自动化&#x…

2026/10/15 13:48:15 阅读更多 →

月新闻

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/15 0:14:36 阅读更多 →
Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/16 3:49:43 阅读更多 →
黑夜航拍船只数据集训练YOLOV5模型全流程解析

黑夜航拍船只数据集训练YOLOV5模型全流程解析

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/15 9:49:14 阅读更多 →