日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 >

深入浅出Yolov5之自有数据集训练超详细教程

發布時間:2024/9/27 46 豆豆
生活随笔 收集整理的這篇文章主要介紹了 深入浅出Yolov5之自有数据集训练超详细教程 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

除了本文,大白還整理了如何深入淺出人工智能行業,算法、數據、目標檢測、論文創新點、求職等版塊的內容,可以查看:點擊查看。

此外本文章Yolov5相關的代碼、模型、數據等內容,可以查看下載:點擊查看。

當然下方也列出了,如何通過官方鏈接的方式,下載的過程,也可以查看。

1 下載Yolov5代碼及模型權重

1.1 下載Yolov5代碼

登錄github鏈接:https://github.com/ultralytics/yolov5,下載完整的代碼。

1.2 下載Yolov5模型權重

在Yolov5模型權重頁面,https://github.com/ultralytics/yolov5/releases

在下方選擇相應的Yolov5各個pt權重文件。

放在Yolov5代碼的models文件夾中。

2 下載一系列的依賴庫

按照yolov5代碼中requirements.txt中的說明,下載一系列的依賴庫

3 對于推理功能進行測試

先使用預訓練的模型,對于圖片進行推理測試,看看效果。

修改detect.py里面的weights的路徑,增加前面的models文件夾的路徑。

運行結束后,可以在運行結果看到信息:

打開runs/detect/exp可以看到推理得到的結果:

4 使用自有數據進行訓練

4.1 數據&腳本&訓練代碼

大白為了讓大家從0基礎,就可以學會訓練,準備了三個文件。

(1)data:人頭數據集

為了便于大家學習,大白準備了一個教室場景下的人頭數據集,放在data/head/classroom文件夾中。

數據集中,JPEGImages有4361張圖片,Annotations有4361張xml文件。

(2)train_code:數據處理腳本

在train_code文件夾中,有三個python文件,主要使用的是get_labels.py和main.py兩個腳本。

get_labels.py腳本,可以直接獲取Annotations文件夾中,所有標注文件的標注類別。

而main.py腳本,可以將之前標注文件和圖像,進行處理,轉換成Yolov5可以訓練的格式。

(3)yolov5-master:訓練代碼

這個文件夾里面就是Yolov5的訓練測試代碼,大家也可以直接使用大白提供的Yolov5代碼。

4.2 查看自有數據集中的類別數

打開train_code/get_labels.py,修改下方的人頭數據集路徑。

運行后,在下方就可以看到類別數,以及標注的類別框的數量。

4.3 轉換訓練數據格式

(1)新建數據集轉換文件夾

首先在data文件夾里面,新建一個head_train_data文件夾。

并在head_train_data文件夾中,新建一個images_label_split文件夾。

并將前面的classroom數據集,直接拷貝到images_label_split里面。

(2)main.py腳本處理:配置修改

打開train_code/main.py文件,修改訓練數據的路徑。

在前面通過get_labels.py腳本,我們也知道了當前數據集的類別數,比如主要是“head”,將該類別填入label_list中。

而main.py文件主要分為三個部分的功能:數據集的清洗、訓練集&驗證集劃分、xml轉換txt格式。

(3)main.py腳本處理:數據集清洗

數據集的清洗使用的主要是這些行的代碼。

有的數據集有圖片,沒有標注文件。有的數據集有標注文件,圖片有可能丟失。

同時將長寬比太小的框刪除掉,并且在刪除后,檢查下是否存在空的標注文件,如果有,也刪除。

并在最后,將標注的框顯示到圖片上,進一步確定腳本是否正確。

運行上面的代碼,最后會跳出來一些畫了人頭框的圖片。

(4)main.py腳本處理:訓練集&驗證集劃分

訓練集&驗證集劃分的代碼主要是這一行代碼。

0.2表示,80%的數據進行訓練,20%的數據進行驗證。

運行結束后,會發現head_train_data這個文件夾下面多了兩個文件夾,train和test,就是按照80%、20%進行劃分。

(5)main.py腳本處理::xml轉換txt格式

xml轉換成txt格式的代碼主要是下面三行。

運行結束后,可以看到多了兩個文件夾。

image_txt文件夾中是所有的image和轉換完的txt文件、

而train_test_txt文件夾中,則是對于訓練和測試數據路徑匯總的兩個txt,后面訓練中會用到。

4.4 Yolov5代碼訓練

4.4.1 修改訓練配置

(1)新建一個yaml文件

因為是訓練人頭數據集,所以在data文件夾下先新建一個head.yaml文件,并修改其中的參數。

可以復制一個coco.yaml文件進行修改,其中主要涉及到訓練集的txt文件、驗證集的txt文件、類別數量nc、類別標簽名。

(2)修改train.py參數

① 修改models里面的weights路徑,大白下載了一些pt文件放在models中,可以選擇使用。

② 修改cfg路徑,即網絡結構的參數配置文件,需要注意的是,需要修改其中的類別數。

③ 修改data的路徑,即前面修改的head.yaml文件。

4.4.2 開始訓練

運行train.py文件,既可以開始訓練。

可以看到網絡收斂的很快。

4.4.3 訓練結果測試

網絡訓練到一段時間后,可以使用detect.py腳本對于訓練的模型,進行測試了,不過需要修改是三個參數:

① weights:即前面訓練好得到的權重文件

② source:即需要檢測的圖片數據集

③ data:修改成head.yaml

運行detect.py文件后,可以在runs/detect/exp最后一個文件夾中得到檢測的效果圖片:

以上就是Yolov5的詳細訓練過程,其中每一步大白都是經過詳細的測試的,可以下載對應的代碼、權重,進行嘗試。

總結

以上是生活随笔為你收集整理的深入浅出Yolov5之自有数据集训练超详细教程的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。