yolov7
毕竟是shy哥
我会将YOLOv8改进到底!!!
山海的浩瀚,宇宙的浪漫,都在我内心翻腾。
展开
-
解决yolo无法指定显卡的问题,实测v5、v7、v8有效
模型被送到0号卡,但实际上,送到了4号卡(进程是在4号卡上建立的)**问题:**命令行参数指定的是4号卡,但实际却总是在0号卡建立进程。自己指定显卡即可,也可以在命令行添加一遍,不冲突,但要一样的。原创 2023-10-07 15:10:15 · 2071 阅读 · 3 评论 -
YOLOV7改进实操-添加Wise IoU,实现有效提点
1、打开utils->general.py,找到bbox_iou(),345行左右,将下面的与源码进行替换。2、打开loss.py,找到ComputeLoss()里的__call__函数,注意上面的框,添加下面的框。wiou有三个版本,可以替换,看看哪一个提点多。3、使用,替换CIOU。原创 2023-10-05 18:19:00 · 730 阅读 · 1 评论 -
YOLOV7改进-添加EIOU,SIOU,AlphaIOU,FocalEIOU
3、打开loss.py,找到ComputeLoss()这里对应调用之前更换的bbox_iou()里的参数。5、使用对应的iou,修改这个CIOU。6、使用Focal-iou的话,ok。4、在这里注释掉,并添加。原创 2023-10-05 17:51:04 · 428 阅读 · 2 评论 -
yolo如何添加模块???修改parse_model()
args[]:每个带参数的模块,都要指定这个东西,这个包括[c1,c2,剩下的参数],然后传给该层的模块,有些模块不需要额外参数,就只传一个输出通道数给这一层就行。该层的输出通道数就是args[0],或者说是上一层的输出通道数(上一层没有改变输入输出通道数)我感觉,理解了这一点,然后就足以应付绝大部分的模块了,自己就可以添加模块去了!最后这一层的输出通道数c2要附加在ch中,ch储层的是每一层的输出通道数。先贴代码,加模块时有些地方需要修改,只讲核心部分!c1:上一层的输出通道数,也是这一层的输入通道数。原创 2023-10-05 16:53:16 · 423 阅读 · 1 评论 -
YoloV7训练最强操作攻略
如果你的数据集格式是VOC格式的话,一般就会有图片和xml后缀的文件,这个xml后缀的文件就是你的数据集的标签文件,在代码中,我们的dataset文件夹就是数据集的存储的位置,其中图片存放在dataset/VOCdevkit/JPEGImages文件夹中,标签文件需要存放在dataset/VOCdevkit/Annotations文件夹中,dataset/VOCdevkit/txt文件夹是存储转换后的yolo格式标签文件.。(这个文件创不创建都可以,转换的时候会自动检测,不存在的话会自动创建)转载 2023-09-29 16:01:38 · 279 阅读 · 0 评论 -
pytorch固定随机数中种子
【代码】pytorch固定随机数中种子。原创 2023-09-27 20:14:19 · 637 阅读 · 0 评论 -
engine.py详解
【代码】engine.py详解。原创 2023-09-18 11:54:18 · 412 阅读 · 0 评论 -
coco.py文件详解
【代码】coco.py文件详解。原创 2023-09-17 18:14:37 · 217 阅读 · 0 评论 -
yolov7添加 iRMB模块
复制过来yolo.py添加yaml文件随便换,建议换3x3的pip install timm==0.6.5,版本问题记得搞一下原创 2023-09-13 21:34:55 · 394 阅读 · 0 评论 -
基于YOLOv7网络模型的高效SMD-PCBA检测
具体而言,该模型通过设计一个基于来增强特征表示,并在,通过底层传播来提高特征识别。此外,我们还提出了来计算预测箱与真实标记的图像之间的位置损失,从而使得锚箱具有更好的回归精度,提高了检测精度。原创 2023-09-13 17:01:29 · 197 阅读 · 0 评论 -
基于YOLOv7算法的混凝土结构表面裂缝自主识别
在本研究中,我们使用了一个改进的网络,名为YOLOv7-AMF,用于混凝土裂缝检测。为了扩展网络的感知域,我们添加了Aatten模块和Myswin模块,这两个模块采用了一种自注意机制。此外,我们在FEEM模块中加入了多尺度融合。通过这些修改,我们能够在保持快速检测速度的同时,显著提高裂纹检测的准确性。贡献:(1)针对不问题,利用大小为1000 × 1000和3000 × 3000的裂缝图像数据集对网络进行训练,帮助模型充分学习不同尺度裂缝的特征。原创 2023-09-13 15:39:40 · 469 阅读 · 0 评论 -
R-YOLOv7-tiny检测浸水玉米胚乳裂纹
采用r - yolov7微模型和μCT技术对浸水玉米胚乳裂纹进行了检测。提出的ryolov7微型模型引入了旋转盒,以更准确地框定胚乳裂纹。网络结构中增加了SiLU激活函数、CoT block、GhostConv和C3_TR模块,以减小模型尺寸,提高精度。此外,提出了一种胚乳裂纹长度和数量提取算法,并将其纳入R-YOLOv7-tiny模型的检测头中,实现了裂纹信息的自动提取。该方法能够准确、快速地分析种子浸泡过程中胚乳开裂的变化。原创 2023-09-13 14:26:00 · 471 阅读 · 0 评论 -
yolov7框架图对照
1、ELAN1(backbone)2、ELAN2(head)3、MPConv4、SPPCSPC原创 2023-09-08 17:04:05 · 166 阅读 · 0 评论 -
YOLOV7改进-添加P2和P6检测层(以YOLOV7-Tiny为例)
下载三个配置文件。原创 2023-09-08 15:25:43 · 1092 阅读 · 0 评论 -
YOLOV7改进-对小目标有提点的Omni-Dimensional Dynamic Convolution
4、修改配置文件,改网络模型,conv->ODConv2d。2、yolo.py文件下导入模块,下面添加解析函数。6、推理时如果为1会报错,改为2,yolo.py。1、models下建立文件,复制进来。比普通卷积时间长,对小目标也有作用。3、改下面的1->2,不改会报错。5、odconv.py改参数位置。原创 2023-09-08 14:07:32 · 750 阅读 · 7 评论 -
YOLOV7改进-轻量级上采样算子CARAFE
3、yolov7里就俩上采样,替换名称,后面参数可以调。上采用算子参数可以跑一跑,增加实验丰富度,工作量。1、复制代码,到common文件的最底下就可以了。可以作为论文中的小创新点。2、yolo.py复制。打印出来便于观看参数。原创 2023-09-08 12:53:49 · 921 阅读 · 8 评论 -
YOLOV7改进-添加基于注意力机制的目标检测头(DYHEAD)
5、因为DYHEAD需要三个层输入的特征层一致,所以需要改为一样的。256或者512都行。5、在进入IDetect之前,会对RepConv做卷积。4、论文中说6的效果最好,但参数量不少,做一下工作量。2、yolo.py中import一下。1、models下新建文件。3、改IDetect这里。原创 2023-09-08 12:31:35 · 3825 阅读 · 8 评论 -
yolov7中Concat之后加注意力模块(最复杂的情况)
1、common.py中找到Concat模块,复制一份。3、然后找yolo.py模块,添加。2、要传参进来,dim通道数。5、和加的位置也有关系。原创 2023-09-08 12:06:02 · 513 阅读 · 0 评论 -
YOLOV7改进-对小目标有效的BiFormer注意力机制
如果要在sppcspc后面加一个注意力模块。原创 2023-09-08 11:54:33 · 1570 阅读 · 3 评论 -
YOLOV7改进-针对小目标的NWD(损失函数)
7、iou_ration是超参,可以调,如果小目标比较多的话,这个值可以低一些,从而增加nwd损失的比例。3、把这几行复制到utiils的loss.py。4、先对CoputerLoss类做修改。2、utils-loss,这里加。5、把那一行替换成这个。8、还有一个部分要改。9、这个box也要改。原创 2023-09-08 11:13:27 · 2094 阅读 · 1 评论 -
YOLOV7改进-具有隐式知识学习的Efficient解耦头
解耦头][https://github.com/z1069614715/objectdetection_script/blob/master/yolo-improve/yolov7-DecoupledHead.py]9、解耦头可以载入预训练权重,如果前面改了,就不用载入了。3、复制下半部分到yolo.py。1、复制这些到yolo.py。5、最后的加到上面的这里。8、V5大概一个点的提升。原创 2023-09-08 10:22:16 · 794 阅读 · 0 评论 -
yolov7添加pconv模块
3、修改网络,建议替换3x3的卷积,后面的参数不要了。1、复制到models-common.py文件最后。2、添加模块到yolo.py。4、不能替换步长为2的卷积。原创 2023-09-08 09:52:56 · 870 阅读 · 0 评论 -
YOLOV7改进-最新的可变形卷积V3
9、修改配置文件,一般来说放在主干上面,去替换主干上面的3x3卷积,一般从后往前替换。15在yolov7测试和detect里里,要开启这个,为true。5、原文也是没接激活函数的,但是按照yolo格式来说,会接一个。4、源文件用的是LN,由于这里用的都是LN,所以也改了。1、先编译这个文件,放到models文件夹下,再编译。7、DCNv3只在gpu上运行,所以下半部分要改。14、DCN一般加在主干多,后面不怎么加。13、这里组参数设为16,往前除以2。12、可以删掉d,没有空洞的参数。原创 2023-09-07 23:29:30 · 993 阅读 · 2 评论 -
YOLOV7改进-添加CoordConv(坐标卷积)
只替换FPN1x1卷积层和检测头中的第一卷积层。4、对yolov7.yaml的配置文件修改。2、做改进对比实验时,不要载入与训练权重。1、复制到common文件夹最后。3、yolo.py解析模型里面。5、对fpn1x1卷积替换。原创 2023-09-07 22:35:12 · 680 阅读 · 2 评论 -
YOLOV7改进-Soft-NMS(支持多种IoU变种选择)
1、复制到utils-general.py下。2、找到nms的代码,在它前面复制过来就行。3、在之前的nms模块下修改,注释。6、训练的时候开启,会增加训练成本。4、选择iou的地方,默认正常的。5、xx=true即可。7、在test的时候用。8、密集预测时精度降低。原创 2023-09-07 21:54:07 · 665 阅读 · 0 评论 -
YOLOV7改进-添加SAConv.
3、修改配置文件cfg-training:yolov7.yaml。1、放到common文件夹下,最后面加。4、一般用在3x3卷积上。2、yolo.py下。原创 2023-09-07 21:37:49 · 528 阅读 · 0 评论 -
YOLOV7改进-添加Deformable Conv V2
5、一般可变形卷积是添加到主干网上,如果想添加到head部分,自行尝试。4、只需要改卷积核为3的卷积就可以了,为1的话就没必要改了,1、复制到common.py文件下面。3、yolo.yaml文件下修改。2、yolo.py文件,引入。原创 2023-09-07 21:20:33 · 360 阅读 · 0 评论 -
YOLOV7改进-空洞卷积+共享权重的Scale-Aware RFE
4、cfg-training:新建配置文件。1、先把文件复制到common.py中。2、yolo.py添加类名。加了一行,后面对于序号+1。3、下半部分进行添加修改。5、这里选择12层替代。原创 2023-09-07 20:51:37 · 738 阅读 · 0 评论 -
yolov7添加注意力机制
yolov7结构图方法:直接在common里改,在相关的后面加上就行。原创 2023-09-07 20:22:58 · 1560 阅读 · 2 评论