国产精品久久久aaaa,日日干夜夜操天天插,亚洲乱熟女香蕉一区二区三区少妇,99精品国产高清一区二区三区,国产成人精品一区二区色戒,久久久国产精品成人免费,亚洲精品毛片久久久久,99久久婷婷国产综合精品电影,国产一区二区三区任你鲁

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

    瀏覽量

    7420
  • 數據集
    +關注

    關注

    4

    文章

    1236

    瀏覽量

    26190

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

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

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

掃碼添加小助手

加入工程師交流群

    評論

    相關推薦
    熱點推薦

    基于迅為RK3588開發板實現高性能機器狗主控解決方案-?AI能力實戰:YOLOv5目標檢測例程

    基于迅為RK3588開發板實現高性能機器狗主控解決方案-?AI能力實戰:YOLOv5目標檢測例程
    的頭像 發表于 11-28 11:32 ?1516次閱讀
    基于迅為RK3588開發板實現高性能機器狗主控解決方案-?AI能力實戰:<b class='flag-5'>YOLOv5</b>目標<b class='flag-5'>檢測</b>例程

    強實時運動控制內核MotionRT750(九):內置C語言的自定義機械手模型實現

    內置C語言的自定義機械手模型實現。
    的頭像 發表于 10-27 14:14 ?849次閱讀
    強實時運動控制內核MotionRT750(九):內置C語言的<b class='flag-5'>自定義</b>機械手<b class='flag-5'>模型</b>實現

    技術分享 | RK3588基于Yolov5的目標識別演示

    YOLO是種基于深度神經網絡的目標檢測算法,用在圖像或視頻中實時識別和定位多個對象。在其各個版本的迭代中,YOLOv5憑借易用性和性能平衡在工業、醫療、農業、零售等領域被廣泛的應用。
    的頭像 發表于 09-18 17:27 ?1287次閱讀
    技術分享 | RK3588基于<b class='flag-5'>Yolov5</b>的目標識別演示

    基于瑞芯微RK3576的 yolov5訓練部署教程

    s、YOLOv5m、YOLOv5l、YOLOv5x 四模型YOLOv5 相比
    的頭像 發表于 09-11 16:43 ?2949次閱讀
    基于瑞芯微RK3576的 <b class='flag-5'>yolov5</b><b class='flag-5'>訓練</b>部署教程

    在k230上使用yolov5檢測圖像卡死,怎么解決?

    0.99以上 模型轉換指令 再將該模型放到k230設備上使用yolo大作戰中yolov5檢測示例,檢測就會卡死,打印出的
    發表于 08-11 07:41

    yolov5訓練部署全鏈路教程

    m、YOLOv5l、YOLOv5x四模型YOLOv5相比YOLOv4而言,在
    的頭像 發表于 07-25 15:22 ?1756次閱讀
    <b class='flag-5'>yolov5</b><b class='flag-5'>訓練</b>部署全鏈路教程

    完整指南:如何使用樹莓派5、Hailo AI Hat、YOLO、Docker進行自定義數據集訓練

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

    HarmonyOS應用自定義鍵盤解決方案

    自定義鍵盤是種替換系統默認鍵盤的解決方案,可實現鍵盤個性化交互。允許用戶結合業務需求與操作習慣,對按鍵布局進行可視化重構、設置多功能組合鍵位,使輸入更加便捷和舒適。在安全防護層面,自定義鍵盤可以
    的頭像 發表于 06-05 14:19 ?2396次閱讀

    在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 ?1454次閱讀
    RV1126 <b class='flag-5'>yolov</b>8<b class='flag-5'>訓練</b>部署教程

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

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

    如何添加自定義單板

    在開發過程中,用戶有時需要創建自定義板配置。本節將通過實例講解用戶如何創建屬于自己的machine,下面以g2l-test.conf為例進行說明。
    的頭像 發表于 03-12 14:43 ?1349次閱讀

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

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

    yolov5轉onnx在cubeAI進行部署,部署失敗的原因?

    一個我是轉onnx時 想把權重文件變小點 就用了半精度 --half,則說17版本不支持半精度 后面則是沒有縮小的單精度 但是顯示哪里溢出了···· 也不說是哪里、、。。。 到底能不能部署yolov5這種東西啊?? 也沒看見幾個部署在這上面..............
    發表于 03-07 11:38

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

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