YOLO算法改进4【中阶改进篇】:添加DeformableConvolution卷积模块

YOLO算法改进4【中阶改进篇】:添加DeformableConvolution卷积模块_第1张图片

论文地址: https://arxiv.org/abs/1811.11168
源码地址:https://github.com/msracver/Deformable-ConvNets

YOLO算法改进4【中阶改进篇】:添加DeformableConvolution卷积模块_第2张图片

传统的卷积操作是将特征图分成一个个与卷积核大小相同的部分,然后进行卷积操作,每部分在特征图上的位置都是固定的。这样,对于形变比较复杂的物体,使用这种卷积的效果就可能不太好了。对于这种情况,传统做法有丰富数据集,引入更多复杂形变的样本、使用各种数据增强和trick,以及人工设计一些手工特征和算法。
基于数据集和数据增强的做法都有点“暴力”,通常收敛慢而且需要较复杂的网络结构来配合;而基于手工特征算法就实在是有点“太难了”。特变是物体形变可能千变万化,这种做法本身难度就很大,而且不灵活。这时候,Deformable Conv 出道了!他站上演讲台,说他是个性boy,他会变形,不像常规卷积那样死板,他更灵活,可以应对上述提到的物体复杂形变的场景。

1.增加 HorBlock.yaml文件
添加至/models/文件中

# parameters
nc: 80  # number of classes
depth_multiple: 0.33  # model depth multiple
width_multiple: 0.50  # layer channel multiple
 
# anchors
anchors:
  - [10,13, 16,30, 33,23]  # P3/8
  - [30,61, 62,45, 59,119]  # P4/16
  - [116,90, 156,198, 373,326]  # P5/32
 
# YOLOv5 v6.0 backbone
  backbone:
  # [from, number, module, args]
  [[-1, 1, Conv, [64, 6, 2, 2]],  # 0-P1/2
   [-1, 1, DCnv2, [128, 3, 2]],  # 1-P2/4  [32,64,3,2]
   [-1, 3, C3, [128]],                   #[64,64,1]
   [-1, 1, DCnv2, [256, 3, 2]]<

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