- 博客(17)
- 收藏
- 关注
原创 GAN源码的讲解
核心思想构建生成器与判别器,生成器用于将随机的噪声样本转换为我们希望的真实样本,判别器用于给伪造的生成样本进行打分,以达到生成随机的真实样本,增加模型样本容量,这常常用于特定目标检测的任务当中,属于一种分类任务。生成器# 生成器,用于将随机的噪声样本转换成一张图像class Generator(nn.Module): def __init__(self,img_shape): super(Generator, self).__init__() def blo
2022-04-29 15:06:06
1010
原创 有关于contiguous()的含义
探讨关于contiguous()的含义以及使用方法首先如果我们创建一个全新的tensor张量,那么它会自带一个属性contiguous(两者状态True,False),而我们我们都知道任何一个tensor都有尺寸,但还有一个东西叫布局,可能很多人不理解布局是什么意思,其实这要回到python底层是由c语言书写的,每一个tensor中的元素都有它的下标索引位置,比如现在我们创建一个x=torch.rand((5,3,2)),那么它的布局strid=(6,2,1),stride的含义指的是:先解释一
2022-04-16 15:48:45
2506
原创 Faster-RCNN
关于对Faster-RCNN的个人理解背景在这之前已有加快版的Fast-RCNN,但是由于候选区域仍然是特别的多的(大约有2000个),这就会导致在后续的类别预测以及box修正这个地方计算量特别大,预测速度很慢,并且很难学习这么多个样本。因此,本文的目的还是想要去加速网络的预测速度。思想先回顾一下Fast-RCNN的算法流程,首先是将整幅图像作为网络的输入,随后将SS算法得到的2000个候选区域映射到特征图上,得到对应的特征向量,接着再预测这2000个候选区域的类别概率以及box的修正参数。从上述
2022-03-30 18:48:13
1553
原创 R-CNN
关于R-CNN的个人理解背景此作可说是真正意义上的目标检测的开篇之作,为后续的目标检测的文章提供了强大的理论指导性。思想该算法属于多阶段网络,即在训练该模型的时候,并不能以端到端的形式直接优化参数,并且操作起来十分复杂,计算量也很大,但在这之前却并没有很好的目标检测算法。首先作者利用SS搜索算法在图像上选取出大约2000个区域(每个区域的尺寸都是随机的,并不相同),之后将每个区域缩放到相同的尺寸(默认为227 * 227),以便更好的缩入预先训练好的分类模型中(默认为AlexNet)得到每一个区域
2022-03-29 21:40:06
525
原创 YOLOv5
关于YOLOv5的个人理解背景虽然v5项目的作者还没有发正式的文章,但该项目早已被大家熟知。v5与之前的v4相比,我认为不同的地方主要分为以下几个方面:预测bounding box的宽高公式不同,正负样本的匹配方式。至于模型结构上大体上与v4是一样的(存在细微的差别,比如加入了SPPF模块),还有就是数据增强方面,但这并不是本文的重点,我不会对此作出详细介绍。思想与之前的版本相同,并不存在大的改动,核心思想不变(将图像分成多个grid,每个grid分别预测对应位置的bounding box)。模型
2022-03-29 13:37:49
177
原创 目标检测定位损失
关于目标检测中bounding box定位损失的理解在目标检测中,训练模型的损失通常有关于预测的bounding box与GT之间的边框损失。下面我会详细介绍近些年来不同的边框损失,分别为:中心点损失、宽高损失,IOU损失,GIOU损失,DIOU损失,CIOU损失。中心点损失具体做法:通过预测的bounding box中心点坐标x,y,宽高w,h,与真实的box的中心点坐标xgx_gxg,ygy_gyg,宽高wgw_gwg,hgh_ghg计算均方差损失RMS。但通过不断的实验证明,采用均方差
2022-03-28 21:27:35
742
原创 Pooling
关于池化操作池化是深度学习中常用的一种下采样操作,主要的作用是降低图像的分辨率以及提取更加重要的信息,去除部分干扰,增强模型的鲁棒性。池化的操作一般分为两种:最大池化(取局部最大值)、均值池化(取局部平均值)。以下为池化公式(与卷积是一样的,仅仅形式一样,但算法的计算方式是不同的):...
2022-03-28 20:23:10
118
原创 Convolution
关于卷积的操作卷积作为CNN的核心方法,经常被用于从图像中提取高级的语义信息,用于拟合从图像到我们想要的输出之间的特征关系,那么它具体是怎么计算的呢。我绘制了一个卷积的计算流程,以2 * 2 大小的卷积核为例,在5 * 5 大小的图像上计算,步幅s=1,填充p=1,最终得到6 * 6 大小的输出特征图。以下为卷积的输入与输出尺寸公式:...
2022-03-28 20:04:45
1272
原创 YOLOv4
关于YOLOv4的个人理解背景从上述图中,我们可以看出YOLOv4在于v3拥有相同的速度上,精度有了质的飞跃。这得益于本文将当时各种最先进的检测技术运用到了其中,主要分为以下几个方面:模型结构上加入SPP、PAN等其他模块,正负样本的判定规则,不同的定位损失。思想本文的核心思想与v3基本上一致,无论是grid还是多尺度预测特征图都是一样的。不一样的地方仅是调整了anchor尺寸,原本的v3中采用的anchor尺寸为(10 × 13), (16 × 30), (33 × 23), (30 × 61)
2022-03-28 17:13:06
176
原创 YOLOv3
关于YOLOv3的个人理解背景YOLOv3是前两个版本的进一步提升,提升的地方仅是在精度上,并且舍弃了一点对应的检测速度。因此YOLOv3的论文,内容不是很多,与前两个版本有差别的地方也不多。我总结了几个与之前版本不同的地方,主要包括3个方面:多尺度特征图预测、对目标类别损失和目标置信度损失均采用二值交叉熵损失、加入正负样本和忽略样本的判定方式标定样本信息。接下来我会详细介绍作者是怎么训练和测试的。思想YOLOv3的核心思想依然是延续之前v1、v2的grid思想,只不过这一次作者加入了多尺度(默认
2022-03-27 16:34:08
1067
原创 YOLOv2
关于YOLOv2的个人理解背景首先此文是YOLOv1的进阶版,作者运用了多种不同的手段来提高模型预测的精确度,但我只会对其中核心的部分进行讲解,清楚YOLOv2与YOLOv1在整个核心算法流程上有什么不同,以及它的输入和输出分别是什么含义,怎么得到的。我认为这才是我们阅读一篇文章,具体要弄懂的东西。如有的地方解释存在纰漏,敬请指正,谢谢!思想核心思想与YOLOv1相同,仍然是将图片划分为S*S个grid(默认S=13),每个grid预测B个bounding box(默认B=5),但对于boundi
2022-03-26 20:52:07
1298
原创 YOLOv1
YOLOv1的讲解背景:首先我们都知道目标检测分为一阶段和二阶段,甚至在一开始的R-CNN中还是多阶段网络,但无论是二阶段还是多阶段都不是端到端的,训练起来较为复杂。本文正是一阶段网络,虽然准确率在当时并不是最好的,但作者所提出的看法还是值得深思。...
2022-03-25 16:02:00
1377
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人