yolov5构架和yolov4,yolov3
1.GitHub上开源的YOLOv5
代码地址:https://github.com/ultralytics/YOLOv5
预训练的检查点
模型 | 大小 (像素) | 地图值0.5: 0.95 | 地图值 0.5 | 速度 CPU b1 (ms) | 速度 V100 b1 (ms) | 速度 V100 b32 (ms) | 参数 (M) | FLOPs @640 (B) |
---|---|---|---|---|---|---|---|---|
YOLOv5n | 640 | 28.0 | 45.7 | 45 | 6.3 | 0.6 | 1.9 | 4.5 |
YOLOv5s | 640 | 37.4 | 56.8 | 98 | 6.4 | 0.9 | 7.2 | 16.5 |
YOLOv5m | 640 | 45.4 | 64.1 | 224 | 8.2 | 1.7 | 21.2 | 49.0 |
YOLOv5l | 640 | 49.0 | 67.3 | 430 | 10.1 | 2.7 | 46.5 | 109.1 |
YOLOv5x | 640 | 50.7 | 68.9 | 766 | 12.1 | 4.8 | 86.7 | 205.7 |
YOLOv5n6 | 1280 | 36.0 | 54.4 | 153 | 8.1 | 2.1 | 3.2 | 4.6 |
YOLOv5s6 | 1280 | 44.8 | 63.7 | 385 | 8.2 | 3.6 | 12.6 | 16.8 |
YOLOv5m6 | 1280 | 51.3 | 69.3 | 887 | 11.1 | 6.8 | 35.7 | 50.0 |
YOLOv5l6 | 1280 | 53.7 | 71.3 | 1784 | 15.8 | 10.5 | 76.8 | 111.4 |
YOLOv5x6 + TTA | 1280 1536 | 55.0 55.8 | 72.7 72.7 | 3136 - | 26.2 - | 19.4 - | 140.7 - | 209.8 - |
yolov5和yolov3的特点
1.利用多尺度特征进行目标检测;先验框更丰富;
2.对象分类使用logistic代替了softmax,更适用于多标签分类任务。
3.yoloV3的损失函数分为三部分: box的损失:
只有负责检测的gridcell中的anchor才会计入损失,对x,y,w,h分别求均方误差 置信度的损失 置信度的损失是二分类的交叉熵损失函数,所有的box都计入损失计算 分类的损失:
分类的损失是二分类的交叉熵损失,只有负责检测目标的才计算损失
4.最大的改进就是网络结构,使其更适合小目标检测 特征做的更细致,融入多持续特征图信息来预测不同规格物体 先验框更丰富了,3种scale,每种3个规格,一共9种
5. 正样本:首先计算目标中心点落在哪个grid上,然后计算这个grid对应的3个先验框(anchor)和目标真实位置的IOU值,取IOU值最大的先验框和目标匹配。那么该anchor 就负责预测这个目标,那这个anchor就作为正样本,将其置信度设为1,其他的目标值根据标注信息设置。
6.负样本:所有不是正样本的anchor都是负样本,将其置信度设为0,参与损失计算,其它的值不参与损失计算,默认为0。 FPN+PANET通过自底向上和自顶向下的方式,实现双方向的特征图融合,使得最终输出的3个特征图都具有了其他尺寸特征图的信息来提高准确。
2.yolov5构架
yolov5构架图
3.yolov5亮点
yolov5亮点增加训练难度,增强模型性能cutmix
使用dropblock
增加标签平滑
IOU转为CIOU
4.YOLOV4架构图
5.YOLOV3架构图