0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

卷积神经网络是怎样实现不变性特征提取的?

新机器视觉 来源:OpenCV学堂 作者:OpenCV学堂 2021-04-30 09:11 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

图像特征

传统的图像特征提取(特征工程)主要是基于各种先验模型,通过提取图像关键点、生成描述子特征数据、进行数据匹配或者机器学习方法对特征数据二分类/多分类实现图像的对象检测与识别。卷积神经网络通过计算机自动提取特征(表示工程)实现图像特征的提取与抽象,通过MLP实现数据的回归与分类。二者提取的特征数据都具不变性特征。

f71e58ea-a929-11eb-9728-12bb97331649.jpg

卷积神经网络为什么能提取到图像特征,其关键在于卷积神经网络有两种不同类型的层

-卷积层(convolution layers/detection layers)

-池化层(pooling layers)

卷积层

卷积层是一系列滤波器集合(filters set)、它的输出结果被称为特征映射(feature maps),每个feature map都一个filter在图像上卷积得到的输出。一般情况下都会输出结果加线性修正,对卷积层常用就是ReLU

f72949da-a929-11eb-9728-12bb97331649.png

这样做的好处是:

卷积是一个线性操作,我们需要一个非线性组合,否则两个卷积卷积层还不如一个卷积层

两个相反方向的边缘不应该被取消

使图像梯度值更加的稀疏、有助于提高反向传播的效果

假设灰度输入图像,有两个filter,卷积层生成过程如下所示:

假设灰度输入图像,有两个filter,卷积层生成过程如下所示:

f7332e50-a929-11eb-9728-12bb97331649.jpg

膨胀卷积

通常我们常见的卷积层操作使用的filter都是基于连续邻近像素的,除了这种卷积filter之后另外还有一张卷积filter被称为膨胀卷积,其算子的分布更加的稀疏,图示如下:

f73ee704-a929-11eb-9728-12bb97331649.jpg

膨胀卷积在不增加网络总参数的情况下,提升每个感受野的尺度大小。

1x1卷积

1x1的卷积首次使用是在Network In Network网络模型中,后来受到越来越多的关注,在一般情况下我们的卷积是2D的,1x1的卷积操作是毫无意义的,但是对卷积神经网络来说,它的卷积层是三维的,所以1x1的卷积操作是有意义的。

f77ec374-a929-11eb-9728-12bb97331649.jpg

卷积层大小计算

对于一个输入大小WxW的feature map,假设Filter的大小位FxF,卷积时填充边缘P个像素、卷积步长(stride)为S则输出的大小为:

f7a9c042-a929-11eb-9728-12bb97331649.png

在多数深度学习框架中支持两种输出大小计算:

padding = “same”

意味着使用填充边缘的方式,输出大小与输入的feature map大小保持不变

padding = “valid”

意味着不使用边缘填充,即P=0此时输出大小为:

f7b36d4a-a929-11eb-9728-12bb97331649.png

池化层

在卷积层提取到的特征数据不具备空间不变性(尺度与迁移不变性特征),只有通过了池化层之后才会具备空间不变性特征。池化层是针对每个feature map进行池化操作,池化操作的窗口大小可以指定为任意尺寸,主要有两种类型的池化操作

-下采样池化(均值池化)

-最大值池化

下采样池化

f7cb92e4-a929-11eb-9728-12bb97331649.png

对每个窗口大小取均值,然后乘以标量beta加上我们增益偏置b的输出

最大值池化

f7d574e4-a929-11eb-9728-12bb97331649.png

无论是选择哪种池化方式都会输出一个新低分辨率feature map,多数时候这个过程中会包含一定的信息损失,所以卷积神经网络一般通过扩展深度(增加feature map的数量)来补偿。

重叠窗口与稀疏窗口

在进行池化的时候我们如果选择步长=1进行池化,通过这样的池化方式输出的结果我们称为重叠池化输出,它不利于特征的稀疏生成,重叠窗口池化与均值池化都有这样的缺点,所以经常采样的是最大值池化,同时不会进行窗口重叠,有实验结果表明,在卷积层保持相同feature map与参数的情况下,最大值池化的结果明显优于重叠池化与均值池化,而且网络的深度越深,两者之间的准确度差异越大。

总结

最终卷积神经网络经过池化层操作对单位像素迁移和亮度影响进行了校正,做到了图像的迁移与亮度不变性的特征提取、而且在池化过程中通过不断的降低图像分辨率,构建了图像的多尺度特征,所以还具备尺度空间不变性,完成了图像不变性特征提取工作。

f7e0128c-a929-11eb-9728-12bb97331649.jpg

编辑:jq

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 滤波器
    +关注

    关注

    162

    文章

    8350

    浏览量

    184735
  • 图像
    +关注

    关注

    2

    文章

    1095

    浏览量

    42150
  • 卷积神经网络

    关注

    4

    文章

    371

    浏览量

    12713

原文标题:卷积神经网络是如何实现不变性特征提取的

文章出处:【微信号:vision263com,微信公众号:新机器视觉】欢迎添加关注!文章转载请注明出处。

收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    自动驾驶中常提的卷积神经网络是个啥?

    在自动驾驶领域,经常会听到卷积神经网络技术。卷积神经网络,简称为CNN,是一种专门用来处理网格状数据(比如图像)的深度学习模型。CNN在图像处理中尤其常见,因为图像本身就可以看作是由像
    的头像 发表于 11-19 18:15 1826次阅读
    自动驾驶中常提的<b class='flag-5'>卷积</b><b class='flag-5'>神经网络</b>是个啥?

    CNN卷积神经网络设计原理及在MCU200T上仿真测试

    CNN算法简介 我们硬件加速器的模型为Lenet-5的变型,网络粗略分共有7层,细分共有13层。包括卷积,最大池化层,激活层,扁平层,全连接层。下面是各层作用介绍: 卷积层:提取
    发表于 10-29 07:49

    NMSIS神经网络库使用介绍

    :   神经网络卷积函数   神经网络激活函数   全连接层函数   神经网络池化函数   Softmax 函数   神经网络支持功能
    发表于 10-29 06:08

    构建CNN网络模型并优化的一般化建议

    整个模型非常巨大。所以要想实现轻量级的CNN神经网络模型,首先应该避免尝试单层神经网络。 2)减少卷积核的大小:CNN神经网络是通过权值共
    发表于 10-28 08:02

    卷积运算分析

    的数据,故设计了ConvUnit模块实现单个感受域规模的卷积运算. 卷积运算:不同于数学当中提及到的卷积概念,CNN神经网络中的
    发表于 10-28 07:31

    NMSIS库的使用

    nmsis core、nmsis dsp和nmsis nn三个组件,分别提供了对处理器核心和外设、数字信号处理库和神经网络内核的支持。 卷积、激活、池化是卷积神经网络中常用的三种操作,
    发表于 10-24 09:58

    如何通过地址生成器实现神经网络特征图的padding?

    对于SiamFC网络结构,我们设计的卷积核宽度为3*3,卷积步长为1,则经卷积过后,特征图宽度会减少2,为了满足我们所设计的pe阵列的计算要
    发表于 10-22 08:15

    在Ubuntu20.04系统中训练神经网络模型的一些经验

    , batch_size=512, epochs=20)总结 这个核心算法中的卷积神经网络结构和训练过程,是用来对MNIST手写数字图像进行分类的。模型将图像作为输入,通过卷积和池化层提取
    发表于 10-22 07:03

    CICC2033神经网络部署相关操作

    读取。接下来需要使用扩展指令,完成神经网络的部署,此处仅对第一层卷积+池化的部署进行说明,其余层与之类似。 1.使用 Custom_Dtrans 指令,将权重数据、输入数据导入硬件加速器内。对于权重
    发表于 10-20 08:00

    卷积神经网络如何监测皮带堵料情况 #人工智能

    卷积神经网络
    jf_60804796
    发布于 :2025年07月01日 17:08:42

    BP神经网络卷积神经网络的比较

    BP神经网络卷积神经网络在多个方面存在显著差异,以下是对两者的比较: 一、结构特点 BP神经网络 : BP神经网络是一种多层的前馈
    的头像 发表于 02-12 15:53 1301次阅读

    BP神经网络实现步骤详解

    BP神经网络实现步骤主要包括以下几个阶段:网络初始化、前向传播、误差计算、反向传播和权重更新。以下是对这些步骤的详细解释: 一、网络初始化 确定
    的头像 发表于 02-12 15:50 1116次阅读

    BP神经网络的优缺点分析

    自学习能力 : BP神经网络能够通过训练数据自动调整网络参数,实现对输入数据的分类、回归等任务,无需人工进行复杂的特征工程。 泛化能力强 : BP
    的头像 发表于 02-12 15:36 1562次阅读

    BP神经网络的基本原理

    输入层、隐藏层和输出层组成。其中,输入层负责接收外部输入数据,这些数据随后被传递到隐藏层。隐藏层是BP神经网络的核心部分,它可以通过一层或多层神经元对输入数据进行加权求和,并通过非线性激活函数(如ReLU、sigmoid或tanh)进行处理,从而
    的头像 发表于 02-12 15:13 1505次阅读

    人工神经网络的原理和多种神经网络架构方法

    在上一篇文章中,我们介绍了传统机器学习的基础知识和多种算法。在本文中,我们会介绍人工神经网络的原理和多种神经网络架构方法,供各位老师选择。 01 人工神经网络   人工神经网络模型之所
    的头像 发表于 01-09 10:24 2236次阅读
    人工<b class='flag-5'>神经网络</b>的原理和多种<b class='flag-5'>神经网络</b>架构方法