目录
1.内容回顾
上一节中讲到了卷积神经网络的相关知识,从深度学习平台出发,通过介绍卷积神经网络的历史和基本概念,了解了LeNet-5网络,下面将对基本卷积神经网络进行进一步介绍。并开始介绍目标检测。
2.基本卷积神经网络
2.1 AlexNet
2.1.1 网络结构
2.1.2 网络说明
网络一共有8层可学习层——5层卷积层和3层全连接层
(1) 改进
-池化层均采用最大池化
最简单、通用的图像数据变形的方式
- 平移变换
- 反射变换
- 光照、彩色变换
-选用ReLU作为非线性环节激活函数
- 激活函数采用ReLU替代 Tan Sigmoid
- 用于卷积层与全连接层之后
-网络规模扩大,参数数量接近6000万
- 在每个全连接层后面使用一个 Dropout 层,以概率 p 随机关闭激活函数
-出现“多个卷积层+一个池化层”的结构
- AlexNet使用两块GTX580显卡进行训练,两块显卡只需要在特定的层进行通信
(2) 普遍规律
-随网络深入,宽、高衰减,通道数增加
(3) 左侧:连接数 右侧:参数
2.2 VGG-16
2.2.1 可视化
2.2.2 网络结构
2.2.3 网络说明
(1)改进
- -网络规模进一步增大,参数数量约为1.38亿
- -由于各卷积层、池化层的超参数基本相同,整体结构呈现出规整的特点。
(2)普遍规律
- -随网络深入,高和宽衰减,通道数增多
2.3 残差网络
2.3.1 为什么需要
- 非残差网络的缺陷
- 残差网络的优势
- 梯度消失问题
2.3.2 构建残差网络
(1)首先,残差网络由残差块和残差网络构成。
- 残差块
- 残差网络
(2)构建残差网络的步骤:
- 定义输入层:残差网络的输入层通常是一个卷积层或池化层,用于对输入进行初步处理。
- 堆叠残差块:每个残差块由多个卷积层组成,其中每个卷积层的输出被加到最终输出之前的残差中。这样做的好处是可以让模型学习到输入和输出之间的差异,而不是直接学习输出。
- 定义输出层:通常是一个全局平均池化层,将最终输出的特征图转换成一个向量,用于分类或回归。
- 训练模型:使用反向传播算法和随机梯度下降等优化算法对模型进行训练。
2.4 常用数据集
MNIST,PASCAL VOC,MS COCO,ImageNet
3.深度学习视觉应用
3.1 算法评估
3.1.1相关概念
TP: 被正确地划分为正例的个数,即实际为正例且被分类器划分为正例的实例数
FP: 被错误地划分为正例的个数,即实际为负例但被分类器划分为正例的实例数
FN:被错误地划分为负例的个数,即实际为正例但被分类器划分为负例的实例数
TN: 被正确地划分为负例的个数,即实际为负例且被分类器划分为负例的实例
P(精确率): TP/(TP+FP)
R(召回率): TP/(TP+FN)。召回率越高,准确度越低
P-R曲线
精度(准确率)越高,召回率越低。
AP计算
3.2 目标检测
3.2.1 目标检测问题
目标检测是在给定的图片中精确找到物体所在位置,并标注出物体的类别。物体的尺寸变化范围很大,摆放物体的角度,姿态不定,而且可以出现在图片的任何地方,并且物体还可以是多个类别。
目标检测结果通过数据集输出表达
3.2.2 目标检测基本思想
3.2.2.1 滑动窗口
问题
- 滑动次数太多,计算太慢
- 目标大小不同,每一个滑动位置需要用很多框
改进
- 一般图片中,大多数位置都不存在目标。
- 可以确定那些更有可能出现目标的位置,再有针对性的用CNN进 行检测——两步法(Region Proposal)
- 两步法依然很费时!进一步减少出现目标的位置,而且将目标分类检测和定位问题合在一个网络里——一步法(YOLO)
一步法基本思想
(1)简化的二分类问题:只检测一类
- 分成互补重叠的cell
- 产生问题:目标的大小和位置无法确定
(2)分类问题扩展为回归+分类问题
问题1:有一个框里有多个,有个多个框里有一个,怎么办?
多个框里有一个目标,取目标中心点所在框;一个框里有多个,暂不能解决。
问题 2 :多类目标怎么办?
使用独热编码扩展类别数。
问题3:小目标怎么办?
使用单独网络拟合小目标,即设置多个bounding box。