- 博客(370)
- 资源 (29)
- 收藏
- 关注
原创 MMDetection环境配置与使用
这里我替换了数据集后,运行报错:f’class找到这个目录下的文件,修改文件里的 num_classes=2 ,修改成自己的类别数目。修改里边的def coco_classes(): ,将return内容修改成自己的类别。修改里边的,将修改成自己的类别。
2023-06-07 10:32:26
337
原创 DINO损失函数构造解析
idx值为:(tensor([0, 0, 0, 0, 1, 1, 1, 1]), tensor([696, 720, 721, 866, 0, 1, 2, 3]))idx值为(tensor([0, 0, 0, 0, 1, 1, 1, 1]), tensor([696, 720, 721, 866, 0, 1, 2, 3]))随后我们看看如何损失函数的计算,首先是进行匹配,即将预测框与真值框使用二分匹配的方式进行匹配。方法的定义可知,其返回结果为所属batch与预测框的编号。
2023-05-18 15:32:47
505
原创 PVT(Pyramid Vision Transformer)学习记录
x为torch.Size([2, 3136, 64]),首先经过permute进行维度变换为torch.Size([2, 64,3136]),随后经过reshape为:torch.Size([2, 64, 56, 56])值得注意的是,只有stage1上patch=4,在后面的三个stage上patch都为2,这样也就参考卷积,其是一个二倍大小的关系。首先我们的输入图片为torch.Size([2, 3, 224, 224]),即batch-size=2,channel=3,W=H=224。
2023-05-16 15:28:09
466
原创 DETR类环境快速搭建
随后切换到DINO目录,安装所需包,记得将requirements.txt 中的git clone下载删掉。随后修改pycocotools中配置使其输出多个类别的AP值。随后安装pycocotools。
2023-05-13 15:59:43
105
原创 DAB-Deformable-DETR源码学习记录之模型构建(二)
书接上回,上篇博客中我们学习到了Encoder模块,接下来我们来学习Decoder模块其代码是如何实现的。其实Deformable-DETR最大的创新在于其提出了可变形注意力模型以及多尺度融合模块:其主要表现在Backbone模块以及self-attention核cross-attention的计算上。这些方法都在DINO-DETR中得到继承,此外DAB-DETR中的Anchor Query设计与bounding box强化机制也有涉及。
2023-04-27 14:52:48
448
原创 目标检测之损失函数
损失函数的作用为度量神经网络预测信息与期望信息(标签)的距离,预测信息越接近期望信息,损失函数值越小。在目标检测领域,常见的损失分为分类损失和回归损失。
2023-04-26 16:10:18
430
原创 DAB-Deformable-DETR代码学习记录之模型构建
DAB-DETR的作者在Deformable-DETR基础上,将DAB-DETR的思想融入到了Deformable-DETR中,取得了不错的成绩。今天博主通过源码来学习下DAB-Deformable-DETR模型。
2023-04-25 10:59:07
302
原创 DAB-DETR代码学习记录之模型解析
在Decoder部分的(Anchor Boxes)中,其初始化为【2,300,4】会通过,x,y,w,h都会进行,都转换为128维度,4个即为512维,随后通过一个MLP转换为256。位置编码方式如下:总共4个,被编码维128维。下面是其主要的一个创新点,加入了宽高调制的注意力机制,之所以这样做是让注意力能够对宽高也比较敏感。
2023-04-20 09:06:44
247
原创 Windows环境下调试DAB-DETR与Deformable-DETR
先前都是在服务器上运行DETR的相关程序,服务器使用的是Linux,所以运行较为简单,但如果想要简单的debug的话就没必要使用服务器了,今天便来在Winodws环境下调试DETR类项目,这里以Deformable-DETR与DAB-DETR为例。首先是DAB-DETR的配置,这个部分较为简单,需要注意的是DAB-DETR不需要配置CUDA算子,如果我们只想执行DAB-DETR程序的话我们将DAB-Deformable-DETR的引入模块删掉即可。同时注释掉model/init下的这段代码。
2023-04-19 13:24:31
374
原创 匈牙利算法学习记录
匈牙利算法主要用来解决两个问题:求二分图的最大匹配数和最小点覆盖数。匈牙利算法事实上有两个算法,分别解决指派问题和二分图最大匹配求解问题,此处算法指求解指派问题的匈牙利算法。
2023-04-14 11:16:46
377
原创 DN-DETR源码学习记录
DN-DETR是在DAB-DETR的基础上完成的,DN-DETR的作者认为导致DETR类模型收敛慢的原因在于匈牙利匹配所导致的二义性,即匈牙利算法匹配的离散性和模型训练的随机性,导致ground-truth的匹配变成了一个动态的、不稳定的过程。举个例子,在epoch=8时,1号预测框与2号真实框匹配,但到了epoch=9时,5号预测框与2号真实框相匹配。
2023-04-13 19:43:10
606
原创 Deformable DETR模型学习记录
多尺度的特征融合方法则是取了骨干网(ResNet)最后三层的特征图C3,C4,C5,并且用了一个Conv3x3 Stride2的卷积得到了一个C6构成了四层特征图。其他方面,Deformable相较于DETR修改了query-num的数量,改为300,但在推理过程中其会仍使用top100的预测框,此外在匈牙利匹配的cost矩阵构建时class的损失由原本的softmax简单运算变为了Focus loss。过一个nn.Linear,得到多组偏移量,每组偏移量的维度为参考点的个数,组数为注意力头的数量。
2023-04-11 21:22:39
415
原创 SegFormer程序调试记录
随后切换到segformer目录下执行安装requirement.txt中指定的依赖。安装pytorch版本,博主使用的是pytorch1.7.0。此时基本已经完成环境配置过程,下载一个权重文件进行简单测试。安装完成后继续配置,注意一定要在segformer目录下。随后进入demo文件夹,修改下配置文件。
2023-04-07 22:01:02
188
1
原创 GPU服务器环境配置踩坑
今天在购买腾讯云服务器时,不小心选择错了环境,也就只能重装系统,然而重装后的系统中没有装入conda环境,需要自己手动按照一下:博主选择安装miniconda。
2023-04-07 15:32:41
92
原创 Windows 环境下SETR模型配置教程
前面在配置SETR模型过程中遇到了一些问题,最终不了了之,但无奈老师对该项目情有独钟非要看下其效果,没办法只能硬着头皮上了。
2023-04-07 09:34:28
160
原创 DETR代码学习(五)之匈牙利匹配
匈牙利匹配先前在损失函数那块已经介绍过,但讲述了并不清晰,而且准确来说,匈牙利匹配所用的cost值与损失函数并没有关系,因此今天我们来看一下匈牙利匹配这块的代码与其原理。前面已经说过,DETR将目标检测看作集合预测问题,在最后的预测值与真实值匹配过程,其实可以看做是一个二分图匹配问题,该问题的解决方法便是匈牙利算法。
2023-04-04 11:29:27
768
原创 DN-DETR调试记录
博主在进行DINO实验过程中,发现在提取了3个类别的COCO数据集中,DINO-DETR对car,truck的检测性能并不理想,又通过实验自己的数据集,发现AP值相差不大且较为符合预期,因此便猜想是否是由于DINO中加入了负样本约束导致背景难以学习进而使效果差,因此便使用了DN-DETR来进行实验。下图为DN-DETR模型框架图。接下来介绍自己的实验过程。由于DN-DETR也是DETR模型的一部分,所以我们不需要再额外配置conda环境了,使用原本的detr的conda环境即可。
2023-04-02 13:45:30
464
原创 关于Transformer中注意力的理解
拓展到目标检测领域,Q就是要找的物体,最开始Q1说自己要找马,K1说我这是马,K2说我这也是马,他们都有马的属性,K1可能由遮挡,导致只有马蹄特征,而K2有马蹄,有马尾,马头,那么计算相关性时Q1与k2的相关性便会大些,随后再看看具体值是多少,随着这样不断的学习,Q1负责找马,其对自己所要找寻的马的特征也就越来越明显,在DETR中,要训练的便是这个Q,那么Q1便会以后负责去找马,其余的也就如法炮制。Q即检索条件,K则为特征属性,比如有的K主打价格便宜,有的K主打质量,有的K主打设计。
2023-04-01 11:01:43
284
原创 Transformer正余弦位置编码理解
在学习Transformer模型过程中不可避免的一个过程便是要对序列进行位置编码,在Transformer中分为固定位置编码与可学习的位置编码,其一般采用固定位置编码中的正余弦位置编码方式。今天便以DETR模型为例,介绍正余弦编码的原理与实现过程。
2023-04-01 09:20:57
798
1
翻译 DN-DETR论文学习
本文提出了一种新颖的去噪训练方法,以加快DETR(DEtection TRansformer)训练,并加深了对类DETR方法的慢收敛问题的理解。我们表明,缓慢收敛是由于二分图匹配的不稳定性导致早期训练阶段的优化目标不一致。为了解决这个问题,除了匈牙利损失之外,我们的方法还向Transformer解码器馈送了带有噪声的GT边界框,并训练模型重建原始框,从而有效地降低了二分图匹配难度,并加快了收敛速度。我们的方法是通用的,可以通过添加数十行代码轻松插入任何类似 DETR 的方法,以实现显着的改进。
2023-03-31 09:48:16
289
原创 DAB-DETR模型学习记录
这篇论文中的贡献之一便是回答了Query到底是什么,Decoder中的Query与Encoder中的key(图像特征)做交互,从中提取信息并试驾到Value上,形成新的feature,而加入了位置先验信息后,那么Query在与key交互时便不再盲目提取语义信息,由于位置编码的约束,其就会相当于从不同的框中去提取语义信息,那么Query就类似于Fast-R-CNN中的ROI Pooling。
2023-03-30 20:49:19
638
原创 DAB-DETR论文学习记录
在本文中,1.我们提出了一种使用动态锚框进行DETR(DEtection TRansformer)的新颖查询公式,并提供了对查询在DETR中的作用的更深入理解。这个新公式直接使用框坐标作为转换器解码器中的查询,2.并逐层动态更新它们。使用框坐标不仅有助于使用显式位置先验来提高查询特征相似性并消除 DETR 中缓慢的训练收敛问题,3.而且还允许我们使用框宽度和高度信息来调节位置注意力图。这样的设计清楚地表明,DETR 中的查询可以作为以级联方式逐层执行软 ROI 池化来实现。
2023-03-30 17:19:10
425
原创 DINO-DETR在CADC数据集进行实验与分析
CADC数据集是博主从网上寻找的冰雪环境下的自动驾驶数据集,共计5250张图片,博主首先划分出1050张作为测试集,随后将剩余的4200张按照4:1划分训练集与验证集,即3360张作为训练集,840张作为验证集,之所以将1050张划分为测试集,是因为整体数据集主要划分为5个驾驶场景,为保证测试集与训练集完全独立,即训练集中没有获取到测试集的信息,故将最后一个驾驶场景作为测试集。紧接着,博主想到可以在该模型上使用CADC数据集进行实验,看看其表现如何。接下来,博主会将模型在测试上来检测其性能。
2023-03-28 09:49:06
299
原创 DINO-DETR在COCO缩减数据集上实验结果分析
博主在进行DINO-DETR模型实验时,使用缩减后的COCO数据集进行训练,发现其mAP值只能达到0.27作用,故而修改了下pycocotool的代码,令其输出每个类别的AP值,来看看是由于什么原因导致这个问题。首先在我们缩小的COCO数据集上,尽管car的标注较多,但目标都较小,而且存在很大程度的遮挡。上述实验结果首先证明了博主的猜想,即各个类别的AP值是不同的,也就说明其并非是对所有类别信息都有一个较好的结果。对应car,bus,truck为:0.49,0.72,0.42,map值为0.54。
2023-03-27 21:02:01
554
1
原创 DETR-like模型输出各类别AP值
而博主想要显示每个类别的的AP值,因此查询了相关资料发现,DETR类模型框架的AP值计算输出这块都是由pycocotools的coco.py和cocoeval.py负责完成的。
2023-03-27 16:00:16
244
原创 DETR-like 模型环境配置
这不要紧,我们在真正运行该项目时只需要调整batch-size即可,此时博主使用的显卡未NVIDIA P40,显存为24G,可以说已经足以满足需要了。首先是进行项目下载,由于博主此时并未对项目进行大量更改,只需要从github上直接git即可。再次配置即可,test.py主要进行一个维度计算测试,与你的GPU显存有关。至此,DINO-DETR的环境配置便完成了,只需要上传完数据集即可运行了。可以看到博主在进行 2048通道计算时爆显存了。然后再进行pycocotools的安装。紧接着配置CUDA算子。
2023-03-26 16:39:45
253
原创 关于使用pycharm导致C盘爆满情况的处理策略
首先博主经常使用Pycharm,这个软件在使用过程中会产生大量缓存文件,高达十几个G。最近博主的电脑C盘使用率与日俱增,看着发红的C盘心中一万只草泥马奔过。常规的清除操作都已经做过了,这里教大家从源头解决问题。如此便一下子清爽了许多。随后便开始了博主的清盘之旅。
2023-03-25 08:27:41
105
翻译 DINO-DETR论文学习记录
我们介绍了DINO(带有改进的去噪器box的DETR),一种最先进的端到端对象检测器。DINO 通过使用对比方式进行去噪训练、混合查询选择方法进行锚点初始化以及用于框预测的ook forward twice方案,在性能和效率方面比以前的类似 DETR 模型有所改进。DINO在COCO上实现了12个时期的49.4AP,在24个时期内实现了51.3AP,具有ResNet-50骨干和多尺度特征,与之前最好的类似DETR的模型DN-DETR相比,分别产生了+6.0AP和+2.7AP的显着改善。
2023-03-23 11:07:43
332
原创 DETR模型简易代码
可以看出,代码非常简练,通过实验pytorch在封装的backbone,Transformer模型以及一些全连接层,卷积层的组合便实现了DETR模型的构造。在DETR模型的论文的末尾,其给出了DETR模型的伪代码,严格意义上来讲其并非是伪代码,因为其是可以正常运行的代码。
2023-03-22 20:48:47
131
原创 DINO-DETR 实验与分析
但让我想不通的是,博主的数据集并非是直接减少,而是按照不同类别进行提取,对于某个类别而言,其不该有如此大的差距。2.按照目前对Transformer的研究来看,其效果一般在数据量及其庞大的情况下越好,因此博主虽然是按照类别进行提取了,但不可否认的是数据集数量大大缩水,所以导致了实验效果差。在验证的过程中,博主也发现,先前的loss值最多只能下降到6.2便不再下降,而在使用论文中提供的权重文件时,其可以下降到3.1左右,这倒是令我感到意外。1.博主的类别提取方法有问题,提取的数据集有问题(太可怕了)
2023-03-21 19:38:26
359
2
原创 DETR源码讲解(四)之注意力计算
24,256分别是128行编码与28列编码,这是设定好的。query_embed:torch.Size([100, 2, 256]) ,其为decoder预测输入,即论文中反复提到的object queries,每帧预测num_queries个目标,这里预测100个。其最开始时是进行随机初始为0的,之后会加上位置编码信息。这个意思是想让query对位置较为敏感,或者说应该有自己所关注的范围,不能越界。
2023-03-21 16:02:25
376
原创 DETR源码学习(三)之损失函数与后处理
在DETR模型中,在完成DETR模型的构建后,我们送入数据在完成前向传播后就需要使用预测值与真实值进行计算损失来进行反向传播进而更新梯度。在DETR模型中,其标签匹配采用的是匈牙利匹配算法。主要涉及models/matcher.py、models/detr.py和engine.py三个文件。首先在detr.py中会先定义好损失函数:然后在engine.py的train_one_epoch中前向推理结束后将输出结果与真实标签作为参数并调用criterion函数,计算损失:outputs的值pred_
2023-03-21 09:45:31
407
原创 DETR源码学习(二)之模型训练
前面在完成了DETR模型的构建后,我们接下来便是进行数据集构造与模型训练了,模型训练阶段会涉及到网络前向传播与后向传播,这才是真正的难点。
2023-03-20 20:59:49
539
原创 显存溢出:RuntimeError Unable to find a valid cuDNN algorithm to run convolution
按照这个报错猜测可能是cuDNN出了问题,但转念一想我的cuDNN明明是配置好的呀,难道断电还能影响配置,显然是不可能的。在使用服务器跑实验的过程中,突然停电了,看到本地终端的控制台提示训练已终止,不由得心中一紧,在想难道近几日的成果要付之东流了吗?此时的程序并没有终止,依旧在运行,这种情况之前就发生过,断开连接后程序依旧运行一段时间,随后才会终止。不过好在为防万一给项目设置了断点训练,只需要重启实验即可。而当我重新设置好相关参数准备再次开始实验时,却报错了。不出所料,过一会后程序便终止了。
2023-03-19 09:05:28
1081
SSM音乐视频网站.zip
2021-08-10
JavaWeb学生选课系统
2021-07-26
SSM校园服务系统.zip
2020-04-28
java电话簿管理系统.zip
2020-02-28
library.zip
2020-02-07
library.zip
2020-02-07
bookstore.zip
2020-02-07
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人