当前位置: 首页 > news >正文

如何在C#中配置ONNX Runtime以确保准确性和目标框位置的正确性?

在C#中配置ONNX Runtime确保目标检测准确性与目标框位置正确性,需通过环境管控、预处理对齐、推理优化、后处理还原四维度系统实施,具体如下: 

1. 环境与依赖配置

  • 版本一致性保障:通过NuGet安装与Python训练环境版本一致的ONNX Runtime组件(CPU端用Microsoft.ML.OnnxRuntime,GPU端用Microsoft.ML.OnnxRuntime.Gpu),确保CUDA版本匹配(如v1.16.3需CUDA 11.8+),避免算子解析差异。 

模型有效性验证:导出ONNX时启用simplify=True移除冗余算子,加载模型时通过InferenceSession验证完整性,示例:

sing Microsoft.ML.OnnxRuntime; 
var sessionOptions = new SessionOptions(); 
using var session = new InferenceSession("yolov11n.onnx", sessionOptions);

2. 预处理逻辑与Python严格对齐

  • Letterbox缩放填充:保持图像长宽比缩放,不足目标尺寸(如640×640)部分用RGB(114,114,114)填充,避免拉伸失真:计算缩放因子scale = min(targetW/oriW, targetH/oriH),得到缩放后尺寸newW=oriW×scalenewH=oriH×scale,填充量padLeft=(targetW-newW)/2padTop=(targetH-newH)/2,绘制缩放图像并填充背景。 
  • 像素归一化与通道转换:将像素值归一化至[0,1],若模型训练为BGR通道(Ultralytics默认),需完成RGB→BGR转换,生成float[1,3,640,640]输入张量。 

3. 推理参数与Session优化

  • 硬件与优化配置:CPU推理启用EnableCpuMemArena(),GPU推理指定设备ID(AppendExecutionProvider_Cuda(0)),图形优化设为ORT_ENABLE_BASIC避免算子行为差异。 
  • 输入张量一致性:确保输入张量形状(如[1,3,640,640])、数据类型(float32)与Python端一致,示例: 
  • var inputTensor = OrtTensor.CreateTensor<float>(sessionOptions, inputData, new long[] {1,3,640,640});
    var outputs = session.Run(new List<string>{session.OutputMetadata.Keys.First()}, new Dictionary<string, OrtTensor>{{inputName, inputTensor}});

4. 后处理与坐标还原

  • 输出解析:YOLOv11输出为float[1,num_boxes,85](4坐标+1置信度+80类别),筛选置信度>0.25的有效框。 
  • 坐标还原:扣除Letterbox填充量并除以缩放因子,映射至原图尺寸,公式:oriX1=(boxX1-padLeft)/scaleoriY1=(boxY1-padTop)/scaleoriX2=(boxX2-padLeft)/scaleoriY2=(boxY2-padTop)/scale,确保坐标在原图范围内(Clamp(0, oriW/oriH))。 
  • 非极大值抑制(NMS:采用IoU阈值0.45移除重复框,与Python端参数对齐。 

通过上述配置,可实现C#与Python端推理结果一致性,保障检测精度与目标框定位准确性。

http://www.dtcms.com/a/442248.html

相关文章:

  • PiscCode使用YOLO识别超大分辨率高清视图实践
  • 力扣2200. 找出数组中的所有 K 近邻下标
  • 文化馆网站建设情况在微信上做彩票网站有哪些
  • 网站301怎么做企业法治建设工作计划
  • list模拟实现(简单版)【C++】
  • 烟台网站建设哪家好呢维护一个网站需要多少钱
  • 什么网站做视频最赚钱wordpress无法使用ajax
  • 对接MCP服务之sse/streamable-http模式
  • springMVC中/*与/**匹配的区别
  • 如何快速学习一个网络协议?
  • 从安装到上手实战——Docker 基础命令全解析
  • 虚拟机怎么做网站昆明seo技术培训
  • 免费dede企业网站模板wordpress qa
  • autodl 安装modelscope OCR 模型 dots_ocr 笔记心得
  • Linux中文件目录结构介绍以及对目录的操作
  • 大庆建设工程交易中心网站唐山建设信息网站
  • 第8章:扩展边界:技术之外的视野(2)
  • Java面向对象练习:Person类继承与排序
  • Day04_刷题niuke20251005
  • 四个字网站 域名网站开发项目进度表
  • 理解C++20的革命特性——协程支持1
  • 【八股】操作系统
  • 2025年第13批中国深度合成算法备案分析报告
  • 建设工程专业承包交易中心网站百度指数分析官网
  • SSMEE的仓库管理系统93c6b(程序+源码+数据库+调试部署+开发环境)带论文文档1万字以上,文末可获取,系统界面在最后面
  • 怎么自己学做网站建筑案例分析模板
  • 怎样申请一个免费网站全国加盟网站建设
  • 【均衡器调节原理与操作指南】
  • 个人静态网站首页怎么做扬州今天的最新发布消息
  • 北京软件开发公司排行榜最新网站seo优化主要有哪些手段