先进入vscode,进入src_repo文件夹。
第一步,克隆一个比较好的博主的库:
GitHub - Incalos/YOLO-Datasets-And-Training-Methods: This project involves making custom datasets for the YOLO series and model training methods for YOLO.
git clone https://github.com/Incalos/YOLO-Datasets-And-Training-Methods.git
现在需要将目录整理成如下:
改动分别是:
0.修改下DataSets.py,改成我们需要的格式:
将第十五行改成自己的分类:
1.新建一个mytrain.py文件,用来把其他位置的数据克隆过来:
import os
import shutildata_root = '/home/data/'
for dir_name in os.listdir(data_root):if dir_name.endswith('.jpg'):print('error!')continuefor file_name in os.listdir(data_root+dir_name):if file_name.endswith('.jpg'):shutil.copy(data_root +dir_name + '/'+ file_name, '/project/train/src_repo/YOLO-Datasets-And-Training-Methods/yolov8/YoloDataSets/images/')elif file_name.endswith('.xml'):shutil.copy(data_root + dir_name + '/'+file_name, '/project/train/src_repo/YOLO-Datasets-And-Training-Methods/yolov8/YoloDataSets/Annotations/')
2.新建一个my.py文件,用来执行自己的训练:
from ultralytics.yolo.utils import DEFAULT_CFG
from ultralytics import YOLO
from datetime import datetime
current_time = datetime.now()
time_str = current_time.strftime("%Y-%m-%d_%H-%M-%S") # 个人习惯, 用训练时间命名保存路径, 或者你自己自定义
DEFAULT_CFG.save_dir= f"/project/train/models/{time_str}"
model = YOLO('yolov8n.pt')
data = '/project/train/src_repo/YOLO-Datasets-And-Training-Methods/yolov8/YoloDataSets/data.yaml'
result = model.train(data = data, epochs = 100, batch = 32, save = True, device = 0)
3.新建文件夹YoloDataSets,在下面继续新建目录成如下格式:
其中两个文件夹是空的,而data.yaml需要填写自己的数据内容:
path : /project/train/src_repo/YOLO-Datasets-And-Training-Methods/yolov8/YoloDataSets
train: train.txt
val: val.txt
test: test.txt# number of classes
nc: 4# class names
names: ['car','bus','truck','others_vehicles',]
这样子,我们就可以训练了!
我们新建一个mytrain.sh文件:
cd /project/train/src_repo/YOLO-Datasets-And-Training-Methods/yolov8/
python mytrain.py
python DataSet.py --yoloversion yolov8 --trainval_percent 0.9 --train_percent 0.9 --mainpath /project/train/src_repo/YOLO-Datasets-And-Training-Methods/yolov8/YoloDataSets/
python my.py
在命令行运行
bash /project/train/src_repo/YOLO-Datasets-And-Training-Methods/yolov8/mytrain.sh
就可以了!
下面是()正常运行的画面:
正式训练,需要在平台上本地检测,
本地检测也是成功的!
说明我们的流程走对了!
这个过程中遇到的问题可能是有些库没安装,按照指示安装就是了;然后如果选用yolo其他版本,可以参考最上面博主的博客,支持大佬!