C# CvDnn部署CoupledTPS实现不规则边界图像矩形化

💡 原文中文,约11900字,阅读约需29分钟。
📝

内容提要

该文章介绍了TPAMI2024,一个用于旋转校正等任务的半监督耦合薄板样条模型。文章提供了代码实现和模型信息,并介绍了项目的开发环境和使用方法。

🔎

延伸解读

模型输入与预处理细节

文章显示,feature_extractor.onnx 需要两个输入张量 inputa 和 inputb,尺寸均为 1×3×384×512。代码中,输入图像和掩膜图像被缩放到该尺寸,并分别进行归一化:图像使用 1/127.5 的缩放和 -1 的偏移,掩膜仅使用 1/127.5 的缩放。这种预处理方式与常见的 ONNX 模型输入要求一致,但需注意掩膜未减均值,可能影响特征提取的数值范围。

迭代推理与光流更新机制

CoupledTPS_RotationNet 的 detect 方法包含一个迭代循环,迭代次数由 iter_num 控制(示例中为 3)。每次迭代,regressnet.onnx 根据特征预测网格运动 mesh_motion,然后通过薄板样条变换和逆矩阵计算得到光流增量。第一次迭代直接累加光流,后续迭代则通过网格采样对光流进行扭曲后再累加。这种设计允许模型逐步细化校正结果,但迭代次数增加会提升计算耗时。

开发环境与依赖说明

项目基于 VS2022、.NET Framework 4.8 和 OpenCvSharp 4.8 构建。OpenCvSharp 提供了 CvDnn 模块用于加载和推理 ONNX 模型,同时利用其图像处理功能完成缩放、归一化和网格采样等操作。代码中使用了 unsafe 指针直接访问 Mat 数据,这要求项目开启允许不安全代码编译选项。此外,模型文件需放置在正确路径下,示例中为 model/ 目录。

结果保存与格式支持

推理结果可通过保存按钮导出为多种图像格式,包括 JPG、PNG、BMP、EMF、EXIF、GIF、ICO、TIFF 和 WMF。代码根据用户选择的文件扩展名调用相应的 ImageFormat 进行保存。需要注意的是,保存的是经过颜色转换(BGR 转 RGB)后的 Bitmap 对象,因此输出图像的颜色空间与原始输入一致,但格式转换可能带来压缩损失(如 JPG)。

❓

Q&A

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

TPAMI2024模型主要用于旋转校正等任务。

如何使用TPAMI2024模型进行图像处理?

用户可以通过按钮选择输入图像和掩膜图像进行处理,推理结果可以保存为多种格式的图像文件。

TPAMI2024模型的输入和输出是什么?

模型输入包括两个张量inputa和inputb,输出为feature。

TPAMI2024模型的开发环境是什么?

项目开发环境包括VS2022、.net framework 4.8和OpenCvSharp 4.8。

TPAMI2024模型的代码实现在哪里可以找到?

模型的代码实现可以在GitHub上找到,链接为https://github.com/hpc203/CoupledTPS-opencv-dnn。

TPAMI2024模型的推理过程是怎样的?

推理过程包括读取输入图像和掩膜图像,经过特征提取和回归网络处理,最终生成校正后的图像。

🏷️

标签

➡️

继续阅读