当前位置: 首页 > news >正文

文献阅读篇#1:C会/期刊的改进YOLO论文应放弃即插即用,至少要学会简单融合拼接(1)

过去的几天里,我们通过深入阅读会议论文,大致了解了会议论文的结构,以及论文一些重要内容的写作方法。今天我们就来学习一下,C会论文里是怎么做出创新点的。

一、介绍

首先,我想介绍一下我阅读论文的方式,一个好的阅读方法也是能够快速读懂论文的关键。之前使用一个网站叫txyz.ai,但目前已经进入收费阶段,已经很久不用了。

目前我的方法是知云+Excel

知云是一个读PDF的软件,可以对外文的PDF论文进行翻译;excel就不用多说了,用来记录每一篇论文的内容。这个阅读方法我会在之后进行总结,因为总觉得还有些低效,时常会需要反复的阅读同一块内容。但是就目前的我来说,其实已经足够了。

 二、改进点

深度学习网络的改进实际上都差不多,无非对已有的模块进行改进(一般的非开创性的文章) 例如前面讲过的DAMO-YOLO,在原有YOLO模型的基础上改进了颈部为Efficient GFPN、使用了新的损失函数等等

总结起来,关于YOLO的改进,我目前见到过的就以下几种:

1、模块改进

例如在原有的网络中,单独的对一个模块进行改进,不涉及对网络的调整。这是最简单的一种改进,也是初学者最容易进行的改进。当然,这也是网上卖的整合的改进策略的最主流的方案,即所谓的即插即用模块。

这类的改进包括对卷积层Conv、C2f模块、SPPF模块、检测头等等,我们以真实的文章为例:

 例如图中的这个模型的第一个改进:ODConv,这是个比较常见的卷积,如果没记错的话是一个有着全维度注意力卷积,从图中也可以看出来,一共是四个维度。想了解这个卷积,大家可以参考这篇文章:

 论文解读:odconv | OMNI-DIMENSIONAL DYNAMIC CONVOLUTION-CSDN博客

那么这就是一个简单的插入工作,基本上没什么创新性。作者在摘要里也写道:主要工作包括:首先,为了更好地提取特征,在骨干网中用ODConv模块代替原来的卷积模块。

所以这一定不是他的主要创新点,否则光光插几个现成的模块是比较难发论文的。其他的简单插入就不赘述了,都大差不差,往往都会伴随一些核心改进出现。毕竟这些即插即用的模块有的确实比较好用,自己做的东西的提升不一定会有这高。

当然也有原创或者自己对模块进行改进的,这种也非常多,而且水平通常不低,需要比较强大的基础。例如

这篇文章提出了一种新的卷积DConv 

2、网络改进

网络改进也是很常见的一种改进方法,常常是对Backbone和Neck的网络进行调整。例如DAMO-YOLO的颈部网络背替换为了Efficient GFPN,详见下文:

模型网络学习篇#1:Efficient-RepGFPN from DAMO-YOLO,来自阿里达摩院的YOLO-CSDN博客

可以说这对初学者来说绝对是天花板级别的改进了,普通人来说的话是没有这么大能耐的,因此我们再来看看C会论文吧。

我们来看看这个CLMiFPN, 当然我没有去求证这个是不是原创的,但是看这个颈部网络可以说是非常之复杂了,卷积横行,还有不少陌生的模块,例如TFE

总的来说,作者通过引入对角向上的融合路径增强BiFPN的多方向信息流,解决信息丢失问题,并策略性整合YOLOv8骨干网的P1和P2层——将P1的精细空间细节限制在单一层级以避免计算负担,而P2扩展至三个层级以强化小目标检测;同时采用TFE模块对多尺度特征进行通道统一与融合,通过混合池化、上采样及特征放大技术保留细节,最终通过跨尺度通道级联提升模型对小目标的感知能力,兼顾计算效率与检测精度。

由于我确实也是一个初学者,也不太了解作者是怎么想到这样的思路的,但至少给了我们一个方向,修改网络是一种比较高级的改法,是一种能发论文的改发!

 3、损失函数改进

损失函数也是深度学习模型的重要组成部分,改进损失函数也是一个非常有效且常见的方法。总的来说,改进损失函数大致也是现成、融合、原创(改进)三类:

现成的常见用WIoU、SIoU等等,关注点比较多的损失函数,损失函数之前已经学习过,可以参考:

YOLO的那些损失函数:IoU、GIoU、DIoU、CIoU、EIoU、SIoU、WIoU的原理浅析(1)-CSDN博客

YOLO的那些损失函数:IoU、GIoU、DIoU、CIoU、EIoU、SIoU、WIoU的原理浅析(2)_图解ciou和wiou-CSDN博客

融合的基本就是Focal Loss+WIoU这种类似

原创改进的基本是比较难得的了,我们还是以论文举例:

这篇文章就是以MDPIoU和Slide Loss融合出了一个新的损失函数。 

三、总结

在学习会议论文中的创新点时,我们主要探讨了深度学习模型的三类改进方法:模块改进、网络结构改进和损失函数改进。模块改进通常通过替换或优化现有模块(如卷积层、检测头等)来提升性能,适合初学者;网络结构改进则涉及调整骨干网和颈部网络以提高模型的特征提取和小目标检测能力,通常需要较强的基础;损失函数改进则分为现成应用、融合新方法和原创性改进,旨在优化模型训练过程中的目标函数。

相关文章:

  • 逐光之路:我在特种设备作业考试中的成长蜕变
  • Joker靶机实战攻略
  • 逻辑派G1 6层高速板学习
  • 连接不上雷电模拟器,adb连接不上问题的解决办法
  • Billu_b0x靶机实战攻略
  • JS逆向案例-HIKVISION-视频监控的前端密码加密分析
  • 分享一个项目中遇到的一个算法题
  • SPI 总线协议
  • Pytest项目_day01(HTTP接口)
  • 微服务即时通信系统---(五)框架学习
  • 【Spring】第四弹:基于XML文件注入Bean对象
  • IDEA2022自动构建注册表没有compiler.automake.allow.when.app.running选项解决方法
  • 【HarmonyOS Next】常见的字节转换
  • 激光slam学习笔记10---ubuntu2004部署运行fastlivo2踩坑记录
  • Web 小项目: 网页版图书管理系统
  • 速盾:如何利用CDN静态加速匹配尾缀提升网站性能?
  • 判断是不是完全二叉树(C++)
  • 【小白调试电路板】
  • 剑指 Offer II 109. 开密码锁
  • SpringBoot-MVC配置类与 Controller 的扫描
  • 秘鲁总理辞职
  • 跨文化戏剧的拓荒者与传承者——洪深与复旦剧社的百年回响
  • 四部门:到2025年底,全国行政村5G通达率超过90%
  • 图讯丨习近平出席中国-拉美和加勒比国家共同体论坛第四届部长级会议开幕式
  • 习近平出席中国-拉美和加勒比国家共同体论坛第四届部长级会议开幕式
  • 夜读丨取稿费的乐趣