最近要做打架斗殴识别,最后选定yowov2这篇2023cvpr论文,论文代码已开源GitHub
1.ucf数据集制作
2.训练
2.1 首先修改dataset_config.py文件
第一处待修改
第二处待修改
第一步,将gt_folder修改为自己数据集的路径,修改如下(我的数据集保存在dataset文件夹下)
第二步,将valid num classes修改为自己数据集所有的类别数和类别名。
2.2 修改yolo_free.py文件
若不修改,会从以下链接下载预训练权重,
由于网络原因,大概率会导致报错如下:
解决办法是自己手动(直接点击上面报错链接),下载好预训练权重后修改yolo_free.py文件,从本地加载(我下载后直接放在yowov2目录下)。
第一处待修改:
第二处待修改:
第一步修改如下:(注释掉model_url,添加本地预训练地址)
第二步,修改加载函数修改如下:
2.3 修改shufflnetv2.py
同2.2一样,先手动下载预训练权重(放在yowov2目录下)。
第一处待修改
第二处待修改
第一处修改如下
第二处修改如下:
2.4修改ucf_jhmdb.py
第一处待修改:
第二处待修改:
第三处待修改:(有可能用不到)
第一处和第二处都修改如下:(根据自己的数据集类别改,我的只有一个fight类别。)
第三处修改如下:
原始ucf类别标签可能是从1开始的,而我按照1中制作数据集的标签文件中标签类别是从0开始的。若减去一就会报错类别标签为负。报错:RuntimeError: Class values must be non-negative。
成功训练:运行train.py,在train.py文件中设置数据集路径,是否使用cuda,等参数。
4.总结
训练的版本是yowo_v2_tiny版本,若要训练yowo_v2_large版本,需要修改resnext.py
具体修改若有需要请可留言