yoloV5-6.2分类训练记录
一 背景介紹
yoloV6,V7相繼跟新,沒有想到用的最熟悉的V5又雙叒叕更新了,今天我就來給大家準(zhǔn)備分享一下yoloV5-6.2的分類訓(xùn)練。
二 模型下載
首先從官網(wǎng)下載yoloV5的最新代碼。
git地址:https://github.com/ultralytics/yolov5
下載后的代碼結(jié)構(gòu)如下:
我們可以看到新增加了classify(分類)和segment(分割)兩部分的訓(xùn)練代碼,今天我們就來看看分類代碼
這里我們還需要下載一下官方的分類與訓(xùn)練模型:
yolov5s-cls.pt: https://github.com/ultralytics/yolov5/releases/download/v6.2/yolov5s-cls.pt
三 訓(xùn)練記錄
1 添加與訓(xùn)練模型:
在yolov5/classify/train.py中,將下載好的預(yù)訓(xùn)練模型位置添加一下即可。
2 分類數(shù)據(jù)整理:
這里不需要做txt, 這里不需要做txt ,這里不需要做txt ,重要的事情說三遍。
直接把分類的路徑記錄一下即可:
這里只需要有test或者val 和train就可以了,也可以做三個文件夾,都行。至少2個文件夾。
每個文件夾里面是對應(yīng)的類別文件夾。
4個類別就寫四個文件夾,一個文件夾存放一個類別的數(shù)據(jù),train和test是一樣的準(zhǔn)備就可以了。
注意: 大家關(guān)心的問題,給大家也實驗了一下,如果一個類別的數(shù)據(jù)非常多,導(dǎo)致文件夾里面存放會卡死。
比如:red文件夾里面有10萬的數(shù)據(jù),能不能分文件夾,答案是:可以。
可以按照不同的文件夾分類存放數(shù)據(jù),一樣可以讀取到所有的數(shù)據(jù),并且都屬于red這一個類別。
整理好的數(shù)據(jù),將總根目錄寫到配置文件處就可以了:
這里是寫到y(tǒng)olo_test,也就是train,test的上級目錄。
準(zhǔn)備好這些內(nèi)容調(diào)整epoch和batch-size就可以開始訓(xùn)練了。是不是很簡單。
四 注意事項
1 報錯一:AttributeError: ‘numpy.ndarray’ object has no attribute ‘imshow’
這個報錯是由于utils/plots.py 中代碼有點問題。總的來說也是自己batch-size寫的太小導(dǎo)致的。
-
修改方法一: 增加batch-size 我最開始設(shè)置的為2 ,這里改到4或者8 就好了,如果8還不行,就繼續(xù)增加。直到不報錯。
-
修改方法二:
這里報錯主要是batch-size太小,導(dǎo)致m是等于1 的,無法對ax做ravel()操作報錯。所以在代碼 utils/plots.py 457行,添加一個等于號就解決問題。
2 訓(xùn)練圖片resize不正確:
開始訓(xùn)練的過程,發(fā)現(xiàn)圖片都是隨機裁剪了的,有可能導(dǎo)致訓(xùn)練數(shù)據(jù)了中重要的信息丟失。這樣會導(dǎo)致分類模型后期的分類出差。也是非常致命的問題。
這里作者在數(shù)據(jù)導(dǎo)入部分分別使用的是隨機裁剪和中心裁剪的方式,所以我們需要改一下。
在utils/dataloaders.py 中,主要是這2個transforms需要修改一下。
大家對照 utils/augmentations.py 代碼里面行號我框出來的位置,修改一下就可以了,分別是CenterCrop和classify_albumentations,2個函數(shù)里面的裁剪方法。
修改后訓(xùn)練截圖:圖像有些變形,但是顯示的是全部信息。這樣就沒有什么問題了。
寫在最后
- 主要是圖像resize的問題,會嚴重影響訓(xùn)練結(jié)果的預(yù)測,導(dǎo)致出現(xiàn)預(yù)測不準(zhǔn)的情況。
- 做分類只需要把數(shù)據(jù)存放到同類別的文件夾下,省去了做txt的部分,確實也簡化了一些步驟和工作量。
總結(jié)
以上是生活随笔為你收集整理的yoloV5-6.2分类训练记录的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: java海报_使用java画一张海报
- 下一篇: 用什么软件学计算机一级考试,计算机一级考