- 把轨迹放在一个文件夹下,像这样:
|---- tennis_0810
|---- 20230810_100930
|---- left
|---- right
|---- 20230810_100947
|---- left
|---- right
|---- 20230810_101002
|---- left
|---- right
-
先用
rename.py
重命名 jpg 和 xml 文件,只要把 p 改为轨迹文件夹的父目录(绝对路径,如E:\\data\\tennis_0810\\
,记得最后加 \),把 time 改为轨迹文件夹名(如20230810_164502
)。
-
轨迹文件夹同级目录下创建 jpg 文件夹和 xml 文件夹:
-
运行
extract_jpg_xml.py
之前,把 p 改为父目录p = "E:\\data\\tennis_0810"
,然后运行这个文件,运行完之后,jpg 和 xml 就被分开在了两个文件夹了。
-
运行 delete.py ,删!除!没!用!的! xml !!! 记得修改文件路径。
-
运行
is_match.py
,做匹配。root 是 jpg 文件夹路径,cor_root 是 xml文件夹路径。
-
用 MobaXterm 软件(没有就用 vscode 吧,但是 vscode 很卡很慢),把 xml 文件全部拖到
/home/lyy/code/yolo_for_tennis/dataset_before/Annotations
这个路径下(别找错,有好几个dataset);把 jpg 文件全部拖到/home/lyy/code/yolo_for_tennis/dataset_before/images
这个路径下(别找错,有好几个dataset),直接进了路径以后,全选本地文件,拖进去就行。 -
然后等待上传结束。
-
打开 vscode,准备训练捏
-
打开这个文件夹
/home/lyy/code/yolo_for_tennis
,进虚拟环境yolo_py37
-
进
dataset_before
文件夹,先运行 split_train_val.py 文件,再运行xml_to_yolo.py
文件,不用改直接运行就行。
-
然后
cd ..
,开始训练。
nohup python train.py --weights /home/lyy/code/yolo_for_tennis/weights/yolov5s.pt --data /home/lyy/code/yolo_for_tennis/data/tennis.yaml --device 3 >tennis_08010.txt 2>&1 &
weights: 权重文件路径,在这个权重的基础上继续训练模型,我这里用的是默认的,相当于是重新训练,效果不好的话,酒吧这个路径改成最新训练出来的权重文件的路径,在已经训练出来的权重文件上继续训练。
data:这个不用改
device:0, 1, 2, 3 (表示用哪块gpu,用最空的那块)
>
后面加的是log文件名,2>&1 &
这坨别删
我这里没用以前的权重文件,相当于把所有数据都放在一块重新训练了。
log 文件可以查看训练情况, 下面这坨 Epoch 出现就表示成功开始训练 了:
-
训练好的权重文件一般会在 train/runs 下最新的一个 expxx/weights 文件夹中(best.pt)
-
然后运行 gen_wts.py 文件,生成加速后的模型:
python gen_wts.py -w /home/lyy/code/yolo_for_badminton/runs/train/exp20/weights/best.pt -o badminton_0807.wts
-w 权重路径,改成你刚训练好的那个
-o 生成的 wts 文件名
- 然后你就能在当前文件夹下找到生成的 wts 文件了,下载,然后发给师兄就行了。