女人自慰AV免费观看内涵网,日韩国产剧情在线观看网址,神马电影网特片网,最新一级电影欧美,在线观看亚洲欧美日韩,黄色视频在线播放免费观看,ABO涨奶期羡澄,第一导航fulione,美女主播操b

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

基于YOLOv5框架如何訓練一個自定義對象檢測模型

OpenCV學堂 ? 來源:OpenCV學堂 ? 作者:OpenCV學堂 ? 2022-09-21 10:10 ? 次閱讀

安裝與測試

最近YOLOv5最新更新升級到v6.x版本,工程簡便性有提升了一大步,本教程教你基于YOLOv5框架如何訓練一個自定義對象檢測模型,首先需要下載對應版本:
https://github.com/ultralytics/yolov5/releases/tag/v6.1

鼠標滾到最下面下載源碼zip包:

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

下載完成之后解壓縮到:

D:pythonyolov5-6.1
首先運行下面命令行完成依賴庫的安裝:

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

等待一段時間,完成全部安裝之后,運行測試:
python detect.py --weights yolov5s.pt --source dataimageszidane.jpg
運行結果如下:

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

數據集準備與制作

自己百度收集了一個無人機與飛鳥的數據集,其中訓練集270張圖像,測試集26張圖像。

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

使用labelImg工具完成標注,工具下載地址:

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

YOLOv5要求的數據集目錄結構如下:

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

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

轉換為

Center_x, center_y, width, height
并歸一化到0~1之間,這部分我寫了一個腳本來完成label標簽的生成,把xml的標注信息轉換為YOLOv5的labels文件,這樣就完成了數據集制作。最后需要創建一個dataset.ymal文件,放在與data文件夾同一層,它的內容如下:
# 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']

三:模型訓練

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

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曲線說明訓練效果還錯!

不同框架與硬件平臺推理比較

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

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

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

OpenCV DNN推理速度

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

OpenVINO平臺上的推理速度

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

ONNXRUNTIME GPU推理速度

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

TensorRT框架部署-FP32版本模型推理統計:

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

YOLOv5的6.x版本,是支持TensorRT 量化到FP16模型直接導出的,但是不支持INT8量化生成,所以自己實現了導出量化INT8版本,測試結果如下:
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版本模型推理統計:

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

最終比較:

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

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

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

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

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

最后把自定義訓練導出的模型轉換為TensorRT Engine文件之后,部署到了我的一塊Jetson Nano卡上面,實現了邊緣端的部署,有圖有真相:

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

審核編輯 :李倩


聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 檢測模型
    +關注

    關注

    0

    文章

    17

    瀏覽量

    7360
  • 數據集
    +關注

    關注

    4

    文章

    1222

    瀏覽量

    25275

原文標題:YOLOv5新版本6.x 自定義對象檢測-從訓練到部署

文章出處:【微信號:CVSCHOOL,微信公眾號:OpenCV學堂】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏

    評論

    相關推薦
    熱點推薦

    在K230上部署yolov5時 出現the array is too big的原因?

    重現步驟 1將yolov5的kmodel放入k230的data數據 2使用yolo大作戰里的視頻流推理代碼 3運行 期待結果和實際結果 期待的結果 將目標檢測的框圈起來 實際看到的結果
    發表于 05-28 07:47

    RV1126 yolov8訓練部署教程

    YOLOv8 是 ultralytics 公司在 2023 年 1月 10 號開源的基于YOLOV5進行更新的 下一個重大更新版本,目前支持圖像分類、物體檢測和實例分割任務,鑒于
    的頭像 發表于 04-16 14:53 ?301次閱讀
    RV1126 <b class='flag-5'>yolov</b>8<b class='flag-5'>訓練</b>部署教程

    請問如何在imx8mplus上部署和運行YOLOv5訓練模型

    我正在從事 imx8mplus yocto 項目。我已經在自定義數據集上的 YOLOv5訓練對象檢測
    發表于 03-25 07:23

    YOLOv5類中rgb888p_size這個參數要與模型推理和訓練的尺寸致嗎?致會達到更好的效果?

    YOLOv5類中rgb888p_size這個參數要與模型推理和訓練的尺寸致嗎,致會達到更好的效果
    發表于 03-11 08:12

    使用OpenVINO? 2021.4在CPU和MYRIAD上進行自定義對象檢測,為什么結果差異巨大?

    使用自定義訓練模型執行推理,以便在 2021.4 OpenVINO?中進行人員檢測。 與 MYRIAD 相比,CPU 的輸出結果取得了巨大的差異
    發表于 03-06 07:45

    使用OpenVINO? 2021.4將經過訓練自定義PyTorch模型加載為IR格式時遇到錯誤怎么解決?

    使用 OpenVINO? 2021.4 將經過訓練自定義 PyTorch 模型加載為 IR 格式時遇到錯誤: RuntimeError: [ GENERAL_ERROR ] Failed
    發表于 03-05 08:40

    【米爾RK3576開發板評測】+項目名稱YOLOV5目標檢測

    /examples/yolov5/model ./download_model.sh 下載的是ONNX格式的神經網絡模型,但發現它無法在瑞芯微系統中直接運行。為了解決這個問題,您計
    發表于 02-15 13:24

    【ELF 2學習板試用】ELF2開發板(飛凌嵌入式)部署yolov5s的自定義模型

    ELF2開發板(飛凌嵌入式)部署yolov5s的自定義模型` 本人將零基礎教學自己訓練yolov5s
    發表于 02-04 18:15

    在RK3568教學實驗箱上實現基于YOLOV5的算法物體識別案例詳解

    種非常流行的實時目標檢測模型,它提供了出色的性能和精度。YOLOv5可以分為三部分,分別是: 1、主干特征提取網絡(Backbone) 2、加強特征提取網絡(FPN) 3、分類器與回
    發表于 12-03 14:56

    YOLOv10自定義目標檢測之理論+實踐

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

    在樹莓派上部署YOLOv5進行動物目標檢測的完整流程

    卓越的性能。本文將詳細介紹如何在性能更強的計算機上訓練YOLOv5模型,并將訓練好的模型部署到樹莓派4B上,通過樹莓派的攝像頭進行實時動物目
    的頭像 發表于 11-11 10:38 ?3285次閱讀
    在樹莓派上部署<b class='flag-5'>YOLOv5</b>進行動物目標<b class='flag-5'>檢測</b>的完整流程

    RK3588 技術分享 | 在Android系統中使用NPU實現Yolov5分類檢測-迅為電子

    RK3588 技術分享 | 在Android系統中使用NPU實現Yolov5分類檢測-迅為電子
    的頭像 發表于 08-23 14:58 ?1183次閱讀
    RK3588 技術分享 | 在Android系統中使用NPU實現<b class='flag-5'>Yolov5</b>分類<b class='flag-5'>檢測</b>-迅為電子

    NVIDIA NeMo加速并簡化自定義模型開發

    如果企業希望充分發揮出 AI 的力量,就需要根據其行業需求量身定制的自定義模型
    的頭像 發表于 07-26 11:17 ?1134次閱讀
    NVIDIA NeMo加速并簡化<b class='flag-5'>自定義</b><b class='flag-5'>模型</b>開發

    YOLOv5的原理、結構、特點和應用

    YOLOv5(You Only Look Once version 5)是種基于深度學習的實時目標檢測算法,它屬于卷積神經網絡(CNN)的范疇。下面我將詳細介紹
    的頭像 發表于 07-03 09:23 ?1.1w次閱讀

    口罩佩戴檢測算法

    ,口罩佩戴檢測算法利用YOLOv5模型框架,修改其相關配置文件和檢測參數,并采用數據增強和Dropout技術防止過擬合。實驗結果驗證了
    的頭像 發表于 07-01 20:20 ?601次閱讀
    口罩佩戴<b class='flag-5'>檢測</b>算法