输入416*416*3的的图片,然后经过普通的darknet卷积,然后resblock(残差网络结构),第一次卷积变成416*416*32,然后高和宽不端的压缩为原来的二分之一,通道数不断的扩张,最终变成1024。最后对13*13*1024进行三次的卷积操作,在进入SPP模块,利用不同大小的池化核对输入进来的特征层进行最大池化,池化后进行堆叠后再进行三次卷积。
进入加强提取特征网络,获得三次卷积后的特征层先进行一个上采样,高和宽变成原来的2倍,特征层的shape变成26*26,再和主干特征提取网络的26*26*512的特征层进行一个堆叠,就实现了一个特征融合,然后继续上采样,继续堆叠。再往下走进行下采样变成26*26的特征层,然后再和前边这个特征层进行一个堆叠,堆叠后进行5次卷积,继续下采样,到了最下边再堆叠再进行5次卷积。
最后YOLO Head会根据提取到的特征进行结果预测。
CSPDarknet53:有一张图片输入进来之后,先经过这个结构,最后获得三个有效特征层,分别是52*52*256、26*26*512,13*13*1024的特征层。
Resblock是一系列残差结构构成的大卷积块。
如下图,分为两部分,右边是残差网络的堆叠,另一部分是大残差边的处理,只经过少量的处理就直接和输出连接了。
yolov4输出将原图片划分成不同大小的网格,比如13*13的有效特征层把原图片划分成不同大小的网格,26*26的有效特征层把原图片划分成不同大小的网格,52*52的有效特征层把原图片划分成不同大小的网格。
如下图,每一个特征点会预先设定三个先验框,yolov4的预测结果只会判定这些框的内部是否包含物体以及物体的种类,并且对先验框进行调整,获得预测框,也就是下面这个黄色的框