from fast-RCNN:
小目标检测:
对于小目标特征保留,可以使用类似fpn的金字塔结构融合不同CNN层级的特征。
特征融合方法:
add:同通道特征直接加和,融合后的特征相当于加了先验的特征,每个通道的特征图信息更丰富,但融合的特征图需要有相同维数和通道数。相对于concat方法更快。
concat:特征图从通道方向直接叠加,会具有完整的特征图信息。要求特征图维度相同(高宽)。
from YOLO:
数据增强方法:
SAT自对抗训练,简单来说就是给图像加噪声使图像中看似没有目标物体,再将修改后的图像输入模型中进行正常的目标检测训练,以提高鲁棒性。这种方法的计算资源占用很大,并不是很好的数据增强方法。
mosaic数据增强,可以认为是传统数据增强方法的组合,将四张图片经过多种处理(裁剪、缩放、色域变换等)后拼接为一张图。
激活函数:
可以使用mish激活函数,相对于relu具有负值区域的小值,相对于leakyrelu还具有全域的平滑性,对准确性和泛化性能有益。速度相对relu较慢,但换取了稳定性和精度提高。具体对比和其他细节:Mish:一个新的state-of-the-art激活函数,ReLU的继任者 - 知乎 (zhihu.com)
CNN(backbone):
darknet-19使用了无全连接层结构,简化了参数量,同时输入图像尺寸没有了限制。
darkent-53借用了resnet中residual block跳连接结构以及bottleneck的思想,可以训练更深的特征,使用了leakyrelu作为激活函数。这里其实没太懂为什么不像19一样不使用全连接层,最后用一个1*1卷积替换最后分类特征输出的全连接层。yolo-v3后续改进版本YOLO-V3-SPP中引入了SPP这一结构,这一结构可以增强感受野特征,同时可以将不同尺寸的特征图转换成固定大小的特征向量,从而作为全连接层的输入。这一特性使得SPP层能够处理不同尺寸的输入图像,避免了图像缩放带来的精度损失和计算冗余。其实就包含了全卷积网络的效果。
cspdarknet-53使用了mish激活函数代替leakyrelu,引入了csp结构,这个结构通过将输入特征图拆分后经过不同的卷积处理最后concat两组处理后的特征图,据论文说是可以丰富特征。这里直观上感觉与inception网络结构有些类似,但底层原理是有差别的,csp是靠拆分后用不同的卷积处理得到不同的特征信息后concat,而inception是直接将特征图输入不同的维度(高宽)卷积学习不同的权重,以达到自适应选择合适网络架构的目的。这里解释的有些抽象,可以自己对比一下两种网络的结构图。
csp结构(cspdarknet中的csp)有利于降低过拟合风险,有利于样本较少的训练情况。
SAM 空间注意力机制本质上就是将通道维度下采样为一维,再使用卷积来获得权重参数的单通道特征矩阵。
CAM通道注意力机制是将图像长宽尺度空间下采样为一维,通过卷积等操作获得通道的权重参数。
neck:
FPN与PANet都是用于丰富输入分类头特征的trick,FPN简单来说就是将顶层语义信息融合到地低层特征图中来丰富特征信息,而PANet则是在FPN基础上将低层信息传到高层中,是为了缩短低层信息传到高层的路径,避免细节丢失(普通CNN正常传导信息要经过很多层)。
SPP简单来说就是使用多种池化层对输入特征图进行池化,试图获得尽量多的尺度特征,再将池化后的结果concat为固定长度的一维特征向量。可以增强感受野特征,并将不同尺寸的特征图转换成固定大小的特征向量。
SPPF是SPP改进版,其实这个改进思路与inception中的多个低维卷积替换单个高维卷积的思路差不多,通过类似操作加速池化过程,效果与SPP没什么差别。