CV学习笔记-CNN-VGG

简介: CV学习笔记-CNN-VGG

CNN-VGG

1 . 图像识别的过程

**获取原始信息:**通过传感器将获取到的外界信息(比如图像)转换为计算机可以处理的信号。

**预处理:**对图像进行平移变换、旋转、去噪声…操作,目的是加强图像中的感兴趣特征。

**特征抽取与特征选择:**是指在模式识别中,需要进行特征的抽取和选择。特征抽取和选择在图像识别过程中是非常关键的技术之一。

**分类器设计:**是指通过训练而得到一种识别规则,通过此识别规则可以得到一种特征分类,使图像识别

技术能够得到高识别率。分类决策是指在特征空间中对被识别对象进行分类,从而更好地识别所研究的

对象具体属于哪一类。

2. 分类与检测

分类:分类即为给定一张图片,能够完成将其判定为某个类别的工作。

检测:检测即为将给定类别的对象在图片中找出来,并给出在图片中的存在区域的工作。

2018122814580746.png

3. VGG神经网络

常见的CNN(卷积神经网络)

2018122814580746.png

笔者上一篇博客所提到的AlexNet是最经典的CNN模型,而VGG是基于AlexNet进行过改进的网络模型,后面发展出来的这几个分支的(不同色块不同分支)都有各自的优化特点,而VGG的特点是网络很深,达到了16-19层,并且用了小卷积核(3x3)

VGG19(数字代表层数,每层又包含一定的卷积、池化、全连接等操作)如下

2018122814580746.png

下面以VGG16为例进行分析:

vgg16网络结构含有参数的网络层一共有16层,即13个卷积层,5个池化层,3个全连接层,不包括激活层。(注:池化层不包含参数,故VGG16的16计算不包含无参数的层,只计算了卷积层和全连接层)

2018122814580746.png

例子:

2018122814580746.png

逐层分析:
输入图片为(224,224,3)即分辨率224x224的三通道图片信息,如果图片大小不同需要resize
通道数计算公式:N=(W-F+2P)/S + 1
conv1两次[3,3]卷积网络,输出的特征层为64,输出为(224,224,64),再2X2最大池化,输出net为
(112,112,64)。
conv2两次[3,3]卷积网络,输出的特征层为128,输出net为(112,112,128),再2X2最大池化,输出
net为(56,56,128)。
conv3三次[3,3]卷积网络,输出的特征层为256,输出net为(56,56,256),再2X2最大池化,输出net
为(28,28,256)。
conv3三次[3,3]卷积网络,输出的特征层为256,输出net为(28,28,512),再2X2最大池化,输出net
为(14,14,512)。
conv3三次[3,3]卷积网络,输出的特征层为256,输出net为(14,14,512),再2X2最大池化,输出net
为(7,7,512)。
利用卷积的方式模拟全连接层,效果等同,输出net为(1,1,4096)。共进行两次。
利用卷积的方式模拟全连接层,效果等同,输出net为(1,1,1000)。
最后输出的就是每个类的预测。

VGG的优化策略思想

使用卷积层代替全连接层

全连接层的计算方式其实就是卷积核大小为feature map大小的卷积,使用卷积层代替全连接层的办法就是将卷积核设为输入空间大小。

为什么要如此操作,因为很多计算机资源(如CUDA)对卷积操作进行了处理,能够加速,而FC却不能,故而能够提高效率。

例如VGG16第一个全连接层的输入是7x7x512,输出为1x1x4096,这可以用一个卷积核大小7x7, 步长

(stride)为1, 没有填补(padding),输出通道数4096的卷积层等效表示,其输出为1x1x4096,和全连

接层等价。后续的全连接层可以用1x1卷积等效替代。

1x1卷积

1x1卷积能够实现特征通道的升维和降维,这样使用卷积核的个数就是输出的通道数,相比池化层并不能改变通道数,其只能实现feature map的降维。


相关文章
|
机器学习/深度学习 人工智能 算法
CNN、ResNet学习笔记
CNN、ResNet学习笔记
159 0
|
机器学习/深度学习 算法 数据挖掘
CV学习笔记-卷积神经网络
CV学习笔记-卷积神经网络
250 0
CV学习笔记-卷积神经网络
|
机器学习/深度学习 人工智能 自然语言处理
深度学习与CV教程(10) | 轻量化CNN架构 (SqueezeNet,ShuffleNet,MobileNet等)
本文讲解了神经网络参数与复杂度计算,以及主流轻量级网络,包括SqueezeNet、Xception、ShuffleNet v1~v2、MobileNet v1~v3等
3498 24
深度学习与CV教程(10) | 轻量化CNN架构 (SqueezeNet,ShuffleNet,MobileNet等)
|
机器学习/深度学习 算法 算法框架/工具
R-CNN:Faster R-CNN 模型学习笔记
R-CNN 系列模型是目标检测里的经典模型,同时也是 Caffe 的经典模型,所以为了学习 Caffe 和目标检测算法的知识,通过观看论文、网上的资料以及试着用自己的数据训练一个 Faster R-CNN 后,对于 Faster R-CNN 有了初步的了解,在此把论文内容和自己的理解整理并写下来。
167 0
|
机器学习/深度学习 数据采集 移动开发
【学习笔记】使用Keras构建CNN网络完成猫狗分类(适合初学者,简单易上手)
【学习笔记】使用Keras构建CNN网络完成猫狗分类(适合初学者,简单易上手)
【学习笔记】使用Keras构建CNN网络完成猫狗分类(适合初学者,简单易上手)
|
机器学习/深度学习 传感器 自动驾驶
自动驾驶中的卷积神经网络(3)|学习笔记
快速学习自动驾驶中的卷积神经网络(3)
自动驾驶中的卷积神经网络(3)|学习笔记
|
传感器 机器学习/深度学习 编解码
自动驾驶中的卷积神经网络(2)|学习笔记
快速学习自动驾驶中的卷积神经网络(2)
自动驾驶中的卷积神经网络(2)|学习笔记
|
机器学习/深度学习 算法 自动驾驶
自动驾驶中的卷积神经网络(1)|学习笔记
快速学习自动驾驶中的卷积神经网络(1)
自动驾驶中的卷积神经网络(1)|学习笔记
|
机器学习/深度学习 人工智能 自然语言处理
深度学习与CV教程(9) | 典型CNN架构 (Alexnet,VGG,Googlenet,Resnet等)
本文讲解最广泛使用的卷积神经网络,包括经典结构(AlexNet、VGG、GoogLeNet、ResNet)和一些新的结构(Network in Network、Resnet改进、FractalNet、DenseNet)等【对应 CS231n Lecture 9】
1689 3
深度学习与CV教程(9) | 典型CNN架构 (Alexnet,VGG,Googlenet,Resnet等)
|
机器学习/深度学习 存储 人工智能
深度学习与CV教程(12) | 目标检测 (两阶段,R-CNN系列)
本文讲解两阶段(two stage)目标检测的发展史和典型算法:R-CNN、SPP-Net、Fast R-CNN、Faster R-CNN等的算法结构和核心流程【对应 CS231n Lecture 11】
1557 1
深度学习与CV教程(12) | 目标检测 (两阶段,R-CNN系列)

热门文章

最新文章

相关实验场景

更多