整理极客冠军方案

总结

通常套路就是
(1)先观察整体的数据分布(数据集数量,标签数量,标注框数量)

  • ①数据集数量:数量大,大模型训练缓慢
  • ②标签数量:各类的分布情况—>分布是否平衡
    focal损失函数:长尾分布(样本分布不均衡)
    mosaic:小目标相对较多。mosaic大大丰富了检测数据集,特别是随机缩放增加了很多小目标,让网络的鲁棒性更好;
  • ③各类的平均数量
    SAM优化器:增加泛化能力,避免过拟合

(2)数据特点

  • 遮掩严重:
    varifocal loss损失函数
    soft-nms
  • 数据集的尺寸

(3)训练策略

(4)性能优化

一. 占道经营检测

ECV 2021 冠军方案解读

(1)模型选择

anchor-based:

1)优点:加入了先验知识,模型训练相对稳定;密集的anchor box可有效提高召回率,对于小目标检测来说提升非常明显

2)缺点:对于多类别目标检测,超参数scale和aspect ratio相对难设计;冗余box非常多,可能会造成正负样本失衡;在进行目标类别分类时,超参IOU阈值需根据任务情况调整。

anchor-free:

1)优点:计算量减少;可灵活使用。

2)缺点:存在正负样本严重不平衡;两个目标中心重叠的情况下,造成语义模糊性;检测结果相对不稳定。

基于优点与缺点最终选择了yolov5

(2)根据数据集选择合适的处理方案

1)优化器

在这里插入图片描述

SAM优化器

  • 问题:许多网络可以很容易地记住训练数据并有能力随时overfit,为了防止这个问题,增强泛化能力
  • SAM优化器特点:
  • 它与其他常见的优化器一起使用

2)损失函数

Varifocal Loss损失函数
使用该loss来缓解目标遮挡造成漏检现象。并且与focal loss不同,varifocal loss是不对称对待正负样本所带来的损失。

3)冻结训练

具体训练方案是:1)常规训练;2)加入冻结模块的分步训练1;3)加入冻结模块的分步训练2。

其实我还在思考冻结训练中每一步的意义???
在这里插入图片描述

二. 沿街晾晒识别

这一篇给我看出了一种应试考试的感觉

(1)标签数量不均衡

数据增强用Mosaic数据增强 + 损失函数用Focal loss
这也是应对数据不均衡比较常规的想法,而且都很有效。

Focal loss

关于Focal loss的详细内容可以参考这篇博客

(2) TensorRT

(3)训练策略

它的训练策略分三段

三. 反光衣识别

这一篇比较重代码和逻辑推演过程

对于yolov5的理解

1.第一层取消了Focus,采用卷积核大小为6,步长为2的卷积层代替。
yolov5官方解答,Focus() 是用来降低FLOPS的,跟mAP无关。Focus模块在v5中是图片进入backbone前,对图片进行切片操作,具体操作是在一张图片中每隔一个像素拿到一个值,类似于邻近下采样,这样就拿到了四张图片,四张图片互补,输入通道扩充了4倍,即拼接起来的图片相对于原先的RGB三通道模式变成了12个通道,最后将得到的新图片再经过卷积操作,最终得到了没有信息丢失情况下的二倍下采样特征图。

2.更改backbone的基本单元BottleneckCSP为c3模块。
在新版yolov5中,作者将BottleneckCSP(瓶颈层)模块转变为了C3模块,其结构作用基本相同均为CSP架构,只是在修正单元的选择上有所不同,其包含了3个标准卷积层以及多个Bottleneck模块(数量由配置文件.yaml的ndepth_multiple参数乘积决定)从C3模块的结构图可以看出,C3相对于BottleneckCSP模块不同的是,
经历过残差输出后的Conv模块被去掉了
②concat后的标准卷积模块中的激活函数也由LeakyRelu变味了SiLU
在这里插入图片描述

①C3模块

②BottleNeckCSP模块

3.更改Leaky_Relu激活函数为SiLU激活函数
作者在CONV模块(CBL模块)中封装了三个功能:包括卷积(Conv2d)、BN以及Activate函数(在新版yolov5中,作者采用了SiLU函数作为激活函数),同时autopad(k, p)实现了padding的效果。

4.SPP更改为SPPF(Spatial Pyramid Pooling - Fast), 结果是一样的,但是可以降低FLOPS,运行的更快。

冻结

感觉这一篇偏重实际,写的很清晰。
在这里插入图片描述

四.渣土车识别方案

渣土车识别方案

整体架构:
在这里插入图片描述

匈牙利算法

出现了这个新名词

五.农作物病虫害识别&垃圾分类识别

师出同门,可以看出很明显的侧重于落地性
垃圾分类识别
农作物病虫害识别

六.快递爆仓识别算法

久违的看见一篇是分割做的。
分割玩的太少了,再了解一下

七.短袖短裤识别

这一篇思路很清晰,不过细节部分的呈现偏少。

YOLOv5 的 TensorRT C++ 部署代码推荐参看 https://github.com/wang-xinyu/tensorrtx/tree/master/yolov5

感觉后面的代码都是千篇一律不细写了
解析了yolov5

猜你喜欢

转载自blog.csdn.net/weixin_50862344/article/details/126329979
今日推荐