一、安裝環(huán)境
筆者環(huán)境如下:
win10
anaconda
python3.8
二、clone代碼
地址如下,可以直接使用git命令進(jìn)行clone,也可以直接去網(wǎng)站下載
git clone https://github.com/ultralytics/ultralytics
代碼目錄如下所示
三、安裝必要的庫
其實(shí)這里比較重要的是兩步,第一步是安裝requirement.txt中的庫,然后再安裝ultralytics。那么下面就是安裝庫的過程了
安裝requirement.txt
pip install -r requirements.txt -i https://pypi.tuna.tsinghua.edu.cn/simple/
安裝ultralytics
pip install ultralytics -i https://pypi.tuna.tsinghua.edu.cn/simple/
note:這個版本其實(shí)是基于torch寫的,所以我們是需要安裝深度學(xué)??蚣軒斓?,其實(shí)在requirement.txt的安裝中就已經(jīng)安裝了torch,但是默認(rèn)的是cpu版本的,如果你電腦有g(shù)pu,還是建議根據(jù)gpu的版本來配置對應(yīng)的環(huán)境,然后安裝gpu版本的torch,這樣的話訓(xùn)練的時候速度會快一些,如果沒有的話對于下面的訓(xùn)練也是沒有關(guān)系的,可以給batch以及epoch設(shè)置小一些,也是可以執(zhí)行的
四、配置自定的數(shù)據(jù)集
數(shù)據(jù)集是我提前準(zhǔn)備好的,如果需要自定的話,是需要使用 labelImge 標(biāo)注工具進(jìn)行標(biāo)注的,具體的可以參考下篇的這篇博文:
https://blog.csdn.net/public669/article/details/97610829?spm=1001.2014.3001.5502
準(zhǔn)備好數(shù)據(jù)之后呢,就需要按照yolov8的格式對數(shù)據(jù)進(jìn)行裝載了
筆者這里是在ultralytics文件下新建了一個dataSets
然后在dataSets下新建images、labels、test、val文件夾
具體如下
images文件下放的是圖片數(shù)據(jù),具體如下,筆者這里使用的是細(xì)胞的數(shù)據(jù)集
labels文件下存放的是對應(yīng)圖片數(shù)據(jù)的標(biāo)簽信息
下面的就是就是數(shù)據(jù)的詳細(xì)的信息了,這一步是需要使用代碼進(jìn)行裝換的,具體的請參考https://blog.csdn.net/public669/article/details/98020800?spm=1001.2014.3001.5502
test文件下的格式也是一樣的,需要有兩個文件夾,分別是images和lables,同之前的一樣,images中放的是用戶測試的圖片數(shù)據(jù),labels下面放的是對應(yīng)的圖片label信息
val文件下的格式同上
數(shù)據(jù)裝載完畢以后,就需要進(jìn)行對應(yīng)的yaml文件配置了,需要新建兩個yaml文件,分別如下:rbc.yaml和yolov8n.yaml
rbc.yaml文件如下:
train: E:/Projects/ultralytics-main/ultralytics/dataSets/data/images
val: E:/Projects/ultralytics-main/ultralytics/dataSets/data/val/images
test: E:/Projects/ultralytics-main/ultralytics/dataSets/data/test/images
# number of classes
nc: 1
# class names
names: ['RBC']
yolov8n.yaml文件如下:
其他的地方都不需要動,只需要給nc修改為1就可以了
具體文件如下:
# Ultralytics YOLO ??, GPL-3.0 license
# Parameters
nc: 1 # number of classes
depth_multiple: 0.33 # scales module repeats
width_multiple: 0.25 # scales convolution channels
# YOLOv8.0n backbone
backbone:
# [from, repeats, module, args]
- [-1, 1, Conv, [64, 3, 2]] # 0-P1/2
- [-1, 1, Conv, [128, 3, 2]] # 1-P2/4
- [-1, 3, C2f, [128, True]]
- [-1, 1, Conv, [256, 3, 2]] # 3-P3/8
- [-1, 6, C2f, [256, True]]
- [-1, 1, Conv, [512, 3, 2]] # 5-P4/16
- [-1, 6, C2f, [512, True]]
- [-1, 1, Conv, [1024, 3, 2]] # 7-P5/32
- [-1, 3, C2f, [1024, True]]
- [-1, 1, SPPF, [1024, 5]] # 9
# YOLOv8.0n head
head:
- [-1, 1, nn.Upsample, [None, 2, 'nearest']]
- [[-1, 6], 1, Concat, [1]] # cat backbone P4
- [-1, 3, C2f, [512]] # 13
- [-1, 1, nn.Upsample, [None, 2, 'nearest']]
- [[-1, 4], 1, Concat, [1]] # cat backbone P3
- [-1, 3, C2f, [256]] # 17 (P3/8-small)
- [-1, 1, Conv, [256, 3, 2]]
- [[-1, 12], 1, Concat, [1]] # cat head P4
- [-1, 3, C2f, [512]] # 20 (P4/16-medium)
- [-1, 1, Conv, [512, 3, 2]]
- [[-1, 9], 1, Concat, [1]] # cat head P5
- [-1, 3, C2f, [1024]] # 23 (P5/32-large)
- [[15, 18, 21], 1, Detect, [nc]] # Detect(P3, P4, P5)
五、訓(xùn)練
完成了上述的一些操作以后,就可以進(jìn)行數(shù)據(jù)的訓(xùn)練了,需要執(zhí)行cd命令
cd E:\Projects\ultralytics-main\ultralytics\dataSets
訓(xùn)練數(shù)據(jù)的命令如下:
yolo task=detect mode=train model=yolov8n.pt data=./data/rbc.yaml epochs=100 imgsz=640 resume=Ture
如果有GPU的話,可以對數(shù)據(jù)進(jìn)行相應(yīng)的配置
yolo task=detect mode=train model=yolov8n.pt data=./data/rbc.yaml batch=32 epochs=100 imgsz=640 workers=4 device=0
訓(xùn)練效果如下:
六、驗(yàn)證模型
訓(xùn)練結(jié)束以后相關(guān)的數(shù)據(jù)都放在
E:\Projects\ultralytics-main\ultralytics\dataSets\runs\detect\train下了
具體的模型都存放在weights下了,具體如下:
現(xiàn)在我們就需要對模型進(jìn)行測試了
使用模型的測試命令如下:
yolo task=detect mode=predict model=runs/detect/train3/weights/best.pt source=data/images device=0
如果沒有GPU的話,就給device=0給刪除了
具體如下:
識別的結(jié)果如下:
可以看出來效果還是挺好的,相比之前的yolov3效果確實(shí)好很多,同時使用步驟方面的話也是挺簡潔的。
yolov8訓(xùn)練自己的數(shù)據(jù)集到這里就結(jié)束了,后續(xù)會持續(xù)分享關(guān)于yolov8的應(yīng)用,請持續(xù)關(guān)注我,讓我們一起學(xué)習(xí)進(jìn)步!文章來源:http://www.zghlxwxcb.cn/news/detail-617689.html
由于筆者能力有限,在表達(dá)方面可能存在一些不準(zhǔn)確的地方,還請多多包涵。文章來源地址http://www.zghlxwxcb.cn/news/detail-617689.html
到了這里,關(guān)于Yolov8訓(xùn)練自己的數(shù)據(jù)集合(最新實(shí)驗(yàn)數(shù)據(jù))的文章就介紹完了。如果您還想了解更多內(nèi)容,請?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!