YOLO
文章平均质量分 71
本博客专栏将深入探讨如何改进YOLO算法,以应对目标检测任务中的挑战。本专栏介绍一系列创新的技术和方法,旨在提升YOLO算法在各种场景下的性能。为您在目标检测任务中取得更好的结果提供有价值的指导和启示。无论您是学术研究人员、工程师还是对计算机视觉感兴趣的读者,本专栏都将为您带来丰富的知识和实用的技巧
athrunsunny
这个作者很懒,什么都没留下…
展开
-
【LeYOLO】嵌入式和移动端的轻量级YOLO模型
在深度神经网络中,计算效率对于目标检测至关重要,尤其是在新模型更注重速度而非有效计算(FLOP)的情况下。这一演变某种程度上忽视了嵌入式和面向移动端设备的AI目标检测应用。在本文中,作者重点关注基于FLOP的高效目标检测计算的神经网络架构设计选择,并提出几项优化措施来提高基于YOLO模型的效率。1、首先,作者引入了一种受倒置瓶颈(inverted bottlenecks)和来自信息瓶颈(the Information Bottleneck)原理的理论所启发的有效 Backbone 网络缩放方法。原创 2024-07-10 18:24:55 · 1318 阅读 · 0 评论 -
yolo增加Focaler-IoU
在目标检测领域,边界框回归起着至关重要的作用,而目标检测的定位精度很大程度上取决于边界框回归的损失函数。现有研究通过利用边界框之间的几何关系来提高回归性能,而忽略了难以和容易样本分布对边界框回归的影响。在这篇文章中,作者分析了难以和容易样本分布对回归结果的影响,然后提出了Focaler-IoU,通过关注不同的回归样本,该方法可以提高不同检测任务中的检测器性能。最后,作者使用现有的高级检测器和回归方法进行了不同检测任务的比较实验,并使用本文提出的办法进一步提高了检测性能。原创 2024-04-14 15:17:21 · 1320 阅读 · 0 评论 -
yolo增加Shape-IoU,完美超越SIoU/EIoU/CIoU
作为检测定位分支的重要组成部分,边界框回归损失在目标检测任务中起着重要作用。现有的边界框回归方法通常考虑GT框和预测框之间的几何关系,通过相对位置和框形来计算损失,而忽略边界框的固有属性(如边界框的形状和尺寸)对边界框回归的影响。为了弥补现有研究的不足,本文提出了一种关注边界框自身形状和尺寸的边界框回归方法。首先,分析了边界框的回归特性,并发现边界框自身的形状和尺寸因素将对回归结果产生影响。基于上述结论提出了Shape IoU方法,该方法通过关注边界框自身的形状和尺寸来计算损失,从而使边界框回归更准确。原创 2024-01-03 18:39:05 · 4967 阅读 · 12 评论 -
yolov7简化网络yaml配置文件
了解v7的都知道,配置文件中网络层数多达100多层,不过并不复杂,相似的模块比较多,可以看到简化后配置文件的层数也就31层。贫穷打工牛马,项目之余改的,感觉改的还不是很优雅,欢迎小伙伴多提意见。之后修改yolo.py的cfg路径,如果运行成功能看到最上面的图。首先创建 yolov7-ELAN-E.yaml。本篇介绍如何简化yolov7的网络配置文件。在BaseModel的fuse函数中添加。在parse_model中添加模块名。在common.py中添加。原创 2023-12-14 00:27:38 · 994 阅读 · 0 评论 -
yolo增加Inner-IoU,一文搞定(Inner-SIoU,Inner-WIoU,Inner-EIoU,Inner-MPDIoU)
随着检测器的迅速发展, 边框回归取得了巨大的进步。然而,现有的基于 IoU 的边框回归仍聚焦在通过加入新的损失项来加速收敛,忽视 IoU 损失项其自身的限制。尽管理论上 IoU 损失能够有效描述边框回归状态,在实际应用中,它无法根据不同检测器与检测任务进行自我调整,不具有很强的泛化性。基于以上,我们首先分析了 BBR 模式,得出结论在回归过程区分不同回归样本并且使用不同尺度的辅助边框计算损失能够有效加速边框回归过程。原创 2023-11-17 12:16:04 · 6116 阅读 · 2 评论 -
yolo改进替换VanillaNet backbone
基础模型的核心是“更多不同”的哲学,计算机视觉和自然语言处理的惊人成功就是例证。然而,优化的挑战和Transformer模型固有的复杂性要求范式向简单转变。在本研究中,我们介绍了VanillaNet,一个在设计中包含优雅的神经网络架构。通过避免高深度、快捷方式和复杂的操作,如自注意力,VanillaNet是令人耳目一新的简洁,但非常强大。每一层都被精心制作成紧凑和简单的结构,非线性激活函数在训练后被剪枝,以恢复原始的架构。VanillaNet克服了固有复杂性的挑战,使其成为资源紧张环境的理想选择。原创 2023-11-16 22:41:09 · 838 阅读 · 5 评论 -
yolov5增加NWD loss提升小目标检测能力
在utils/loss.py中添加。原创 2023-03-15 15:52:25 · 7445 阅读 · 24 评论 -
简单粗暴提升yolov5小目标检测能力
和yolov5最开始做的focus是类似的,对于输入的特征图(长宽为S),从左到右以及从上到下每scale个像素采样一次,假设scale=2,采样方式就和上图一样,经过这样采样的输出长宽就是S/2,最后将采样后的输出进行concatenate,通道数就是scale的平方,即4。左侧是yolov5原始模型的网络架构,右图则是增加SPD结构的yolov5网络架构,其中红框部分就是两网络的区别之处。在原文中作者还将该结构应用在分类模型上,分类性能上也有一定的提升,感兴趣的可以看看原文。...原创 2022-08-29 15:39:52 · 7320 阅读 · 5 评论 -
yolov5增加fasternet结构
在yolo.py中的parse_model中做如下修改。直接运行yolo.py可以看网络结构。原创 2023-03-17 18:09:53 · 7010 阅读 · 35 评论 -
yolo增加RFEM
总的来说就是RFEM利用了感受野在特征图中的优势,通过使用不同膨胀卷积率的分支来捕捉多尺度信息和不同范围的依赖关系。这种设计有助于减少参数数量,降低过拟合风险,并充分利用每个样本。原创 2023-08-29 16:41:46 · 4768 阅读 · 0 评论 -
yolo增加mobileone
MobileOne出自Apple,它的作者声称在iPhone 12上MobileOne的推理时间只有1毫秒,这也是MobileOne这个名字中One的含义。从MobileOne的快速落地可以看到重参数化在移动端的潜力:简单、高效、即插即用。原创 2023-08-30 18:28:05 · 614 阅读 · 0 评论 -
yolov5添加damoyolo GFPN模块
DAMO yolo在提出前阿里就推出了一个叫GIRAFFEDET的模型,主推轻backbone重neck的网络结构,使得网络更关注于高分辨率特征图中空间信息和低分辨率特征图中语义信息的信息交互。同时这个设计范式允许检测网络在网络早期阶段就以相同优先级处理高层语义信息和低层空间信息,使其在检测任务上更加有效。不过这里主要讲的不是 GiraffeDet,而是将这一思想应用在yolov5中。原创 2023-02-07 16:12:07 · 6306 阅读 · 15 评论 -
yolov7增加AFPN
论文的作者是说在yolo上效果有提升,不过还没有测试,具体还不清楚,把代码撸出来先。yolov7的代码结构类似,可以参照tiny的yaml进行修改。先上配置文件yolov7-tiny-AFPN.yaml。在models/common.py增加。原创 2023-07-06 10:12:51 · 3971 阅读 · 24 评论 -
yolov5增加AFPN-全新特征融合模块AFPN,效果完胜PAFPN
论文中提到使用AFPN的效果要比PAN的好,暂时还没有验证,先肝代码。可以看最上面的图,参数确实是少了。先上配置文件yolov5s-AFPN.yaml。在models/common.py增加。原创 2023-07-06 00:33:28 · 10542 阅读 · 51 评论 -
yolov5增加iou loss(SIoU,EIoU,WIoU),无痛涨点trick
如果需要应用对应的IoU loss的变体,即可将Focal设置为True,并将对应的IoU也设置为True,如CIoU=True,Focal=True时为Focal-CIoU,此时可以调整gamma,默认设置为0.5。本文将在yolov5的基础上增加SIoU,EIoU,Focal-XIoU(X为C,D,G,E,S等)以及AlphaXIoU。如果想要使用AlphaXIoU,将alpha设置为3同时将对应的IoU也设置为True即可,alpha默认设置为1。先贴一张最近一篇论文的结果。原创 2023-02-03 11:11:44 · 11679 阅读 · 38 评论 -
yolo增加slide loss,改善样本不平衡问题
然而,由于分类不明确,边界附近的样本往往会遭受较大的损失。然后,通过加权函数Slide对边界处的样本进行强调,如图 4 所示。函数来解决这个问题。简单样本和困难样本之间的区别是基于预测框和ground truth 框的IoU大小。为了减少超参数,将所有边界框的 IoU 值的平均值作为阈值 µ,小于µ的取负样本,大于µ的取正样本。样本不平衡问题,即在大多数情况下,容易样本的数量很大,而困难样本相对稀疏,引起了很多关注。slide loss的主要作用是让模型更加关注难例,可以轻微的改善模型在难例检测上的效果。原创 2023-09-24 00:16:46 · 3369 阅读 · 5 评论 -
yolo增加MPDIoU loss
边界框回归(Bounding Box Regression,BBR)在目标检测和实例分割中被广泛应用,是定位目标的重要步骤。然而,大多数现有的边界框回归损失函数在预测框与实际标注框具有相同的宽高比但宽度和高度值完全不同的情况下无法进行优化。为了解决上述问题,作者充分探索了水平矩形的几何特征,提出了一种基于最小点距离的边界框相似度比较度量——MPDIoU,其中包含了现有损失函数中考虑的所有相关因素,例如重叠或非重叠面积、中心点距离以及宽度和高度的偏差,同时简化了计算过程。原创 2023-09-10 22:58:11 · 1897 阅读 · 10 评论 -
yolov7增加重参数化的深度可分离卷积(mobileone)
在这里,我修改的思路不是将mobileone的backbone整体替换,而是保留v7tiny每个ELAN block,将每个block中的3*3卷积替换为图3中的重参数化的深度可分离卷积,这样既保留了网络整体结构,同时又将重参数化的mobileone block添加到网络结构中。左侧分支是过参数化的1×1卷积,由k个1×1卷积构成。这里的1×1卷积和3×3卷积都是深度卷积(也即分组卷积,分组数g等于输入通道数)。融合之后看起来就是将ELAN中的两个3*3的卷积替换成深度可分离卷积的形式。原创 2023-09-10 10:41:35 · 1626 阅读 · 4 评论 -
yolov7-tiny简化网络yaml配置文件
yolov7代码结构简单,效果还好,但是动辄超过70层的配置文件对于想要对网络进行魔改的朋友还是不怎么友好的,使用最小的tiny也有77层。代码的整体结构简单,直接将ELAN结构化写成一个类就能像yolov5一样仅仅之后20几层,方便对网络结构的魔改,看着也不容易头晕。先创建配置文件yolov7-tiny-ELAN.yaml。在yolo.py中的parse_model中增加。这里先放一张改好的网络结构运行结果。在common.py中增加。原创 2023-09-09 12:42:16 · 1785 阅读 · 4 评论