成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

YOLOv9 在自定義數據集上進行目標檢測 | 計算機視覺項目

開發
本文我們將深入了解 YOLOv9 的工作原理以及如何使用自定義數據集在你的項目中實現它。

在快速發展的計算機視覺領域,目標檢測是一個基石應用程序。在眾多的目標檢測算法中,YOLOv9已經成為一個強大且多功能的解決方案,提供了實時檢測能力,并具有令人印象深刻的準確性。在這篇全面的指南中,我們將探索在自定義數據集上訓練YOLOv9的過程,并在測試數據上進行推理。

通過本教程的學習,你將深入了解YOLOv9的工作原理以及如何使用自定義數據集在你的項目中實現它。那么,讓我們開始一起探索YOLOv9的強大功能吧!

激活函數系列

  • Softmax激活函數
  • Sigmoid/Logistic激活函數
  • 雙曲正切(Tanh)激活函數
  • 修正線性單元(ReLU)激活函數

數據集:https://www.kaggle.com/datasets/snehilsanyal/construction-site-safety-image-dataset-roboflow

克隆YOLOv9倉庫

!git clone https://github.com/SkalskiP/yolov9.git

讓我們使用git clone命令從GitHub克隆YOLOv9倉庫,并開始探索使用YOLOv9進行實時目標檢測。Git是一個版本控制系統,允許開發人員跟蹤他們的代碼庫的更改,與他人協作和管理項目歷史。

克隆過程完成后,我們將在機器上擁有YOLOv9倉庫的本地副本。這將使我們能夠探索代碼庫,進行修改,并使用YOLOv9算法進行我們自己的目標檢測任務。

dataDir = '/content/css-data/' # css-data is the unzip path of the dataset
workingDir = '/content/' # Working Dir in google colab

在這里,我們為項目設置目錄路徑。變量dataDir保存我們CSS(建筑工地安全)數據存儲的目錄路徑。我們將其設置為'/content/css-data/',表明我們的CSS數據集文件位于'/content/'目錄內的名為'css-data'的目錄中。

接下來,我們有變量workingDir,它定義了我們工作目錄的路徑。

num_classes = 10
classes = ['Hardhat', 'Mask', 'NO-Hardhat', 'NO-Mask', 'NO-Safety Vest', 'Person', 'Safety Cone', 'Safety Vest', 'machinery', 'vehicle']

定義了兩個變量:

  • num_classes設置為整數值10,表示分類任務中的類別數。
  • classes是一個包含10個字符串元素的列表,代表不同的類別:'Hardhat'(安全帽)、'Mask'(口罩)、'NO-Hardhat'(無安全帽)、'NO-Mask'(無口罩)、'NO-Safety Vest'(無安全背心)、'Person'(人員)、'Safety Cone'(安全錐)、'Safety Vest'(安全背心)、'machinery'(機械)和'vehicle'(車輛)。

import yaml
import os

file_dict = {
    'train': os.path.join(dataDir, 'train'),
    'val': os.path.join(dataDir, 'valid'),
    'test': os.path.join(dataDir, 'test'),
    'nc': num_classes,
    'names': classes
}
with open(os.path.join(workingDir,'yolov9', 'data.yaml'), 'w+') as f:
  yaml.dump(file_dict, f)

定義了一個名為file_dict的字典,包含以下鍵值對:

  • ‘train’:訓練數據目錄的路徑,通過連接‘dataDir’變量和‘train’形成。
  • ‘val’:驗證數據目錄的路徑,通過連接‘dataDir’變量和‘valid’形成。
  • ‘test’:測試數據目錄的路徑,通過連接‘dataDir’變量和‘test’形成。
  • ‘nc’:類別數,來源于‘num_classes’變量。
  • ‘names’:類別名稱列表,來源于‘classes’變量。

在‘workingDir/yolov9’目錄內以寫入模式打開名為‘data.yaml’的文件。使用YAML格式將file_dict字典的內容寫入'data.yaml'文件。如果文件不存在,則創建一個新文件。

下載YOLOv9權重

!wget  https://github.com/WongKinYiu/yolov9/releases/download/v0.1/yolov9-e.pt

我們現在正在獲取YOLOv9的預訓練權重文件。使用!wget,我們可以直接從網絡環境中檢索文件。

在這個命令中,我們正在下載名為yolov9-c.pt的文件,該文件來自托管在GitHub上的YOLOv9倉庫的v0.1版本。這些預訓練權重對于使用學習到的參數初始化我們的YOLOv9模型至關重要,使其能夠準確檢測對象。

下載完成后,我們將能夠使用這些權重來微調我們的自定義數據集進行目標檢測任務,節省了從頭開始訓練模型所需的時間和計算資源。

cd yolov9

現在,讓我們導航到‘yolov9’目錄。‘yolov9’是我們剛剛從GitHub克隆的倉庫。這樣做,我們將獲得‘yolov9’模型的代碼,我們將用于在自定義數據集上訓練yolov9模型。

!pip install -r requirements.txt -q

接下來,我們使用pip包管理器安裝項目所需的Python包和依賴項。!pip install命令允許我們從Python包索引(PyPI)或指定的要求文件安裝Python包。

在這里,-r requirements.txt告訴pip安裝'requirements.txt'文件中列出的所有包。該文件包含訓練yolov9模型所必需的Python庫列表。

-q標志代表'quiet'模式,這意味著pip將在沒有錯誤的情況下靜默執行安裝過程,不會顯示詳細輸出。這有助于保持安裝過程的簡潔明了,特別是在腳本或自動化任務中。

!python train_dual.py --workers 8 --batch 4  --img 640 --epochs 50 --data /content/yolov9/data.yaml --weights /content/yolov9-e.pt --device 0 --cfg /content/yolov9/models/detect/yolov9.yaml --hyp /content/yolov9/data/hyps/hyp.scratch-high.yaml

這個命令啟動了YOLOv9模型的訓練過程。但在執行單元格之前,我們需要修改兩個參數,第一個參數是—data,我們將在—data參數中傳遞上面創建的data.yaml文件路徑,第二個參數是—cfg,我們需要對yolov9.yaml文件進行一些更改,因為這個原始的yolov9.yaml文件是為COCO數據集配置的,COCO數據集包含80個類別,而我們的自定義數據集有10個類別,所以我們需要在yolov9.yaml中調整nc參數并傳遞nc=10,因為我們有10個類別,而不是80,我希望你明白我的意思—hyp包含模型的超參數,我們不需要修改它,所以保持原樣。

現在讓我們使用!python train_dual.py微調我們的自定義數據集上的yolov9模型:

  • --workers 8:這個參數指定了訓練期間數據預處理的數據加載工作器的數量。更高的數字可以加快數據加載和預處理的速度。
  • --batch 4:這個參數設置了訓練的批次大小。批次大小決定了每次訓練迭代中使用的樣本數量。
  • --img 640:這個參數指定了訓練的輸入圖像大小。在這種情況下,圖像將在訓練期間調整為640像素的高度和寬度。
  • --epochs 5:這個參數設置了訓練的周期數。一個周期是完整地遍歷整個訓練數據集一次。
  • --data /content/yolov9/data.yaml:這個參數指定了包含數據集配置信息的YAML文件的路徑。
  • --weights /content/yolov9-c.pt:這個參數指定了用于在訓練前初始化模型的預訓練權重文件(yolov9-c.pt)的路徑。
  • --device 0:這個參數指定了用于訓練的設備。這里,0可能表示第一個可用于訓練的GPU設備。
  • --cfg /content/yolov9/models/detect/yolov9.yaml:這個參數指定了模型配置文件(yolov9.yaml)的路徑,該文件定義了YOLOv9模型的架構和參數。
  • --hyp /content/yolov9/data/hyps/hyp.scratch-high.yaml:這個參數指定了超參數文件(hyp.scratch-high.yaml)的路徑,該文件包含訓練期間模型的調整參數。

推理

!python detect.py --img 640 --conf 0.1 --device 0 --weights /content/yolov9/runs/train/exp2/weights/best.pt --source /content/css-data/test/images/004763_jpg.rf.46484e6ca73caeaa9de45822cf1085a9.jpg

from IPython.display import Image
Image(filename="/content/yolov9/runs/detect/exp2/004763_jpg.rf.46484e6ca73caeaa9de45822cf1085a9.jpg", width=600)

責任編輯:趙寧寧 來源: 小白玩轉Python
相關推薦

2024-07-09 08:50:23

2023-11-22 13:45:37

計算機視覺數據預處理

2024-10-07 11:12:55

2024-09-12 17:19:43

YOLO目標檢測深度學習

2024-02-23 11:10:00

AI訓練

2025-01-22 11:10:34

2024-10-25 08:30:57

計算機視覺神經網絡YOLOv8模型

2024-09-09 16:35:10

YOLO模型

2021-07-15 08:00:00

人工智能深度學習技術

2020-01-09 11:30:40

AI 數據人工智能

2024-10-16 16:49:44

定向邊界框目標檢測YOLOv8

2023-09-12 13:59:41

OpenAI數據集

2023-06-26 10:44:42

2021-01-14 21:40:40

機器學習計算機視覺圖像數據集

2024-11-27 16:06:12

2020-10-28 11:26:58

計算機數據 視覺

2023-07-07 10:53:08

2025-01-24 07:37:19

計算機視覺熱力圖YOLOv8

2020-10-05 21:57:17

GitHub 開源開發

2024-07-01 12:55:50

點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 色综合一区二区三区 | 97伊人 | 国产一级特黄真人毛片 | 美女视频h| 国产欧美精品一区二区三区 | 欧美激情亚洲天堂 | 国产精品成人久久久久a级 久久蜜桃av一区二区天堂 | 亚洲午夜电影 | 香蕉久久久 | 麻豆av电影网 | 不卡一区二区三区四区 | 一区二区三区视频在线观看 | 国产精品三级久久久久久电影 | 91久久久久久 | 毛片入口 | 老司机久久 | 91麻豆精品国产91久久久更新资源速度超快 | 男女下面一进一出网站 | 日本免费小视频 | 国产精品网址 | 国内精品久久久久久久影视简单 | 亚洲国产成人精品久久久国产成人一区 | 一级做a爰片久久毛片免费看 | 欧美一级电影免费观看 | 91免费福利视频 | 99亚洲| 久久国产一区二区三区 | 高清欧美性猛交 | 亚洲精品 在线播放 | 色吊丝2288sds中文字幕 | 国产日韩久久久久69影院 | 亚洲午夜视频 | 午夜免费福利片 | 九色91视频 | 视频一区在线观看 | 玖玖综合网 | 欧美日韩高清在线一区 | 久久国产欧美日韩精品 | 久久精品欧美一区二区三区不卡 | 成人在线精品视频 | 中文av在线播放 |