没有合适的资源?快使用搜索试试~ 我知道了~
资源推荐
资源详情
资源评论
计算机视觉四⼤任务(分类、定位、检测、分割)
前⾔前⾔
全⽂来源于所作的
⼤佬毕业于南京⼤学LAMDA,主攻机器学习、深度学习、计算机视觉,出版了书籍《深度学习 视频理解》,也常常分享相关知识,特别细
致,⼤家感兴趣的可以知乎关注。侵权⽴删,还望告知。
计算机视觉
(Computer Vision)⼜称为机器视觉(Machine Vision),顾名思义是⼀门“教”会计算机如何去“看”世界的学科。
存在的难题包括:
语义鸿沟(semantic gap):⼈类可以轻松地从图像中识别出⽬标,⽽计算机看到的图像只是⼀组0到255之间的整数。
计算机视觉任务的其他困难 拍摄视⾓变化、⽬标占据图像的⽐例变化、光照变化、背景融合、⽬标形变、遮挡等。
卷积神经⽹络(卷积神经⽹络(convolutional neural networks,,CNN))
经典的多层感知机由⼀系列全连接层组成,卷积神经⽹络中除全连接层外,还有卷积层和汇合(pooling)层。
(1) 卷积层卷积层
为什么要⽤卷积层 输⼊图像通常很维数很⾼,例如,1,000×1,000⼤⼩的彩⾊图像对应于三百万维特征。因此,继续沿⽤多层感知机中
的全连接层会导致庞⼤的参数量。⼤参数量需要繁重的计算,⽽更重要的是,⼤参数量会有更⾼的过拟合风险。卷积是局部连接、共享参数
版的全连接层。这两个特性使参数量⼤⼤降低。卷积层中的权值通常被成为滤波器(filter)或卷积核(convolution kernel)。
局部连接 在全连接层中,每个输出通过权值(weight)和所有输⼊相连。⽽在视觉识别中,关键性的图像特征、边缘、⾓点等只占据了整张图
像的⼀⼩部分,图像中相距很远的两个像素之间有相互影响的可能性很⼩。因此,在卷积层中,每个输出神经元在通道⽅向保持全连接,⽽
在空间⽅向上只和⼀⼩部分输⼊神经元相连。
共享参数 如果⼀组权值可以在图像中某个区域提取出有效的表⽰,那么它们也能在图像的另外区域中提取出有效的表⽰。也就是说,如果
⼀个模式(pattern)出现在图像中的某个区域,那么它们也可以出现在图像中的其他任何区域。因此,卷积层不同空间位置的神经元共享权
值,⽤于发现图像中不同空间位置的模式。共享参数是深度学习⼀个重要的思想,其在减少⽹络参数的同时仍然能保持很⾼的⽹络容量
(capacity)。卷积层在空间⽅向共享参数,⽽循环神经⽹络(recurrent neural networks,RNN)在时间⽅向共享参数。
卷积层的作⽤ 通过卷积,我们可以捕获图像的局部信息。通过多层卷积层堆叠,各层提取到特征逐渐由边缘、纹理、⽅向等低层级特征过
渡到⽂字、车轮、⼈脸等⾼层级特征。
卷积层中的卷积和数学教材中的卷积是什么关系 基本没有关系。卷积层中的卷积实质是输⼊和权值的互相关(cross-correlation)函数,⽽
不是数学教材中的卷积。
描述卷积的四个量 ⼀个卷积层的配置由如下四个量确定。
1. 滤波器个数。使⽤⼀个滤波器对输⼊进⾏卷积会得到⼀个⼆维的特征图(feature map)。我们可以⽤时使⽤多个滤波器对输⼊进⾏卷
积,以得到多个特征图。
2. 感受野(receptive field)
F
,即滤波器空间局部连接⼤⼩。
3. 零填补(zero-padding)
P
。随着卷积的进⾏,图像⼤⼩将缩⼩,图像边缘的信息将逐渐丢失。因此,在卷积前,我们在图像上下左右
填补⼀些0,使得我们可以控制输出特征图的⼤⼩。
4. 步长(stride)
S
。滤波器在输⼊每移动
S
个位置计算⼀个输出神经元。
卷积输⼊输出的⼤⼩关系 假设输⼊⾼和宽为
H
和
W
,输出⾼和宽为
H
'和
W
', 则
H
'=(
H
-
F
+2
P
)/
S
+1,
W
'=(
W
-
F
+2
P
)/
S
+1. 当
S
=1时,通过设
定
P
=(
F
-1)/2, 可以保证输⼊输出空间⼤⼩相同。例如,3*3的卷积需要填补⼀个像素使得输⼊输出空间⼤⼩不变。
应该使⽤多⼤的滤波器 尽量使⽤⼩的滤波器,如3×3卷积。通过堆叠多层3×3卷积,可以取得与⼤滤波器相同的感受野,例如三层3×3
卷积等效于⼀层7×7卷积的感受野。但使⽤⼩滤波器有以下两点好处。
1. 更少的参数量。假设通道数为
D
,三层3×3卷积的参数量为3×(
D
×
D
×3×3)=27
D
^2, ⽽⼀层7×7卷积的参数量
为
D
×
D
×7×7=49
D
^2。
2. 更多⾮线性。由于每层卷积层后都有⾮线性激活函数,三层3×3卷积⼀共经过三次⾮线性激活函数,⽽⼀层7×7卷积只经过⼀次。
1×1卷积 旨在对每个空间位置的
D
维向量做⼀个相同的线性变换。通常⽤于增加⾮线性,或降维,这相当于在通道数⽅向上进⾏了压
缩。1×1卷积是减少⽹络计算量和参数的重要⽅式。
全连接层的卷积层等效 由于全连接层和卷积层都是做点乘,这两种操作可以相互等效。全连接层的卷积层等效只需要设定好卷积层的四个
量:滤波器个数等于原全连接层输出神经元个数、感受野等于输⼊的空间⼤⼩、没有零填补、步长为1。
为什么要将全连接层等效为卷积层 全连接层只能处理固定⼤⼩的输⼊,⽽卷积层可以处理任意⼤⼩输⼊。假设训练图像⼤⼩是
224×224,⽽当测试图像⼤⼩是256×256。如果不进⾏全连接层的卷积层等效,我们需要从测试图像中裁剪出多个224×224区域分
别前馈⽹络。⽽进⾏卷积层等效后,我们只需要将256×256输⼊前馈⽹络⼀次,即可达到多次前馈224×224区域的效果。
卷积结果的两种视⾓ 卷积结果是⼀个
D
×
H
×
W
的三维张量。其可以被认为是有
D
个通道,每个通道是⼀个⼆维的特征图,从输⼊中捕获了
某种特定的特征。也可以被认为是有
H
×
W
个空间位置,每个空间位置是⼀个
D
维的描述向量,描述了对应感受野的图像局部区域的语义特
征。
卷积结果的分布式表⽰ 卷积结果的各通道之间不是独⽴的。卷积结果的各通道的神经元和语义概念之间是⼀个“多对多”的映射。即,每
个语义概念由多个通道神经元⼀起表⽰,⽽每个神经元⼜同时参与到多个语义概念中去。并且,神经元响应是稀疏的,即⼤部分的神经元输
出为0。
卷积操作的实现 有如下⼏种基本思路。
1. 快速傅⾥叶变换(FFT)。通过变换到频域,卷积运算将变为普通矩阵乘法。实际中,当滤波器尺⼨⼤时效果好,⽽对于通常使⽤的
1×1和3×3卷积,加速不明显。
2. im2col (image to column)。im2col将与每个输出神经元相连的局部输⼊区域展成⼀个列向量,并将所有得到的向量拼接成⼀个矩
阵。这样卷积运算可以⽤矩阵乘法实现。im2col的优点是可以利⽤矩阵乘法的⾼效实现,⽽弊端是会占⽤很⼤存储,因为输⼊元素会
在⽣成的矩阵中多次出现。此外,Strassen矩阵乘法和Winograd也常被使⽤。现有的计算库如MKL和cuDNN,会根据滤波器⼤⼩
选择合适的算法。
(2) 汇合层(池化层)汇合层(池化层)
汇合层 根据特征图上的局部统计信息进⾏下采样,在保留有⽤信息的同时减少特征图的⼤⼩。和卷积层不同的是,汇合层不包含需要学习
的参数。最⼤汇合(max-pooling)在⼀个局部区域选最⼤值作为输出,⽽平均汇合(average pooling)计算⼀个局部区域的均值作为输出。
局部区域汇合中最⼤汇合使⽤更多,⽽全局平均汇合(global average pooling)是更常⽤的全局汇合⽅法。
汇合层的作⽤ 汇合层主要有以下三点作⽤。
1. 增加特征平移不变性。汇合可以提⾼⽹络对微⼩位移的容忍能⼒。
2. 减⼩特征图⼤⼩。汇合层对空间局部区域进⾏下采样,使下⼀层需要的参数量和计算量减少,并降低过拟合风险。
3. 最⼤汇合可以带来⾮线性。这是⽬前最⼤汇合更常⽤的原因之⼀。近年来,有⼈使⽤步长为2的卷积层代替汇合层。⽽在⽣成式模型
中,有研究发现,不使⽤汇合层会使⽹络更容易训练。
图像分类图像分类(image classification)
给定⼀张输⼊图像,图像分类任务旨在判断该图像所属类别。
(1) 图像分类常⽤数据集图像分类常⽤数据集
MNIST 60k训练图像、10k测试图像、10个类别、图像⼤⼩1×28×28、内容是0-9⼿写数字。
CIFAR-10 50k训练图像、10k测试图像、10个类别、图像⼤⼩3×32×32。
CIFAR-100 50k训练图像、10k测试图像、100个类别、图像⼤⼩3×32×32。
ImageNet 1.2M训练图像、50k验证图像、1k个类别。2017年及之前,每年会举⾏基于ImageNet数据集的ILSVRC竞赛,这相当于计算
机视觉界奥林匹克。
(2) 图像分类经典⽹络结构图像分类经典⽹络结构
基本架构 我们⽤conv代表卷积层、bn代表批量归⼀层、pool代表汇合层。最常见的⽹络结构顺序是conv -> bn -> relu -> pool,其中卷积
层⽤于提取特征、汇合层⽤于减少空间⼤⼩。随着⽹络深度的进⾏,图像的空间⼤⼩将越来越⼩,⽽通道数会越来越⼤。
针对你的任务,如何设计⽹络? 当⾯对你的实际任务时,如果你的⽬标是解决该任务⽽不是发明新算法,那么不要试图⾃⼰设计全新的⽹
络结构,也不要试图从零复现现有的⽹络结构。找已经公开的实现和预训练模型进⾏微调。去掉最后⼀个全连接层和对应softmax,加上对
应你任务的全连接层和softmax,再固定住前⾯的层,只训练你加的部分。如果你的训练数据⽐较多,那么可以多微调⼏层,甚⾄微调所有
层。
LeNet-5 60k参数。⽹络基本架构为:conv1 (6) -> pool1 -> conv2 (16) -> pool2 -> fc3 (120) -> fc4 (84) -> fc5 (10) ->
softmax。括号中的数字代表通道数,⽹络名称中有5表⽰它有5层conv/fc层。当时,LeNet-5被成功⽤于ATM以对⽀票中的⼿写数字进
⾏识别。LeNet取名源⾃其作者姓LeCun。
AlexNet 60M参数,ILSVRC 2012的冠军⽹络。⽹络基本架构为:conv1 (96) -> pool1 -> conv2 (256) -> pool2 -> conv3 (384) -
> conv4 (384) -> conv5 (256) -> pool5 -> fc6 (4096) -> fc7 (4096) -> fc8 (1000) -> softmax。AlexNet有着和LeNet-5相似⽹
络结构,但更深、有更多参数。conv1使⽤11×11的滤波器、步长为4使空间⼤⼩迅速减⼩(227×227 -> 55×55)。AlexNet的关键点
是:
1. 使⽤了ReLU激活函数,使之有更好的梯度特性、训练更快。
2. 使⽤了随机失活(dropout)。
3. ⼤量使⽤数据扩充技术。
AlexNet的意义在于它以⾼出第⼆名10%的性能取得了当年ILSVRC竞赛的冠军,这使⼈们意识到卷积神经⽹络的优势。此外,AlexNet也
使⼈们意识到可以利⽤GPU加速卷积神经⽹络训练。AlexNet取名源⾃其作者名Alex。
VGG-16/VGG-19 138M参数,ILSVRC 2014的亚军⽹络。VGG-16的基本架构为:conv1^2 (64) -> pool1 -> conv2^2 (128) ->
pool2 -> conv3^3 (256) -> pool3 -> conv4^3 (512) -> pool4 -> conv5^3 (512) -> pool5 -> fc6 (4096) -> fc7 (4096) -> fc8
(1000) -> softmax。 ^3代表重复3次。VGG⽹络的关键点是:
1. 结构简单,只有3×3卷积和2×2汇合两种配置,并且重复堆叠相同的模块组合。卷积层不改变空间⼤⼩,每经过⼀次汇合层,空间⼤
⼩减半。
2. 参数量⼤,⽽且⼤部分的参数集中在全连接层中。⽹络名称中有16表⽰它有16层conv/fc层。
3. 合适的⽹络初始化和使⽤批量归⼀(batch normalization)层对训练深层⽹络很重要。
在原论⽂中⽆法直接训练深层VGG⽹络,因此先训练浅层⽹络,并使⽤浅层⽹络对深层⽹络进⾏初始化。在BN出现之后,伴随其他技术,
后续提出的深层⽹络可以直接得以训练。VGG-19结构类似于VGG-16,有略好于VGG-16的性能,但VGG-19需要消耗更⼤的资源,因此
实际中VGG-16使⽤得更多。由于VGG-16⽹络结构⼗分简单,并且很适合迁移学习,因此⾄今VGG-16仍在⼴泛使⽤。VGG-16和VGG-
19取名源⾃作者所处研究组名(Visual Geometry Group)。
GoogLeNet 5M参数,ILSVRC 2014的冠军⽹络。GoogLeNet试图回答在设计⽹络时究竟应该选多⼤尺⼨的卷积、或者应该选汇合层。
其提出了Inception模块,同时⽤1×1、3×3、5×5卷积和3×3汇合,并保留所有结果。⽹络基本架构为:conv1 (64) -> pool1 ->
conv2^2 (64, 192) -> pool2 -> inc3 (256, 480) -> pool3 -> inc4^5 (512, 512, 512, 528, 832) -> pool4 -> inc5^2 (832,
1024) -> pool5 -> fc (1000)。GoogLeNet的关键点是:
1. 多分⽀分别处理,并级联结果。
2. 为了降低计算量,⽤了1×1卷积降维。GoogLeNet使⽤了全局平均汇合替代全连接层,使⽹络参数⼤幅减少。
GoogLeNet取名源⾃作者所处单位(Google),其中L⼤写是为了向LeNet致敬,⽽Inception的名字来源于盗梦空间中的"we need to go
deeper"梗。
剩余15页未读,继续阅读
资源评论
- weixin_444594632023-11-26怎么能有这么好的资源!只能用感激涕零来形容TAT...
- Fontainebleau042022-06-21用户下载后在一定时间内未进行评价,系统默认好评。
_webkit
- 粉丝: 30
- 资源: 1万+
下载权益
C知道特权
VIP文章
课程特权
开通VIP
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- 论文(最终)_20240430235101.pdf
- 基于python编写的Keras深度学习框架开发,利用卷积神经网络CNN,快速识别图片并进行分类
- 最全空间计量实证方法(空间杜宾模型和检验以及结果解释文档).txt
- 5uonly.apk
- 蓝桥杯Python组的历年真题
- 2023-04-06-项目笔记 - 第一百十九阶段 - 4.4.2.117全局变量的作用域-117 -2024.04.30
- 2023-04-06-项目笔记 - 第一百十九阶段 - 4.4.2.117全局变量的作用域-117 -2024.04.30
- 前端开发技术实验报告:内含4四实验&实验报告
- Highlight Plus v20.0.1
- 林周瑜-论文.docx
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功