###GitHub源码:https://github.com/TomMao23/multiyolov5
环境配置
$ python -m pip install -r requirements.txt
$ python -m pip uninstall wandb
代码未做多卡训练和wandb支持, 不卸载训练大概率有bug
二、检测和分割测试
(a) 普通图片推理
$ python detect.py --weights ./pspv5s.pt或其他模型 --source data/images --conf 0.25 --img-size 1024
或$ python detect.py --weights ./pspv5s.pt或其他模型 --source data/images --conf 0.25 --img-size 1024 --view-img
(b) 同尺寸连续帧图片制作视频
$ python detect.py --weights ./pspv5s.pt或其他模型 --source 图片文件夹 --conf 0.25 --img-size 1024 --save-as-video
三、训练自己的数据集
3.1参考grape数据集格式文件,得到数据集文件
数据集文件共有三个大文件夹(dedata、segimages、seglabels),detdata文件夹下分images和labels两个文件夹分别放置图片和检测标签;segimages放置图片与images中图片相同,seglabels中放置分割标签,每个图片和标签文件夹下又分训练集train和验证集val,且每组的图片和标签文件数量、命名一一对应。
检测标签的格式为yolov标签格式,是txt文件,具体样例如下:
分割标签的格式为png格式的mask,具体样例如下:
3.2数据和模型配置
(1)仿照(复制修改)data/cityscapes_det.yaml的配置数据,train和val写图片数据的train和val文件夹的路径(yolo自己会对应找labels),nc为检测类别数,segtrain和segval写分割数据segimages和seglabels父文件夹的路径,names为各检测类别名字。修改的数据yaml文件命名grape_det.yaml.
(2)仿照(复制修改)models/yolov5s_city_seg.yaml的配置模型,nc为检测类别数,n_segcls为分割类别数。depth_multiple,width_multiple控制深度和宽度,是yolov5s,m,l,x唯一的区别。修改的模型yaml文件命名yolov5s_grape_seg.yaml.
3.3训练数据
命令调用:
$ python train_custom.py --data grape_det.yaml –-cfg yolov5s_grape_seg.yaml --weights ./yolov5s.pt --workers 4 --label-smoothing 0.1 --img-size 832 --batch-size 4 --epochs 1000 --rect
正在训练中:
得到训练后的权重文件:
训练后权重测试
$ python detect.py --weights ./best.pt或./last.pt --source data/images --conf 0.25 --img-size 1024
或$ python detect.py --weights ./best.pt或./last.pt --source data/images --conf 0.25 --img-size 1024 --view-img