经典网络骨架Backbone
文章平均质量分 78
心之所向521
锲而舍之,朽木不折;锲而不舍,金石可镂!
敬畏代码!
展开
-
Cascade RCNN:走向检测器的级联
目录背景:网络结构:相关代码:(Pytorch实现)整体结构:demo代码:全部代码地址:背景:从之前的知识可知,在得到一个RoI后,Faster RCNN通过RoI与标签的IoU值来判断该RoI是正样本还是负样本,默认的IoU阈值为0.5,这个阈值是一个超参数,对于检测的精度有较大影响。 如何选择合适的阈值是一个矛盾的问题。一方面,阈值越高,选出的RoI会更接近真实物体,检测器的定位会更加准确,但此时符合条件的RoI会变少,正、负样本会更加不均...原创 2021-12-17 10:32:48 · 1418 阅读 · 0 评论 -
R-FCN:走向全卷积的网络
目录1.背景:论文地址:2.结构图:3.相关代码:(caffe框架)训练代码:整体python代码实现:1.背景:由于全连接的参数量过大,现在越来越多的网络开始去掉全连接,R-FCN就是一个很好的例子!而且个人认为全卷积应该是未来!Faster RCNN在RoI Pooling后采用了全连接网络来得到分类与回归的预测,这部分全连接网络占据了整个网络结构的大部分参数,而目前越来越多的全卷积网络证明了不使用全连接网络效果会更好,以适应各种输入尺度的图片。 一个很自然.原创 2021-12-16 18:29:13 · 2537 阅读 · 0 评论 -
Mask RCNN:走向实例级分割
背景:继提出Faster RCNN之后,大神何凯明进一步提出了新的实例分割网络Mask RCNN,该方法在高效地完成物体检测的同时也实现了高质量的实例分割,获得了ICCV 2017的最佳论文!一举完成了object instance segmentation!!(不仅仅时语义分割,而且是实例分割:不仅仅识别不同类,还要是要识别大类下面的小类)该方法在有效地目标的同时完成了高质量的语义分割。 文章的主要思路就是把原有的Faster-RCNN进行扩展,添加一个分支使用现有的检测对目标进行并行预测。同...原创 2021-12-16 17:52:48 · 1167 阅读 · 0 评论 -
Faster RCNN总结(优缺点说明)
# 两种特殊卷积:转置卷积和空洞卷积[TOC]![image-20211211175809006](https://gitee.com/aaalds/aaalds_note/raw/master/image-20211211175809006.png)## 1.转置卷积##### 简介: 我们一般可以通过卷积操作来实现高维特征到低维特征的转换。比如在一 维卷积中,一个5维的输入特征,经过一个大小为3的卷积核,其输出为3维特征。 如果设置步长大于1,可以进一步降低输出特征的...原创 2021-12-16 15:08:08 · 11238 阅读 · 2 评论 -
网络中的网络:NiN
前面几篇文章介绍的LeNet、AlexNet和VGG在设计上的共同之处是:先以由卷积层构成的模块充分抽取空间特征,再以由全连接层构成的模块来输出分类结果。其中,AlexNet和VGG对LeNet的改进主要在于如 何对这两个模块加宽(增加通道数)和加深。今天我们来介绍网络中的网络(NiN):它提出了另外 一个思路,即串联多个由卷积层和“全连接”层构成的小网络来构建一个深层网络。我们知道卷积层的输入和输出通常是四维数组(样本,通道,高,宽),而全连接层的输入和输出则通常是二...原创 2021-12-11 16:49:13 · 1620 阅读 · 3 评论 -
Bachbone 之 VGGNet:走向深度 (Pytorch实现及代码解析)
2014年的VGGNet荣获ImageNet亚军,其主张探索网络深度与性能的关系,用更小的卷积核与更深的网络结构,并且还取得了较为优异的效果,其网络结果图如示:从图中可以看出来,网络大概有6种版本,最为常用的是VGG16的版本。VGGNet采用了5组卷积和3个全连接层,最后的部分采用Softmax做分类,其有一个显著的特点就是: 每经过一层池化层,特征图的尺寸减小一倍,通道数增加一倍 更多地使用3x3的卷积核来代替5*5的卷积核,因为两个3x3的卷积核...原创 2021-11-30 19:48:57 · 3583 阅读 · 0 评论 -
Backbone 之 Inception:纵横交错 (Pytorch实现及代码解析)
背景:一般来说,增加网络的深度和宽度可以提升网络的性能,但是这样做也会带来参数量的大幅度增加,同时较深的网络需要较多的数据,否则很容易产生过拟合现象。除此之外,增加深度的有一个坏处就是很容易造成梯度消失的现象。由此,ImageNet大赛上,GoogLeNet(Inception)很好地解决了这个问题。Inception基础结构图:Inception特点: 采用并行结构代替之前VGG的深度串行结构 采用几个大小不同的卷积运算和池化,最后再拼接(通道拼接)到一起 1x.原创 2021-11-30 19:52:19 · 5132 阅读 · 0 评论 -
Backbone 之 ResNet:里程碑(Pytorch实现及代码解析)
背景:由于随着网络的层数不断加深,网络训练变得越发地困难,一方面会产生梯度消失的现象,另一方面月神的网络返回的梯度相关性会越来越差,越接近白噪声,导致梯度更新也接近于随机扰动。由此ResNet应运而生。思路:引入一个深度残差框架来解决梯度消失问题,即让卷积网络去学习残差映射,而不是期望每一个堆叠层的网络都完整的拟合潜在的映射(拟合函数)。结构图:在ResNet中,上述的一个残差模块被称之为Bottleneck,其中ResNet有不同的网络层版本,比如:18,34,52,101和15.原创 2021-11-30 19:54:45 · 758 阅读 · 0 评论 -
Bachbone 之 DenseNet:继往开来(Pytorch实现及代码解析)
背景:上一节的ResNet通过前层与后层的“短路连接”(Shortcuts),加强了前后层之间的信息流通,在一定程度上缓解了梯度消失现象,从而可以将神经网络搭建得很深。更进一步,本节的主角DenseNet最大化了这种前后层信息交流,通过建立前面所有层与后面层的密集连接,实现了特征在通道维度上的复用,使其可以在参数与计算量更少的情况下实现比ResNet更优的性能,提出DenseNet的《Densely Connected Convolutional Networks》也一举拿下了2017年CVPR的最佳论原创 2021-11-30 20:35:08 · 5830 阅读 · 1 评论 -
Backbone 之 FPN:特征金字塔 (Pytorch实现及代码解析)
背景:为了增强语义性,传统的物体检测模型通常只在深度卷积网络的最后一个特征图上进行后续操作,而这一层对应的下采样率(图像缩小的倍数)通常又比较大,如16、32,造成小物体在特征图上的有效信息较少,小物体的检测性能会急剧下降,这个问题也被称为多尺度问题。 解决多尺度问题的关键在于如何提取多尺度的特征。传统的方法有图像金字塔(Image Pyramid),主要思路是将输入图片做成多个尺度,不同尺度的图像生成不同尺度的特征,这种方法简单而有效,大量使用在了COCO等竞赛上,但缺点是非常耗...原创 2021-11-30 21:53:25 · 12860 阅读 · 1 评论 -
Backbone 之 DetNet:为检测而生(Pytorch实现及代码解析)
背景:前面几节的网络骨架,如VGGNet和ResNet等,虽从各个角度出发提升了物体检测性能,但究其根本是为ImageNet的图像分类任务而设计的。而图像分类与物体检测两个任务天然存在着落差,分类任务侧重于全图的特征提取,深层的特征图分辨率很低;而物体检测需要定位出物体位置,特征图分辨率不宜过小,因此造成了以下两种缺陷: 大物体难以定位:对于FPN等网络,大物体对应在较深的特征图上检测,由于网络较深时下采样率较大,物体的边缘难以精确预测,增加了回归边界的难度。 小物体难以检测:对于传统网.原创 2021-11-30 22:41:07 · 5912 阅读 · 0 评论 -
单阶段多层检测器:SSD (理论及Pytorch代码详解)
目录背景:SSD结构及特点介绍:数据增强:基础的VGG结构:深度卷积层:先验框与边框特征提取网络总体网络的前向计算过程损失函数计算与先验框匹配:预选框与真实框的匹配定位损失计算难样本挖掘类别损失计算SSD总结(优缺点简述)背景:对于物体检测任务,前面Faster RCNN算法采用了两阶的检测架构,即首先利用RPN网络进行感兴趣区域生成,然后再对该区域进行类别的分类与位置的回归,这种方法虽然显著提升了精度,但也限制了检测速度。YOLO算...原创 2021-12-08 20:54:55 · 3540 阅读 · 4 评论