最近在学习YOLOv4,针对其主干网络CSPDarknet53的结构图,本人在网上查阅资料后发现结构图并不详细。尤其是对于里面的残差块ResBlock和Resblock_body,它们内部的操作是怎样的?他们的关系是什么样的?在查看了YOLOv4的代码后,结合原来的结构图做了详解。
需要注意的是:原结构图中共有5个Resblock_body,第一个Resblock_body与后面的4个Resblock_body结构存在差异。具体差异见图所示。两种结构处理残差块数目有所不同,最后的输出前也有所不同:第一个Resblock_body在torch.cat()后还有一层卷积,而后面4个torch.cat()后无卷积。
整个YOLOv4网络各个阶段数据的流向以及大小(宽x高x通道数)如下图所示。输出的三个不同规格的Yolo Head是为了识别大小不同的物体而生成的检测结果。75 = 3*(4+1+20),3表示每个网格点上的先验框的数目; 1+4,1表示该先验框是否包含物体,4表示预测框接近先验框的4个调整参数;20表示当前先验框属于20个类别的概率大小。
YOLOv4主干网络参考可见:
睿智的目标检测30——Pytorch搭建YoloV4目标检测平台_Bubbliiiing的学习小课堂-CSDN博客_yolov4目标检测