红外-可见光图像融合算法的端侧部署实战:从训练到 BPU 量化推理全流程(RDK X5)
关键词: 图像融合 · 红外可见光 · 知识蒸馏 · ONNX · BPU量化 · RDK X5 · 嵌入式AI · 边缘推理
写在前面
最近完成了一套红外-可见光图像融合算法的完整端侧部署工作,从模型设计、知识蒸馏压缩,到 ONNX 导出、BPU 量化,再到 RDK X5 板端实时推理,跑通了完整的 Pipeline。
评测基准用的是 TF-1770(1770 对红外-可见光图像对),覆盖无人机、手持等多类采集场景,全套指标(SD / MI / VIF / AG / EN / Q_abf / SF / PSNR / SSIM / CC / SCD)均有定量对比。
受限于保密要求,核心网络结构和量化细节不便公开,但整体框架和关键踩坑点可以分享。有合作意向或定制需求可直接联系,文末附联系方式。
一、任务背景
红外与可见光图像各有局限:可见光纹理细腻但在低光、烟雾场景下退化严重;红外对热目标感知能力强但纹理信息缺失。融合两者可以在单一图像中同时保留热目标显著性与场景纹理,在无人机侦察、夜视安防、工业检测等领域具有实际价值。
我们的目标是:
- 融合质量对标或超过 SOTA 方法(Table 4 全套指标)
- 模型轻量化,可在嵌入式 NPU (RDK X5上称作BPU)上实时运行(≥25 FPS)
- 端到端部署,不依赖服务端,延迟可控
二、整体技术路线
训练阶段(GPU 服务器)
├─ Teacher 网络训练(完整参数)
├─ Student 网络设计(轻量化结构)
└─ 知识蒸馏(Feature / Pixel 双路蒸馏)
↓
导出阶段
├─ PyTorch → ONNX(opset 11,动态/静态尺寸)
└─ ONNX 验证(onnxruntime CPU/GPU 对齐)
↓
量化阶段(地平线工具链)
├─ 校准数据准备(均匀采样真实场景)
├─ PTQ 量化(int8)
└─ bin 模型编译 → RDK X5 BPU 格式
↓
板端部署(RDK X5 / BPU)
└─ Python / C++ 推理 · 实时 Pipeline
三、模型压缩策略
3.1 知识蒸馏
Teacher 网络参数量较大,直接部署到嵌入式设备延迟不可接受。我们设计了一个轻量 Student 网络,通过多层次特征蒸馏将 Teacher 的融合能力迁移至 Student:
- Feature-level 蒸馏:中间特征图的 L2 对齐
- Pixel-level 蒸馏:输出图像的感知损失(Perceptual Loss)
- 最终 Student 模型 ≈1.34 MB(FP32 权重),BPU 量化后进一步压缩
3.2 量化适配
BPU 对算子支持有明确约束,部分自定义激活函数、非标准 Resize 算子需要替换。我们经历了若干轮算子兼容性排查:
- 将自定义激活替换为 BPU 原生支持算子
- Resize 统一为双线性插值 + 对齐 corners 模式
- 逐层检查 scale 分布,对异常层做针对性 clip 处理
四、评测结果(TF-1770 基准)
评测在两套硬件上独立跑完:
| 指标 | FF-Fusion (BPU · RDK X5) | FF-Fusion (FP32 · 2080 Ti) |
|---|---|---|
| SD | 38.45 | 39.40 |
| MI | 1.84 | 2.81 |
| VIF | 0.34 | 0.63 |
| AG | 7.73 | 5.79 |
| EN | 6.72 | 6.68 |
| Q_abf | 0.3546 | 0.5254 |
| SF | 21.54 | 15.37 |
| PSNR | 66.83 | 66.75 |
| SSIM | 0.4378 | 0.6142 |
| CC | 0.7326 | 0.7506 |
| SCD | 0.8119 | 0.9726 |
| 延迟 | ~12.5 ms | ~335 ms (CPU-ONNX) |
| FPS | ~80 | ~3 (CPU-ONNX) |
说明:BPU 版本在 AG / SF 上略高(边缘响应更锐),这与 int8 量化引入的微量噪声有关;FP32 版本在 SSIM / SCD / VIF 等全局一致性指标上更优,符合预期。综合来看,BPU 量化损失极小,延迟下降约 27×。
五、关键踩坑记录
5.1 ONNX 导出精度对不齐
某些 PyTorch 自定义层在导出 ONNX 时存在数值误差,需要在导出前做 torch.onnx.export 的 custom_opsets 注册,并逐层验证输出差异(我们要求 max_diff < 1e-4)。
5.2 BPU 校准数据选取
PTQ 校准对数据分布非常敏感。我们从 TF-1770 中均匀采样了约 200 对,覆盖白天/夜间/雾天场景,避免了校准集分布偏移导致量化精度骤降的问题。
5.3 算子不支持导致回退 CPU
地平线工具链会把不支持的算子自动 fallback 到 CPU,这会大幅增加延迟。通过 hb_mapper checker 逐一排查,将 fallback 算子清零,最终整个网络完整跑在 BPU 上。
5.4 板端 Python 环境依赖
RDK X5 官方镜像 Python 版本和 hobot-dnn 绑定需注意版本匹配,NumPy / Pillow 版本不对会触发 ABI 不兼容问题。建议固定虚拟环境并用 requirements.txt 锁定版本。
六、板端实测视频帧效果(部分截图描述)
- 城市场景:可见光建筑纹理清晰保留,红外行人热斑显著增强
- 无人机俯拍:地物边缘锐利,热目标不被背景淹没
- 夜间低光:纯可见光图像近乎黑场,融合图像依然能分辨场景结构
具体可视化结果不便公开,有兴趣合作的朋友可以私信联系,可演示完整视频 Demo。
七、可提供的能力与服务
如果你有以下需求,欢迎联系我们:
- ✅ 红外-可见光融合算法定制开发与评测
- ✅ 模型轻量化 / 知识蒸馏,面向嵌入式 NPU(RDK X5、瑞芯微、海思等)
- ✅ ONNX 端到端部署,含算子适配与量化调优
- ✅ BPU / NPU 量化全流程(PTQ / QAT),含精度损失分析报告
- ✅ 自定义评测基准建立,MATLAB 标准指标完整复现
- ✅ 学术论文 Table 数据复现与对比实验支持
联系方式
有合作需求 / 技术交流 / 定制开发,欢迎私信或邮件联系。
邮箱: 1580195000@qq.com
CSDN 私信 / 评论区 均可,响应及时。
参考资料
- 地平线 RDK X5 官方文档
- ONNX Runtime 官方文档
- TF-1770 数据集(内部整理,暂不公开)
- 相关 MATLAB 评测代码(对标论文标准指标)
本文部分技术细节出于保密原因未作详细说明,如有疑问欢迎交流。
AtomGit 是由开放原子开源基金会联合 CSDN 等生态伙伴共同推出的新一代开源与人工智能协作平台。平台坚持“开放、中立、公益”的理念,把代码托管、模型共享、数据集托管、智能体开发体验和算力服务整合在一起,为开发者提供从开发、训练到部署的一站式体验。
更多推荐


所有评论(0)