![](https://i-blog.csdnimg.cn/direct/4865d80950864dedb6a9b2d06a4a2c74.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
实验记录
文章平均质量分 76
记录完成基于Transformer改进的无人驾驶目标检测方法的相关实验过程
彭祥.
目前研究生在读,主要研究目标检测相关算法,具体以Transformer模型为主,对图像去噪方面也有涉猎,大学期间专业为软件开发,拥有较为丰富的编程与毕业设计撰写经验。
展开
-
YOLOV7学习记录之训练过程
在前面学习YOLOV7的过程中,我们已经学习了其网络结构,然而实际上YOLOV7项目的难点并不在于其网络模型而是在于其损失函数的设计,即如何才能训练出来合适的bbox。神经网络模型都有训练和测试(推理)过程,在YOLOV7的训练过程中,包含模型构造,标签分配和损失函数计算。其中模型在前面以及讲过了。在测试过程中包含加载模型,损失函数计算,输出值解码,非极大值抑制,MAP计算等,今天我们先讲一下YOLOV7的训练过程。原创 2022-12-23 18:59:53 · 3518 阅读 · 2 评论 -
YOLOV7学习记录之mAP计算
如何评估一个训练好模型的好坏,是目标检测中一个很重要的因素,如常见的TP、FP、AP、PR、map等视频可以参考:TP:被正确分类为正样本的数量;实际是正样本,也被模型分类为正样本FP:被错误分类为正样本的数量;实际是负样本,但被模型分类为正样本TN:被正确分类为负样本的数量;实际是负样本,也被模型分类为负样本FN:被错误分类为负样本的数量;实际是正样本,但被模型分类为负样本如下图举例:红色是预测框,绿色是真实框。假设阈值为0.5,意思就是预测框与真实框的IoU大于等于0.5时认为检测到目标了原创 2022-12-24 23:18:54 · 7681 阅读 · 4 评论 -
GPU服务器之Colab配置及使用教程
最方便的一点是,在复现其他研究者的工作时,如果dataset通过Google Drive链接分享,我们可以将一键转存到我们的Google Drive中,避免长时间的大文件下载和上传。在进行深度学习过程中,不可避免需要进行炼丹的操作,而博主的电脑本身性能就很拉跨,一旦再运行其他的应用便是寸步难行,最好的办法便是再买一台,哈哈哈,当然也可以使用一些云服务器来进行,博主这里选择的是Colab,接下来便是配置环境过程。没有报错就是成功,然后我们的.py文件是不能直接运行的,可以以下命令运行。原创 2023-01-02 18:05:51 · 4668 阅读 · 0 评论 -
YOLOV7学习记录之原理+代码介绍
博主计划做一个目标检测跟踪项目,考虑使用YOLO系列模型来作为目标检测器,如今YOLO项目已经更新到了YOLOV7版本,因此便来学习一下相关原理,完成相关实验工作。论文链接:https://arxiv.org/abs/2207.02696。原创 2022-12-14 22:21:05 · 20316 阅读 · 5 评论 -
DETR-like模型输出各类别AP值
而博主想要显示每个类别的的AP值,因此查询了相关资料发现,DETR类模型框架的AP值计算输出这块都是由pycocotools的coco.py和cocoeval.py负责完成的。原创 2023-03-27 16:00:16 · 1349 阅读 · 5 评论 -
DETR-like 模型环境配置
这不要紧,我们在真正运行该项目时只需要调整batch-size即可,此时博主使用的显卡未NVIDIA P40,显存为24G,可以说已经足以满足需要了。首先是进行项目下载,由于博主此时并未对项目进行大量更改,只需要从github上直接git即可。再次配置即可,test.py主要进行一个维度计算测试,与你的GPU显存有关。至此,DINO-DETR的环境配置便完成了,只需要上传完数据集即可运行了。可以看到博主在进行 2048通道计算时爆显存了。然后再进行pycocotools的安装。紧接着配置CUDA算子。原创 2023-03-26 16:39:45 · 542 阅读 · 0 评论 -
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 · 1247 阅读 · 0 评论 -
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 · 1957 阅读 · 0 评论 -
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 · 3081 阅读 · 0 评论 -
DETR源码学习(二)之模型训练
前面在完成了DETR模型的构建后,我们接下来便是进行数据集构造与模型训练了,模型训练阶段会涉及到网络前向传播与后向传播,这才是真正的难点。原创 2023-03-20 20:59:49 · 1802 阅读 · 1 评论 -
DETR源码学习(一)之网络模型构建
关于多头注意力机制,就是有多个单头注意力组成的,如下图单头注意力。原创 2023-03-20 15:37:30 · 1251 阅读 · 1 评论 -
显存溢出:RuntimeError Unable to find a valid cuDNN algorithm to run convolution
按照这个报错猜测可能是cuDNN出了问题,但转念一想我的cuDNN明明是配置好的呀,难道断电还能影响配置,显然是不可能的。在使用服务器跑实验的过程中,突然停电了,看到本地终端的控制台提示训练已终止,不由得心中一紧,在想难道近几日的成果要付之东流了吗?此时的程序并没有终止,依旧在运行,这种情况之前就发生过,断开连接后程序依旧运行一段时间,随后才会终止。不过好在为防万一给项目设置了断点训练,只需要重启实验即可。而当我重新设置好相关参数准备再次开始实验时,却报错了。不出所料,过一会后程序便终止了。原创 2023-03-19 09:05:28 · 2478 阅读 · 0 评论 -
GPU服务器Ubuntu环境配置教程及各种踩坑
使用果然出了问题:执行nvidia-smi时报错输出以下信息说明显卡驱动是存在的然后查看已安装驱动的版本信息显卡驱动是可以找到的,没有问题。随后依次输入以下命令但在执行第二句代码时出了问题根本原因是重启后,内核版本与驱动版本不兼容导致的显卡驱动出错。所以我们恢复之前的内核版本就可以解决这个问题。首先查看目前的内核版本uname - r然后查看内核版本有哪些修改开机系统启动项按i进入编辑状态,修改其中第一行GRUB_DEFAULT=0 , 修改为GRUB_DEFAULT=“1> 3”原创 2023-02-02 21:22:32 · 4037 阅读 · 3 评论 -
GPU云服务器CentOS环境下的配置教程
CentOS环境下GPU部署原创 2023-02-02 23:26:26 · 871 阅读 · 0 评论 -
DETR(DEtection TRansforme)调试记录
个人觉得在训练那块还是改main.py文件比较好,需要改的地方挺多,我觉得需要修改的主要有–epoch(轮次)、–num_workers(主要看你电脑性能怎么样,好点可以调高些)、–output_dir(输出的模型权重,pth文件)、–dataset_file(数据存放位置)、–coco_path(coco数据集的位置)和–resume(预训练权重文件位置)。原创 2023-02-28 09:57:40 · 858 阅读 · 0 评论 -
关于DETR模型训练自定义数据集AP=0问题
刚开始时,博主还以为是初始训练的问题,后来进行了6个轮次后结果依旧没有改变,此时以为是数据集的类别与编号没有对应造成的,但经过排查却并非是这个原因。这时博主就很奇怪了,先前不是已经给了ResNet预训练权重了吗,怎么还会要求这个呢,查看了一下服务器的源码也没有发现异常,而在查看GPU使用情况时(如下图),博主此时的batch-size=32,但GPU利用率与显存占用率并不高,这与论文中提到的很吃配置明显是不符的。修改后再次运行,不再报错,也可以运行了,但缺依旧没有解决AP=0的问题。原创 2023-03-01 09:25:11 · 2253 阅读 · 16 评论 -
DAB-DETR模型学习记录
这篇论文中的贡献之一便是回答了Query到底是什么,Decoder中的Query与Encoder中的key(图像特征)做交互,从中提取信息并试驾到Value上,形成新的feature,而加入了位置先验信息后,那么Query在与key交互时便不再盲目提取语义信息,由于位置编码的约束,其就会相当于从不同的框中去提取语义信息,那么Query就类似于Fast-R-CNN中的ROI Pooling。原创 2023-03-30 20:49:19 · 1737 阅读 · 1 评论 -
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 · 1721 阅读 · 0 评论 -
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 · 926 阅读 · 0 评论 -
DETR类环境快速搭建
随后切换到DINO目录,安装所需包,记得将requirements.txt 中的git clone下载删掉。随后修改pycocotools中配置使其输出多个类别的AP值。随后安装pycocotools。原创 2023-05-13 15:59:43 · 597 阅读 · 0 评论 -
DINO-DETR在CADC数据集进行实验与分析
CADC数据集是博主从网上寻找的冰雪环境下的自动驾驶数据集,共计5250张图片,博主首先划分出1050张作为测试集,随后将剩余的4200张按照4:1划分训练集与验证集,即3360张作为训练集,840张作为验证集,之所以将1050张划分为测试集,是因为整体数据集主要划分为5个驾驶场景,为保证测试集与训练集完全独立,即训练集中没有获取到测试集的信息,故将最后一个驾驶场景作为测试集。紧接着,博主想到可以在该模型上使用CADC数据集进行实验,看看其表现如何。接下来,博主会将模型在测试上来检测其性能。原创 2023-03-28 09:49:06 · 760 阅读 · 0 评论 -
DAB-Deformable-DETR代码学习记录之模型构建
DAB-DETR的作者在Deformable-DETR基础上,将DAB-DETR的思想融入到了Deformable-DETR中,取得了不错的成绩。今天博主通过源码来学习下DAB-Deformable-DETR模型。原创 2023-04-25 10:59:07 · 1556 阅读 · 2 评论 -
关于COCO数据集评价参数设置
就没有什么问题,而在WidePerson数据集中,尽管绝大部分图片中目标的数量在100以内,但却存在某些图片中包含近200个目标,那么我们再使用maxDets=100就不符合要求了。maxDets:该指标的意思是分别保留测试集的每张图上置信度排名第1、前10、前100个预测框,根据这些预测框和真实框进行比对,来计算AP、AR等值。比如博主在使用COCO数据集时,博主将其中的car,bus,truck进行提取,这就导致在一张图片中的目标数目可能只有几张,那么我们使用。原创 2023-06-29 10:05:21 · 929 阅读 · 0 评论 -
DINO推理模块实现
引入COCO数据集中的标注类别名称,博主使用的是COCO缩减数据集,大家可以按照这个格式进行制作。的代码中已经给出了推理模块的实现,这里博主是将其流程进行梳理,并对其中的问题给出解决方案。即我们常说的推理模块,前面博主已经介绍了如何使用。项目中,博主想将模型与网络分离开进而将其部署在云端,进而开发一个目标检测的接口。,意为不计算梯度,因为这里的推理是不需要梯度更新的,否则会爆显存。随后是构建模型与权重文件加载,指的注意的是要想。进行推理,就需要将推理代码放到。进行推理,今天博主则介绍。原创 2023-06-28 22:22:00 · 474 阅读 · 5 评论 -
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 · 1376 阅读 · 0 评论 -
detrex | 面向detr系列的目标检测开源框架
CVR团队分别开源了DAB-DETR, DN-DETR, DINO后,CVR团队一直计划做一个统一的DETR系列代码框架,支持DETR系列的算法工作,并且希望这套codebase可以拓展到更多相关的任务上,终于在9.21号,CVR团队正式开源detrex,整合重构复现了之前的开源工作并且吸纳了一系列DETR系列算法。DETR作为Transformer应用于目标检测领域的开山之作,后续有大量的算法都是在其基础上改进而来,如Deformable-DETR,DAB-DETR,DN-DETR,DINO等。原创 2023-06-22 11:03:03 · 694 阅读 · 0 评论 -
DINO-DETR匈牙利匹配与加噪过程学习记录
今天再来回顾一下DINO中匈牙利匹配与损失函数部分,该部分大致与DETR相似,却又略有不同。为了查看数据方便,博主将num_query改为20,max_select值也为20。原创 2023-06-17 18:26:39 · 1153 阅读 · 1 评论 -
YOLOv7训练自定义数据集
使用YOLOv7做对比实验,需要重新部署一下YOLO环境,并将COCO格式数据集转换为YOLO格式博主的COCO数据集是由WiderPerson数据集转换来的,并且做了一些处理。原创 2023-06-10 11:25:03 · 1730 阅读 · 0 评论 -
MMDetection环境配置与使用
这里我替换了数据集后,运行报错:f’class找到这个目录下的文件,修改文件里的 num_classes=2 ,修改成自己的类别数目。修改里边的def coco_classes(): ,将return内容修改成自己的类别。修改里边的,将修改成自己的类别。原创 2023-06-07 10:32:26 · 880 阅读 · 0 评论 -
DN-DETR调试记录
先前的DN-DETR模型都是在服务器上运行的,后来在本地运行时出现了一些小问题,这篇博文则主要介绍DN-DETR模型在本地运行时所需要做的配置。原创 2023-12-25 11:21:20 · 716 阅读 · 1 评论 -
KITTI数据集处理为COCO数据集格式
而我们在使用过程中,通常会对某些类别进行合并,将Car,Van,Truck,Tram统一划分为Car,将Pedestrian与Person_setting统一设置为Pedestrian,保留Cyclist,去除Misc。数据集划分完成后需要将YOLO格式转换为COCO格式(JSON),即需要生成一个类别文件,里面标注的是类别名称,记得要与YOLO的类别编号一致。一个txt文件对应一张图像,内容如下,分别对应类别,中心点坐标xy,标注框宽高wh。最终生成的数据集格式为txt,标注为YOLO格式。原创 2023-12-15 15:04:01 · 495 阅读 · 1 评论 -
ubuntu配置conda环境
博主最近新换了电脑,原本的笔记本便被打入了冷宫,后来想到这个电脑也不能浪费,因此想着把原本的电脑重装一下,博主装了个双系统,分别是window10与ubuntu,今天便拿ubuntu系统练下手。由于博主装的ubuntu是22.04版本,而只有cuda11.8后才有对应的版本,因此便只能安装11.8这个版本了。查看安装的系统,发现好像与自己要求的版本不符。但好歹安上了,先试验一下吧。重启后可以看到驱动安装成功了。首先安装nvidia驱动。原创 2024-02-06 16:13:26 · 936 阅读 · 0 评论 -
缩小COCO数据集
在运行YOLOS模型的过程中,需要使用到COCO2017这个数据集,但从实验运行来看,其所需时间无疑是相当漫长,预计可能需要近几十天才能完成,因此便考虑缩小COCO数据集大小,即尽可能在遵循其分布的情况下,将数据集中的图片数量缩小。博主这里将数据集缩小了16倍。随后我们就可以使用该数据集进行我们的训练操作了。原创 2024-05-03 15:23:35 · 455 阅读 · 0 评论