国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

2021.11.01 c++下 opencv部署yolov5-6.0版本 (四)

這篇具有很好參考價值的文章主要介紹了2021.11.01 c++下 opencv部署yolov5-6.0版本 (四)。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

0、寫在最前:

----2022.10.10 更新yolov5-seg實例分割模型:

2022.09.29更新 c++下面使用opencv部署yolov5和yolov7實例分割模型(六)_愛晚乏客游的博客-CSDN博客

?-----2022.07.25 更新了下yolov7的部署,有需要的自取

2022.07.25 C++下使用opencv部署yolov7模型(五)_愛晚乏客游的博客-CSDN博客

此篇文章針對yolov5的6.0版本,4.0和5.0版本請看前面三篇的修改。

2022.10.13 更新

有些人使用的是最新的torch1.12.x版本,在導(dǎo)出onnx的時候需要將do_constant_folding=True,這句換成false,否者dnn讀取不了onnx文件,而onnxrutime可以,具體原因未知。

torch.onnx.export(
    model.cpu() if dynamic else model,  # --dynamic only compatible with cpu
    im.cpu() if dynamic else im,
    f,
    verbose=False,
    opset_version=opset,
    do_constant_folding=False,
    input_names=['images'],
    output_names=output_names,
    dynamic_axes=dynamic or None)

2022.02.18更新:

最新版的代碼在windows下面導(dǎo)出onnx可能會失敗,windows10下面請保證pandas>=1.4.0,或者注釋掉export.py中的import pandas as pd(pandas的功能暫時未在export.py使用,win10下直接import版本低于1.4.0其他都不干,導(dǎo)出onnx就會失敗,原因未知)

2021.12.6更新,增加攝像頭和視頻檢測,需要將drawPred()中的inshow和waitkey注釋掉。

	VideoCapture cap(0); //視頻檢測將0改成視頻地址
	while (true) {
		Mat fram;
		cap >> fram;
		vector<Output> result;
		if (test.Detect(fram, net, result))
			test.drawPred(fram, result, color);
		imshow("detect output", fram);
		if (waitKey(2)==27) break; //esc退出
	}
	cap.release();
	destroyAllWindows();

2021.11.04更新,對于圖片長寬比過大導(dǎo)致目標(biāo)檢測失敗修改,本來想偷懶直接放個圖片的。

2021.11.01 c++下 opencv部署yolov5-6.0版本 (四)

此篇除了第4點修改檢測的代碼修改,其他代碼和第三篇中的一樣!

目錄

0、寫在最前:

一、yolov5 6.0版本新增對opencv的支持

二、導(dǎo)出onnx模型

三、查看網(wǎng)絡(luò)結(jié)構(gòu)。

四、修改檢測代碼


一、yolov5 6.0版本新增對opencv的支持

最新的項目地址可以看下https://github.com/ultralytics/yolov5

二、導(dǎo)出onnx模型

導(dǎo)出onnx的時候需要修改參數(shù),將opset默認(rèn)值改成12,原來的默認(rèn)值為13,我測試了opencv4.5.0和4.5.2兩個版本,opencv都報錯了,將之改成12即可讀取。

在export.py中修改下參數(shù)(用命令行導(dǎo)出的請加上--opset 12,請注意不要帶上dynamic參數(shù),opencv對動態(tài)輸入支持做的不好,應(yīng)該是需要opencv4.5.3以上的版本,并且需要TBB支持才行來著):

2021.11.01 c++下 opencv部署yolov5-6.0版本 (四)

三、查看網(wǎng)絡(luò)結(jié)構(gòu)。

使用netron(www.netron.app)查看下修改onnx版本之后的網(wǎng)絡(luò)模型,可以看到現(xiàn)在模型有4個輸出1,output是另外三個輸出的總輸出,而另外三個就是之前模型的三個輸出口(P3,P4,P5)。所以我們只需要遍歷output這個輸出口就可以(另外三個輸出口是可以單獨遍歷獲取數(shù)據(jù),如果你只需要小目標(biāo),就可以只遍歷P3輸出口,中目標(biāo)為P4輸出口,而P5位大目標(biāo),但是并不建議這么做就是了,因為大中小并沒有具體的區(qū)分,只是一個概念性的,實際上小目標(biāo)也有可能在P4口被檢測出來,而且概率比P3口還高也是有可能的。所以如果只需要檢測小目標(biāo),還不如直接修改網(wǎng)絡(luò)只要P3出口來的好一些)。

2021.11.01 c++下 opencv部署yolov5-6.0版本 (四)

?而輸出口的形狀由之前的[25200,85]變成了[1,25200,85],因為是一個batch size,所以在c++下面使用指針遍歷的話可以不考慮這多出來的一個維度(c++下Mat.data指針會將三維和二維按行優(yōu)先展開成一維指針,所以影響不大)。

四、修改檢測代碼

按照我前面三篇修改過的方法來說,應(yīng)為新版本不需要再修改原來的common.py和yolo.py的代碼,所以需要看下原來在yolo.py中被修改的部分做了些什么,然后需要對c++源碼進行一些修改。

之前在models/yolo.py中的Detect類中的修改,會將紅色框的部分注釋掉,所以在c++的代碼中這部分需要我們自己去計算,而現(xiàn)在不需要修改了,就要將這部分自己的計算去掉。

2021.11.01 c++下 opencv部署yolov5-6.0版本 (四)

由于python的模型已經(jīng)做了sigmoid的轉(zhuǎn)換了,所以c++下面這部分去掉就可以了。按下面的位置修改下,原來的代碼就可以使用了(注釋部分的代碼是原來的代碼)。另外的代碼請看

2021.09.02更新說明 c++下使用opencv部署yolov5模型 (三)_愛晚乏客游的博客-CSDN博客

2021.11.01 c++下 opencv部署yolov5-6.0版本 (四)

?測試下程序結(jié)果:

2021.11.01 c++下 opencv部署yolov5-6.0版本 (四)

完美運行!

總的來說,6.0版本完美的解決了opencv下讀取onnx模型的痛點,不需要繁瑣的去修改源碼,將無法讀取的網(wǎng)絡(luò)層替換掉,可以很輕松的部署了。

貼個github鏈接吧,聊勝于無,想偷懶的同學(xué)可以直接下載文件了,不需要從上一篇復(fù)制了

https://github.com/UNeedCryDear/yolov5-opencv-dnn-cpphttps://github.com/UNeedCryDear/yolov5-opencv-dnn-cpp

onnx測試模型:yolov5s.onnx-深度學(xué)習(xí)文檔類資源-CSDN下載

目前是免費的,有需要收費了說下我重新改下文章來源地址http://www.zghlxwxcb.cn/news/detail-441635.html

到了這里,關(guān)于2021.11.01 c++下 opencv部署yolov5-6.0版本 (四)的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實不符,請點擊違法舉報進行投訴反饋,一經(jīng)查實,立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費用

相關(guān)文章

  • YOLOv5 實例分割 用 OPenCV DNN C++ 部署

    YOLOv5 實例分割 用 OPenCV DNN C++ 部署

    如果之前從沒接觸過實例分割,建議先了解一下實例分割的輸出是什么。 實例分割兩個關(guān)鍵輸出是:mask系數(shù)、mask原型 本文參考自該項目(這么優(yōu)秀的代碼當(dāng)然要給star!):GitHub - UNeedCryDear/yolov5-seg-opencv-onnxruntime-cpp: yolov5 segmentation with onnxruntime and opencv 目錄 Pre: 一、代碼總結(jié)

    2024年02月12日
    瀏覽(26)
  • LibTorch實戰(zhàn)三:C++版本YOLOV5.4的部署

    LibTorch實戰(zhàn)三:C++版本YOLOV5.4的部署

    目錄 一、環(huán)境配置 二、.torchscript.pt版本模型導(dǎo)出 三、C++版本yolov5.4實現(xiàn) 四、問題記錄 4.1、注釋 detector.h中,注釋如下頭文件 4.2、錯誤: “std”: 不明確的符號 4.3、建議常被debug版本libtorch 4.4、問題:編譯成功后,運行代碼,發(fā)現(xiàn)torch::cuda::is_available()返回false 4.5、導(dǎo)出模型,

    2024年02月06日
    瀏覽(27)
  • C++模型部署:qt+yolov5/6+onnxruntime+opencv

    C++模型部署:qt+yolov5/6+onnxruntime+opencv

    作者平時主要是寫 c++ 庫的,界面方面了解不多,也沒有發(fā)現(xiàn)“美”的眼鏡,界面有點丑,大家多包涵。 本次介紹的項目主要是通過 cmake 構(gòu)建一個 基于 c++ 語言的,以 qt 為框架的,包含 opencv 第三方庫在內(nèi)的,跨平臺的,使用 ONNX RUNTIME 進行前向推理的 yolov5/6 演示平臺。文章

    2024年02月05日
    瀏覽(23)
  • Opencv C++實現(xiàn)yolov5部署onnx模型完成目標(biāo)檢測

    頭文件 命名空間 結(jié)構(gòu)體 Net_config 里面存了三個閾值和模型地址,其中 置信度 ,顧名思義,看檢測出來的物體的精準(zhǔn)度。以測量值為中心,在一定范圍內(nèi),真值出現(xiàn)在該范圍內(nèi)的幾率。 endsWith()函數(shù) 判斷sub是不是s的子串 anchors_640圖像接收數(shù)組 根據(jù)圖像大小,選擇相應(yīng)長度的

    2024年02月13日
    瀏覽(24)
  • yolov5分割+檢測c++ qt 中部署,以opencv方式(詳細(xì)代碼(全)+復(fù)制可用)

    yolov5分割+檢測c++ qt 中部署,以opencv方式(詳細(xì)代碼(全)+復(fù)制可用)

    1:版本說明: qt 5.12.10 opencv 4.5.3 (yolov5模型部署要求opencv4.5.0) 2:檢測的代碼 yolo.h yolo.cpp 檢測的調(diào)用代碼測試案例 這段調(diào)用的例子,只要把frame 改成你們自己的圖片即可 4:分割的主要代碼 YoloSeg.h YoloSeg.cpp yolov5_seg_utils.h ?yolov5_seg_utils.cpp 分割的調(diào)用代碼測試案例 ?分割的

    2024年02月03日
    瀏覽(23)
  • 36、RK3399Pro 環(huán)境搭建和Yolov5 c++調(diào)用opencv進行RKNN模型部署和使用

    36、RK3399Pro 環(huán)境搭建和Yolov5 c++調(diào)用opencv進行RKNN模型部署和使用

    基本思想:記錄rk3399 pro配置環(huán)境和c++ npu開發(fā)記錄,主要想搞一份c++代碼和其它圖像算法結(jié)合一下,好進行部署,淘寶鏈接見附錄 ?需要的python3.7對應(yīng)的aarch64的whl包:包含opencv-whl 、h5py-whl包: 鏈接: https://pan.baidu.com/s/1cvCAmHBa_4KgEjrcFIYnig 提取碼: 5ui4 鏈接: https://pan.baidu.com/s/1hrc

    2024年02月07日
    瀏覽(28)
  • yolov5 opencv dnn部署 github代碼

    yolov5 opencv dnn部署 github代碼

    源碼地址 yolov5官網(wǎng)還提供的dnn、tensorrt推理鏈接 本人使用的opencv c++ github代碼,代碼作者非本人,也是上面作者推薦的鏈接之一 實現(xiàn)推理源碼中作者的yolov5s.onnx 推理條件 實現(xiàn)推理code中作者的yolov5s.onnx windows 10 Visual Studio 2019 Nvidia GeForce GTX 1070 opencv 4.5.5、opencv4.7.0 (注意 4.7.0代碼

    2024年01月23日
    瀏覽(49)
  • yolov5 opencv dnn部署自己的模型

    yolov5 opencv dnn部署自己的模型

    github開源代碼地址 yolov5官網(wǎng)還提供的dnn、tensorrt推理鏈接 本人使用的opencv c++ github代碼,代碼作者非本人,也是上面作者推薦的鏈接之一 如果想要嘗試直接運行源碼中的yolo.cpp文件和yolov5s.pt推理sample.mp4,請參考這個鏈接的介紹 使用github源碼結(jié)合自己導(dǎo)出的onnx模型推理自己的

    2024年01月23日
    瀏覽(48)
  • yolov5-6.0項目部署+自用Pytorch模型轉(zhuǎn)換rknn模型并在RK3568 linux(Debian)平臺上使用qt部署使用NPU推理加速攝像頭目標(biāo)識別詳細(xì)新手教程

    yolov5-6.0項目部署+自用Pytorch模型轉(zhuǎn)換rknn模型并在RK3568 linux(Debian)平臺上使用qt部署使用NPU推理加速攝像頭目標(biāo)識別詳細(xì)新手教程

    1 我們打開yolov的官網(wǎng),Tags選擇6.0版本 2. 下載該壓縮包并解壓到工程目錄下 3. 我們這里使用pycharm,專門針對python的IDE,用起來非常方便,下載方式就是官網(wǎng)直接下載,用的是社區(qū)版 4. 我們需要安裝環(huán)境,這里我推薦安裝Anaconda在電腦上,這是一個非常方便的包管理工具,可

    2024年02月05日
    瀏覽(32)
  • [BPU部署教程] 教你搞定YOLOV5部署 (版本: 6.2)

    [BPU部署教程] 教你搞定YOLOV5部署 (版本: 6.2)

    最近一些人問我怎么在BPU上部署yolov5,因為之前的博客[BPU部署教程] 一文帶你輕松走出模型部署新手村介紹的網(wǎng)絡(luò)都是基于Caffe的,自己的網(wǎng)絡(luò)都是基于pytorch的,所以遇到了很多坑。鑒于這些需求,我自己研究了下部署的方式,把自己的過程整理下來供各位參考(看我這么好

    2024年02月15日
    瀏覽(66)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包