来自PP-YoLO的技巧

数据增强是Mixup
backbone 是叫做主干网络 常用的是RESNET和Vgg,是用来提取图像特征的
bottleneck 瓶颈是指网络输入输出维度不同,像一个瓶颈
gap 全局平均池化层 adatativeavgpoold(1)对通道一进行自适应平均池化
neck 将特征提取器的特征图进行进一步调整以便更好使用
head 这部分是模型的任务部分利用图像特征来输出结果
NAS神经网络优化系统,使用神经网络来搜索参数,成熟的有autodl百度的
nas计算来特别大,同时使用的网络在特定问题上表现比较好,但是迁移性不是很好
使用锚框的方法是目标检测里面的主流做法
好像efficentDET在目标检测上效果是比较好的,另外的两步网络结构就是cascade R-CNN这种效果也是不错的
DCN可变形卷积可以提高卷积网络的性能,同时理论上不会增加很多计算量,但是实际应用中这种卷积用的多了速度就降下来了,只将最后一层的3*3卷积换成是可变形卷积(3乘3卷积计算速度是相当快的)

一些图像上的数据增强方法 - 图1

特征金字塔FPN(feature pyramid network)结构是一个适合的特征检测结构,可以构建特征图之间的横向连接,也就是说卷积处理之后使用的三个尺寸的特征结构,主干网络不同层级(3,4,5)提取的特征使用特征金字塔会使得分辨率下降,
head结构是一些图像上的数据增强方法 - 图2
最终的预测是3(K+5)k是分类的数量,最终的预测特征图是和三个不同的锚框联系起来的,每个框的前k个通道都是分类的预测概率,后四个是预测边界框的位置,最后一个是预测对象的分数
分类采用交叉熵损失 ,框的位置使用L1损失,对象损失采用监督目标分数,
大批量size能够改善模型的训练稳定性
这里面是设置为0.9998
DropoutBlock是将特征图中连续的地方一起丢弃,将DropoutBlock用在特征金字塔上
因为主干网络上应用会破坏性能
也就是三乘三接上1乘1的网络
边界框回归的平均精度是强依赖与交并比,大部分IOU损失的改进都是相似的,使用CIoU和GIoU效果应该会有点提升?
v3里面分类的概率和对象分数的乘积作为检测的置信度,这里将交并比也纳入为置信度,三者乘积作为最终置信度
一些图像上的数据增强方法 - 图3

这个改进的边界框中心中的被设置为1.05
矩阵NMS可以并行化的非极大值抑制,也就是重合比较多的边界框去掉
坐标卷积只在FPN的1*1卷积和检测头的3乘3卷积中使用
空间金字塔池化应用在顶层的特征图上
在计算资源有效的情况下计算速度和精准度同样都是重要的应用指标
一步式目标检测的实用性要好的很多,
数据预处理实用beta采样,随后实用图像增强
RandomColorDistortion,
Random-Expand,
RandCrop
RandomFlip with probability 0.5
Normalize RGB channels by subtracting 0.485, 0.456, 0.406
dividing by 0.229,0.224, 0.225
The input size is evenly drawn from [320, 352, 384, 416, 448, 480, 512, 544, 576, 608].
50w次迭代,最小批次是96 学习率从0到0.0005动量被设置为0.9,使用梯度裁剪,每4k词迭代提升0.005学习率,并且在400k到450k迭代时除以10,权重衰减是0.0005
Mish激活函数在目标检测器里面看起来很有用,将它加入到neck也就是fpn和pan里面
更大的输入尺寸也会带来性能提升好像比大批量提升更大

换了IoU敏感损失一些图像上的数据增强方法 - 图4
损失只在预测为正样本时计算
余弦学习率理论上性能会更好但是对超参数例如初试学习率和预热步数以及结束的学习率
silu 可以在mini coco 但是在更大的数据集上会降低精度 mish会更好?

YOLOV4里面采用的是加权残差连接 wrc 跨级部分连接 csp 交叉迷你批量归一化cmbn
自发性训练sat 和mish激活 马赛克数据增强 DropBlock正则化 CIou loss 和 GIoU 损失
PPYOLO思想是预训练的骨干网络性能是十分强悍,为了不破坏性能顶多修改最后一层卷积,FPN、PAN之类的neck结构才是重点修改的结构,可以加上DropBlock正则化,在后边的head部分就可以通过修改损失定义和激活函数来提升性能,数据上让输入图片尺寸进一步增大,降低批量来减少训练压力,
图像领域里面的样本不平衡使用硬性负例挖掘或者在线硬标签样本挖掘
focal loss 焦点损失
使用知识蒸馏来加速学习,但是知识蒸馏会使得显存占用更多,还是很难达到理论上的效果的。
使用Iou损失会提高边界框回归的精度