模型训练、模型测试、模型推断都要注意设定img-size,需要统一img-size。
yolov5的img-size设定没有上限,但是越大越吃显存,训练也会越慢;并且img-size必须是32的倍数。
模型导出onnx的时候设定输入的图片宽高可以按需要设定,不一定要和训练的设定img-size一致。因为第二个层是卷积层,权重为32*3*3*3,意思是32个卷积核,之前输入图片为3通道,每个卷积核size为
图片在喂进yolov5网络之前会先进行一系列预处理,比如图像归一化。
图像归一化有两种:
一种是resize到[-1,1]:img = (img - 127.5)/127.5
一种是resize到[0,1]:img = (img - 0)/255.0
yolov5采取的后者,resize到[0,1],此时处理的均值为0,方差为255.0。相关代码在yolov5 detect.py line67:
img /= 255.0 # 0 - 255 to 0.0 - 1.0
最好修改train里面保存模型的代码,保存每个epoch的模型。因为验证集与现实场景具有一定差距,验证集好不一定实际好。多保存可以实际测试。
Infer只infer想要的类:
在detect.py的line111-113,其中的int(cls)是类名在数据的yaml文件中names的序号(如coco.yaml的person类的序号就是0).因此可以再起