当前位置:   article > 正文

卷积神经网络复习+目标检测的基础概念_第1章基于卷积神经网络的目标检测基础

第1章基于卷积神经网络的目标检测基础

一、基础概念的复习

1. 什么是感受野?

  • 全局理解:感受野(Receptive Field),指的是神经网络中神经元“看到的”输入区域,在卷积神经网络中,feature map上某个元素的计算受输入图像上某个区域的影响,这个区域即该元素的感受野。
  • 局部理解:感受野等价卷积核的尺寸。

通常感受野只全局的理解。
在这里插入图片描述
卷积神经网络中,越深层的神经元看到的输入区域越大,如下图所示,kernel size 均为3×3,stride均为1,绿色标记的是Layer2 每个神经元看到的区域,黄色标记的是Layer3 看到的区域,具体地,Layer2每个神经元可看到Layer1 上 3×3 大小的区域,Layer3 每个神经元看到Layer2 上 3×3 大小的区域,该区域可以又看到Layer1 上 5×5 大小的区域。

所以,感受野是个相对概念,某层feature map上的元素看到前面不同层上的区域范围是不同的,通常在不特殊指定的情况下,感受野指的是看到输入图像上的区域。
参考:彻底搞懂感受野的含义与计算
如何理解CNN中的感受野(receptive-field)以及如何计算感受野?

2. 什么是feature map?

feature map是经过卷积核卷积之后得到的map上融合前一个图像的特征。feature map的数量就是卷积核的数量,有多少个卷积核(滤波器),就会经过卷积产生多少个feature map。

3. 卷积的3种模式
full mode: 从filter核image刚相交开始做卷积
same mode: pad so that output size is the same as the input size
valid mode: no padding
图示参考:卷积的三种模式full, same, valid以及padding的same, valid

4. (1)nn. Conv2d(in_channels, out_channels, kernel_size, stride=1, padding=0,dilation=1, groups=1, bias=True, padding_mode= ‘zeros’ )

  • dilation: 这个参数决定了是否采用空洞卷积,默认为1(不采用)。从中文上来讲,这个参数的意义从卷积核上的一个参数到另一个参数需要走过的距离,那当然默认是1了,毕竟不可能两个不同的参数占同一个地方吧(为0)。更形象和直观的图示可以观察Github上的Dilated convolution animations,展示了dilation=2的情况。

参考链接:Pytorch学习笔记(二):nn.Conv2d()函数详解
(2)卷积操作中对padding的计算

5. Conv1d/Conv2d/Conv3d
在这里插入图片描述
PyTorch:学习conv1D,conv2D和conv3D
简要解释什么是Conv1d,Conv2d,Conv3d
Pytorch学习笔记(二):nn.Conv2d()函数详解

6. nn.BatchNorm2d和nn.MaxPool2d
Pytorch学习笔记(三):nn.BatchNorm2d()函数详解
Pytorch学习笔记(四):nn.MaxPool2d()函数详解
BatchNorm2d原理、作用及其pytorch中BatchNorm2d函数的参数讲解(这个讲解得好)
PyTorch踩坑指南(1)nn.BatchNorm2d()函数(这个讲解得好)

7. 激活函数
Leaky ReLU是ReLU函数的一种变形,是一种专门设计用于解决Dead ReLU问题的激活函数。使用0.01的小值来初始化神经元。inplace=True,对原变量覆盖,没有通过中间变量,直接覆盖原变量的值,这样节省内存。
参考:PyTorch | 激活函数(Sigmoid、Tanh、ReLU和Leaky ReLU)

pytorch中nn.LeakyReLU()函数?
nn.LeakyReLU()函数的参数inplace参数的意义是什么?为什么在GAN训练中,将其设为FALSE 和 TRUE 差异很大!

PyTorch------nn.ReLU(inplace = True)详解

8.【深度学习基本概念】上采样、下采样、卷积、池化

9.CNN卷积层、全连接层的参数量、计算量

二、目标检测

  1. Top-1 Accuracy 和Top-5 Accuracy
    ImageNet大概有1000个分类,模型预测某张图片时,会给出1000个按概率从高到低的类别排名。
    Top-1 Accuracy是指排名第一的类别与实际结果相符的准确率;Top-5 Accuracy是指排名前五的类别包含实际结果的准确率。
    参考:常见的Top-1和Top-5有什么区别?(有例子解释)

  2. 图像分类和目标检测
    图像分类:只需要判断输入的图像中是否包含感兴趣物体
    目标检测:需要在识别图片中目标类别的基础上,还要精确定位到目标的具体位置,并用外接矩形框标出。
    目标检测基础知识介绍

  3. 锚框 or 先验框
    在众多经典的目标检测模型中,均有先验框的说法,有的paper(如Faster RCNN)中称之为anchor(锚点),有的paper(如SSD)称之为prior bounding box(先验框),实际上是一个概念。
    科普:目标检测Anchor是什么?怎么科学设置?[附代码]
    怎么理解anchor?
    什么是anchor-based 和anchor free?
    终于知道anchor框为啥这样设计了

  4. 目标检测入门查询的资料
    神经网络模型保存下载model.state_dict()等用法和功能
    pytorch系列8 --self.modules() 和 self.children()的区别

  5. 什么是Hard negative mining?

  6. 目标检测网络训练的大致流程

    • 设置各种超参数
    • 定义数据加载模块 dataloader
    • 定义网络 model
    • 定义损失函数 loss
    • 定义优化器 optimizer
    • 遍历训练数据,预测–计算loss–反向传播
  7. pytorch torch.backends.cudnn设置作用

  8. pytorch中优化器optimizer.param_groups

  9. Pytorch中,动态调整学习率、不同层设置不同学习率和固定某些层训练的方法
    不同层设置不同的学习率

  10. 目标检测的常用数据处理方法!
    参考博客-Datawhale

    • 对VOC类数据集的格式进行转换处理。提前将记录标注信息的xml文件(Annotations)进行解析,并将信息整理到json文件之中,这样在运行训练脚本时,只需简单的从json文件中读取已经按想要的格式存储好的标签信息即可。可以直接使用这里的脚本
      注意为什么得到的新坐标减1
      VOC的矩形标注坐标是以1为基准的(1-based),而我们在处理图像坐标都是0起始的(0-based)。所以在这里才要对从xml文件中读取的xmin,ymin,xmax,ymax 统统减1将坐标变为我们做数据处理时所需要的0-based坐标。
      返回值的形状boxes (n,4) 的list,label (n) 的list,返回的都是标签对应的数字。difficulties (n)的list,返回的只有0或1。
  11. 单阶段、双阶段、anchor-based、anchor-free这四者之间有什么联系吗?
    单阶段、双阶段、anchor-based、anchor-free 4者的联系应该分成两个并行维度来讲。
    单阶段和双阶段划分依据是是否存在显式的 roi 特征提取过程,典型的双阶段算法是 faster rcnn,其包括 RPN 和 RCNN 两个模块,RPN 模块负责提取 ROI,然后通过 roipool 或者 roialign 进行 roi 特征切割提取,最后在输入到 RCNN 中进行识别和定位。如果没有显式 roi 提取过程则认为是单阶段算法,例如典型的 yolo、retinanet 等等。一般而言,双阶段算法精度高但是速度慢一些,单阶段精度稍微低一点但是速度容易优化到比较快,但是随着算法的发展,两者的界限越来越模糊,两者结合的也有例如带 refine 阶段的 reppoints,可以认为是 1.5 阶段。
    而 anchor-based、anchor-free 是从是否需要显式定义先验 anchor 角度区分,如果需要定义 anchor 那么就是 anchor-base,目前主流算法大部分都是这个类型,例如 faster rcnn、retinanet 和 yolo 等等;而 anchor-free 是从 2019 年开始慢慢流行,其最大优势是不需要设置麻烦且有重大影响的 anchor,输出是对每个输出特征图上点进行分类和定位建模,参数稍微少一些,更加容易理解,典型算法是 fcos、atss 和 sabl 等等。

三、深度学习中的概念

1.训练与推理阶段

  • 训练阶段
    训练阶段:是神经网络在输入数据,通过数据和对应标签不断调整权重的过程,即生成模型的过程。

  • 推理阶段
    推理阶段:当网络训练完毕后(权重不更新),输入数据后神经网络对其进行处理(比如输入猫的图片,神经网络将图片分类为猫),即模型开始工作进行预测。

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/2023面试高手/article/detail/73132
推荐阅读
相关标签
  

闽ICP备14008679号