yolov9 tensorRT 的 C++ 部署

yolov9 tensorRT C++ 部署

??本示例中,包含完整的代碼、模型、測試圖片、測試結果。

??完整的代碼、模型、測試圖片、測試結果【github參考鏈接】

??TensorRT版本:TensorRT-7.1.3.4

導出onnx模型

??導出適配本實例的onnx模型參考【yolov9 瑞芯微芯片rknn部署、地平線芯片Horizon部署、TensorRT部署】。

編譯

修改 CMakeLists.txt 對應的TensorRT位置
在這里插入圖片描述

cd yolov9_tensorRT_Cplusplus
mkdir build
cd build
cmake ..
make

運行

# 運行時如果.trt模型存在則直接加載,若不存會自動先將onnx轉換成 trt 模型,并存在給定的位置,然后運行推理。
cd build
./yolo_trt

測試效果

onnx 測試效果
在這里插入圖片描述
tensorRT 測試效果
在這里插入圖片描述

替換模型說明

1)按照本實例給的導出onnx方式導出對應的onnx;導出的onnx模型建議simplify后再轉trt模型。

2)注意修改后處理相關 postprocess.hpp 中相關的參數(類別、輸入分辨率等)。

修改相關的路徑

    std::string OnnxFile = "/zhangqian/workspaces1/TensorRT/yolov9_tensorRT_Cplusplus/models/yolov8n_ZQ.onnx";std::string SaveTrtFilePath = "/zhangqian/workspaces1/TensorRT/yolov9_tensorRT_Cplusplus/models/yolov8n_ZQ.trt";cv::Mat SrcImage = cv::imread("/zhangqian/workspaces1/TensorRT/yolov9_tensorRT_Cplusplus/images/test.jpg");int img_width = SrcImage.cols;int img_height = SrcImage.rows;CNN YOLO(OnnxFile, SaveTrtFilePath, 1, 3, 640, 640, 7);  // 1, 3, 640, 640, 7 前四個為模型輸入的NCWH, 7為模型輸出葉子節點的個數+1,(本示例中的onnx模型輸出有6個葉子節點,再+1=7)YOLO.ModelInit();YOLO.Inference(SrcImage);for (int i = 0; i < YOLO.DetectiontRects_.size(); i += 6){int classId = int(YOLO.DetectiontRects_[i + 0]);float conf = YOLO.DetectiontRects_[i + 1];int xmin = int(YOLO.DetectiontRects_[i + 2] * float(img_width) + 0.5);int ymin = int(YOLO.DetectiontRects_[i + 3] * float(img_height) + 0.5);int xmax = int(YOLO.DetectiontRects_[i + 4] * float(img_width) + 0.5);int ymax = int(YOLO.DetectiontRects_[i + 5] * float(img_height) + 0.5);char text1[256];sprintf(text1, "%d:%.2f", classId, conf);rectangle(SrcImage, cv::Point(xmin, ymin), cv::Point(xmax, ymax), cv::Scalar(255, 0, 0), 2);putText(SrcImage, text1, cv::Point(xmin, ymin + 15), cv::FONT_HERSHEY_SIMPLEX, 0.7, cv::Scalar(0, 0, 255), 2);}imwrite("/zhangqian/workspaces1/TensorRT/yolov9_tensorRT_Cplusplus/images/result.jpg", SrcImage);printf("== obj: %d \n", int(float(YOLO.DetectiontRects_.size()) / 6.0));

特別說明

本示例只是用來測試流程,模型效果并不保證,且代碼整理的布局合理性沒有做過多的考慮。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/711873.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/711873.shtml
英文地址,請注明出處:http://en.pswp.cn/news/711873.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

網絡爬蟲的危害,如何有效的防止非法利用

近年來&#xff0c;不法分子利用“爬蟲”軟件收集公民隱私數據案件屢見不鮮。2023年8月23日&#xff0c;北京市高級人民法院召開北京法院侵犯公民個人信息犯罪案件審判情況新聞通報會&#xff0c;通報侵犯公民個人隱私信息案件審判情況&#xff0c;并發布典型案例。在這些典型案…

獲取PDF中的布局信息——如何獲取段落

PDF解析是極其復雜的問題。不可能靠一個工具解決全部問題&#xff0c;尤其是五花八門&#xff0c;格式不統一的PDF文件。除非有鈔能力。如果沒有那就看看可以分為哪些問題。 提取文本內容&#xff0c;提取表格內容&#xff0c;提取圖片。我認為這些應該是分開做的事情。python有…

百度百科數據爬取 python 詞條數據獲取

最近需要補充一些電力名詞的解釋&#xff0c;尤其是文字相關內容。百度百科上的詞條質量有差異&#xff0c;因此我們需要先手工選擇一些高質量詞條。 假設我們選擇了互感器頁面中的儀用變壓器詞條&#xff0c;首先&#xff1a; import requests from bs4 import BeautifulS…

DataSpell 2023:專注于數據,加速您的數據科學之旅 mac/win版

JetBrains DataSpell 2023是一款專為數據科學家和數據分析師設計的集成開發環境&#xff08;IDE&#xff09;。這款IDE提供了強大的數據分析和可視化工具&#xff0c;旨在幫助用戶更快速、更高效地進行數據科學工作。 DataSpell 2023軟件獲取 DataSpell 2023在保持其一貫的數…

【多線程】常見鎖策略詳解(面試常考題型)

目錄 &#x1f334; 樂觀鎖 vs 悲觀鎖&#x1f38d;重量級鎖 vs 輕量級鎖&#x1f340;自旋鎖&#xff08;Spin Lock&#xff09;&#x1f38b;公平鎖 vs ?公平鎖&#x1f333;可重?鎖 vs 不可重?鎖&#x1f384;讀寫鎖?相關面試題 常?的鎖策略 注意: 接下來講解的鎖策略不…

udp丟包問題研究

//發現udp 有收不到數據包現象. 一: 觀察丟包 1. ifconfig enp8s0 2. netstat -s -u 二: 修改系統緩存參數. recv_buffer_size 修改系統buffer_size sysctl -w net.core.rmem_max26214400 sysctl -w net.core.rmem_default26214400 三: 應用程序考慮 av_dict_set(&m_o…

cpp基礎學習筆記03:類型轉換

static_cast 靜態轉換 用于類層次結構中基類和派生類之間指針或者引用的轉換。up-casting (把派生類的指針或引用轉換成基類的指針或者引用表示)是安全的&#xff1b;down-casting(把基類指針或引用轉換成子類的指針或者引用)是不安全的。用于基本數據類型之間的轉換&#xff…

【C# 】進度條控件 ProgressBar 使用

進度條控件ProgressBar控件&#xff0c;一般作為UI界面表示某個事情進行到某個程度的外觀的體現。 那么進度條控件ProgressBar控件&#xff0c;在form中是怎么使用的呢&#xff1f; 該控件必須要用的屬性如下&#xff1a; private System.Windows.Forms.ProgressBar progressB…

Flutter Version Manager (FVM): Flutter的版本管理終極指南

Flutter筆記 Flutter Version Manager (FVM) - 文章信息 - Author: 李俊才 (jcLee95) Visit me at: https://jclee95.blog.csdn.netEmail: 291148484163.com. Shenzhen ChinaAddress of this article:https://blog.csdn.net/qq_28550263/article/details/136300307 my-websit…

SQL-Labs靶場“26-28”關通關教程

君衍. 一、二十六關 基于GET過濾空格以及注釋報錯注入1、源碼分析2、繞過思路3、updatexml報錯注入 二、二十六a關 基于GET過濾空格注釋字符型注入1、源碼分析2、繞過思路3、時間盲注 三、二十七關 基于union及select的過濾單引號注入1、源碼分析2、繞過思路3、聯合查詢注入4、…

laravel cache

一、基本操作 Cache::put() 創建緩存&#xff08;鍵&#xff0c;值&#xff0c;有效期&#xff08;單位是秒&#xff09;&#xff09; Cache::get() 獲取緩存 Cache::add() 只會在緩存項不存在的情況下添加數據到緩存&#xff0c;如果數據被成功返回 true&#xff0c;否則&…

Android在后臺讀取UVC攝像頭的幀數據流并推送

Android在后臺讀取UVC攝像頭的幀數據流并推送 添加UvcCamera依賴庫 使用原版的 saki4510t/UVCCamera 在預覽過程中斷開可能會閃退&#xff0c;這里使用的是 jiangdongguo/AndroidUSBCamera 中修改的版本&#xff0c;下載到本地即可。 https://github.com/jiangdongguo/AndroidU…

Rust學習筆記:基礎工具和基本名詞

不要用共享內存來通信&#xff0c;要用通信來共享內存 rustup: 一個用于管理 Rust 版本和相關工具的命令行工具 rustup update cargo: Rust 的構建系統和包管理工具 構建代碼下載依賴庫并構建下載庫 crate: 代碼包/庫 trait: 特性、功能 ///: 生成 html 格式的 doc&#…

CELL文獻速遞 | 了解微生物如何在社會中傳播并塑造我們的健康

谷禾健康 當人還是嬰兒時&#xff0c;會從父母那里得到微生物&#xff1b;和寵物玩耍或接觸時&#xff0c;也會從寵物那得到微生物&#xff1b;有時候人沒有直接和動物玩耍&#xff0c;只是接觸動物的糞便&#xff0c;甚至其他環境的微生物&#xff0c;都會交換微生物... 這些其…

智慧治水丨計訊物聯水利RTU助推小型水庫出險加固工程建設與管理

日前&#xff0c;水利部印發《關于健全小型水庫除險加固和運行管護機制的意見》&#xff08;以下簡稱《意見》&#xff09;&#xff0c;健全小型水庫除險加固和運行管護常態化機制&#xff0c;提高小型水庫安全管理水平。《意見》提出了“十四五”的兩大管理機制&#xff0c;通…

adb下載安裝及使用教程

adb下載安裝及使用教程 一、ADB的介紹1.ADB是什么&#xff1f;2.內容簡介3.ADB常用命令1. ADB查看設備2. ADB安裝軟件3. ADB卸載軟件4. ADB登錄設備shell5. ADB從電腦上發送文件到設備6. ADB從設備上下載文件到電腦7. ADB顯示幫助信息 4.為什么要用ADB 二、ADB的下載1.Windows版…

Flutter GetX 之 暗黑模式

我們緊接上篇文章,今天繼續講解一下強大的 GetX 的另一個功能,就是 暗黑模式 ,在iOS 13開始蘋果的應用慢慢的都開始適配 暗黑模式,andr。oid 也慢慢的 開始跟進,截止到目前,商店的大部分應用都已經完成了 暗黑模式 的適配。 原生開發為我們提供對應的 API,那么Flutter呢…

機器學習相關概念及術語總結

目錄 1.機器學習2.監督學習3.無監督學習4.線性回歸5.邏輯回歸 1.機器學習 機器學習的定義&#xff1a;一個計算機程序可從經驗E&#xff08;Experience&#xff09;中學習如何完成任務T&#xff08;Task&#xff09;&#xff0c;并且隨著經驗E的增加&#xff0c;性能指標P&…

Python中reduce函數和lambda表達式的學習

reduce函數將一個數據集合&#xff08;鏈表&#xff0c;元組等&#xff09;中的所有數據進行下列操作&#xff1a;用傳給 reduce 中的函數 function&#xff08;有兩個參數&#xff09;先對集合中的第 1、2 個元素進行操作&#xff0c;得到的結果再與第三個數據用 function 函數…

【論文精讀】DINOv2

摘要 學習與特定任務無關的預訓練表示已經成為自然語言處理的標準&#xff0c;這些表示不進行微調&#xff0c;即可在下游任務上明顯優于特定任務模型的性能。其主要得益于使用無監督語言建模目標對大量原始文本進行預訓練。 遵循NLP中的這種范式轉變&#xff0c;以探索計算機視…