PyTorch卷积神经网络
文章平均质量分 78
丁天牛
小白也要拥有大梦想
展开
-
卷积神经网络:DetNet
DetNet前面的网络骨架,如VGGNet和ResNet等,虽从各个角度出发提升了物体检测性能,但究其根本是为ImageNet的图像分类任务而设计的。而图像分类任务与物体检测两个任务天然存在着落差,分类任务侧重于全图的特征提取,深层的特征图分辨率很低;而物体检测需要定位出物体位置,特征图分辨率不宜过小,因此造成了以下两种缺陷大物体难以定位:对于FPN等网络,大物体对应在较深的特征图上检测,由于网络较深时下采样率较大,物体的边缘难以精确预测,增加了回归边界的难度小物体难以检测:对于传统网络,由于下采样原创 2021-07-30 23:26:03 · 547 阅读 · 0 评论 -
卷积神经网络:FPN
FPN为了增强语义性,传统的物体检测模型通常只要在深度卷积网络的最后一个特诊图上进行后续操作,而这一层对应的下采样率(图像缩小的倍数)通常又比较大,如16、32,造成小物体在特征图上的有效信息较少,小物体的检测性能会急剧下降,这个问题也被称为多尺度问题。解决多尺度问题的关键在于如何提取多尺度的特征。传统的方法有图像金字塔(Image Pyramid),主要思路是将输入图片做成多个尺度,不同尺寸的图像生成不同尺寸的特征,这种方法简单有效,大量使用在了COCO竞赛上,但缺点是非常耗时,计算量也很大卷积神经原创 2021-07-29 15:22:56 · 1107 阅读 · 0 评论 -
卷积神经网络:DenseNet
DenseNetResNet通过前层与后层的“短路连接”(Shortcuts),加强了前后层之间的信息流通,在一定程度上缓解了梯度消失的现象,从而可以将神经网络搭建得很深。DenseNet最大化了这种前后层信息交流,通过建立前面所有层与后面层的密集连接,实现了特征在通道维度上的复用,使其可以再参数计算量最少的情况下实现比ResNet更优的性能DenseNet的网络架构如下图所示,网络由多个Dense Block与中间的卷积池化组成,核心就在Dense Block...原创 2021-07-28 13:17:30 · 924 阅读 · 0 评论 -
卷积神经网络:ResNet
import torch.nn as nnclass Bottleneck(nn.Module): def __init__(self, in_dim, out_dim, stride=1): super(Bottleneck, self).__init__() #网路对叠层是由1×1、3×3、1×1这3个卷积组成的,中间包含BN层 self.bottleneck = nn.Sequential( nn.Conv2原创 2021-07-25 17:30:23 · 2702 阅读 · 0 评论 -
卷积神经网络:Inception
Inception v1 网络是一个精心设计的22层卷积网络,并提出了具有良好局部特征结构的Inception模块,即对特征并行地执行多个大小不同的卷积运算与池化,最后再拼接到一起。由于1×1、3×3和5×5的卷积运算对应不同的特征图区域,因此这样做的好处是可以得到更好的图像表征信息。Inception模块如下图所示,使用了三个不同大小的卷积核进行卷积运算,同时还有一个最大池化,然后将这4部分级联起来(拼接通道),送入下一层在上述模块的基础上,为进一步降低网络参数量,Inception又增加了多个1×原创 2021-07-09 22:27:30 · 1510 阅读 · 3 评论 -
走向深度:VGGNet
VGGNet:随着AlexNet在2012年ImageNet大赛上大放光彩后,卷积网络进入了飞速的发展截断,而2014年的ImageNet亚军结构VGGNet(Visual Geometry Group Network)则将卷积网络进行了改良,探索了网络深度与性能的关系,用更小的卷积核与更深的网络结构,取得了较好的效果,称为卷积结构发展史上较为重要的一个网络VGG网络结构组成如下图所示,...原创 2021-06-28 16:13:39 · 156 阅读 · 0 评论 -
网络骨架:Backbone(神经网络基本组成——卷积层)
利用卷积神经网络处理输入图像,生成深层的特征图,再利用各种算法完成区域生成与损失计算,这部分卷积神经网络数整个检测算法的“骨架”,也被称为BackboneBackbone是物体检测技术的基础,其中也涌现除了多种经典结构,如VGGNet、ResNet和DenseNet等卷积网络的经典Backbone:VGGNet:走向深度Inception:纵横交错ResNet:里程碑的残差结构DenseNet:多重残差FPN:特征金字塔DetNet:为检测而生神经网络的基本组成物体检测算法使用的通常原创 2021-06-26 00:01:06 · 15446 阅读 · 0 评论 -
网络骨架:Backbone(神经网络基本组成——激活函数层)
激活函数层神经网络如果仅仅是由线性的卷积运算堆叠组成,则其无法形成复杂的表达空间,也就很难提取出高语义的信息,因此还需要加入非线性映射,又称激活函数,可以逼近任意的非线性函数,以提升整个神经网络的表达能力,在物体检测任务中,常用的就好函数有Sigmoid、ReLU及Softmax函数1. Sigmoid函数Sigmoid函数又称Logistic函数,模拟了生物的神经元特征,即当神经元获得的输入信号累计超过一定阈值后,神经元被激活而处于兴奋状态,否则处于抑制状态,表达式如下:Sigmoid函数曲线与原创 2021-06-26 12:07:24 · 976 阅读 · 0 评论 -
网络骨架:Backbone(神经网络基本组成——BN层、全连接层)
BN层为了追求更高的性能,卷积网络被设计得越来越深,然而网络却变得难以训练收敛与调参。原因在于,浅层参数的微弱变化经过多层线性变化与激活函数后会被放大,改变了每一层的输入分布,造成深层的网络需要不断调整以适应这些分布变化,最终导致模型难以训练收敛由于网络中参数变化导致的内部节点数据分布发生变化的现象被称作ICS(Internal Covariate Shift)。ICS现象更容易使训练过程陷入饱和区,减慢网络的收敛。ReLU从激活函数的角度出发,在一定程度上解决了梯度饱和的现象,而2015年提出的BN层原创 2021-06-27 00:01:16 · 3222 阅读 · 0 评论 -
网络骨架:Backbone(神经网络基本组成——池化层、Droput层)
池化层在卷积神经网络中,通常会在卷积层之间增加池化(Pooling)层,以降低特征图的参数量,提升计算速度,增加感受野,是一种降采样操作。池化是一种较强的先验,可以使模型更关注全局特征而非局部出现的位置,这种降维的过程可以保留一些重要的特征信息,提升容错能力,并且还能一定程度上起到防止过拟合的作用在物体检测中,常用的池化有最大池化(Max Pooling)与平均值池化(Average Pooling)。池化层有两个主要的参数。即核尺寸(kernel_size)与步长(stride)。下图所示为一个核尺寸原创 2021-06-26 17:56:41 · 1595 阅读 · 0 评论 -
网络骨架:Backbone(神经网络基本组成——感受野、空洞卷积)
感受野感受野(Receptive Field)是指特征图上的某个点能看到的输入图像的区域,即特征图上的点是由出入图像中感受野大小区域的计算得到的。举个简单的例子,如下图所示为一个三层卷积网络,每一层的卷积核为33,步长为1,可以看到第一层对应的感受野是33,第二层是55,第三层则是77卷积层和池化层都会影响感受野,而激活函数层通常对感受野没有影响。对于一般的卷积神经网络,感受野可由下面的两个公式计算得出:其中RF_l+1与RF_l分别代表第l+1层与第l层的感受野,k代表第l+1层卷积核的大小,S原创 2021-06-28 01:34:36 · 1196 阅读 · 0 评论