YOLOV6

ps640         Map0.5:0.95  28.0~50.7  Map0.5  45.7~68.9    CPUMs 45~766   V100Ms  6.3~12.1   
ps1280       Map0.5:0.95  36.0~53.7  Map0.5  54.4~71.3    CPUMs 153~1784   V100Ms  8.1~15.8   

Yolov6
基于 RepVGG style[4] 设计了可重参数化、更高效的骨干网络 EfficientRep Backbone 和 Rep-PAN Neck
YOLOv6 支持 GPU(TensorRT)、CPU(OPENVINO)、ARM(MNN、TNN、NCNN)等不同平台的部署
Backbone:
1.将Backbone中stride=2的普通Conv层替换成了stride=2的RepConv层
2.将原始的CSP-Block都重新设计为RepBlock
   2.1 RepBlock的第一个RepConv会做channel维度的变换和对齐
   2.2 将原始的SPPF优化设计为更加高效的SimSPPF
Neck:
1.Rep-PAN基于PAN拓扑方式
  1.1 用RepBlock替换了CSP-Block
  1.2 对整体Neck中的算子进行了调整
Head:
位置:  yolo(x,6)/models/yolo_head.py
simOTA(标签分配)  整体逻辑
1、确定正样本候选区域。
2、计算anchor与gt的iou。
3、在候选区域内计算cost。
4、使用iou确定每个gt的dynamic_k。
5、为每个gt取cost排名最小的前dynamic_k个anchor作为正样本,其余为负样本。
6、使用正负样本计算loss。
loss考虑: 距离损失、角度损失、IoU损失、形状损失
    GIoU Loss (广义Iou)   范围 -1≤GIoU≤1        依靠边界框重叠面积
    DIoU Loss (距离Iou)   范围 -1≤DIoU≤1        依靠边界框中心点距离
    CIoU Loss (完整Iou)                     IOU loss+中心点损失+长宽比例损失
    EIoU Loss (高效Iou)                         IOU loss+中心点损失+宽损失+长损失
    SIoU Loss (边界框回归损失)                 IOU loss+距离损失(角度+距离)+Shape cost

Roof-line Model 
求理论能够获得的最大计算性能FLOPS
1.图像横坐标为计算强度,即 计算量/访存量
2.图像纵坐标为最大理论计算性能

ResNet(跳跃神经网络)
卷积3x3->激活relu->卷积3x3(+合并+)卷积1x1
RepVGG training(RepVGG训练模型)
卷积3x3(+合并+)卷积1x1 ->激活relu
RepVGG inference(RepVGG推理模型)
卷积3x3->激活relu

VGG-style模型
1.在 GPU 上,3x3 卷积的计算密度(理论运算量除以所用时间)可达 1x1 和 5x5卷积 的四倍
2.单路架构速度非常快。减少分支可以加快模型推理速度(这点可以看 ShuffleNet V2 )。
3.单路架构省内存。例如,ResNet 的 shortcut 虽然不占计算量,却增加了一倍的显存占用(见下图,这点也可以看 ShuffleNet V2 )。
4.单路架构灵活性更好,容易改变各层的宽度。
5.RepVGG 主体部分只有一种算子:3x3 卷积接 ReLU 

RepVGG结构重参数化:
Step1. 融合卷积层( identity )和 BN 层,再对融合后的 1x1 卷积和 identity 进行补零(类似 padding 操作)扩展成 3x3 大小的卷积核;
Step2. 利用卷积的可加性,将 3 个 3x3 卷积合并为一个;
Step3. 完成结构重参数化,得到 plain 形式的推理模型

ShuffleNet V1
1.Pointwise Group Convolution(逐点群卷积)  (类似分组卷积)
2.Channel Shuffle(通道混洗)

ShuffleNet V2
1.使用相同的输入输出通道数可以最小化MAC
2.MAC和分组卷积的组数成正比
3.网络的分支数量降低并行能力
4.减少element-wise操作

你可能感兴趣的:(yolo,算法)