日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

yolov5部署以及训练10种中药材分类数据集

發布時間:2023/12/29 编程问答 37 豆豆
生活随笔 收集整理的這篇文章主要介紹了 yolov5部署以及训练10种中药材分类数据集 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

記錄以下我使用yolov5來訓練自己數據集的過程以及遇到的坑~~~

首先要部署yolov5的環境

首先去github上下載yolov5直達

安裝依賴包

編譯環境我是用的是anaconda 創建的虛擬環境,方便管理,如何創建虛擬環境就不細講了。創建好之后根據yolov5中的requirment.txt安裝它需要的依賴包。
方式一:之前第一次配置環境的時候,用的是pycharm來安裝依賴,有幾個包一直報錯,還是通過pip install 包.whl的方式安裝上的,特別是coco。
方式二:后來換了電腦,直接在anaconda prompt中通過pip就很順利的就裝好了。
還是推薦方式二安裝依賴包,方便又好管理

測試yolov5

進入anaconda的虛擬環境,進入到yolov5的路徑下,執行:

python detect.py --source 0

--source 0 表示是用電腦的攝像頭,采集視頻。如果不想采集視頻,可以不加上source,直接使用\data\images文件下的測試圖片不管是圖片還是視頻,測試的結果會保存在yolov5項目中\runs\detect\exp文件夾下。

這樣yolov5就部署好了,可以訓練自己的數據集了。

準備訓練集

yolov5的數據集的形式有很多種,我才用的是
圖片與標簽分開存放在不同的文件夾下,目錄如下:

images中存放的是訓練和驗證的圖片,labels中存放的是標簽。之前存放圖片的文件夾名稱為img,在訓練的時候老是報錯not found labels,改成images就好了。
標簽和圖片是根據圖片名稱來對應的。
打標簽用的是LabelImg,使用的方法就不介紹了,記得使用YOLO的標簽格式

更改程序

一:將data/coco128.yaml文件更改三個地方:
1.train/val 的路徑 更改為自己的圖片的存放地址,標簽的地址可以自動推斷出來
2.nc 更改分類數目
3.names 更改分類名稱
下面是根據我的數據集更改過后的文件

# COCO 2017 dataset http://cocodataset.org - first 128 training images # Train command: python train.py --data coco128.yaml # Default dataset location is next to YOLOv5: # /parent_folder # /coco128 # /yolov5# download command/URL (optional) download: https://github.com/ultralytics/yolov5/releases/download/v1.0/coco128.zip# train and val data as 1) directory: path/images/, 2) file: path/images.txt, or 3) list: [path1/images/, path2/images/] train: ../train_imgs/images/train # 1700 images val: ../train_imgs/images/val # 100 images# number of classes nc: 10# class names names: [ 'aiye', 'ajiao', 'baifan', 'banxia', 'chenpi', 'honghua' ,'puhuang', 'shanzha' ,'xiakucao', 'xixin' ]

二:根據在train.py當中要使用的權重文件,比如更改yolo5s.yaml文件,這里只需要更改nc就可以了

下面是更過后的文件,只更改了nc

# parameters nc: 10 # number of classes depth_multiple: 0.33 # model depth multiple width_multiple: 0.50 # layer channel multiple# anchors anchors:- [10,13, 16,30, 33,23] # P3/8- [30,61, 62,45, 59,119] # P4/16- [116,90, 156,198, 373,326] # P5/32# YOLOv5 backbone backbone:# [from, number, module, args][[-1, 1, Focus, [64, 3]], # 0-P1/2[-1, 1, Conv, [128, 3, 2]], # 1-P2/4[-1, 3, C3, [128]],[-1, 1, Conv, [256, 3, 2]], # 3-P3/8[-1, 9, C3, [256]],[-1, 1, Conv, [512, 3, 2]], # 5-P4/16[-1, 9, C3, [512]],[-1, 1, Conv, [1024, 3, 2]], # 7-P5/32[-1, 1, SPP, [1024, [5, 9, 13]]],[-1, 3, C3, [1024, False]], # 9]# YOLOv5 head head:[[-1, 1, Conv, [512, 1, 1]],[-1, 1, nn.Upsample, [None, 2, 'nearest']],[[-1, 6], 1, Concat, [1]], # cat backbone P4[-1, 3, C3, [512, False]], # 13[-1, 1, Conv, [256, 1, 1]],[-1, 1, nn.Upsample, [None, 2, 'nearest']],[[-1, 4], 1, Concat, [1]], # cat backbone P3[-1, 3, C3, [256, False]], # 17 (P3/8-small)[-1, 1, Conv, [256, 3, 2]],[[-1, 14], 1, Concat, [1]], # cat head P4[-1, 3, C3, [512, False]], # 20 (P4/16-medium)[-1, 1, Conv, [512, 3, 2]],[[-1, 10], 1, Concat, [1]], # cat head P5[-1, 3, C3, [1024, False]], # 23 (P5/32-large)[[17, 20, 23], 1, Detect, [nc, anchors]], # Detect(P3, P4, P5)]

訓練模型

有了數據集可以開始訓練了
進入虛擬環境,進入yolov5的目錄,執行:

python train.py --device 0

--device 0表示使用gpu0來訓練模型,如果沒有gpu的話,不用加上 device,默認是cpu。
正常訓練結束如下圖,會產生兩個模型文件best.pt和last.pt,保存在\runs\train\exp\weights文件夾下

報錯

在訓練的時候報錯說:OSError: [WinError 1455] 頁面文件太小,無法完成操作,這是內存太小,更改虛擬內存的頁面大小,可以解決。

測試自己的模型

首先要更改train.py文件中的模型
測試模型還是使用detect.py文件,首先要更改使用的權重文件,把原來的yolov5s.pt更改為剛剛訓練保存的last.pt或者best.pt文件。

if __name__ == '__main__':parser = argparse.ArgumentParser()parser.add_argument('--weights', nargs='+', type=str, default='last.pt', help='model.pt path(s)')

更改之后可以使用跟之前一樣的命令來測試。保存結果的目錄和之前一樣。

python detect.py --source 0

總結

以上是生活随笔為你收集整理的yolov5部署以及训练10种中药材分类数据集的全部內容,希望文章能夠幫你解決所遇到的問題。

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