在线观看www成人影院-在线观看www日本免费网站-在线观看www视频-在线观看操-欧美18在线-欧美1级

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

    瀏覽量

    7326
  • 數據集
    +關注

    關注

    4

    文章

    1208

    瀏覽量

    24749

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

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

收藏 人收藏

    評論

    相關推薦

    think-cell:自定義think-cell(四)

    C.5 設置默認議程幻燈片布局 think-cell 議程可以在演示文稿中使用特定的自定義布局來定義議程、位置和議程幻燈片上的其他形狀,例如標題或圖片。通過將此自定義布局添加到模板,您
    的頭像 發表于 01-13 10:37 ?54次閱讀
    think-cell:<b class='flag-5'>自定義</b>think-cell(四)

    think-cell;自定義think-cell()

    本章介紹如何自定義 think-cell,即如何更改默認顏色和其他默認屬性;這是通過 think-cell 的樣式文件完成的,這些文件將在前四部分中進行討論。 第五部分 C.5 設置默認議程幻燈片
    的頭像 發表于 01-08 11:31 ?104次閱讀
    think-cell;<b class='flag-5'>自定義</b>think-cell(<b class='flag-5'>一</b>)

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

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

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

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

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

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

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

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

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

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

    NVIDIA AI Foundry 為全球企業打造自定義 Llama 3.1 生成式 AI 模型

    Retriever 微服務,以實現準確響應 埃森哲率先使用新服務,為客戶創建自定義 Llama 3.1 模型;Aramco、ATT 和優步。 ? Llama 3.1 多語種大語言模型(LLM)集合是
    發表于 07-24 09:39 ?727次閱讀
    NVIDIA AI Foundry 為全球企業打造<b class='flag-5'>自定義</b> Llama 3.1 生成式 AI <b class='flag-5'>模型</b>

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

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

    口罩佩戴檢測算法

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

    如何在IDF框架中使用自定義的靜態庫和動態庫?

    基于商業需要,我們需要在 ESP-IDF v4.0-rc 這個版本的IDF中開發與使用自定義庫,有如下問題請協助: 1如何利用IDF框架編寫自定義靜態庫和動態庫? 2如何在IDF框架
    發表于 06-25 07:57

    yolov5的best.pt導出成onnx轉化成fp32 bmodel后在Airbox上跑,報維度不匹配怎么處理?

    用官方的模型不出錯,用自己的yolov5訓練出來的best.pt導出成onnx轉化成fp32 bmodel后在Airbox上跑,出現報錯: linaro@bm1684:~/yolov5
    發表于 05-31 08:10

    maixcam部署yolov5s 自定義模型

    maixcam部署yolov5s 自定義模型 本博客將向你展示零基礎步步的部署好自己的yolov5s
    發表于 04-23 15:43

    鴻蒙ArkUI實例:【自定義組件】

    組件是 OpenHarmony 頁面最小顯示單元,頁面可由多個組件組合而成,也可只由組件組合而成,這些組件可以是ArkUI開發框架
    的頭像 發表于 04-08 10:17 ?667次閱讀

    OpenCV4.8 C++實現YOLOv8 OBB旋轉對象檢測

    YOLOv8框架在在支持分類、對象檢測、實例分割、姿態評估的基礎上更近步,現已經支持旋轉對象
    的頭像 發表于 02-22 10:15 ?1771次閱讀
    OpenCV4.8 C++實現<b class='flag-5'>YOLOv</b>8 OBB旋轉<b class='flag-5'>對象</b><b class='flag-5'>檢測</b>
    主站蜘蛛池模板: 色婷婷在线视频观看| 四虎影视在线影院在线观看| 日本人69xxxxxxx69| 亚洲婷婷在线视频| 久久久久久久久国产| 色综合天天操| aaaaaaa毛片| 91tm视频| 天天插日日射| 免费视频一级片| 成人免费黄色网| 很黄很黄的网站免费的| 国内精品手机在线观看视频| 福利盒子手机看片| 亚洲一区在线视频| 午夜h| 中文字幕av一区二区三区| 免费看的黄网站| ssswww日本免费网站片| 91视频三级| 麻豆蜜桃| 欧美极品第一页| 3344在线观看永久免费| 在线观看视频在线观看| 在线亚洲一区| 伊人久久成人爱综合网| 色视频一区| 激情网页| 黄色日本网站| 99久久99久久免费精品蜜桃| 人人玩人人弄人人曰| 天天干天天色综合| 成人亚洲网站www在线观看| 一区二区三区影视| 亚洲va久久久噜噜噜久久狠狠| 日本特黄特色特爽大片老鸭| 黄色片 720p| 天天爱综合网| h网站国产| 婷婷色六月| 四虎影院在线观看网站|