📢前言
上个月小贾消失了一段时间,原因就是。。。
写论文去啦!!!
先拿我导的认可镇个楼:
本篇文章将分享我个人从迷茫地找方向→苦苦做了48次实验才高效涨点→写论文到头秃等等一系列真实经历,希望大家避免踩坑。
(其实论文交稿有大半个月了,本来准备论文中了之后再总结,但是外审时间比我想象中长,我怕自己忘记一些细节,所以先记录着~)
本文纯手敲上万字,全是干货,建议先点【收藏】再慢慢阅读噢~
来吧,上车!
目录
✨(1)实验设置(experimental setting/experimental setup/implementation details)
✨(2)对比实验(comprason with previous method/ comprason with other method/ comprason with prior work)
🚀一、如何找论文方向?
找到一个有价值的研究方向,这篇论文就已经成功了一半。
☀️1.1 跟导师方向
首先要和导师沟通,了解导师目前有什么项目或者未来几年的研究方向是什么?充分考虑导师同一方向的好处在于你之后的研究可以得到一定的有价值指导,如果方向不一样,导师最后也只能给你论文格式上的指导或者其他的技巧了。
所以建议大家先面对面和导师沟通一波,再确定自己的论文方向。
☀️1.2 自己选择方向
如果导师让你自己选方向(放养型)或者导师的方向你不感兴趣,那么就要自己找方向了。
那么如何自己找呢?
就拿我自己的cv领域中的目标检测举个栗子。
按照现在流行的写法,首先要提出一个具体场景,然后针对该场景解决实际问题。
场景又多又杂,我刚开始也是无从下手,故拜托师兄:
嗯嗯。。。
想想。。。
然后就没有后续了。 。。
后来我自己去看各种论文,慢慢找到了idea!
我们先看看下面几篇:




对于场景的选择:
- 不要太烂大街,可以选择偏冷门的,但一定要具有实际意义。
对于检测对象的选择(数据集):
- 建议使用公共数据集(一是认可度高,二是方便进行的对比实验,三是容易获取) 。
ps:
有一个小思路,那就是根据自己学院特色来写。比如xx农业大学的就可以做花果蔬菜的检测,xx交通大学的可以做车辆、交通指示牌的检测,xx海洋大学可以做海底生物检测,xx医科大学可以做医学图像的识别(更多的是分割)等等。
☀️1.3 阅读相关论文
确定了大致方向之后,我们就要重点看对应领域的论文。看得多了,你就能发现大家都在研究什么,用了哪些涨点的tricks,有哪些需要继续研究的地方,再根据你的数据集制定研究方案。
分享一些论文查找的链接:
👑(1)顶会
序号 | 简称 | 全称 | 简介 | 网址 |
---|---|---|---|---|
1 | iccv | ieee international conference on computer vision | 国际计算机视觉大会,由ieee主办。是计算机视觉三大会议最高级别 | accueil - international conference on computer vision - october 2-6, 2023 - paris - france - iccv2023 (thecvf.com) |
2 | eccv | european conference on computer vision | 欧洲计算机视觉国际会议。是计算机视觉三大会议之一,每两年召开一次,与iccv正好错开。 | 首页 |eccv 2022 (ecva.net) |
3 | cvpr | ieee conference on computer vision and pattern recognition | ieee国际计算机视觉与模式识别会议。该会议一般在6月举行,举办地是美国,是一个一年一次的会议。 | the computer vision foundation – a non-profit organization that fosters and supports research in all aspects of computer vision (thecvf.com) |
👑(2)顶刊
序号 | 简称 | 全称 | 出版社 | 网址 |
---|---|---|---|---|
1 | tpami | pattern analysis and machine intelligence, ieee transactions on ieee | ieee | ieee transactions on pattern analysis and machine intelligence / ieee xplore |
2 | tip | image processing, ieee transactions on | ieee | ieee transactions on image processing / ieee xplore |
3 | ijcv | international journal of computer vision | springer | international journal of computer vision / home |
4 | tmm | multimedia, ieee transactions on | ieee | ieee transactions on multimedia / ieee xplore |
5 | pr | pattern recognitionr | elsevie | pattern recognition - journal - elsevier |
6 | tcsvt | transactions on circuits and systems for video technology | ieee | ieee transactions on circuits and systems for video technology |
👑(3)中文核心
读论文的时候要注意,不是非要每篇论文都要将内容都阅读完,这样太浪费时间了。重点看一看目录、摘要还有实验部分就可以快速了解到这篇论文主要干了什么?还有什么可以研究的方向?这样你一天能看非常多的论文,看得多了,自然就会知道自己喜欢什么方向,该怎么去做下一步研究,别着急~❤️
ps:
除了顶会顶刊,我们还可以重点看看硕博的毕业论文,一般在结论之后都有展望,这些展望有时候就是现成的创新点和研究方向。
🚀二、如何做实验?
不知道大家一开始有没有一种这样的感觉:
csdn上有很多大佬:、、、、等等(感谢我的网络导师们!❤️),提供了很多改进方法,那么我随便挑几个不错的组合一下不就行了?so easy!(* ̄▽ ̄*)ブ
一开始我也是这么想的,挑几个最新的,非常自信地将思路跟我导师阐述。 ̄︶ ̄
我导师直接一句话:“你实验了吗?出结果了再汇报。” ̄. ̄
我又马不停蹄回去做实验。ㄟ( ▔, ▔ )ㄏ
搭建完模型,没报错,ok!能跑通,nice!接下来就是见证奇迹的时刻啦!<( ̄︶ ̄)↗

然后。。。很快被打脸——不增反降!!!┗|`o′|┛ 嗷~~w(д)w
我就想,一定是加的不够多,不够新。 ̄へ ̄
于是我就使劲加,玩命加,加加加!(▼へ▼メ)
结果就是越来越低。。。┗( t﹏t )┛
后来突然想到一个问题:
一个浑身戴着金银首饰、浓妆艳抹、穿得雍容华贵的女生,远远不如白t+牛仔裤,扎着马尾素面朝天的少女更得人心。

不停地加改进方法反而会适得其反。
我开始一边实验一边摸索规律,总共进行了48次实验,才终于得到我想要的涨点效果!\^o^/
接下来分享我实验中踩坑经历~
🌻2.1 实验平台
如果实验室没有足够强的设备,建议大家还是租服务器训练。
不要用自己的笔记本去硬扛,耗时间而且效果不好,出现意外又一切重来(别问我咋知道的)。
这里不再过多阐述~
🌻2.2 数据集处理
现在很多论文都用到这点,也是我导师提出让我加的创新点。
因为我们做的是特殊的场景,一些公共数据集并不是所有图片都符合,另外还有一部分图像质量不高,所以要做一定的筛选。筛选一波过后数据集的数量可能就不是很够量了,那么就可以通过数据增强来扩充样本。
另外,还可以选取多个数据集,将模型在每个数据集上都跑一遍,这样也可以成为一组对比实验,更有说服力。
🌻2.3 backbone(特征提取)的替换
主干网络是模型的核心,影响着模型的速度和精度。
目前主干网络可以分为三类:
- 传统cnn:vgg-16、resnet-50、densenet等等
- 轻量级cnn:mobilenet、efficientnet、shufflenet、ghostnet等等
- vit系列:swin transformer、repvit、mobilevit等等
传统的cnn网络精度高但参数量巨大,计算慢,如果场景对精度要求非常高且不用管速度可以使用;
轻量级cnn参数量小,速度提升非常多,但是精度下降也很多;
vit系列参数量也很大,建议大家如果选择vit系列作为主干网络选择轻量级的,如mobilevit。
具体怎么选取,要根据自己实际场景和数据集的需要。
总的来说,对于现在的趋势,主干网络的选取规则:
使主干网络在提取特征时能够获取更多的有用信息,尽量保持精度的前提下,避免过度地使用轻量化骨干网络而导致精度的损失。
🌻2.4 neck(特征融合)的更换
在yolo中,neck端主要负责融合不同层级的特征图,并提供更高层次的语义信息。
在yolov5s原模型中使用经典的fpn+pan(自上而下和自下而上相结合)的特征金字塔网络,然而,这种网络会削弱了非相邻提取层的融合效果,导致特征信息的丢失或退化。
因此在实验时我们常常会更换neck端。常用的有:
- bifpn:加权双向特征金字塔。加强特征图的底层信息,使不同尺度的特征图进行信息融合,从而加强特征信息。
- afpn:渐进特征金字塔。以渐进的方式将低层特征与高层特征的语义信息和详细信息直接相互融合,避免了多级传输中的信息丢失或退化,提高特征尺度的不变性。适用于提高小目标的漏检率。
- carafe:轻量级通用上采样算子。具有感受野大、内容感知、轻量级、计算速度快的特点。适用于移动设备检测任务。
- evc:中心化特征金字塔。关注不同层之间的特征交互,还考虑了同一层内的特征调节。适用于密集预测任务。
- 增加小目标层:参考多尺度特征图的特征信息,同时兼顾了较强的语义特征和位置特征。适用于小目标较多的数据集。
🌻2.5 添加注意力机制
注意力机制是块宝,现在绝大部分论文里改进模型都添加注意力机制。
but,
“增加注意力机制一定涨点吗?”
“那么多注意力机制我该选哪个?”
“注意力机制要添加到哪个位置? ”
“注意力机制是加的越多越好吗?”
这些是我文章评论区最常见的问题,今天谈谈我个人理解(不对请指正)
🎄(1)增加注意力机制不增反降问题
yolo算法旨在通过全局特征来预测边界框和分类结果,而不是依赖于局部特征。再一个,yolo算法本身已经足够强可以应对目标检测任务。
注意力机制是让模型更加关注一张图像中某个区域更细节特征,所以对于yolo算法来说,可能还不如不加。但是对于一些其他任务,例如图像分割或者更细粒度的分类问题,注意力机制可能会表现出更好的效果。
另外,引入注意力机制也会增加模型参数量,可能会导致训练和推理过程变得更加慢。
除此之外,加入注意力机制不增反降还有可能是以下原因:
(1)数据集过小(300张以内的就不要加了)
(2)添加位置不对
(3)数据集和选用的注意力机制相克(比如小目标不适用加cbam)
(4)过拟合和欠拟合
🎄(2)注意力机制的选取问题
这个问题就像我每次吃自助一样,五花八门的美味盛宴,光是看也看不出那个最好吃,得尝一尝才知道。有可能今天想吃个甜口,觉得小蛋糕最好吃,但明天可能就想吃炸串红烧肉了,后天可能觉得海鲜才是自助之王。。。一抬头,到吃午饭点了(★ ω ★)。
(咱先继续唠,怕我回来灵感没了,废寝忘食ing。。。)
所以总结就是,注意力机制没有谁好谁坏,只是看哪个更适合你自己的数据集,你需要亲自尝试。
常见注意力机制:
- se:在通道维度增加注意力机制,关键操作是squeeze和excitation。
- cbam:由通道注意力机制(channel)和 空间注意力机制(spatial)组成。
- ca:通过精确的位置信息对通道关系和长期依赖性进行编码,具体操作分为coordinate信息嵌入和coordinate attention生成 2个步骤。
- eca:通道注意力机制的一种实现形式,是基于se的扩展。
- simam:一种无参数注意力模块,只使用了一个全局池化层和几个全连接层。
- soca:可训练二阶注意力模块,通过使用二阶特征统计来自适应地重新调整信道方向特征,以获得更具鉴别性的表示。
- ema:高效多尺度注意力模块,通过新的跨空间学习方法融合两个并行子网络的输出特征图,设计了一个多尺度并行子网络来建立短和长依赖关系。
🎄(3)注意力机制的位置问题
🌲1.首先加在backbone部分
也就是要加在特征提取那里。因为neck端的作用是对特征进行融合,head是基于特征进行预测。在这两个阶段特征已经提取完毕,如果我们这个图像本身提取的特征就不太好,那么在这后面两个阶段再努力也始终有一定的局限。基础不牢,地动山摇。
所以,注意力机制通常加在backbone部分,这样才能提取到更好的特征,提升上限。
🌲2.sppf(池化层)前后问题
像我最初的几篇,se、cbam、eca等,是加在sppf上一层的。
首先是作者实验(用resnet)源码就是放在这个位置上的。
再一个就拿cbam举例,它包括空间和通道注意力,这两个主要都是利用全局平均池化将feature map的特征抽象到一系列点注意力权重,然后建立这些权重的联系并附加到原空间或通道特征上。如果加在后面,就会引起过拟合了。
其实这些通道注意力,都不适合加在靠近输入端或者靠近head层的地方,这样反而会降点,最近研究vit,发现self-attention也差不多。
空间注意力放在网络前面,通道注意力放在后面。
🌲3.如果要加在neck部分
neck可以根据数据集的特征加在大中小三层,具体看你的更需要注意力机制关注哪个层特征。
emmm,你们看晕了没?
其实我觉得吧,这些理论知识是我个人理解+大佬经验分享整合的,大家了解个大概就行,它不是百分百正确的定理,有可能同一个模块别人加这个位置好使,你加就降点。所以啊,还是需要大家自己做实验滴~(这就是为啥我实验了48次orz)
🎄(4)注意力机制数量问题
通过上面安小鸟的例子,大家应该也明白,这玩意儿再好,也不是越多越好。
先不说随意加反而影响全局效果,别忘了,注意力机制也是有参数的,引进过多会导致模型复杂、计算量大。
另外,我还真有一个朋友这么试了,审核人的意见是:“存在技术方案以复杂结构实现简单功能、采用常规或简单特征进行组合或堆叠等明显不符合技术改进常理的行为”。
注意力机制这块真的特有意思,等我以后研究研究有啥新发现了再来补充。\('ω')/
🌻2.6 改进iou
大家先看看iou介绍,我先去吃个饭~
其实每个的特点文章介绍的很清楚了,我也没有做过多实验,总结一下,还是亲自试一试。
🌻2.7 改进nms和激活函数
因为我的实验没涉及这两块,所以这里先留个坑,以后有经验了再来填。
想尝试的同学可以看我之前教程:
🌻2.8 优化参数
作为一个炼丹师,我本来想尝试一下调参,无奈高估了自己。
这本来就是玄学中的玄学,干嘛为难我这个小白?!o(tヘto)
哈哈,开玩笑,其实到这时我的实验已经成了,于是调参这块没有过多研究,和大家分享一些大佬们的文章吧,希望有帮助呀~
总结一下,没有trick可以绝对涨点,实验必须根据自己的数据集亲自做,不增反降是常态,每一次尝试总结加进一步摸索,慢慢地就有经验了,祝大家都能高效涨点!❤️
🚀三、如何写论文?
很多时候实验好不容易做出来了,但是论文却迟迟无法下笔,说的是不是你?
反正不是我(傲娇脸.jpg)
也许是我一直做论文带读博主的原因,刚开始写论文的时候,要写哪几部分?每部分怎么写?整个框架清晰地出现在我脑海里。网上大部分论文带读只讲网络结构,省略摘要、引言等等,后来想想我立志要做全网最详细的博主,所以每次全篇逐段讲解。轮到我自己写的时候,就自然而然有思路了。
在学习的道路上,每一份付出都有回报,也许现在看不到任何成果,但在你今后的人生里,它会像一个礼物一样突然出现,也许这就是努力的意义吧!❤️
鸡汤结束,我们言归正传~
⭐3.1 abstract—摘要
论文摘要就是整篇文章和浓缩预览,它被排放在论文的首要位置,也是审稿人首先看的地方。
公式:研究的目的和重要性+研究的方法+得到的研究结果+结论
⚡️at:
- 摘要是一整段
- 不要在摘要里出现感情色彩的评价
- 一般在200-300字左右,具体看期刊
⭐3.2 introduction—引言
引言的作用就是系统性地向读者介绍该篇论文的研究背景、创新点、采用理论及方法等,核心是吸引读者阅读,通常是对于全文内容的高度概括!
公式:背景和需求+介绍之前研究方法+ 前人研究(并指出不足)+本文的贡献
① 背景和需求:先写为什么要研究这个领域,介绍人们对大的领域、行业、学科等背景问题有何期待,说明实现这些期待对背景问题的重要性。通常采用的是一般现在时、现在完成时或现在进行时。
② 介绍之前研究方法:其次介绍这个领域的常见研究方法,并且一步步缩小这个领域的范围一直到自己的那个层次。具体文献综述部分通常采用一般过去时,其他高度概括部分或常识介绍部分通常采用一般现在时或现在完成时。
③ 前人研究(并指出不足):第三就是写之前大佬在该领域怎么研究的也就是研究现状,并且说明存在什么问题没有解决(自己解决了)。通常采用的是一般过去时或现在完成时。
④ 本文的贡献:最后引出自己的东西,说明自己解决了什么问题作出了什么贡献,论文余下部分是如何安排的。通常采用的是一般现在时。
可以想象一个镜头,由远慢慢拉近到你眼前的感觉。
⚡️at:
- 避免背景介绍遗漏,提到的关键信息都要有说明,详略得当
- 避免段与段之间逻辑混乱
- 引用文献要是最新的
⭐3.3 related work—相关工作
相关工作时详细地写和自己最相关的研究,但不是一味地说之前的工作做了什么,主要说清楚我们提出的算法和之前算法有何不同,为接下来讲故事做铺垫。
就那最新带读的mobilevit v3 举栗子:
它就是先将vit,再介绍cnn,最后介绍近来两者混合的一些研究。
⚡️at:
- 不要罗列论文,而是从一个整体上介绍其思想,可以展开这些论文思路上的差异。
- 可以依据相关性,递进式分类地介绍相关工作,或者总分形式。对于每类工作都要点出其主要共性问题,以及本文所提出的对应解决方案。
- 前期的调研要充分,并且做的过程中也要关注最新的文章,做到一半发现idea撞车了就比较麻烦了。
- 如果是技术类的相关工作,一定要体现为了把该技术应用到本领域所做出的改进,而不能是仅仅将该技术迁移到本领域,具体看你咋讲故事了。
⭐3.4 method—方法
(不同方向的method写法不同,这里仅对深度学习的论文写作介绍)
method这一部分是记录你的研究基础和研究方法,就是非常详细的介绍你的创新点。一般采用总—分形式:先画出你搭建的模型,然后总体介绍,接下来再逐一介绍创新点。
总:单独一段介绍你的搭建模型,用到了哪些方法,概括地介绍就行。然后画出模型的总体网络结构图(我导是建议再加上方法流程图)。
分:接下来就是分小节逐一、详细地介绍每个方法(创新点)。首先介绍前置的知识、算法结构、流程(可以用伪代码表示)、公式、网络结构图、为什么这么设计等等,没有绝对的格式,最终的目的是为了说清楚算法的设计思路,让别人能够看懂。
⚡️at:
- 方法介绍大家可以先去读原论文(了解前置知识),然后扒源代码(了解网络结构和算法流程),最后自己就很清楚了。
- 不知道该怎么总结可以看看同样使用这个方法的论文(搜关键字就能找到,只看这一块就行),学学大佬是如何介绍的。
- 写法上可以去网上找现成的英文模板,表达更为高级。
⭐3.5 experiments—实验
(不同方向的experiments写法不同,这里仅对深度学习的论文写作介绍)
实验这一块用我导的话来说就是:“其实你啥都做好了,只要把它们描述出来就行。”
在实验写作之前,先确保我们基本上把论文的实验数据全都整理出来了,这样我们就可以根据现有的实验结果,直接来描述实验结果就行~
实验基本三个部分:实验设置(experimental setting/experimental setup/implementation details)、对比实验(comprason with previous method/ comprason with other method/ comprason with prior work)、消融实验(ablation study)
✨(1)实验设置(experimental setting/experimental setup/implementation details)
- 实验配置
- 实验参数
- 实验数据集
✨(2)对比实验(comprason with previous method/ comprason with other method/ comprason with prior work)
按任务分:
- 图像分类(image classification)
- 目标检测(object detection)
- 实例分割(semantic segmentation)
需要做哪些对比?(comparison with...)
1.不同模型的对比
以yolov8举栗子:
首先和同yolo系列对比:yolov5/v6/v7(v4以下就没必要了),然后和其他深度学习模型rcnn系列、ssd、rt-detr等等(yolov8 的代码库目前是可以训练 yolov5/v6/v8和 rt-detr 的,直接换个 yaml 就训练了),以及两三个前人的实验。
放几篇优秀论文大家可以感受一下:



2.方法对比
这部分要和前面method方法做一个呼应,目的就是证明你选择的方法是有效的。
举个栗子,你选择了ca注意力机制,就可以和cbam、se、soca等等做个对比。
还是看几篇优秀论文:
⚡️at:
- 个人感觉这部分就是夸,各种吹你的方法如何好、如何创新等等
- 如果你的论文的结果是state-of-the-art,那么你就可以把标题取为 comprason with state-of-the-art
✨(3)消融实验(ablation study)
这部分是对你改进的各个模块进行具体的分析,目的是验证每个模块的有效性。
在深度学习中,特别是复杂的深度神经网络的背景下,通常采用“消融实验”来描述去除网络的某些部分的过程,以便更好地理解网络的行为。
举个栗子:
为了提升网络的性能,在网络架构上加了模块a,b两个方法,是这篇文章的创新点。
比如说这篇文章有3个亮点,消融实验就负责告诉你,
- 实验1:我只加a结果如何;
- 实验2:只加b结果如何;
- 实验3:a和b都加了又如何。
看3个实验的效果,然后结果可能是,实验1和实验2的结果都不如实验3,那么说明a、b都是有用的。
然而,也有可能你会发现实验1的结果和实验3一样,甚至更好。这就说明你搭建的模型是有问题的,模块b其实并没有起到作用,提升只来自于模块a。
话不多说,直接看论文吧:
✨(4)可视化分析
为了更直观的说明提升效果,我们可以直接放上可视化对比图
✨实验美化工具
在实验中,我们还可以通过一些工具展示实验效果,这样论文也显得更高级。
⭐3.6 conclusion—结论
结论这块就比较好写了,它是对整个研究结果的概括总结,对全部小结果的定性。结论需要突出研究的“亮点”以及“指明方向”。
具体有以下几点:
- 研究结果说明了什么问题及所揭示的原理和规律(理论价值)。
- 在实际应用上的意义和作用(实用价值)。
- 本研究的遗留问题及建议和展望。(这点应是必不可少的)
好啦,基本上到这里一篇论文就大致搞定啦,让我们完结,撒花!✿✿ヽ(°▽°)ノ✿


写在后面:
(1)再次说明,本文仅为小白分享经验,适合纯小白看,也欢迎大佬指出不足以及评论区分享经验,阿里嘎多!❤️
(2)本文会持续更新审稿过程中的经验,也欢迎大家分享呀!❤️
最后,祝大家多发paper!天天开心!❤️
【11.27】一审两位专家给了小修,除了论文本身问题以外,共性问题我po一下,大家注意避免:
(1)首先是画图问题,论文中所有图像一定要风格统一,配色也要看上去统一,模块要对齐。这个问题两位专家都提到了,我直接把论文中所有图都改了。
(2)方法描述应区分两个阶段分别描述:训练阶段及测试阶段。
(3)论文实验数据一定要填写仔细,我笔误错写一个数值,结果被质疑了,还要补充没必要的实验。
(4)如果做低照度目标检测的可以试试cross-modal的方法,结合例如infrared等类型信息,能够更便于处理低照度rgb数据信息不完整的问题。
(5)语言方面尽量使用短句(我还以为长句更高级呢),避免语法错误。
(6)最后就是文献格式,一定要去官网看看要求(没有的话就查该期刊往期论文),我又是一个不小心被两位专家批了。
发表评论