yolov5

1.输入端:

(1)Mosica数据增强

采用了和Yolov4一样的Mosaic数据增强的方式

yolov5_第1张图片

(2)自适应锚框计算

在Yolov3、Yolov4中,训练不同的数据集时,计算初始anchor的值是通过单独的程序运行的。

但Yolov5中将此功能嵌入到代码中,每次训练时,自适应的计算不同训练集中的最佳锚框值。

当然,如果觉得计算的锚框效果不是很好,也可以在代码中将自动计算锚框功能关闭

控制的代码即train.py中上面一行代码,设置成False,每次训练时,不会自动计算。

(3)自适应图片缩放

注意:训练时使用传统的缩放方式,测试时才使用自适应图片缩放。

yolov5_第2张图片

第一步:计算缩放比例,选取最小的比例

第二步:计算缩放后的尺寸

第三步:计算黑边填充数值,最后的高度要能被32整除

 2.Backbone

(1)Focus结构

yolov5_第3张图片

 (2)CSP结构

Yolov4和Yolov5都使用了CSP结构。而yolov4只在backbone中使用了CSP结构,yolov5有两种CSP结构,以Yolov5s网络为例,CSP1_X结构应用于Backbone主干网络,另一种CSP2_X结构则应用于Neck中。

yolov4

yolov5_第4张图片

yolov5

yolov5_第5张图片

3. Neck

和Yolov4中一样,都采用FPN+PAN的结构。但两者有差别:Yolov4的Neck结构中,采用的都是普通的卷积操作。而Yolov5的Neck结构中,采用借鉴CSPnet设计的CSP2结构,加强网络特征融合的能力。

yolov5_第6张图片

4.输出端

(1)Bounding box损失函数

 和yolov4一样,Yolov5中采用其中的CIOU_Loss做Bounding box的损失函数。

(2)nms非极大值抑制

Yolov4在DIOU_Loss的基础上采用DIOU_nms的方式,而Yolov5中采用加权nms的方式。

 

 

 

 

 

你可能感兴趣的:(深度学习,人工智能)