学习记录
文章平均质量分 87
主要收录自己在阅读相关文章时的见解与心得。
彭祥.
本科专业软件开发,主为 Java编程,如Spring、SpringBoot等;研究生期间主修图像目标检测,对DETR、YOLO等目标检测方法具有较深入研究,并对图像分类、实例分割、目标追踪等计算机视觉任务有一定研究经验。
展开
-
Latex安装使用教程
在论文投稿时有些期刊要求使用Latex格式,比如博主现在就遇到了这个问题,木有办法,老老实实的学呗。大家可以去官网下载,但官网的界面设计属实有些一言难尽,因此我们可以使用国内的镜像。LaTeX 基于 TeX,主要目的是方便排版。在学术界的论文,尤其是数学、计算机等学科论文都是由 LaTeX 编写, 因为用它写数学公式非常漂亮。要使用LaTex,主要是安装两样东西其中Texlive选择用于TeX 发行版;TeXstudio是LaTex编辑器,免费的;原创 2023-11-02 22:43:27 · 589 阅读 · 0 评论 -
Paddle训练COCO-stuff数据集学习记录
警告提醒,据说是该设计在paddle2.6已经被弃用了,但该警告其实并不影响实验进程,只是看着不舒服而已,那就不看好了。2.4.0的是可以的。报错1:这个问题令我感到困惑,因为先前已经用该环境训练过cityspces数据集,但还是重新又部署了一下环境,但依旧出错,最后发现是由于博主的数据集类别设置错误导致的,这实在是令人匪夷所思。似乎是之前博主修改了metrics.py文件导致的,但好像并不是,保持metrics.py文件原样即可,修改下数据集目录即可。下载完成数据集后需要生成数据集的读取文件,即。原创 2023-09-03 10:12:11 · 1169 阅读 · 0 评论 -
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 · 1837 阅读 · 0 评论 -
YOLOS学习记录
在前面,博主已经完成了YOLOS项目的部署与调试任务,并在博主自己构造的数据集上进行了实验,实验结果表明效果并不显著,其实这一点并不意外,反而是在情理之中。众所周知,Transformer一直以来作为NLP领域的带头大哥,在CV领域也才刚刚起步,尽管其势头正猛,一时风光无量,但毕竟有个通病,那就是大数据集量。原创 2023-03-11 20:36:06 · 691 阅读 · 1 评论 -
Paddle项目调试记录
首先我们先去下载github下载源码:随后我们进入Paddle的官网地址 (很重要这里一定要按照官网给出的版本进行对应。Cityscapes大致有两个数据集,分别为精细的标注数据集(3475张训练图像,1525张测试图像)和粗糙的标注数据集(3475+19888张额外的粗糙标注),共19个类别,我们一般只使用精确的那个。该数据集下载时需要使用到一个edu邮箱账号,如果没有的话可以去淘宝上买一个,或者找下网盘资源。下载完成后主要用到的就是这两个文件,分别是语义分割的标注文件与图像数据。原创 2023-03-11 12:03:53 · 609 阅读 · 0 评论 -
DETR目标检测算法学习记录
Attention的本质就是加权,以找女朋友为例,Q代表我想要的女生类型,即一些条件,K与V则是一种键值对的表示,K为属性,如女生的相貌,身材等,而V则是对应属性的相应值,即女生的真实特征,那么一个女生越符合标准的我们预设的条件,就会被赋予更高的权重,特征占比也就越大。需要注意的是,在decoder的第一层其实做的是自注意力机制,即每个向量都有自己的Q,K,V,其先进行一下内部分配,最终我们需要的是得到的Q,而K,V值只是一些中间数据,无用也就被丢弃了。而在这里,其是并行的,也就不需要设置mask机制了。原创 2023-03-09 20:48:28 · 1622 阅读 · 0 评论 -
基于Transformer的目标检测算法学习记录
本文主要通过阅读相关论文了解当前Transformer在目标检测领域的应用与发展。谷歌在 ICLR2020 上提出的 ViT(Vision Transformer)是将 Transformer 应用在视觉领域的先驱。从此,打开了Transformer进入CV领域的桥梁,NLP与CV几有大一统之趋势。原创 2023-03-09 19:25:25 · 1450 阅读 · 0 评论 -
VOC数据增强与调整大小
数据增强是针对数据集图像数量太少所采取的一种方法。博主在实验过程中,使用自己的数据集时发现其数据量过少,只有280张,因此便想到使用数据增强的方式来获取更多的图像信息。对于图像数据,我们可以采用旋转等操作来获取更多的图像。对于已经标注好的图片,则可以通过imgaug实现对图片和标签中的boundingbox同时变换。首先,安装依赖库。原创 2023-02-11 17:39:45 · 1787 阅读 · 0 评论 -
SETR项目运行记录
全称为Swin-Transformer-Semantic-Segmentation,看名字我们就知道使用的是transformer,做的是语义分割方面,使用的数据集是Cityscapes。在本文中我们并不对其原理进行解读,只是调试运行该项目。项目采用了mmsegmentation框架,在博主看来不太易于学习与使用。在github上有大佬对其复现,感觉还不错,有需要的小伙伴可以去自行下载,本文还是以初始的代码为例进行调试。原创 2023-02-04 10:42:55 · 777 阅读 · 2 评论 -
GPU服务器Ubuntu环境配置教程及各种踩坑
使用果然出了问题:执行nvidia-smi时报错输出以下信息说明显卡驱动是存在的然后查看已安装驱动的版本信息显卡驱动是可以找到的,没有问题。随后依次输入以下命令但在执行第二句代码时出了问题根本原因是重启后,内核版本与驱动版本不兼容导致的显卡驱动出错。所以我们恢复之前的内核版本就可以解决这个问题。首先查看目前的内核版本uname - r然后查看内核版本有哪些修改开机系统启动项按i进入编辑状态,修改其中第一行GRUB_DEFAULT=0 , 修改为GRUB_DEFAULT=“1> 3”原创 2023-02-02 21:22:32 · 4094 阅读 · 3 评论 -
腾讯云GPU服务器环境部署与连接配置
先前博主购买了腾讯云的GPU服务器后,发现上面预装的环境存在一些问题,因此便来重新部署一下。为了操作方便,博主这里使用了一个远程控制端软件:Xshell博主在初始化时已经安装过pytorch了,我们首先看看安装的路径。原创 2023-01-20 10:40:55 · 1809 阅读 · 0 评论 -
python爬虫爬取车辆信息
博主爬取信息时发现能用的只有车辆名称,价格,图片,其余的像车辆品牌,详情并没有获取到,当然这并不是无法获取到,只是那个链接找起来太费眼睛了,哈哈哈哈。因此其余的所需信息博主便随机生成了。爬取数据,下载图片,插入数据库。原创 2023-01-06 09:53:35 · 3172 阅读 · 0 评论 -
GPU服务器之Colab配置及使用教程
最方便的一点是,在复现其他研究者的工作时,如果dataset通过Google Drive链接分享,我们可以将一键转存到我们的Google Drive中,避免长时间的大文件下载和上传。在进行深度学习过程中,不可避免需要进行炼丹的操作,而博主的电脑本身性能就很拉跨,一旦再运行其他的应用便是寸步难行,最好的办法便是再买一台,哈哈哈,当然也可以使用一些云服务器来进行,博主这里选择的是Colab,接下来便是配置环境过程。没有报错就是成功,然后我们的.py文件是不能直接运行的,可以以下命令运行。原创 2023-01-02 18:05:51 · 4738 阅读 · 0 评论 -
YOLO学习记录之模型修改
我们在做实验时,不免需要对模型结构进行修改来检测自己的改进性能,对于一般模型而言,我们只需要简单的在代码中添加网络层即可,但对于一些预训练好的模型,我们则需要进行较为复杂的修改。以我们的YOLOV7模型为例,yolo_v7.pth为预训练模型,里面已经根据image_Net训练好了大量的权值,是具有通用性的,如果我们不选择该模型而选择自己重新训练的话,无疑会增大计算成本,同时也可能无法取到满意的效果。今天主要是尝试为YOLO模型添加简单的网络层,为之后模型的修改完善打下基础。原创 2023-01-02 15:23:00 · 3442 阅读 · 1 评论 -
labelImag安装与使用及构造数据集
在做目标检测任务时,需要进行标注,选择了LabelImg作为标注工具,下面是安装及使用过程。然后我们就可以进行标注了,博主标注格式为VOC,首先需要创建好对应的文件。其中sign包含路牌,交通标识等,light指的是信号灯。安装结束后,输入labelimg即可。Ctrl+S保存生成的标注文件。我们先将数据集统一重命名。原创 2022-12-31 21:48:12 · 1801 阅读 · 0 评论 -
MMDetection框架入门教程之环境部署
另外,当前(2021.10.23)MMCV最新仅支持到pytorch-1.9,安装最新的pytorch1.10会导致MMDetection无法使用,因此安装的时候需要指定pytorch版本为1.9。MMCV有两mmcv-full和mmcv两个版本,两者差别在于是否包含CUDA操作,如果不需要使用CUDA可以安装mmcv,不过官方还是推荐安装完整版的mmcv-full。这个时间可能会很漫长,耐心等待即可,安装完成后进行测试,看pytorch是否可用。将文件下载后打开,选择我们创建好的环境。原创 2022-12-30 18:58:30 · 704 阅读 · 0 评论 -
Anchor Based和Anchor Free的相爱相杀与ATSS的诞生
我们都知道按照是否出现RPN可将目标检测算法分为two-stage和one-stage,其中one-stage的一个主要代表便是YOLO系列,而根据是否存在先验锚框的定义我们也可以将其分为Anchor based和Anchor free两类,关于这两种也是各有优劣,但大趋势上好像是倾向于Anchor Free,但实际上,两者真正能够产生差别的原因在于正负样本匹配机制。本文便以YOLO系列目标检测算法为例,讲述Anchor Based和Anchor Free的相爱相杀。原创 2022-12-29 21:29:57 · 1154 阅读 · 1 评论 -
YOLOV7学习记录之mAP计算
如何评估一个训练好模型的好坏,是目标检测中一个很重要的因素,如常见的TP、FP、AP、PR、map等视频可以参考:TP:被正确分类为正样本的数量;实际是正样本,也被模型分类为正样本FP:被错误分类为正样本的数量;实际是负样本,但被模型分类为正样本TN:被正确分类为负样本的数量;实际是负样本,也被模型分类为负样本FN:被错误分类为负样本的数量;实际是正样本,但被模型分类为负样本如下图举例:红色是预测框,绿色是真实框。假设阈值为0.5,意思就是预测框与真实框的IoU大于等于0.5时认为检测到目标了原创 2022-12-24 23:18:54 · 7844 阅读 · 4 评论 -
YOLO目标检测之IOU计算及其衍变体
IOU损失函数目前主要应用于目标检测的领域,其演变的过程如下:IOU --> GIOU --> DIOU -->CIOU损失函数,每一种损失函数都较上一种损失函数有所提升。下面来具体介绍这几种损失函数。原创 2022-12-24 18:53:07 · 2113 阅读 · 0 评论 -
YOLOV7学习记录之模型推理
前面我们学习了YOLOV7的训练过程,今天我们学习其推理过程,即模型预测:其包含损失函数计算,输出值解码,非极大值抑制,mAP计算等过程。同时还介绍原始图像上绘制目标框等功能。我们从predict.py文件开始,这里博主将原本的单张图像预测修改为多张图像,只是加了个list循环而已。我们先来看一下predict的流程,其还是很容易理解的生成模型:yolo = YOLO() yolo.py 此时只初始化初始化参数 :模型权重文件目录等。原创 2022-12-24 00:00:18 · 2659 阅读 · 1 评论 -
YOLOV7学习记录之训练过程
在前面学习YOLOV7的过程中,我们已经学习了其网络结构,然而实际上YOLOV7项目的难点并不在于其网络模型而是在于其损失函数的设计,即如何才能训练出来合适的bbox。神经网络模型都有训练和测试(推理)过程,在YOLOV7的训练过程中,包含模型构造,标签分配和损失函数计算。其中模型在前面以及讲过了。在测试过程中包含加载模型,损失函数计算,输出值解码,非极大值抑制,MAP计算等,今天我们先讲一下YOLOV7的训练过程。原创 2022-12-23 18:59:53 · 3583 阅读 · 2 评论 -
YOLOV7学习记录之原理+代码介绍
博主计划做一个目标检测跟踪项目,考虑使用YOLO系列模型来作为目标检测器,如今YOLO项目已经更新到了YOLOV7版本,因此便来学习一下相关原理,完成相关实验工作。论文链接:https://arxiv.org/abs/2207.02696。原创 2022-12-14 22:21:05 · 20828 阅读 · 5 评论 -
YOLOV7 目标检测模型调试记录
YOLO系列在目标检测领域可谓名声赫赫,其性能表现不俗,如今其已经更新到了YOLOV7版本,今天便来一睹其风采。博主之前只是对YOLO算法的原理一知半解,并未实验,因此并不熟练,因此,借此机会来进行实验以为日后的论文撰写做好准备。原创 2022-12-13 22:37:25 · 3377 阅读 · 4 评论 -
YOLOV1算法学习记录
R-CNN系列算法(R-CNN、SPPNet、Fast R-CNN、Faster R-CNN)均是采用two-stage的方法(1.提取region proposal 2.分类+边框回归),主要是对region proposal进行识别定位。虽然这类方法检测精度很高,但由于需要一个单独的网络进行提取region proposal,因此在速度上无法突破瓶颈。而YOLOV1算法作为YOLO系列算法的开篇之作,作为One Stage目标检测算法的杰出代表,其重要性不言而喻。原创 2022-12-10 11:17:46 · 883 阅读 · 0 评论 -
GoogLeNet 与 Inception
Inception就是把多个卷积或池化操作,放在一起组装成一个网络模块,设计神经网络时以模块为单位去组装整个网络结构。模块如下图所示:在未使用这种方式的网络里,我们一层往往只使用一种操作,比如卷积或者池化,而且卷积操作的卷积核尺寸也是固定大小的。但是,在实际情况下,在不同尺度的图片里,需要不同大小的卷积核,这样才能使性能最好,或者说,对于同一张图片,不同尺寸的卷积核的表现效果是不一样的,因为他们的感受野不同。原创 2022-12-09 11:57:59 · 1875 阅读 · 0 评论 -
DeepSort目标跟踪算法
DeepSort目标跟踪算法是在Sort算法基础上改进的。Sort算法的核心便是卡尔曼滤波与匈牙利匹配算法卡尔曼滤波是一种通过运动特征来预测目标运动轨迹的算法其核心为五个公式,包含两个过程:其分为先验估计(预测)其中Xt-表示预测的位置状态,包含位置速度等信息,F为状态转移矩阵,描述前一帧如何影响该帧,ut-1为控制量,可认为是加速度B为控制矩阵,表示如何控制ut-1作用于当前状态。P-为当前帧的预测协方差矩阵,是描述变化关系的,要知道,变量之间是有联系而非独立的,比原创 2022-12-05 20:59:00 · 7334 阅读 · 0 评论 -
目标检测之多尺度融合
卷积神经网络通过逐层抽象的方式来提取目标的特征,其中一个重要的概念就是感受野。高层网络的感受野比较大,语义信息表征能力强,但是特征图的分辨率低,几何信息的表征能力弱(空间几何特征细节缺乏);低层网络的感受野比较小,几何细节信息表征能力强,虽然分辨率高,但是语义信息表征能力弱。高层的语义信息能够帮助我们准确的检测或分割出目标,而低层的细节信息可以准确地包含物体位置信息。高层与低层特征即为不同尺度。(a) Featurized image pyramid:这种方式就是先把图片弄成不同尺寸的,然后再对每原创 2022-12-05 18:07:35 · 4805 阅读 · 0 评论 -
RepVGG网络学习记录
在ResNet等被提出前,VGG可谓是风靡一时,但当ResNet等横空出世后,VGG便遭受了冷落,甚至一度被人所遗忘,而今天所要介绍的是由清华大学与香港科技大学联合提出了一个VGG的衍生模型,试图让曾经风光不再的VGG容光焕发。之所以RepVGG能够一骑绝尘达到STOA水平,源于其提出了在训练时使用下图B的网络结构,而在推理时则采用下图C的网络结构,而为何能够如此转换,这就是论文提出的思想:结构冲参数化。原创 2022-11-24 16:38:52 · 1101 阅读 · 0 评论 -
卷积神经网络总结
图片输入神 经网络以后因为要提取多层维度的信息,随着网络的加深特征图的通道维度变得 非常大,此时如果特征图的分辨率过大会严重增加推理速度,降低网络的实时性。此外,这类函数还有一个很大的缺点,当输入值非常大或者非常小时,其函数曲线趋于平稳,导数值变得趋向于0,此时网络在反向传播时容易导致梯度消失的问题,使得梯度更新困难,模型的损失降低速度变慢。1、靠近输入层,也就是CNN网络的浅层,一般CNN filter数量少,维度低,feature map的尺寸大,分辨率高,感受野小,所以主要包含的是局部的细节特征。原创 2022-11-19 21:14:51 · 909 阅读 · 0 评论 -
深度可分离卷积神经网络与卷积神经网络
在学习语义分割过程中,接触到了深度可分离卷积神经网络,其是对卷积神经网络在运算速度上的改进,具体差别如下:一些轻量级的网络,如mobilenet中,会有深度可分离卷积depthwise separable convolution,由depthwise(DW)和pointwise(PW)两个部分结合起来,用来提取特征feature map相比常规的卷积操作,其参数数量和运算成本比较低。原创 2022-11-19 20:38:48 · 1149 阅读 · 0 评论 -
CNN+LSTM+Attention实现时间序列预测
LSTM 隐藏层输出向量作为注意力层的输入,通过一个全连接层进行训练,再对全连接层的输出使用 softmax 函数进行归一化,得出每一个隐藏层向量的分配权重,权重大小表示每个时间步的隐状态对于预测结果的重要程度。权重训练过程如下:S。原创 2022-11-17 10:55:52 · 37153 阅读 · 94 评论 -
SCINet:Time Series Modeling and Forecasting with Sample Convolution and Interaction学习记录
SCINet称为样本卷积交换网络,是一个用于时间序列预测的神经网络模型,其是在Dilated casual convolution的基础上进行设计的,对于Dilated casual convolution,其特点如下:该模型是在casual convolution上改进的:要求对时刻t的预测只能通过t时刻之前的输入x1到xt-1来判别,使用mask来实现。缺点:造成信息大量浪费,只能基于第一层的神经元进行计算,想要扩大数据范围就需要加深网络层数,但结果却差强人意,故而提出了膨胀卷积的模型(dilat原创 2022-11-16 15:20:22 · 5189 阅读 · 4 评论 -
Informer论文思维导图
思维导图原创 2022-11-12 11:08:38 · 883 阅读 · 0 评论 -
2021 AAAI best Paper - Informer-2020 学习记录
这篇文章是来自AAAI的best paper,目前已经开源在github,这里博主记录一下自己的学习过程。项目使用pytorch开发,按照readme要求的环境即可,环境没有问题的话基本不需要改动即可完美调试,博主开始时pytorch版本太低,所以导致了很多问题,当然这个调试修改的过程也并非是毫无用处,它可以让我们对项目的理解更加深刻。原创 2022-11-09 17:14:01 · 1136 阅读 · 0 评论 -
windows10安装其他版本cuda环境
博主在编写自定义神经网络层时发现在tensorflow1.6f之前是不支持自定义网络模型的,因此需要tensorflow-gpu其他的版本,而要想使用就需要对应的cuda ,CuDNN计算库,而相对应的我们也要升级我们的显卡驱动,我们到英伟达官网查看搜索适合自己的驱动版本,更新完成后可以看到之前博主的cuda只能支持到8,如今可以支持到11.6。它默认的安装路径是这个,博主之前安装的cuda8是自定义的位置,这里建议也最好选到相同的位置,建立相应的文件夹保存即可。不用管他,点击我已知道,然后next即可。原创 2022-11-07 20:26:04 · 1812 阅读 · 0 评论 -
时间序列预测之为何舍弃LSTM而选择Informer?(Informer模型解读)
Figure 1: (a) LSTF can cover an extended period thanthe short sequence predictions, making vital distinction inpolicy-planning and investment-protecting. (b) The prediction capacity of existing methods limits LSTF’s performance. E.g., starting from leng原创 2022-11-06 16:00:31 · 16666 阅读 · 2 评论 -
Informer学习记录之Informer-Tensorflow版本
Transformer是由谷歌团队近期提出的一种新型网络模型,抛弃了传统的CNN和RNN,整个网络结构完全是由Attention机制组成。更准确地讲,Transformer由且仅由self-Attenion和Feed Forward Neural Network组成。一个基于Transformer的可训练的神经网络可以通过堆叠Transformer的形式进行搭建,作者的实验是通过搭建编码器和解码器各6层,总共12层的Encoder-Decoder,并在机器翻译中取得了BLEU值得新高。原创 2022-11-05 15:46:28 · 3352 阅读 · 11 评论 -
Attention机制学习记录(四)之Transformer
注意力(Attention)机制[2]由Bengio团队与2014年提出并在近年广泛的应用在深度学习中的各个领域,例如在计算机视觉方向用于捕捉图像上的感受野,或者NLP中用于定位关键token或者特征。谷歌团队近期提出的用于生成词向量的BERT[3]算法在NLP的11项任务中取得了效果的大幅提升,堪称2018年深度学习领域最振奋人心的消息。而BERT算法的最重要的部分便是本文中提出的Transformer的概念。原创 2022-10-27 15:12:08 · 1012 阅读 · 0 评论 -
python实现时间序列预处理
纯随机性检验,一般是构造检验统计量来检验序列的纯随机性,常用的检验统计量有Q统计量、LB统计量,由样本各延迟期数的自相关系数可以计算得到检验统计量,然后计算出对应的p值,如果p值显著大于显著性水平a,则表示该序列不能拒绝纯随机的原假设,可以停止对该序列的分析。如果一个序列是纯随机序列,那么它的序列值之间应该没有任何关系,即满足y(k) = 0, k ≠ 0,这是一种理论上才会出现的理想状态,实际上纯随机序列的样本自相关系数不会绝对为零,但是很接近零,并在零附近随机波动。拿到一个观察值序列后,首先要对它的。原创 2022-10-26 18:59:14 · 3017 阅读 · 0 评论 -
数据预处理-python实现
数据预处理的主要步骤分为:数据清理、数据集成、数据规约和数据变换。原创 2022-10-24 11:33:37 · 5582 阅读 · 0 评论