首先在电脑上安装好Anaconda以及Pycham软件。并配置好了基础的pytorch环境。
首先进入自己的虚拟环境,如果之前有安装过ultralytics库的话,请先pip uninstall ultralytics,卸载好之后在执行一次相同的命令(pip uninstall ultralytics)。
如果出现WARNING: Skipping ultralytics as it is not installed.证明已经卸载干净.
执行 python setup.py develop命令之后如果没报错就证明安装完成。
YOLOv8和YOLOv5的数据集是一样的。
现在我们需要两个文件夹分别存放标注文件(Annotations)与原始图片文件(JPEGImages),两个文件夹内文件名互相对应(标注和图像的名字对应)
再新建一个txt文件夹用于存放将Annotations中的.xml文件转换成.txt格式后的文件。
运行xml2txt.py,特别注意几个文件夹的相对位置不要搞错,这样才能成功。且图片文件夹JPEGImages中的图片类型必须全部一致,不能混杂,并用postfix = 'jpg'指定你的数据中的图像文件后缀。
运行完成之后所得到的文件夹结果如下图所示。
val_size = 0.1,test_val = 0.2,分别表示验证集以及测试集的比例.
训练集的比例就自动设置成1-0.1-0.2 = 0.7.
postfix = ‘jpg’ 格式就是图像源的格式
根据上面代码,我们可以看到创建了两个文件夹分别是images(存放图像数据)、labels(存放标签数据),里面包含三个子文件夹分别存放的是训练集验证集以及测试集的图像以及标签数据。
这样我们的数据就处理好了,可以准备下一步训练了。
首先打开train.py查看参数。
--yaml 模型的配置文件:可以看到输入的是yolov8n.yaml,实际上该项目目录下是没有该yaml配置文件的,只有一个yolov8.yaml,该文件默认是yolov8n,如果我们想要使用yolov8x配置文件的话,我们只需要输入yolov8x.yaml即可,尽管文件夹中没有这个对应名字的配置模型文件。
YOLOv8n summary: 225 layers, 3157200 parameters, 3157184 gradients, 8.9 GFLOPs
YOLOv8s summary: 225 layers, 11166560 parameters, 11166544 gradients, 28.8 GFLOPs
YOLOv8m summary: 295 layers, 25902640 parameters, 25902624 gradients, 79.3 GFLOPs
YOLOv8l summary: 365 layers, 43691520 parameters, 43691504 gradients, 165.7 GFLOPs
YOLOv8x summary: 365 layers, 68229648 parameters, 68229632 gradients, 258.5 GFLOPs
预训练模型,主要有yolos,yolon,yolol,yolox...
加快模型训练速度,提升训练效果等。
超参数的配置文件
coco128.yaml为例,这里面主要设置训练集、验证集、测试集的路径,以及种类名字信息等。
在epoches增加但是训练效果没有替身时是否决定要提前结束训练。(不想提前结束的话就和epochs的值设置成一样)
训练结果的保存路径
保存路径中保存的结果名字命名是什么
主要的类型有:'SGD', 'Adam', 'Adamax', 'NAdam', 'RAdam', 'AdamW', 'RMSProp', 'auto'。
关闭mosaic数据增强。设置值10表示最后十个epochs在训练的时候关闭mosaic可能会帮助提高训练效果。因为mosaic图片本来就是远离真实图片的分布。
待检测的图片或者视频文件路径
直接弹出检测结果
视频文件每隔几帧做一次检测,加快预测速度
调整线宽
查看yolov8l的网络结构
python train.py --yaml ultralytics/models/v8/yolov8l.yaml --info
python train.py --yaml ultralytics/models/v8/yolov8-bifpn.yaml --info
训练时我们打开终端进入虚拟环境以及项目文件夹路径下。
输入命令
python train.py --weight yolov8n.pt --yaml ultralytics/models/v8/yolov8n.yaml --data /home/Desktop/dataset/dataset_person/data.yaml --workers 8 --batch 32
训练时我们要创建自己的yaml文件并传入,形式可以参考coco128.yaml
设置成0.1,表示只使用数据集中百分之10进行训练。设置成1则表示使用全部数据集。
python val.py --weight runs/train/exp3/weights/best.pt --data /home/Desktop/dataset/dataset_person/data.yaml --split test
python val.py --weight runs/train/exp4/weights/best.pt --data /home/Desktop/dataset/dataset_person/data.yaml --split test --save_txt
python detect.py --weight yolov8n.pt --source ultralytics/assets/zidane.jpg --conf 0.25
python detect.py --weight runs/train/exp4/weights/best.pt --source video.mp4 --conf 0.25