yolov5改进系列
文章平均质量分 96
通过改进损失函数、替换主干网络、以及添加注意力机制等方法提升yolov5的性能。
慕溪同学
主要研究方向疵点精准检测与纤维检测分割,写博客记录自己的学习过程和知识点
展开
-
【YOLOv5改进系列(12)】高效涨点(强推!!!)----使用BiFPN特征融合方式替换yolov5中的PANet网络
BiFPN即“双向特征金字塔网络”,是一种常用于计算机视觉任务,特别是目标检测和实例分割的神经网络架构。它扩展了特征金字塔网络(FPN),通过在金字塔级别之间引入双向连接,使信息能够在网络中同时进行自底向上和自顶向下的流动。特征金字塔生成:最初,网络通过从骨干网络(通常是ResNet等卷积神经网络)的多个层中提取特征来生成特征金字塔。双向连接:与传统FPN不同,BiFPN在特征金字塔相邻级别之间引入了双向连接。原创 2024-05-12 23:38:45 · 2446 阅读 · 0 评论 -
【YOLOv5改进系列(11)】高效涨点----添加soft-nms(IoU,GIoU,DIoU,CIoU,EIoU,SIoU)到yolov5中
目前yolov5使用的是NMS进行极大值抑制,本篇文章是要将soft-nms添加到yolov5中,同时可以使用不同的IOU进行预测框处理,在看本文之前强烈推荐看一下改进系列(1)和(2)这两个讲了的相关概念,以及如何使用不同的Iou替换掉yolov5中的CIOU。我自己也在钢轨表面疵点数据集进行测试,发现效果还是有一些,但是训练速度比较慢,可能是pytorch自带的nms底层代码做了优化所以速度会比较快,因此训练的时候不建议用,在使用val.py进行模型推理的时候可以使用soft-nms。原创 2024-04-01 23:25:28 · 2815 阅读 · 2 评论 -
【YOLOv5改进系列(10)】高效涨点----将CAM(上下文增强模块)添加到Neck特征融合模块当中
在yolov5改进系列[9]里面我是已经将CAM模块替换掉了backbone最后一层的SPPF模块,经过实验可以得出,在我自己的钢轨表面疵点数据集上使用adaptive连接方式涨点效果最优map@0.5提升了7个百分点。后来发现在Neck特征融合部分也能添加CAM模块这里就在PANet的stage=1/32concat特征融合之前添加CAM模块进行处理。原创 2024-03-31 22:21:48 · 1604 阅读 · 0 评论 -
【YOLOv5改进系列(9)】高效涨点----使用CAM(上下文增强模块)替换掉yolov5中的SPPF模块
CAM(上下文增强模块)这个模块是出至于这篇论文,这是一个针对小目标检测的文本,提出了一种名为“上下文增强和特征细化网络”的方法。将多尺度展开卷积的特征从上到下融合注入到特征金字塔网络中,补充上下文信息。引入通道和空间特征细化机制,抑制多尺度特征融合中的冲突形成,防止微小目标淹没在冲突信息中。此外,提出了一种数据增强方法,该方法可以增加训练过程中微小对象对损失的贡献,保证训练更加均衡。原创 2024-03-30 22:49:28 · 3387 阅读 · 11 评论 -
【YOLOv5改进系列(8)】高效涨点----添加yolov7中Aux head 辅助训练头
auxiliary head辅助训练头是出至yolov7论文,这两天都在研究如何能够将v8和v7的一些模块添加到yolov5中,添加 Aux head 的主要原因是让网络中间层学到更多信息,有更丰富的梯度信息帮助训练。这里要注意,好的梯度信息能够让相同参数量的网络学的更好。这里的yolov5除了添加了辅助训练头,而且还进行了改进,将之前的OTA最优传输也添加进来,用于优化标签分配策略,添加之后我感觉训练损失慢了5倍不止,但是收敛效果和识别精度要提高了不少。原创 2024-03-29 22:51:18 · 2324 阅读 · 1 评论 -
【YOLOv5改进系列(7)】高效涨点----使用yolov8中的C2F模块替换yolov5中的C3模块
🚀这里解释一下为什么要使用yolov8中的C2F模块替换yolov5中的C3模块,可能在大家印象当中最新的模型要比旧的模型性能要好,其实博主在训练不同数据集的时候会发现yolov5的检测性能可能会优于v7甚至v8,因为目前大部分的目标检测模型都是在coco数据集上进行训练,然后再与旧的模型进行比较,如果只看在coco数据集上的表现确实v7、v8是要优于v5的,但是在自己数据集上面训练可能就是另外一种结果,所以可以尝试将不同模型的不同模块进行融合,试一试训练效果。原创 2024-03-29 21:17:20 · 5901 阅读 · 3 评论 -
【YOLOv5改进系列(6)】高效涨点----使用DAMO-YOLO中的Efficient RepGFPN模块替换yolov5中的Neck部分
DAMO-YOLO是阿里巴巴达摩院在2022年提出的一种模型,其实在当时yolov5和v6已经出来了,并且也有部分实时监测比较好的算法模型原创 2024-03-28 20:58:50 · 1523 阅读 · 0 评论 -
【YOLOv5改进系列(5)】高效涨点----添加密集小目标检测NWD方法
检测微小物体是一个非常具有挑战性的问题,因为微小物体仅包含几个像素大小。由于缺乏外观信息,最先进的探测器在微小物体上无法产生令人满意的结果。在此之前也有不少研究者发现了IOU度量对于微小物体的偏差非常敏感,也提出了不少改进,像DIOU、GIOU、CIOU、等等,但是都是基于位置去判断两个框的距离和相似度,依旧无法解决小物体的位置敏感问题。为此武汉大学的一些研究人员将边界框建模为 2D 高斯分布,然后提出一种称为归一化 Wasserstein 距离(NWD)的新度量,以通过相应的高斯分布计算它们之间的。原创 2024-03-27 18:56:10 · 2538 阅读 · 0 评论 -
【YOLOv5改进系列(4)】高效涨点----添加可变形卷积DCNv2
目前可变形卷积一共有4个版本,分别是DCNv1~DCNv4,在本文中使用的是带有可变形卷积DCNv2的方法替换yolov5-v6.0版本中的C3模块。本次使用的数据集是热轧钢带的六种典型表面缺陷数据集,通过在backbone的不同位置添加可变形卷积进行训练,经过实验测试结果,最后的map@0.5提高了近5个百分点。原创 2024-03-25 20:54:50 · 3261 阅读 · 19 评论 -
【YOLOv5改进系列(3)】高效涨点----Optimal Transport Assignment:OTA最优传输方法
Optimal Transport Assignment最优传输方法是在21年提出来的,主要用于密集物体检测,本次使用的数据集是热轧钢带的六种典型表面缺陷数据集,因为我使用的图像数据集的物体不够密集,虽然有所涨点,但是涨点并没有原论文中效果那么好,并且在训练过程中会发现使用最优传输方法的计算量比较大,使用同一个数据集训练,训练时间大约是正常训练的3倍。原创 2024-03-21 15:54:52 · 1304 阅读 · 0 评论 -
【YOLOv5改进系列(2)】高效涨点----Wise-IoU详细解读及使用Wise-IoU(WIOU)替换CIOU
在上一篇文章使用了EIoU、Alpha-IoU、SIoU、Focal-EIOU替换yolov5中默认的CIou损失,发现Focal-EIOU对于钢轨表面缺陷识别的提升效果最好,将map@0.5提升到了81.1%,这节使用Wise-IoU的三个版本(分别是v1、v2、v3)去替换CIOU损失,来观察不同类别的map@0.5变化。其中使用Wise-IoU v1方法将钢轨表面缺陷数据集的map@50从77.9%提升到了86.3%,将近提升了10个百分点。原创 2024-03-19 19:57:10 · 7911 阅读 · 9 评论 -
【YOLOv5改进系列(1)】高效涨点----使用EIoU、Alpha-IoU、SIoU、Focal-EIOU替换CIou
YOLOv5使用的默认边界框回归损失是CIou,在CVPR上等相关论文作者提出了等边界框回归损失计算方法,经过实验证明,使用这些方法对于数据集"涨点"有一定的帮助,在后面测试过程中使用的是由东北大学(NEU)发布的表面缺陷数据库,收集了热轧钢带的六种典型表面缺陷,即轧制氧化皮(RS),斑块(Pa),开裂(Cr),点蚀表面( PS),内含物(In)和划痕(Sc)。该数据库包括1,800个灰度图像:6种不同类型的典型表面缺陷,每一类缺陷包含300个样本。原创 2024-03-19 16:13:42 · 2658 阅读 · 1 评论