深度学习--TensorFlow(8)CNN卷积神经网络理论(计算机视觉)
目录
计算机视觉介绍
1、计算机视觉应用
2、计算机视觉技术
图像分类
目标检测
目标跟踪
语义分割
实例分割
BP神经网络的缺点
一、卷积神经网络简介
1、卷积
2、全连接与局部感受野
3、权值共享
二、卷积计算
三、不同卷积核
四、池化
池化作用
池化分类
五、Padding
六、常见的卷积计算
1、对一张图像卷积生成一张特征图
2、对一张图像卷积生成多张特征图
3、对多张图像卷积生成一张特征图
4、对多张图像进行卷积生成多张特征图
七、经典神经网络
CNN应用在手写数字识别
计算机视觉是人工智能领域最热门的研究领域之一,并且是近几年发展最快的人工智能领域之一。CV(Computer Vision)领域的快速发展主要得益于卷积神经网络的使用。
计算机视觉介绍
1、计算机视觉应用
人脸识别
图像检索(搜索引擎图片搜索)
监控
自动驾驶(检测交通标志、路上的行人和车辆等)
2、计算机视觉技术
图像分类
图像分类就是图像识别,识别一张图片中的物体,然后给出类别判断。一般对一张图片我们可能会得到多个类别判断,我们可以根据类别的置信度(模型认为图片属于该类别的概率)从高到低进行排序,然后得到可能性最大的几个类别。![]()
目标检测
有时候我们不仅要识别图片是属于什么类别,还需要把它们给框选出来、确定它们在图片中的位置和大小。![]()
目标跟踪
目标跟踪是指在特定场景跟踪某一个或多个特定感兴趣对象的过程。![]()
语义分割
语义分割可以将图像分为不同的语义可解释类别,例如我们可能会把图片中汽车的颜色都用蓝色的表示,所有行人用红色表示。与图像分类或目标检测相比,语义分割可以让我们对图像有更加细致的了解。![]()
实例分割
实例分割可以将不同类型的实例进行分类,比如用 4 种颜色来表示 4 辆不同的汽车,用8 种颜色表示 8 个不同的人。
BP神经网络的缺点
有一个细节问题当时我们可能没有注意到,当时我们使用的手写数字图片是 28×28 的黑白图片,输入数据一共有 28×28×1 个数据,所以输入层只需要 784 个神经元。假如我们有一张1000 * 1000的彩色图片,那么输入层神经元就需要 1000×1000×3 个,我们使用带有一个隐藏层的神经网络,隐藏层神经元个数为 1000,那么输入层和隐藏层之间权值的个数就会有 30 亿个,这是一个非常巨大的数字。如此大量的权值会带来两个问题,一个问题是计算量巨大,要计算这么多权值就需要花费大量时间。第二个问题是要训练这么多权值就需要大量的训练样本来进行训练,防止模型过拟合。因此我们需要使用卷积神经网络解决计算机视觉任务中权值数量巨大的问题。
一、卷积神经网络简介
1、卷积
卷积目的:找到特征。
剔除不重要的信息,保留重要的信息。
不同卷积核提取不同特征。
卷积神经网络就是一种包含卷积计算的神经网络。卷积计算是一种计算方式,有一个卷积窗口(Convolution Window)在一个平面上滑动,每次滑动会进行一次卷积计算得到一个数值,卷积窗口滑动计算完成后会得到一个用于表示图像特征的特征图。
2、全连接与局部感受野
3、权值共享
外卷积神经网络还用到了权值共享(Weight Sharing)。这里的权值共享指的是同一卷积层中的同一个卷积窗口的权值是共享的。
例:
使用 3×3 的卷积窗口(也就是后一层的一个神经元连接前一层 3×3 的区域)对 1000×1000的图片求卷积, 那么输入层和卷积层之间一共有多少个权值需要训练?
二、卷积计算
卷积窗口又称为卷积核(Convolution Kernel),卷积之后生成的图称为特征图。卷积窗口/卷积核一般都是使用正方形的,比如 1×1,3×3,5×5 等,极少数特殊情况才会使用长方形。对一张图片求卷积实际上就是卷积核在图片上面滑动,并进行卷积计算。卷积计算很简单,就是卷积核与图片中对应位置的数值相乘然后再求和。
例:
1、
2、
3、
4、
综上:
三、不同卷积核
四、池化
池化作用
池化分类
最大池化:
平均池化:
五、Padding
扩充图片,补充像素点。
作用:
1、保留边界信息;
2、对尺寸有差异的图片进行补充,使图片尺寸一致;
3、卷积神经网络的卷积层加入Padding,可以使得卷积层的输入维度和输出维度一致;
4、卷积神经网络的池化层加入Padding,一般都是保持边界信息。
在计算卷积的时候图像中间的数据会重复使用多次,而图像边缘的数据可能只会被用到一次。四个角的四个数据只计算了一次,而图像中心的四个数据则计算了四次,这就表示卷积容易丢失掉图像的边缘特征(不过其实边缘位置的信息一般来说也没这么重要)。我们可以使用 Padding 的方式来解决。卷积和池化操作都可以使用Padding。
![](/assets/blank.gif)
六、常见的卷积计算
1、对一张图像卷积生成一张特征图
对一张图像卷积生成一张特征图是最简单的卷积方式:
2、对一张图像卷积生成多张特征图
生成多张特征图需要多个不同的卷积核求卷积。(有几个卷积核生成几张特征图)
3个卷积核(3个特征图):
因为每个卷积核中的权值不同,所以使用 3 个不同的卷积核求卷积会得到 3 个不同的特征图。一个卷积核会对原始图像进行 5×5×28×28 次乘法计算,所以总共计算量为5×5×28×28×3=58800。总共有 5×5×3=75 个权值和 3 个偏置值需要训练。偏置值数量主要跟特征图数量相关,每个特征图有 1 个偏置值。
3、对多张图像卷积生成一张特征图
对 3 张图像进行卷积的时候先分别对每张图像进行卷积,得到 3 个大小相同,数值不同的特征图。然后再对每个特征图对应位置的数值进行相加,最后得到 1 个特征图。(我们对不同图像进行卷积的时候,所使用的卷积核也是不同的)
4、对多张图像进行卷积生成多张特征图
七、经典神经网络
CNN应用在手写数字识别
第一层:卷积层。
第二层:卷积层。
第三层:全连接层。
第四层:输出层。
图中原始的手写数字的图片是一张 28×28 的图片,并且是黑白的,所以图片的通道数是1,输入数据是 28×28×1 的数据,如果是彩色图片,图片的通道数就为 3。该网络结构是一个 4 层的卷积神经网络(计算神经网络层数的时候,有权值的才算是一层,池化层就不能单独算一层)(池化的计算是在卷积层中进行的)。对多张特征图求卷积,相当于是同时对多张特征图进行特征提取。
特征图数量越多说明卷积网络提取的特征数量越多,如果特征图数量设置得太少容易出现欠拟合,如果特征图数量设置得太多容易出现过拟合,所以需要设置为合适的数值。
深度学习--TensorFlow(8)CNN卷积神经网络理论(计算机视觉)相关推荐
- 深度学习 | MATLAB实现CNN卷积神经网络结构及参数概述
深度学习 | MATLAB实现CNN卷积神经网络结构及参数概述 目录 深度学习 | MATLAB实现CNN卷积神经网络结构及参数概述 基本介绍 模型描述 训练过程 计算函数 参考资料 基本介绍 卷积神 ...
- 使用matlab深度学习工具箱实现CNN卷积神经网络训练仿真
目录 1.算法描述 2.仿真效果预览 3.MATLAB核心程序 4.完整MATLAB 1.算法描述 深度学习(DL, Deep Learning)是机器学习(ML, Machine Learning) ...
- MOOC网神经网络与深度学习TensorFlow实践8——卷积神经网络
卷积神经网络 深度学习基础 图像识别和深度学习 图像卷积 卷积神经网络
- 【FPGA教程案例100】深度学习1——基于CNN卷积神经网络的手写数字识别纯Verilog实现,使用mnist手写数字数据库
FPGA教程目录 MATLAB教程目录 ---------------------------------------- 目录 1.软件版本 2.CNN卷积神经网络的原理 2.1 mnist手写数字数 ...
- 学习笔记:深度学习(3)——卷积神经网络(CNN)理论篇
学习时间:2022.04.10~2022.04.12 文章目录 3. 卷积神经网络CNN 3.1 卷积神经网络的概念 3.1.1 什么是CNN? 3.1.2 为什么要用CNN? 3.1.3 人类的视觉 ...
- 【神经网络与深度学习-TensorFlow实践】-中国大学MOOC课程(十四)(卷积神经网络))
[神经网络与深度学习-TensorFlow实践]-中国大学MOOC课程(十四)(卷积神经网络)) 14 卷积神经网络 14.1 深度学习基础 14.1.1 深度学习的基本思想 14.1.2 深度学习三 ...
- 深度学习时间序列预测:卷积神经网络(CNN)算法构建单变量时间序列预测模型预测空气质量(PM2.5)+代码实战
深度学习时间序列预测:卷积神经网络(CNN)算法构建单变量时间序列预测模型预测空气质量(PM2.5)+代码实战 神经网络(neual networks)是人工智能研究领域的一部分,当前最流行的神经网络 ...
- 花书+吴恩达深度学习(十三)卷积神经网络 CNN 之运算过程(前向传播、反向传播)
目录 0. 前言 1. 单层卷积网络 2. 各参数维度 3. CNN 前向传播反向传播 如果这篇文章对你有一点小小的帮助,请给个关注,点个赞喔~我会非常开心的~ 花书+吴恩达深度学习(十)卷积神经网络 ...
- 花书+吴恩达深度学习(十一)卷积神经网络 CNN 之池化层
目录 0. 前言 1. 最大池化(max pooling) 2. 平移不变形 3. 其他池化函数 4. 卷积和池化作为一种无限强的先验 如果这篇文章对你有一点小小的帮助,请给个关注,点个赞喔~我会非常 ...
最新文章
- 可爱的特殊字符集收集
- 【数据竞赛】“达观杯”文本智能处理挑战赛4
- Matplotlib(一)工作流程
- 打造自己博客(wordpress)的wap手机版本
- SpringBoot 整合 Redis 哨兵机制_01
- /proc/sys/vm虚拟内存参数
- PHP:Iterator(迭代器)接口和生成器
- windows11怎么绕过tpm安装,win11在线安装
- 计算机网络自顶向下方法第6章-链路层和局域网.1
- 几个值得收藏windows软件
- CC2530之ADC
- 照着这本“书”,3年量产自动驾驶卡车
- 【2022春秋杯】两个题wp
- latex按照知网格式引用论文
- 计算机四屏故障维修,液晶显示器有哪些常见故障 液晶显示器常见故障及维修方法...
- Codeforces 85D Sum of Medians[线段树]
- 微信小程序实现蓝牙打印(图片、二维码、文字)
- 高通 android笔记本电脑,联想将推高端安卓平板 搭载高通骁龙870处理器
- WriteFile 错误(GetLastError)返回998
- c语言中extem的作用,extern是什么意思?C语言中extern用法全解
热门文章
- python TypeError: ‘module‘ object is not callable
- Caused by: java.lang.IllegalStateException: View ' '
- 微信小程序 view中的image水平垂直居中
- 数据导出为Excel(未完)
- shiro和Spring整合使用注解时没有执行realm的doGetAuthorizationInfo回调方法的解决
- C++ 笔记(16)— 类和对象(类定义、类实例对象定义、访问类成员、类成员函数、类 public/private/protected 成员、类对象引用和指针)
- 2017暑期挖坑计划(持续更新中~)
- 连通性2 无向图的双连通 bcc
- 程序员肿么了?为何总被认为是“屌丝”
- formatData