准备数据集
分类数据集
分类数据集由录视频得到,与二分类的数据集类似。运行camerashot.py,准备好后按s建开始录制,开始后20秒自动结束。这种做法主要是考虑正负样本均衡。可录制多段视频,第二次录制时应将前一次录制的视频重命名或移到另一个位置。
定位数据集
定位数据集的标注方法如下:
对于如图所示的物体,用Windows自带的画图软件打开,左下角实时显示了光标在图片上的宽和高。
点刷子,光标将变成十字形,然后放大图片,光标可精确到每个坐标点。分别确定物体的最左端的x坐标(记x1)、最右端的x坐标(记x2),最上端的y坐标(记y1),最下端的y坐标(记y2),这4个数据即可确定出xywh参数。注x,y分别指宽度(列数)和高度(行数)。该图中的x1,x2,y1,y2分别为228,412,164,440。另外注意,因为求w和h参数时要除以2,所以x1和x2,y1和y2最好同奇偶。
开始训练
在dataset.py中准备好数据集后,运行train.py。训练主干网络时将代码第一行的train_backbone设为true,训练检测头时设为false。将下面的语句torch.save(model.state_dict(), ‘zhnnet.pth’)取消注释,运行一段时间后自动保存权重文件。在训练检测头时一个epoch的数据量比较大,所以不建议运行一个epoch保存一次。