C# Onnx C2PNet 图像去雾 室外场景

💡 原文中文,约8900字,阅读约需22分钟。
📝

内容提要

这篇文章介绍了一个基于物理感知的单图去雾模型,使用了Curricular Contrastive Regularization方法。文章提供了模型的GitHub地址和代码,并给出了模型的输入和输出信息。代码使用了Microsoft.ML.OnnxRuntime和OpenCvSharp库。

🔎

延伸解读

模型背景与特点

C2PNet 是 CVPR 2023 提出的物理感知单图像去雾模型,采用课程对比正则化方法。该模型针对室外场景训练,输入输出均为动态尺寸,适合处理不同分辨率的图像。

输入输出处理细节

模型输入为 Float[1,3,H,W] 张量,需将图像转换为 RGB 通道并归一化到 [0,1]。输出同样为 Float[1,3,H,W],需乘以 255 并截断到 [0,255],再合并通道生成去雾图像。

代码实现要点

示例使用 Microsoft.ML.OnnxRuntime 和 OpenCvSharp 库。推理在 CPU 上进行,通过 SessionOptions 配置。代码包含图像读取、预处理、推理、后处理及保存功能,支持多种图像格式。

性能与适用性

推理耗时通过 DateTime 计算并显示。模型文件名为 c2pnet_outdoor_HxW.onnx,表明针对室外场景且支持动态尺寸。实际部署时需注意模型路径和输入尺寸的匹配。

❓

Q&A

C2PNet模型的主要功能是什么?

C2PNet模型用于单图去雾,能够改善室外场景的图像质量。

如何使用C2PNet模型进行图像去雾?

使用C2PNet模型时,需要将输入图像转换为Float[1, 3, -1, -1]格式的张量,然后通过模型进行推理。

C2PNet模型的输入和输出格式是什么?

C2PNet模型的输入和输出均为Float[1, 3, -1, -1]格式的张量。

C2PNet模型使用了什么技术?

C2PNet模型使用了Curricular Contrastive Regularization方法来增强去雾效果。

如何保存去雾后的图像?

去雾后的图像可以通过SaveFileDialog保存为多种格式,如JPEG、PNG、BMP等。

C2PNet模型的代码在哪里可以找到?

C2PNet模型的代码可以在GitHub上找到,地址是https://github.com/YuZheng9/C2PNet。

🏷️

标签

➡️

继续阅读