深度神经网络及目标检测学习笔记

合集下载

使用深度学习进行目标检测的步骤

使用深度学习进行目标检测的步骤

使用深度学习进行目标检测的步骤深度学习是一种应用于机器学习的方法,利用多层神经网络模型来进行模式识别和目标检测。

它通过学习大量数据来提取特征,并训练模型以自动识别和定位图像中的目标物体。

在目标检测任务中,深度学习已经成为一种非常有效的方法,具有识别准确性和泛化能力强的优点。

在本文中,我将分享使用深度学习进行目标检测的步骤,希望能够对您有所帮助。

1. 数据收集和准备:在开始之前,我们需要准备一个用于训练和测试的数据集。

这个数据集应该包含目标物体的图像以及相应的标签或边界框信息。

为了提高模型的性能,数据集的多样性和数量都非常重要。

您可以使用开源数据集,也可以自己手动标注数据。

2. 构建深度学习模型:目前,应用深度学习进行目标检测的最流行模型是卷积神经网络(CNN)。

您可以选择许多不同的CNN结构,如Faster R-CNN、YOLO、SSD等。

这些模型都有自己的优势和特点,根据应用需求选择适合的模型。

3. 数据预处理和增强:在训练模型之前,我们需要对数据进行预处理和增强。

预处理步骤可能包括图像缩放、裁剪和标准化等。

而增强技术,如图像翻转、旋转、平移和亮度调整等,可以增加数据集的多样性,提高模型的鲁棒性。

4. 模型训练:模型训练是深度学习目标检测的关键步骤。

您可以使用已标记的数据集来训练模型,通常采用迭代的方式进行。

在训练期间,模型会根据其预测和真实标签之间的差异进行调整和优化。

为了获得更好的结果,您可以尝试不同的优化算法、学习率调度和损失函数。

5. 模型评估和调优:在模型训练完成后,我们需要对模型进行评估和调优。

这可以通过在测试集上运行模型,并量化其性能来实现。

常用的评估指标包括准确率、召回率、精确率和F1分数等。

如果模型达不到预期的性能,您可以尝试调整网络结构、调整超参数或增加更多的训练数据。

6. 预测和部署:一旦模型训练和调优完成,就可以将其用于实际场景中的目标检测。

您可以将模型应用于新的图像,以检测和定位目标物体。

深度学习基础知识

深度学习基础知识

深度学习基础知识深度学习(Depth Learning)是机器学习的一个重要分支,旨在模仿人类大脑的工作方式,通过神经网络的构建和训练实现智能化的数据分析与决策。

在深度学习的背后,有一些基础知识需要我们掌握,才能更好地理解和应用深度学习技术。

一、神经网络的基本结构神经网络是深度学习的核心,它由多个神经元组成,每个神经元都有激活函数,能接收来自其他神经元的输入,并产生输出。

神经网络通常包括输入层、隐藏层和输出层,其中隐藏层可以有多个。

输入层接受外部数据输入,隐藏层负责对数据进行特征提取和转换,输出层产生最终的结果。

二、梯度下降算法梯度下降算法是深度学习中最基础且最常用的优化算法,用于调整神经网络中各个神经元之间的连接权重,以最小化损失函数。

在训练过程中,通过计算损失函数对权重的偏导数,不断地更新权重值,使得损失函数逐渐减小,模型的性能逐渐提升。

三、反向传播算法反向传播算法是神经网络中用于训练的关键算法,通过将误差从输出层倒推到隐藏层,逐层计算每个神经元的误差贡献,然后根据误差贡献来更新权重值。

反向传播算法的核心思想是链式法则,即将神经网络的输出误差按照权重逆向传播并进行计算。

四、卷积神经网络(CNN)卷积神经网络是一种主要用于图像处理和识别的深度学习模型。

它通过共享权重和局部感受野的方式,有效地提取图像中的特征。

卷积神经网络通常包括卷积层、池化层和全连接层。

其中卷积层用于提取图像中的局部特征,池化层用于降低特征的维度,全连接层用于输出最终的分类结果。

五、循环神经网络(RNN)循环神经网络是一种主要用于序列数据处理的深度学习模型。

它通过引入时间维度,并在每个时间步上传递隐藏状态,实现对序列数据的建模。

循环神经网络可以解决序列数据中的时序依赖问题,适用于音频识别、语言模型等任务。

六、生成对抗网络(GAN)生成对抗网络是一种通过让生成器和判别器相互博弈的方式,实现模型训练和生成样本的深度学习模型。

生成器负责生成与真实样本相似的假样本,判别器负责对真假样本进行分类。

人工神经网络学习总结笔记

人工神经网络学习总结笔记

人工神经网络学习总结笔记主要侧重点:1.概念清晰2.进行必要的查询时能从书本上找到答案第一章:绪论1.1人工神经网络的概述“认识脑”和“仿脑”:人工智能科学家在了解人脑的工作机理和思维的本质的基础上,探索具有人类智慧的人工智能系统,以模拟延伸和扩展脑功能。

我认为这是人工神经网络研究的前身。

形象思维:不易被模拟人脑思维抽象推理逻辑思维:过程:信息概念最终结果特点:按串行模式人脑与计算机信息处理能力的不同点:方面类型人脑计算机记忆与联想能力可存储大量信息,对信息有筛选、回忆、巩固的联想记忆能力无回忆与联想能力,只可存取信息学习与认知能力具备该能力无该能力信息加工能力具有信息加工能力可认识事物的本质与规律仅限于二值逻辑,有形式逻辑能力,缺乏辩证逻辑能力信息综合能力可以对知识进行归纳类比和概括,是一种对信息进行逻辑加工和非逻辑加工相结合的过程缺乏该能力信息处理速度数值处理等只需串行算法就能解决的应用问题方便,计算机比人脑快,但计算机在处理文字图像、声音等类信息的能力远不如人脑1.1.2人脑与计算机信息处理机制的比较人脑与计算机处理能力的差异最根本的原因就是信息处理机制的不同,主要有四个方面方面类型人脑计算机系统结构有数百亿神经元组成的神经网络由二值逻辑门电路构成的按串行方式工作的逻辑机器信号形式模拟量(特点:具有模糊性。

离散的二进制数和二值逻辑容易被机器模拟的思维方式难以被机器模拟)和脉冲两种形式形式信息储存人脑中的信息分布存储于整个系统,所存储的信息是联想式的有限集中的串行处理机制信息处理机制高度并行的非线性信息处理系统(体现在结构上、信息存储上、信息处理的运行过程中)1.1.3人工神经网络的概念:在对人脑神经网络的基本认识的基础上,用数理方法从信息处理的角度对人脑神经网络进行抽象,并建立某种简化模型,称之为人工神经网络,是对人脑的简化、抽象以及模拟,是一种旨在模仿人脑结构及其功能的信息处理系统。

其他定义:由非常多个非常简单的处理单元彼此按某种方式相互连接而形成的计算系统,外部输入信息之后,系统产生动态响应从而处理信息。

深度学习与目标检测:工具、原理与算法

深度学习与目标检测:工具、原理与算法

谢谢观看
8.4.1候选框提取网络 8.4.2 RPN和Fast R-CNN共享特征的方法
8.5.1代码整体结构 8.5.2数据加载 8.5.3构建主干网络 8.5.4候选框提取网络 8.5.5对候选框进行分类和位置校正 8.5.6算法模型架构图
9.2焦点损失函数
9.1特征金字塔
9.3本章小结
9.1.1特征金字塔结构 9.1.2 FPN代码解析
深度学习与目标检测:工具、原理与 算法
读书笔记模板
01 思维导图
03 目录分析 05 读书笔记
目录
02 内容摘要 04 作者介绍 06 精彩摘录
思维导图
本书关键字分析思维导图
算法
目标
算法
读者
数据
视觉
网络
目标
目标
技术 小结
模型
深度
检测
工业
算法
方法
第章
卷积
内容摘要
随着深度学习技术的发展、计算能力的提升和视觉数据的增加,计算机视觉技术在图像搜索、智能相册、人 脸闸机、城市智能交通管理、智慧医疗等诸多领域都取得了令人瞩目的成绩。越来越多的人开始**这个领域。计 算机视觉包含多个分支,其中图像分类、目标检测、图像分割、目标跟踪等是计算机视觉领域最重要的几个研究 课题。本书介绍的目标检测技术,本质上就是通过计算机运行特定的算法,检测图像中一些受**的目标。当今时 代,我们很容易在互联网上找到目标检测算法的开源代码,运行代码并不是什么难事,但理解其中的原理却有一 定的难度。我们编写本书的目的就是由浅入深地向读者讲解目标检测技术,用相对通俗的语言来介绍算法的背景 和原理,在读者“似懂非懂”时给出实战案例。实战案例的代码已全部通过线下验证,代码并不复杂,可以很好 地帮助读者理解算法细节,希望读者在学习理论之后可以亲自动手实践。目标检测的理论和实践是相辅相成的, 希望本书可以带领读者走进目标检测的世界。

神经网络与深度学习知识点整理

神经网络与深度学习知识点整理

神经网络与深度学习知识点整理●神经网络基础●MP神经元模型●可以完成任何数学和逻辑函数的计算●没有找到训练方法,必须提前设计出神经网络的参数以实现特定的功能●Hebb规则●两个神经元同时处于激发状态时,神经元之间的连接强度将得到加强●Hebb学习规则是一种无监督学习方法,算法根据神经元连接的激活水平改变权值,因此又称为相关学习或并联学习。

●●感知机模型●有监督的学习规则●神经元期望输出与实际输出的误差e作为学习信号,调整网络权值●●LMS学习规则是在激活函数为f(x)=x下的感知器学习规则●由于激活函数f的作用,感知器实际是一种二分类器●感知器调整权值步骤●单层感知器不能解决异或问题●BP网络●特点:●同层神经网络无连接●不允许跨层连接●无反馈连接●BP学习算法由正向传播和反向传播组成●BP网络的激活函数必须处处可导——BP权值的调整采用 Gradient Descent 公式ΔW=-η(偏E/偏w),这个公式要求网络期望输出和单次训练差值(误差E)求导。

所以要求输出值处处可导。

s函数正好满足处处可导。

●运算实例(ppt)●Delta( δ )学习规则●误差纠正式学习——神经元的有监督δ学习规则,用于解决输入输出已知情况下神经元权值学习问题●δ学习规则又称误差修正规则,根据E/w负梯度方向调整神经元间的连接权值,能够使误差函数E达到最小值。

●δ学习规则通过输出与期望值的平方误差最小化,实现权值调整●●1●自动微分●BP神经网络原理:看书●超参数的确定,并没有理论方法指导,根据经验来选择●BP算法已提出,已可实现多隐含层的神经网络,但实际只使用单隐层节点的浅层模型●计算能力的限制●梯度弥散问题●自编码器●●自编码器(Auto-Encoder)作为一种无监督学习方法网络●将输入“编码”为一个中间代码●然后从中间表示“译码”出输入●通过重构误差和误差反传算法训练网络参数●编码器不关心输出(只复现输入),只关心中间层的编码————ℎ=σ(WX+b)●编码ℎ已经承载原始数据信息,但以一种不同的形式表达!●1●正则编码器——损失函数中加入正则项,常用的正则化有L1正则和L2正则●稀疏自编码器——在能量函数中增加对隐含神经元激活的稀疏性约束,以使大部分隐含神经元处于非激活状态●去噪自编码器——训练数据加入噪声,自动编码器学习去除噪声获得无噪声污染的输入,迫使编码器学习输入信号更加鲁棒的表达●堆叠自编码器●自编码器训练结束后,输出层即可去掉,网络关心的是x到ℎ的变换●将ℎ作为原始信息,训练新的自编码器,得到新的特征表达.●逐层贪婪预训练●1●深度神经网络初始化●●卷积神经网络●全连接不适合图像任务●参数数量太多●没有利用像素之间的位置信息●全连接很难传递超过三层●卷积神经网络是一种前馈神经网络,其输出神经元可以响应部分区域内的输入信息,适宜处理图像类信息●1●1●Zero Padding:在原始图像周围补0数量●卷积尺寸缩小,边缘像素点在卷积中被计算的次数少,边缘信息容易丢失●●卷积神经网络架构发展●1●深度发展●LeNet●具备卷积、激活、池化和全连接等基本组件●但GPU未出现,CPU的性能又极其低下●LetNet只使用在手写识别等简单场景,未得到重视●LeNet主要有2个卷积层(5*5)、2个下抽样层(池化层)、3个全连接层●通过sigmoid激活●全连接层输出:共有10个节点分别代表数字0到9,采用径向基函数作为分类器●AlexNet●第一次采用了ReLU,dropout,GPU加速等技巧●AlexNet网络共有:卷积层 5个(1111,55,3*3),池化层 3个,全连接层3个●首次采用了双GPU并行计算加速模式●第一卷积模块:96通道的特征图被分配到2个GPU中,每个GPU上48个特征图;2组48通道的特征图分别在对应的GPU中进行ReLU激活●第一层全连接:同时采用了概率为0.5的Dropout策略●VGG●通过反复堆叠3x3卷积和2x2的池化,得到了最大19层的深度●卷积-ReLU-池化的基本结构●串联多个小卷积,相当于一个大卷积的思想●使用两个串联的3x3卷积,达到5x5的效果,但参数量却只有之前的18/25●串联多个小卷积,增加ReLU非线性激活使用概率,从而增加模型的非线性特征●VGG16网络包含了13个卷积层,5个池化层和3个全连接层。

《深入浅出图神经网络:GNN原理解析》随笔

《深入浅出图神经网络:GNN原理解析》随笔

《深入浅出图神经网络:GNN原理解析》阅读随笔目录一、前言 (2)1.1 本书的目的和价值 (3)1.2 图神经网络简介 (3)二、图神经网络基础 (5)2.1 图的基本概念 (6)2.2 神经网络的基本概念 (8)2.3 图神经网络与神经网络的结合 (9)三、图神经网络的分类 (10)3.1 基于消息传递的图神经网络 (12)3.2 基于能量函数的图神经网络 (12)3.3 基于图注意力机制的图神经网络 (14)四、图神经网络的训练方法 (15)4.1 迭代训练法 (16)4.2 随机梯度下降法 (17)4.3 动量法 (19)4.4 自适应学习率方法 (20)五、图神经网络的优化技术 (21)5.1 局部优化算法 (22)5.2 全局优化算法 (24)5.3 混合优化算法 (26)六、图神经网络的评估与可视化 (27)6.1 评估指标 (28)6.2 可视化方法 (29)6.3 实战案例分析 (31)七、图神经网络的未来发展方向与应用前景 (32)7.1 当前研究的热点和挑战 (34)7.2 未来可能的技术创新 (35)7.3 图神经网络在各个领域的应用前景 (37)八、结语 (38)8.1 对本书内容的总结 (39)8.2 对未来图神经网络发展的展望 (40)一、前言在人工智能领域,图神经网络(Graph Neural Networks, GNNs)作为一种强大的深度学习模型,近年来得到了广泛的关注和研究。

它们能够处理非结构化数据,如社交网络、分子结构、知识图谱等,因此在许多应用中具有重要的地位。

尽管GNNs在学术界和工业界都取得了显著的成功,但它们的原理和应用仍然是一个活跃的研究课题。

特别是对于初学者来说,理解和掌握GNN的原理解析及其在实际问题中的应用,是一个不小的挑战。

为了帮助读者更好地理解GNNs,本文将从基础到高级逐步展开,深入剖析GNN的核心概念、模型架构以及最新的研究进展。

结合具体的代码实现和实验结果,我们将展示GNN在实际应用中的强大能力。

基于深度卷积神经网络的光学遥感目标检测技术

基于深度卷积神经网络的光学遥感目标检测技术
较高的准确率和鲁棒性。
ResNet
ResNet通过引入残差连接,解决 了深度神经网络中的梯度消失问题 ,可以构建非常深的网络模型。
Inception
Inception网络通过使用并行卷积和 池化操作来提高网络的速度和准确 率,同时保持模型的较小大小。
深度学习模型的优化方法
正则化
通过在损失函数中添加正则项, 对模型的复杂度进行约束,以避 免过拟合。常见的正则化方法包
05
本研究与已有研究相比的独特 之处及优势
模型结构与性能上的改进
采用了更先进的卷积神经网络结构,如残差网络(ResNet)或DenseNet等,提高 了网络的学习能力和特征提取能力。
引入了注意力机制,使模型能够更好地聚焦于目标区域,降低背景干扰和噪声的影 响。
采用了多尺度特征融合技术,使模型能够同时获取不同尺度的目标信息,提高检测 精度和鲁棒性。
在CNN中,卷积核的参数在整个图像上是 共享的,这大大减少了模型的参数数量, 提高了模型的泛化能力。
多尺度特征
池化层
通过多尺度的卷积核,CNN可以同时提取 图像的多尺度特征。
池化层用于降低特征图的分辨率,从而减 少计算量和避免过拟合。
常见的深度卷积神经网络模型
VGGNet
VGGNet是一种经典的深度卷积 神经网络,通过连续使用小的卷 积核来模拟较大的感受野,具有
采用了先进的损失函数和优化算 法,如交叉熵损失、Dice损失、 Adam优化算法等,提高了模型
的收敛速度和性能。
引入了上下文信息,使模型能够 更好地理解目标和背景之间的关
系,提高检测精度和鲁棒性。
采用了后处理技术,如非极大值 抑制(NMS)、边界框回归等, 进一步优化了检测结果,提高了

传统目标检测算法与目标检测深度学习算法的对比分析

传统目标检测算法与目标检测深度学习算法的对比分析

传统目标检测算法与目标检测深度学习算法的对比分析目标检测是计算机视觉中一个重要的问题。

传统的目标检测算法主要包括基于特征的方法和基于分类器的方法两种类型,而目标检测深度学习算法则主要通过卷积神经网络(CNN)实现目标检测。

本文将分析两种算法的优缺点,并探索它们之间的不同。

一、传统目标检测算法1.基于特征的目标检测算法基于特征的算法是通过特定的特征来检测目标。

其中,HOG (Histogram of Oriented Gradient)算法是一种常用的基于特征的方法。

HOG算法提取图像中的梯度方向特征,然后使用SVM分类器来检测目标。

此外,SIFT(Scale-Invariant Feature Transform)和SURF (Speeded Up Robust Features)也是常用的基于特征的算法。

优点:-简单易懂:基于特征的算法的实现很简单,易于理解和实现。

-可处理低分辨率图像:由于该算法使用图像的全局特征,因此可处理低分辨率图像。

缺点:-不适合复杂场景:当存在多个目标时,基于特征的算法很难区分它们。

-鲁棒性差:由于基于特征的算法对光照、旋转等误差敏感,因此鲁棒性差。

2.基于分类器的目标检测算法基于分类器的目标检测算法是将目标检测看作二分类问题。

此类算法主要分为目标候选区域生成方法和强分类器方法。

其中,Haar-like特征和Adaboost分类器是最常用的方法之一。

优点:-鲁棒性强:由于该算法使用复杂的分类器,因此鲁棒性很强,可以处理各种复杂场景。

-相对准确:该算法的准确度相对较高。

缺点:-外部参数过多:基于分类器的算法需要预先定义很多外部参数,这使得该算法的实现相对较为复杂。

-可扩展性差:由于其依赖于复杂分类器的训练数据,因此样本数量很大。

随着训练数据的增加,该算法的实现成本将会更高。

二、目标检测深度学习算法1.卷积神经网络目标检测深度学习算法采用卷积神经网络(CNN)来实现。

CNN的优势在于它能够自动提取图像中的特征,无需人工干预。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

深度神经网络及目标检测学习笔记https://youtu.be/MPU2HistivI上面是一段实时目标识别的演示,计算机在视频流上标注出物体的类别,包括人、汽车、自行车、狗、背包、领带、椅子等。

今天的计算机视觉技术已经可以在图片、视频中识别出大量类别的物体,甚至可以初步理解图片或者视频中的内容,在这方面,人工智能已经达到了3岁儿童的智力水平。

这是一个很了不起的成就,毕竟人工智能用了几十年的时间,就走完了人类几十万年的进化之路,并且还在加速发展。

道路总是曲折的,也是有迹可循的。

在尝试了其它方法之后,计算机视觉在仿生学里找到了正确的道路(至少目前看是正确的)。

通过研究人类的视觉原理,计算机利用深度神经网络(DeepNeural Network,NN)实现了对图片的识别,包括文字识别、物体分类、图像理解等。

在这个过程中,神经元和神经网络模型、大数据技术的发展,以及处理器(尤其是GPU)强大的算力,给人工智能技术的发展提供了很大的支持。

本文是一篇学习笔记,以深度优先的思路,记录了对深度学习(Deep Learning)的简单梳理,主要针对计算机视觉应用领域。

一、神经网络1.1 神经元和神经网络神经元是生物学概念,用数学描述就是:对多个输入进行加权求和,并经过激活函数进行非线性输出。

由多个神经元作为输入节点,则构成了简单的单层神经网络(感知器),可以进行线性分类。

两层神经网络则可以完成复杂一些的工作,比如解决异或问题,而且具有非常好的非线性分类效果。

而多层(两层以上)神经网络,就是所谓的深度神经网络。

神经网络的工作原理就是神经元的计算,一层一层的加权求和、激活,最终输出结果。

深度神经网络中的参数太多(可达亿级),必须靠大量数据的训练来设置。

训练的过程就好像是刚出生的婴儿,在父母一遍遍的重复中学习“这是苹果”、“那是汽车”。

有人说,人工智能很傻嘛,到现在还不如三岁小孩。

其实可以换个角度想:刚出生婴儿就好像是一个裸机,这是经过几十万年的进化才形成的,然后经过几年的学习,就会认识图片和文字了;而深度学习这个“裸机”用了几十年就被设计出来,并且经过几个小时的“学习”,就可以达到这个水平了。

1.2BP算法神经网络的训练就是它的参数不断变化收敛的过程。

像父母教婴儿识图认字一样,给神经网络看一张图并告诉它这是苹果,它就把所有参数做一些调整,使得它的计算结果比之前更接近“苹果”这个结果。

经过上百万张图片的训练,它就可以达到和人差不多的识别能力,可以认出一定种类的物体。

这个过程是通过反向传播(BackPropagation,BP)算法来实现的。

建议仔细看一下BP算法的计算原理,以及跟踪一个简单的神经网络来体会训练的过程。

1.3 小结人工神经网络就是根据人的神经元模型而构建的一个感知算法,利用大量的神经元组合对人的认知行为进行拟合。

目前我们仍然无法精确的知道它为什么能工作、如何工作,如同我们仍然无法精确知道人的大脑是如何工作一样。

在摸索过程中,我们好像应该更多地思考人类自己是怎么去“看”的,这会更有助于设计更好的算法。

比如本文开头的视频识别算法,它很快,但是不够精确,而有些可以“看清”细节的算法,就会非常慢。

就像我们人类自己,走马观花只能看到概貌,驻足观赏才能看清细节。

我们越了解自己,就越能做得更好。

二、卷积神经网络2.1简介卷积神经网络(Convocational Neural Network,CNN)是一个特殊的深层神经网络,目前在计算机视觉领域广泛使用,可以认为它是一个二维向量(图片就是一个二维向量)的感知器。

CNN算法的核心是对图像(二维向量)进行矩阵卷积运算,这就相当于是对图像进行加权求和。

为了减小计算量,CNN采用了局部感知和权值共享的方法。

局部感知,就是用一个N×N(如N=3)的矩阵(称为卷积核)去滑动扫描图像,进行卷积运算。

权值共享,就是扫描图片的滑动矩阵的权值是共享的(相同的)。

在实际运算中,这个卷积核相当于一个特征提取的过滤器(filter)。

举例来说,假设一个10×10的图像,用一个3×3的卷积核以步长1做一次卷积运算,那么会得到一个8×8的特征图(feature map)。

为了使得到的feature map和原图等大小,一般给原图进行扩充为12×12,这样卷积一次以后,得到的仍然是10×10大小的图像。

在这个例子中,如果不采用权值共享,则一共需要100个权值参数,权值共享后,只需要3×3=9个权值参数。

在实际中,一个RGB图像是三个通道,而卷积核也可能有多个。

这样计算起来会比上面的例子复杂些,但基本原理是一样的。

2.2 CNN计算流程一个典型的CNN算法的流程大概是这样的:首先是输入,然后是n个卷积和池化的组合,最后全连接层感知分类。

在这个流程里,卷积运算主要是用来提取特征。

一个典型的卷积计算如下图所示。

<卷积计算示意图>图中input是同一个图像的三个通道,周边有填充0;有两个卷积核Filter W0和Filter W1,一个filter滑动到一个位置后计算三个通道的卷积,求和,加bias,得到这个filter在该位置的最终结果;每个filter的输出是各个通道的汇总;输出的个数与filter个数相同。

在这里还要加上激活函数,对计算结果进行非线性变换。

常用的激活函数有tanh、ReLU、sigmoid等。

激活函数的作用好像可以解释为:过滤掉一些可以忽略的不重要因素,以避免其对决策产生过度影响。

池化是为了降维,有最大池化(Max Pooling)和平均池化(AveragePool ing)。

一个2×2最大池化的示例如下图。

最后是全连接层,它将前面卷积层提取的特征映射到样本标记空间,它输出一个分类的概率,也就是最终的结果。

2.3典型的CNN模型LeNet,最早用于数字识别的CNN,用5×5卷积核,2×2最大池化,识别输入为28×28的灰度点阵,网络结构是(CONV—POOL—CONV—POOL—CONV—FC)。

AlexNet,2012ImageNet比赛第一名,准确度超过第二名10%。

网络结构如下图。

5个CONV、3个POOL、2个LRN、3个FC,卷积核分别是11×11、5×5、3×3,采用ReLU作为激活函数。

VGG,有跟多的卷积层(16~19),使用3×3卷积核。

GoogLeNet,采用Inception来减少参数(用1×1卷积核降维)。

ResNet,很多很多层的网络,从152层到据说上千层。

采用残差网络来解决多层网络难以训练的问题。

以上网络的对比如下表。

2.4 训练集应该可以感受到,人工智能也好,深度学习也好,算法的优劣是一方面,而训练数据集的好坏,对最终的效果影响更大。

而训练集又非常难做,需要大量的数据,且标记这些数据需要巨大的工作量(过去的8年ImageNet就在做这个工作)。

逐渐,一些数据集就慢慢出了名。

很多算法的性能数据都会指明是在哪个数据集上训练的。

一些有名的数据集如下。

MNIST:深度学习领域的“Hello World!”,一个手写数字数据库,有60000个训练样本集和10000个测试样本集,每个样本图像的宽高为28*28。

数据集以二进制存储,不能直接查看。

数据集大小为12M。

ImageNet:MIT李飞飞团队过去几年的成果,目前有1400多万幅图片,涵盖2万多个类别。

数据集大小为1T。

ImageNet根据WordNet层次(目前只有名词)组织的一个图像数据库,其中每个节点的层次结构是由成千上万的图像描绘。

目前,有平均每个节点超过五百的图像。

COCO:Common Objects in Context,是一个新的图像识别、分割、和字幕数据集,由微软赞助,具有上下文识别、语义描述等特点。

数据集大小为40G。

PASCALVOC:图片集包括20个目录,数据集图像质量好,标注完备,非常适合用来测试算法性能。

数据集大小为2G。

由于数据集生成有一定难度且工作量巨大,两年来GAN(Generative Adversarial Nets,生成对抗网络)快速发展,并在很多应用场景的训练集生成产生了巨大作用,比如车牌识别。

三、物体检测3.1检测流程在实际场景中,我们需要在一副图像中找出有哪些物体,这是一个多对多的映射(所谓的回归)。

按照已有的CNN方法,常规的检测流程就是:先找到哪些区域有物体,然后再用CNN来对其分类。

区域选择最原始的办法就是用不同大小的滑动窗口对整幅图像进行扫描。

这样不但计算量大,也容易造成误判。

一个改进的方法是所谓Region Proposal,即预先找出物体可能在的位置。

这里需要提到以下几个概念。

IoU:Intersection over Union,Region Proposal与Ground Truth 的窗口的交集比并集的比值,如果IoU低于0.5,那么相当于目标还是没有检测到。

Ground Truth就是实际物体真实的区域。

mAP,meanAverage Precision,平均精度均值。

是对多个验证集求PR曲线的均值。

PR曲线是Precision和Recall作为横纵坐标轴的曲线,Precision是准确率,即检测出的样本有多少是正确的,Recall是召回率,即应该被检测出的样本有多少被检测出来。

PR曲线越高,说明算法越好,即又多又准。

3.2典型的算法从2014年的R-CNN(Region proposal+CNN)开始,出现了一系列目标检测算法,从R-CNN到fast R-CNN和fasterR-CNN,以及SPP-NET,R-FCN,还有YOLOv1~v3和SSD、DSSD。

R-CNN:采用selectivesearch方法(一种RegionProposal方法,Region Proposal的方法有selective search、edge box)进行区域选择,选出2000个左右。

将每个区域缩放至227×227,再送入CNN计算特征,最后由SVM(支持向量机)分类。

很明显,R-CNN很慢。

SPP-NET:为了加快R-CNN的速度,采取对一副图像的多个RegionProposal一次提取特征。

这就要求网络必须适应不同尺寸的图像。

方法是在全连接层之前加入一个网络层,让它对任意尺寸的输入产生固定的输出(将图像分成16、4、1个块)。

SPP-NET训练步骤繁琐,并且仍然不够快。

fastR-CNN:与R-CNN相比,fast R-CNN在最后一个卷积层后加了一个ROI pooling layer,同时损失函数使用了多任务损失函数(multi-task loss),将边框回归直接加入到CNN网络中训练,最后用softmax替代SVM进行分类。

相关文档
最新文档