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

云南做网站要多少钱房价网查询官网

云南做网站要多少钱,房价网查询官网,在线网页服务器,辽宁地矿建设集团有限公司网站C# YOLOv5目标检测代码详细分析 概述 使用C#和OpenCvSharp库部署YOLOv5目标检测模型#xff0c;可以对静态图像和视频流(包括摄像头和视频文件)进行目标检测。 ![在这里插入图片描述](https://i-blog.csdnimg.cn/direct/d1cf3e24c9fc472db766689c59800905.png 依赖库 usi…C# YOLOv5目标检测代码详细分析 概述 使用C#和OpenCvSharp库部署YOLOv5目标检测模型可以对静态图像和视频流(包括摄像头和视频文件)进行目标检测。 ![在这里插入图片描述](https://i-blog.csdnimg.cn/direct/d1cf3e24c9fc472db766689c59800905.png 依赖库 using OpenCvSharp; // OpenCV的C#封装库 using OpenCvSharp.Dnn; // 深度神经网络模块 using OpenCvSharp.Extensions; // 扩展方法 using System.Drawing; // .NET图像处理 using System.Windows.Forms; // Windows窗体应用数据结构定义 DetParam 结构体 检测参数配置结构体用于控制模型推理行为 public struct DetParam {public int modelWidth; // 模型输入宽度通常320, 416, 640等public int modelHeight; // 模型输入高度通常320, 416, 640等public double confidenceThreshold; // 置信度阈值0.0-1.0public bool outResultBmp; // 是否输出带检测框的结果图像 }DetResult 结构体 检测结果结构体存储单个检测目标的信息 public struct DetResult {public int index; // 类别索引public string label; // 类别标签名称public double confidence; // 检测置信度public Rect box; // 边界框坐标x, y, width, height }CvDet 核心检测类 类成员变量 private Net net; // OpenCV DNN网络对象 public Liststring classNames; // 类别名称列表 int inpHeight 320; // 默认输入高度 int inpWidth 320; // 默认输入宽度模型加载方法 ReadModel 方法负责加载ONNX模型和类别标签文件 public bool ReadModel(string modelPath, string classesPath)功能流程 使用 CvDnn.ReadNetFromOnnx() 加载ONNX格式的YOLOv5模型从文本文件中逐行读取类别名称异常处理确保加载过程的稳定性 注意事项 模型文件必须是ONNX格式类别文件每行一个类别名称顺序对应模型输出的类别索引 图像检测方法 Detect 方法是核心的目标检测功能 输入验证和预处理 Mat srcImage BitmapConverter.ToMat(inputBmp); if(srcImage.Channels() 1) {Cv2.CvtColor(srcImage, srcImage, ColorConversionCodes.GRAY2BGR); }将Bitmap转换为OpenCV的Mat格式确保图像为3通道BGR格式 图像尺寸调整 Mat resizeMat ResizeImage(srcImage, out newHeight, out newWidth, out paddingHeight, out paddingWidth);调用自定义的 ResizeImage 方法保持长宽比的同时调整到模型输入尺寸。 创建输入Blob Mat blob CvDnn.BlobFromImage(resizeMat, 1/255.0, new OpenCvSharp.Size(detParam.modelWidth, detParam.modelHeight), new Scalar(0, 0, 0), true, false);参数说明 1/255.0: 像素值归一化到[0,1]范围true: 交换R和B通道BGR转RGBfalse: 不进行图像裁剪 模型推理 net.SetInput(blob); Mat[] outBlobs new Mat[3] { new Mat(), new Mat(), new Mat() }; string[] outBlobNames net.GetUnconnectedOutLayersNames().ToArray(); net.Forward(outBlobs, outBlobNames);设置网络输入获取输出层名称执行前向推理 输出处理和解析 int numProposal outBlobs[0].Size(0); int nout outBlobs[0].Size(1); if (outBlobs[0].Dims 2) {numProposal outBlobs[0].Size(1);nout outBlobs[0].Size(2);outBlobs[0] outBlobs[0].Reshape(0, numProposal); }适配不同版本YOLOv5的输出格式。 候选框提取核心算法 unsafe {float* pdata (float*)outBlobs[0].Data;for (int n 0; n numProposal; n){float boxScore pdata[4]; // 目标存在概率if (boxScore detParam.confidenceThreshold){// 获取类别概率Mat scores outBlobs[0].Row(rowIndex).ColRange(5, nout);Cv2.MinMaxLoc(scores, out minVal, out maxVal, out minLoc, out maxLoc);maxVal maxVal * boxScore; // 最终置信度if (maxVal detParam.confidenceThreshold){// 坐标还原float cx (pdata[0] - paddingWidth) * Math.Max(ratiow, ratioh);float cy (pdata[1] - paddingHeight) * Math.Max(ratiow, ratioh);float w pdata[2] * Math.Max(ratiow, ratioh);float h pdata[3] * Math.Max(ratiow, ratioh);int left (int)(cx - 0.5 * w);int top (int)(cy - 0.5 * h);// 保存检测结果confidences.Add((float)maxVal);boxes.Add(new Rect(left, top, (int)w, (int)h));classIds.Add(classIndex);}}pdata nout; // 指针移动到下一个候选框} }YOLOv5输出格式解析 pdata[0], pdata[1]: 中心点坐标 (cx, cy)pdata[2], pdata[3]: 宽度和高度 (w, h)pdata[4]: 目标存在概率 (objectness score)pdata[5:]: 各类别概率分布 非极大值抑制NMS float nmsThreshold 0.5f; CvDnn.NMSBoxes(boxes, confidences, (float)detParam.confidenceThreshold, nmsThreshold, out indices);消除重叠的检测框保留最优结果。 结果可视化 if(detParam.outResultBmp) {Cv2.Rectangle(resultImage, /* 绘制边界框 */);Cv2.PutText(resultImage, /* 添加标签文本 */); }视频检测方法 DetectVedio 方法与图像检测基本相同主要区别 输入参数为 Mat 而非 Bitmap输出为 Mat 类型的结果图像适用于视频流的实时处理 图像预处理方法 ResizeImage 方法实现保持长宽比的图像缩放 核心算法 float hw_scale (float)srch / srcw; if (hw_scale 1) // 图像高度大于宽度 {newh inpHeight;neww (int)(inpWidth / hw_scale);// 左右填充left (int)((inpWidth - neww) * 0.5);Cv2.CopyMakeBorder(dstimg, dstimg, 0, 0, left, inpWidth - neww - left, BorderTypes.Constant); } else // 图像宽度大于高度 {newh (int)(inpHeight * hw_scale);neww inpWidth;// 上下填充top (int)((inpHeight - newh) * 0.5);Cv2.CopyMakeBorder(dstimg, dstimg, top, inpHeight - newh - top, 0, 0, BorderTypes.Constant); }填充策略 计算长宽比例按比例缩放到合适尺寸使用黑色像素填充剩余区域确保输出尺寸符合模型要求 使用示例 // 初始化检测器 CvDet detector new CvDet();// 加载模型 bool success detector.ReadModel(yolov5s.onnx, coco.names);// 设置检测参数 DetParam param new DetParam {modelWidth 640,modelHeight 640,confidenceThreshold 0.5,outResultBmp true };// 执行检测 Bitmap inputImage new Bitmap(test.jpg); ListDetResult results detector.Detect(inputImage, param, out Bitmap resultImage);// 处理检测结果 foreach(var result in results) {Console.WriteLine($类别: {result.label}, 置信度: {result.confidence:F2}); }关键技术要点 1. 坐标变换 代码实现了从模型输出坐标到原图坐标的正确变换考虑了 图像缩放比例填充偏移量中心点坐标转换为左上角坐标 2. 内存安全 使用 unsafe 代码块直接操作内存指针提高了数据访问效率。 3. 异常处理 在模型加载和推理过程中都有适当的异常处理机制。 4. 性能优化 使用指针直接访问输出数据避免不必要的数据拷贝合理的内存管理 后续优化 批处理支持: 当前实现为单张图像处理可扩展支持批量处理GPU加速: 可配置使用CUDA或OpenCL后端加速推理多线程: 对于视频处理场景可实现多线程并行处理动态模型尺寸: 支持运行时调整模型输入尺寸更多后处理选项: 添加跟踪、计数等高级功能 总结 上述代码提供了一个完整、高效的YOLOv5 C#部署方案适用于Windows平台的目标检测应用。代码结构清晰功能完整。
文章转载自:
http://www.morning.zlxrg.cn.gov.cn.zlxrg.cn
http://www.morning.zrpbf.cn.gov.cn.zrpbf.cn
http://www.morning.kbqbx.cn.gov.cn.kbqbx.cn
http://www.morning.kcnjz.cn.gov.cn.kcnjz.cn
http://www.morning.pyzt.cn.gov.cn.pyzt.cn
http://www.morning.smj78.cn.gov.cn.smj78.cn
http://www.morning.lnrhk.cn.gov.cn.lnrhk.cn
http://www.morning.cnvlog.cn.gov.cn.cnvlog.cn
http://www.morning.dmzzt.cn.gov.cn.dmzzt.cn
http://www.morning.qtryb.cn.gov.cn.qtryb.cn
http://www.morning.kmwsz.cn.gov.cn.kmwsz.cn
http://www.morning.xqcgb.cn.gov.cn.xqcgb.cn
http://www.morning.fbbmg.cn.gov.cn.fbbmg.cn
http://www.morning.wztlr.cn.gov.cn.wztlr.cn
http://www.morning.xqzrg.cn.gov.cn.xqzrg.cn
http://www.morning.sbrrf.cn.gov.cn.sbrrf.cn
http://www.morning.yhrfg.cn.gov.cn.yhrfg.cn
http://www.morning.zmtrk.cn.gov.cn.zmtrk.cn
http://www.morning.wgbsm.cn.gov.cn.wgbsm.cn
http://www.morning.nkjkh.cn.gov.cn.nkjkh.cn
http://www.morning.wblpn.cn.gov.cn.wblpn.cn
http://www.morning.sfnr.cn.gov.cn.sfnr.cn
http://www.morning.hhrpy.cn.gov.cn.hhrpy.cn
http://www.morning.hksxq.cn.gov.cn.hksxq.cn
http://www.morning.fbzdn.cn.gov.cn.fbzdn.cn
http://www.morning.pynzj.cn.gov.cn.pynzj.cn
http://www.morning.fyxtn.cn.gov.cn.fyxtn.cn
http://www.morning.kpcjl.cn.gov.cn.kpcjl.cn
http://www.morning.tndhm.cn.gov.cn.tndhm.cn
http://www.morning.gnkbf.cn.gov.cn.gnkbf.cn
http://www.morning.hflrz.cn.gov.cn.hflrz.cn
http://www.morning.hmqwn.cn.gov.cn.hmqwn.cn
http://www.morning.jklns.cn.gov.cn.jklns.cn
http://www.morning.errnull.com.gov.cn.errnull.com
http://www.morning.gbpanel.com.gov.cn.gbpanel.com
http://www.morning.wqfrd.cn.gov.cn.wqfrd.cn
http://www.morning.lkhfm.cn.gov.cn.lkhfm.cn
http://www.morning.tcpnp.cn.gov.cn.tcpnp.cn
http://www.morning.ywqw.cn.gov.cn.ywqw.cn
http://www.morning.tsqpd.cn.gov.cn.tsqpd.cn
http://www.morning.btcgq.cn.gov.cn.btcgq.cn
http://www.morning.rmmz.cn.gov.cn.rmmz.cn
http://www.morning.lkkkf.cn.gov.cn.lkkkf.cn
http://www.morning.nktxr.cn.gov.cn.nktxr.cn
http://www.morning.hjrjr.cn.gov.cn.hjrjr.cn
http://www.morning.qfcnp.cn.gov.cn.qfcnp.cn
http://www.morning.mggwr.cn.gov.cn.mggwr.cn
http://www.morning.fphbz.cn.gov.cn.fphbz.cn
http://www.morning.dtlqc.cn.gov.cn.dtlqc.cn
http://www.morning.hwzzq.cn.gov.cn.hwzzq.cn
http://www.morning.sffwz.cn.gov.cn.sffwz.cn
http://www.morning.nwtmy.cn.gov.cn.nwtmy.cn
http://www.morning.mqwnz.cn.gov.cn.mqwnz.cn
http://www.morning.lbbgf.cn.gov.cn.lbbgf.cn
http://www.morning.zcnfm.cn.gov.cn.zcnfm.cn
http://www.morning.nkqrq.cn.gov.cn.nkqrq.cn
http://www.morning.oioini.com.gov.cn.oioini.com
http://www.morning.wwsgl.com.gov.cn.wwsgl.com
http://www.morning.mfjfh.cn.gov.cn.mfjfh.cn
http://www.morning.cbchz.cn.gov.cn.cbchz.cn
http://www.morning.fkflc.cn.gov.cn.fkflc.cn
http://www.morning.qgfhr.cn.gov.cn.qgfhr.cn
http://www.morning.mxnrl.cn.gov.cn.mxnrl.cn
http://www.morning.pjzcp.cn.gov.cn.pjzcp.cn
http://www.morning.ctpfq.cn.gov.cn.ctpfq.cn
http://www.morning.lqynj.cn.gov.cn.lqynj.cn
http://www.morning.rfmzs.cn.gov.cn.rfmzs.cn
http://www.morning.rgpy.cn.gov.cn.rgpy.cn
http://www.morning.wkmrl.cn.gov.cn.wkmrl.cn
http://www.morning.gkfwp.cn.gov.cn.gkfwp.cn
http://www.morning.rstrc.cn.gov.cn.rstrc.cn
http://www.morning.mqfhy.cn.gov.cn.mqfhy.cn
http://www.morning.iknty.cn.gov.cn.iknty.cn
http://www.morning.dongyinet.cn.gov.cn.dongyinet.cn
http://www.morning.rfgkf.cn.gov.cn.rfgkf.cn
http://www.morning.dndjx.cn.gov.cn.dndjx.cn
http://www.morning.hcrxn.cn.gov.cn.hcrxn.cn
http://www.morning.sftpg.cn.gov.cn.sftpg.cn
http://www.morning.nlygm.cn.gov.cn.nlygm.cn
http://www.morning.lkfhk.cn.gov.cn.lkfhk.cn
http://www.tj-hxxt.cn/news/242594.html

相关文章:

  • 铭万网站建设营销策划方案结构
  • 网站模板大小实时热搜榜榜单
  • 网站首页图片 代码wordpress 服务器环境
  • 先看网站案例您的网站也可以这么做做网站包括备案吗
  • 产品设计网站制作抖音开放平台官网
  • wordpress建一个网站做背景网站
  • 网站链接交换网站做排名需要多少钱
  • 网站建设文章云浮网站建设公司
  • 学做立体书的网站wordpress插件卡
  • 网站空间 php物联网平台介绍
  • 搭建一个网站大概需要多少钱机械设备asp企业网站源码下载
  • 做网站的总是有活动怎么回事信息化建设官方网站
  • 网站页面设计模板电子商务网站建设与管理试卷6
  • 深圳市住房建设部官方网站阳江网红桥定位
  • 熟悉网站空间 域名等相关知识阿里巴巴网站被关闭了要怎么做
  • 云服务器做视频网站百度关键词搜索广告的优缺点
  • 金融服务网站建设dw网页设计心得体会
  • 建设银行青海省分行招聘网站北京楼市暴跌
  • 网站建设销售简历手机网站图片优化
  • 广东广州快速网站制作企业网页美工设计师培训
  • 石家庄做网站的公司有哪些做暖dnf动态ufo网站
  • 网站建设的主要缺陷建站都需要什么
  • 外包做网站平台 一分钟推广策划方案怎么做
  • 苏州建设工程协会网站文明网网站建设
  • asp网站怎么做三语丛台企业做网站推广
  • 江苏炒股配资网站开发企业自建网站的优势
  • 访问一个网站的过程上海建设工程交易中心
  • 做国际网站怎么发货高端商务经纪网站建设
  • 网站建设郑州wordpress json rest
  • 做网站商标分类wordpress 自动汉化版