码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • [C#]使用C#部署yolov8的目标检测tensorrt模型


    【测试通过环境】

    win10 x64
    vs2019
    cuda11.7+cudnn8.8.0
    TensorRT-8.6.1.6
    opencvsharp==4.9.0
    .NET Framework4.7.2

    NVIDIA GeForce RTX 2070 Super

    版本和上述环境版本不一样的需要重新编译TensorRtExtern.dll,TensorRtExtern源码地址:TensorRT-CSharp-API/src/TensorRtExtern at TensorRtSharp2.0 · guojin-yan/TensorRT-CSharp-API · GitHub

    Windows版 CUDA安装参考:Windows版 CUDA安装_win cuda安装-CSDN博客

    【特别注意】

    tensorrt依赖不同硬件需要自己从onnx转换tensorrt,转换就是调用api实现,比如

    TensorRtSharp.Custom.Nvinfer.OnnxToEngine(@"C:\Users\Administrator\Desktop\yolov8n.onnx",1024);

    【视频演示和解说】

    使用C#部署yolov8的目标检测tensorrt模型_哔哩哔哩_bilibili测试环境:win10 x64vs2019cuda11.7+cudnn8.8.0TensorRT-8.6.1.6opencvsharp==4.9.0.NET Framework4.7.2特别注意:环境一定要对上,否则无法正常运行,具体可以参考我的博客和录制视频。博客地址:blog.csdn.net/FL1623863129/article/details/139282375, 视频播放量 1、弹幕量 0、点赞数 0、投硬币枚数 0、收藏人数 0、转发人数 0, 视频作者 未来自主研究中心, 作者简介 未来自主研究中心,相关视频:YOLOv10杀疯了!Github上刚刚发布!超热乎的实时端到端目标检测来了!CV方向的初学者请速速看过来!,北京籍前华为首名女黑客瑾瑾 在b站坚持直播编程到凌晨 可直播间却仅1在线,用C#部署yolov8的tensorrt模型进行目标检测winform最快检测速度,C#模型部署平台:基于YOLOv8目标检测模型的视频检测,yolov10 tensorrt C++ 推理!全网首发!,将yolov5-6.2封装成一个类几行代码完成语义分割任务,labelme json转yolo工具用于目标检测训练数据集使用教程,C#YOLO工业滑轨螺丝缺失检测~示例,使用纯opencv部署yolov8目标检测模型onnx,这也太全了!图像处理、特征提取、目标检测、图像检索、图像分类、图像修复、医疗影像等七大计算机视觉算法一口气学完!icon-default.png?t=N7T8https://www.bilibili.com/video/BV1t142127dW/?vd_source=989ae2b903ea1b5acebbe2c4c4a635ee

    【部分实现源码】

    1. using System;
    2. using System.Collections.Generic;
    3. using System.ComponentModel;
    4. using System.Data;
    5. using System.Drawing;
    6. using System.Linq;
    7. using System.Text;
    8. using System.Threading.Tasks;
    9. using System.Windows.Forms;
    10. using FIRC;
    11. using OpenCvSharp;
    12. using TrtCommon;
    13. using TensorRtSharp;
    14. using TensorRtSharp.Custom;
    15. using System.Diagnostics;
    16. namespace WindowsFormsApp1
    17. {
    18. public partial class Form1 : Form
    19. {
    20. public Form1()
    21. {
    22. InitializeComponent();
    23. }
    24. private void button1_Click(object sender, EventArgs e)
    25. {
    26. Yolov8Det yolov8Det = new Yolov8Det("yolov8n.engine");
    27. Mat image1 = Cv2.ImRead(@"E:\person.jpg");
    28. List<DetResult> detResults = yolov8Det.Predict(new List<Mat> { image1 });
    29. Mat re_image1 = Visualize.DrawDetResult(detResults[0], image1);
    30. Cv2.ImShow("image1", re_image1);
    31. Cv2.WaitKey(0);
    32. }
    33. private void button2_Click(object sender, EventArgs e)
    34. {
    35. TensorRtSharp.Custom.Nvinfer.OnnxToEngine(@"C:\Users\Administrator\Desktop\yolov8n.onnx",1024);
    36. }
    37. private void button3_Click(object sender, EventArgs e)
    38. {
    39. Yolov8Det detector = new Yolov8Det("yolov8n.engine");
    40. VideoCapture capture = new VideoCapture(0);
    41. if (!capture.IsOpened())
    42. {
    43. Console.WriteLine("video not open!");
    44. return;
    45. }
    46. Mat frame = new Mat();
    47. var sw = new Stopwatch();
    48. int fps = 0;
    49. while (true)
    50. {
    51. capture.Read(frame);
    52. if (frame.Empty())
    53. {
    54. Console.WriteLine("data is empty!");
    55. break;
    56. }
    57. sw.Start();
    58. List<DetResult> detResults = detector.Predict(new List<Mat> { frame });
    59. Mat resultImg = Visualize.DrawDetResult(detResults[0], frame);
    60. sw.Stop();
    61. fps = Convert.ToInt32(1 / sw.Elapsed.TotalSeconds);
    62. sw.Reset();
    63. Cv2.PutText(resultImg, "FPS=" + fps, new OpenCvSharp.Point(30, 30), HersheyFonts.HersheyComplex, 1.0, new Scalar(255, 0, 0), 3);
    64. //显示结果
    65. Cv2.ImShow("Result", resultImg);
    66. int key = Cv2.WaitKey(10);
    67. if (key == 27)
    68. break;
    69. }
    70. capture.Release();
    71. }
    72. }
    73. }

    【演示源码下载地址】https://download.csdn.net/download/FL1623863129/89372271

    注意源码提供上面对应环境的dll,只需要安装上面一样cuda+cudnn和tensorrt版本即可正常运行。如果您不安装一样版本不能正常运行。此时需要重新编译TensorRtExtern.dll,此外由于tensorrt依赖硬件不一样电脑可能无法共用tensorrt模型,所以必须要重新转换onnx模型到engine才可以运行。

  • 相关阅读:
    可变参数模板 Variadic Templates
    卡莱特在创业板上市:IPO首日跌破发行价,周锦志为实际控制人
    模板进阶 | 非类型模板参数 | 类模板的特化 | 模板的分离编译 | 模板的优缺点
    Redis(08)| 线程模型
    【日常训练】207. 课程表
    Java变量的声明和初始化
    VUE2版本的仿微信通讯录侧滑列表
    Prototype属性与Object.defineproperty方法:
    人保爱无忧易核版重疾险怎么样?好不好?
    【计算机视觉】图像分割与特征提取——基于Log、Canny的边缘检测
  • 原文地址:https://blog.csdn.net/FL1623863129/article/details/139282375
  • 最新文章
  • 攻防演习之三天拿下官网站群
    数据安全治理学习——前期安全规划和安全管理体系建设
    企业安全 | 企业内一次钓鱼演练准备过程
    内网渗透测试 | Kerberos协议及其部分攻击手法
    0day的产生 | 不懂代码的"代码审计"
    安装scrcpy-client模块av模块异常,环境问题解决方案
    leetcode hot100【LeetCode 279. 完全平方数】java实现
    OpenWrt下安装Mosquitto
    AnatoMask论文汇总
    【AI日记】24.11.01 LangChain、openai api和github copilot
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1
正则表达式工具 cron表达式工具 密码生成工具

京公网安备 11010502049817号