*免责声明:
1\此方法仅提供参考
2\搬了其他博主的操作方法,以贴上路径.
3*
场景一:yolo v7
场景二:yolo系列未完待续
…
场景一:yolo v7
1.1 yolo v7 网络结构
1.2 yolo v7 输入端
1.3 yolo v7 Backbone主干网络
MPC-B
ELAN
1.4 yolo v7 Neck
强推–>yolov7基础知识先导篇《场景三:SPPCSPC》
结构重参数化
1.5 yolo v7 Prediction创新
强推–>yolo v4基础知识先导篇《场景四: CIoU Loss损失函数》
强推–>yolo v4基础知识先导篇《场景八: DIOU NMS》
1.6 yolo v5、v7正负样本划分策略
强推–> yolov7基础知识先导篇:《场景五:标签分配–>细分方法:simOTA》
1.7 辅助头辅助训练
论文解读:深度监督网络(Deeply-Supervised Nets)
1.8 多种模型结构讲解
模型复合缩放方法
强推–> yolov7基础知识先导篇:《场景六:模型复合缩放》
yolov7-tiny
yolov7-w6
# 这不欺负老实人嘛!!! ReOrg+Conv 就是yolov5里面的focus结构
# [from, number, module, args]
[[-1, 1, ReOrg, []], # 0
[-1, 1, Conv, [64, 3, 1]], # 1-P1/2
yolov7-x
yolov7-e6
[-1, 1, DownC, [320]], # 13-P3/8
# 这不欺负老实人吗,DownC就是 上文MPC-B结构,搞不懂为什么换的时候不把yolov7.yaml文件里面的一起换掉
class DownC(nn.Module):
# Spatial pyramid pooling layer used in YOLOv3-SPP
def __init__(self, c1, c2, n=1, k=2):
super(DownC, self).__init__()
c_ = int(c1) # hidden channels
self.cv1 = Conv(c1, c_, 1, 1)
self.cv2 = Conv(c_, c2//2, 3, k)
self.cv3 = Conv(c1, c2//2, 1, 1)
self.mp = nn.MaxPool2d(kernel_size=k, stride=k)
def forward(self, x):
return torch.cat((self.cv2(self.cv1(x)), self.cv3(self.mp(x))), dim=1)
yolov7 d6
yolov7 e6e
1.9 E-ELAN
论文中提出了对ELAN结构的修改,但是并没有详细的说明,在yolov7-e6e的结构中,仿佛有该结构的引子,根据yaml文件结构,E-ELAN的操作如下:
1.10 性能
…
you did it
有错的话欢迎指正,微信: weeksoooo