一区二区三区三上|欧美在线视频五区|国产午夜无码在线观看视频|亚洲国产裸体网站|无码成年人影视|亚洲AV亚洲AV|成人开心激情五月|欧美性爱内射视频|超碰人人干人人上|一区二区无码三区亚洲人区久久精品

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫(xiě)文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

基于YOLOv5框架如何訓(xùn)練一個(gè)自定義對(duì)象檢測(cè)模型

OpenCV學(xué)堂 ? 來(lái)源:OpenCV學(xué)堂 ? 作者:OpenCV學(xué)堂 ? 2022-09-21 10:10 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

安裝與測(cè)試

最近YOLOv5最新更新升級(jí)到v6.x版本,工程簡(jiǎn)便性有提升了一大步,本教程教你基于YOLOv5框架如何訓(xùn)練一個(gè)自定義對(duì)象檢測(cè)模型,首先需要下載對(duì)應(yīng)版本:
https://github.com/ultralytics/yolov5/releases/tag/v6.1

鼠標(biāo)滾到最下面下載源碼zip包:

https://github.com/ultralytics/yolov5/archive/refs/tags/v6.1.zip

下載完成之后解壓縮到:

D:pythonyolov5-6.1
首先運(yùn)行下面命令行完成依賴庫(kù)的安裝:

3e0f0b56-38bb-11ed-ba43-dac502259ad0.png

等待一段時(shí)間,完成全部安裝之后,運(yùn)行測(cè)試:
python detect.py --weights yolov5s.pt --source dataimageszidane.jpg
運(yùn)行結(jié)果如下:

3e18a346-38bb-11ed-ba43-dac502259ad0.jpg

數(shù)據(jù)集準(zhǔn)備與制作

自己百度收集了一個(gè)無(wú)人機(jī)與飛鳥(niǎo)的數(shù)據(jù)集,其中訓(xùn)練集270張圖像,測(cè)試集26張圖像。

3e281af6-38bb-11ed-ba43-dac502259ad0.png

使用labelImg工具完成標(biāo)注,工具下載地址:

https://gitee.com/opencv_ai/opencv_tutorial_data/tree/master/tools

YOLOv5要求的數(shù)據(jù)集目錄結(jié)構(gòu)如下:

3e3b0706-38bb-11ed-ba43-dac502259ad0.png

其中images是所有圖像的集合,labels是所有標(biāo)簽信息集合。train表示訓(xùn)練集、valid表示測(cè)試集。這里需要注意的是,labels信息中的標(biāo)簽信息YOLO格式標(biāo)注框需要把原始標(biāo)注信息的標(biāo)注框格式從:
Left top right bottom

轉(zhuǎn)換為

Center_x, center_y, width, height
并歸一化到0~1之間,這部分我寫(xiě)了一個(gè)腳本來(lái)完成label標(biāo)簽的生成,把xml的標(biāo)注信息轉(zhuǎn)換為YOLOv5的labels文件,這樣就完成了數(shù)據(jù)集制作。最后需要?jiǎng)?chuàng)建一個(gè)dataset.ymal文件,放在與data文件夾同一層,它的內(nèi)容如下:
# train and val datasets (image directory or *.txt file with image paths)train: uav_bird_training/data/images/train/val: uav_bird_training/data/images/valid/
# number of classesnc: 2
# class namesnames: ['bird', 'drone']

三:模型訓(xùn)練

制作好數(shù)據(jù)集之后,模型訓(xùn)練就成為一件很簡(jiǎn)單事情,一條命令行搞定。運(yùn)行下面的命令行:
python train.py --img 640 --batch 4 --epochs 25 --data uav_bird_trainingdataset.yaml --weights yolov5s.pt
其中uav_bird_training文件夾里是制作好的數(shù)據(jù)集。這樣就開(kāi)始訓(xùn)練,訓(xùn)練過(guò)程中可以通過(guò)tensorboard來(lái)查看可視化的結(jié)果,

3e496bc0-38bb-11ed-ba43-dac502259ad0.png

3e578bce-38bb-11ed-ba43-dac502259ad0.png

3e64e6fc-38bb-11ed-ba43-dac502259ad0.png

3e720558-38bb-11ed-ba43-dac502259ad0.png

PR曲線說(shuō)明訓(xùn)練效果還錯(cuò)!

不同框架與硬件平臺(tái)推理比較

YOLOv5的6.x版本支持不同框架模型導(dǎo)出與推理,看下圖:

3e7e15b4-38bb-11ed-ba43-dac502259ad0.png

這里分別導(dǎo)出模型為ONNX、XML、engien格式之后,使用同一段視頻在我的筆記本上(CPUi7, GPU3050ti):在下面四種推理框架上運(yùn)行
-OpenCV DNN-OpenVINO-ONNXRUNTIME-TensorRT
測(cè)試,分別截圖如下:

OpenCV DNN推理速度

3e921726-38bb-11ed-ba43-dac502259ad0.png

OpenVINO平臺(tái)上的推理速度

3e9dd070-38bb-11ed-ba43-dac502259ad0.png

ONNXRUNTIME GPU推理速度

3eb19182-38bb-11ed-ba43-dac502259ad0.png

TensorRT框架部署-FP32版本模型推理統(tǒng)計(jì):

3ec34c88-38bb-11ed-ba43-dac502259ad0.png

YOLOv5的6.x版本,是支持TensorRT 量化到FP16模型直接導(dǎo)出的,但是不支持INT8量化生成,所以自己實(shí)現(xiàn)了導(dǎo)出量化INT8版本,測(cè)試結(jié)果如下:
python detect.py --weights uav_bird_training/uav_bird_int8.engine --data uav_bird_training/dataset.yaml --source D:/bird/bird_fly.mp4

TensorRT框架部署-INT8版本模型推理統(tǒng)計(jì):

3ecf9524-38bb-11ed-ba43-dac502259ad0.png

最終比較:

3edd3c2e-38bb-11ed-ba43-dac502259ad0.png

注意:以上結(jié)果是基于Python語(yǔ)言上測(cè)試結(jié)果(前后處理都使用pytorch完成)

番外篇:C++推理與比較

使用C++部署時(shí)候,前后處理都改成了基于OpenCV 完成,使用CPU完成前后處理,OpenVINO+CPU運(yùn)行速度截圖如下:

3f0609a6-38bb-11ed-ba43-dac502259ad0.png

OpenCV DNN + CUDA版本推理

3f168a10-38bb-11ed-ba43-dac502259ad0.png

TensorRT-FP32模型推理速度

3f2ca642-38bb-11ed-ba43-dac502259ad0.png

TensorRT-INT8模型推理速度

3f3d0b04-38bb-11ed-ba43-dac502259ad0.png

最后把自定義訓(xùn)練導(dǎo)出的模型轉(zhuǎn)換為T(mén)ensorRT Engine文件之后,部署到了我的一塊Jetson Nano卡上面,實(shí)現(xiàn)了邊緣端的部署,有圖有真相:

3f48ca48-38bb-11ed-ba43-dac502259ad0.png

審核編輯 :李倩


聲明:本文內(nèi)容及配圖由入駐作者撰寫(xiě)或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問(wèn)題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • 檢測(cè)模型
    +關(guān)注

    關(guān)注

    0

    文章

    17

    瀏覽量

    7378
  • 數(shù)據(jù)集
    +關(guān)注

    關(guān)注

    4

    文章

    1224

    瀏覽量

    25448

原文標(biāo)題:YOLOv5新版本6.x 自定義對(duì)象檢測(cè)-從訓(xùn)練到部署

文章出處:【微信號(hào):CVSCHOOL,微信公眾號(hào):OpenCV學(xué)堂】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評(píng)論

    相關(guān)推薦
    熱點(diǎn)推薦

    完整指南:如何使用樹(shù)莓派5、Hailo AI Hat、YOLO、Docker進(jìn)行自定義數(shù)據(jù)集訓(xùn)練?

    今天,我將展示如何使用令人印象深刻的HailoAIHat在樹(shù)莓派5訓(xùn)練、編譯和部署自定義模型。注意:文章內(nèi)的鏈接可能需要科學(xué)上網(wǎng)。HailoAIHat根據(jù)你的設(shè)置,在樹(shù)莓派
    的頭像 發(fā)表于 06-28 08:23 ?1251次閱讀
    完整指南:如何使用樹(shù)莓派<b class='flag-5'>5</b>、Hailo AI Hat、YOLO、Docker進(jìn)行<b class='flag-5'>自定義</b>數(shù)據(jù)集<b class='flag-5'>訓(xùn)練</b>?

    HarmonyOS應(yīng)用自定義鍵盤(pán)解決方案

    自定義鍵盤(pán)是種替換系統(tǒng)默認(rèn)鍵盤(pán)的解決方案,可實(shí)現(xiàn)鍵盤(pán)個(gè)性化交互。允許用戶結(jié)合業(yè)務(wù)需求與操作習(xí)慣,對(duì)按鍵布局進(jìn)行可視化重構(gòu)、設(shè)置多功能組合鍵位,使輸入更加便捷和舒適。在安全防護(hù)層面,自定義鍵盤(pán)可以
    的頭像 發(fā)表于 06-05 14:19 ?689次閱讀

    在K230上部署yolov5時(shí) 出現(xiàn)the array is too big的原因?

    重現(xiàn)步驟 1將yolov5的kmodel放入k230的data數(shù)據(jù) 2使用yolo大作戰(zhàn)里的視頻流推理代碼 3運(yùn)行 期待結(jié)果和實(shí)際結(jié)果 期待的結(jié)果 將目標(biāo)檢測(cè)的框圈起來(lái) 實(shí)際看到的結(jié)果
    發(fā)表于 05-28 07:47

    RV1126 yolov8訓(xùn)練部署教程

    YOLOv8 是 ultralytics 公司在 2023 年 1月 10 號(hào)開(kāi)源的基于YOLOV5進(jìn)行更新的 下一個(gè)重大更新版本,目前支持圖像分類(lèi)、物體檢測(cè)和實(shí)例分割任務(wù),鑒于
    的頭像 發(fā)表于 04-16 14:53 ?492次閱讀
    RV1126 <b class='flag-5'>yolov</b>8<b class='flag-5'>訓(xùn)練</b>部署教程

    請(qǐng)問(wèn)如何在imx8mplus上部署和運(yùn)行YOLOv5訓(xùn)練模型?

    我正在從事 imx8mplus yocto 項(xiàng)目。我已經(jīng)在自定義數(shù)據(jù)集上的 YOLOv5訓(xùn)練對(duì)象檢測(cè)
    發(fā)表于 03-25 07:23

    YOLOv5類(lèi)中rgb888p_size這個(gè)參數(shù)要與模型推理和訓(xùn)練的尺寸致嗎?致會(huì)達(dá)到更好的效果?

    YOLOv5類(lèi)中rgb888p_size這個(gè)參數(shù)要與模型推理和訓(xùn)練的尺寸致嗎,致會(huì)達(dá)到更好的效果
    發(fā)表于 03-11 08:12

    使用OpenVINO? 2021.4在CPU和MYRIAD上進(jìn)行自定義對(duì)象檢測(cè),為什么結(jié)果差異巨大?

    使用自定義訓(xùn)練模型執(zhí)行推理,以便在 2021.4 OpenVINO?中進(jìn)行人員檢測(cè)。 與 MYRIAD 相比,CPU 的輸出結(jié)果取得了巨大的差異
    發(fā)表于 03-06 07:45

    使用OpenVINO? 2021.4將經(jīng)過(guò)訓(xùn)練自定義PyTorch模型加載為IR格式時(shí)遇到錯(cuò)誤怎么解決?

    使用 OpenVINO? 2021.4 將經(jīng)過(guò)訓(xùn)練自定義 PyTorch 模型加載為 IR 格式時(shí)遇到錯(cuò)誤: RuntimeError: [ GENERAL_ERROR ] Failed
    發(fā)表于 03-05 08:40

    【米爾RK3576開(kāi)發(fā)板評(píng)測(cè)】+項(xiàng)目名稱YOLOV5目標(biāo)檢測(cè)

    /examples/yolov5/model ./download_model.sh 下載的是個(gè)ONNX格式的神經(jīng)網(wǎng)絡(luò)模型,但發(fā)現(xiàn)它無(wú)法在瑞芯微系統(tǒng)中直接運(yùn)行。為了解決這個(gè)問(wèn)題,您計(jì)
    發(fā)表于 02-15 13:24

    【ELF 2學(xué)習(xí)板試用】ELF2開(kāi)發(fā)板(飛凌嵌入式)部署yolov5s的自定義模型

    ELF2開(kāi)發(fā)板(飛凌嵌入式)部署yolov5s的自定義模型` 本人將零基礎(chǔ)教學(xué)自己訓(xùn)練yolov5s
    發(fā)表于 02-04 18:15

    在RK3568教學(xué)實(shí)驗(yàn)箱上實(shí)現(xiàn)基于YOLOV5的算法物體識(shí)別案例詳解

    種非常流行的實(shí)時(shí)目標(biāo)檢測(cè)模型,它提供了出色的性能和精度。YOLOv5可以分為三個(gè)部分,分別是: 1、主干特征提取網(wǎng)絡(luò)(Backbone) 2、加強(qiáng)特征提取網(wǎng)絡(luò)(FPN) 3、分類(lèi)器與回
    發(fā)表于 12-03 14:56

    YOLOv10自定義目標(biāo)檢測(cè)之理論+實(shí)踐

    概述 YOLOv10 是由清華大學(xué)研究人員利用 Ultralytics Python 軟件包開(kāi)發(fā)的,它通過(guò)改進(jìn)模型架構(gòu)并消除非極大值抑制(NMS)提供了種新穎的實(shí)時(shí)目標(biāo)檢測(cè)方法。這些
    的頭像 發(fā)表于 11-16 10:23 ?1606次閱讀
    <b class='flag-5'>YOLOv</b>10<b class='flag-5'>自定義</b>目標(biāo)<b class='flag-5'>檢測(cè)</b>之理論+實(shí)踐

    在樹(shù)莓派上部署YOLOv5進(jìn)行動(dòng)物目標(biāo)檢測(cè)的完整流程

    卓越的性能。本文將詳細(xì)介紹如何在性能更強(qiáng)的計(jì)算機(jī)上訓(xùn)練YOLOv5模型,并將訓(xùn)練好的模型部署到樹(shù)莓派4B上,通過(guò)樹(shù)莓派的攝像頭進(jìn)行實(shí)時(shí)動(dòng)物目
    的頭像 發(fā)表于 11-11 10:38 ?3724次閱讀
    在樹(shù)莓派上部署<b class='flag-5'>YOLOv5</b>進(jìn)行動(dòng)物目標(biāo)<b class='flag-5'>檢測(cè)</b>的完整流程

    RK3588 技術(shù)分享 | 在Android系統(tǒng)中使用NPU實(shí)現(xiàn)Yolov5分類(lèi)檢測(cè)-迅為電子

    RK3588 技術(shù)分享 | 在Android系統(tǒng)中使用NPU實(shí)現(xiàn)Yolov5分類(lèi)檢測(cè)-迅為電子
    的頭像 發(fā)表于 08-23 14:58 ?1360次閱讀
    RK3588 技術(shù)分享 | 在Android系統(tǒng)中使用NPU實(shí)現(xiàn)<b class='flag-5'>Yolov5</b>分類(lèi)<b class='flag-5'>檢測(cè)</b>-迅為電子

    NVIDIA NeMo加速并簡(jiǎn)化自定義模型開(kāi)發(fā)

    如果企業(yè)希望充分發(fā)揮出 AI 的力量,就需要根據(jù)其行業(yè)需求量身定制的自定義模型。
    的頭像 發(fā)表于 07-26 11:17 ?1256次閱讀
    NVIDIA NeMo加速并簡(jiǎn)化<b class='flag-5'>自定義</b><b class='flag-5'>模型</b>開(kāi)發(fā)