下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、基于深度学习的目标检测研究卓越管理智摩精心制作多年企业咨询,精品管理word模板值得您下载拥有!2019年1月上面是一段实时目标识别的演示, 计算机在视频流上标注出物体的类别, 包括人、汽车、自行车、狗、背包、领带、椅子等。今天的计算机视觉技术已经可以在图片、 视频中识别出大量类别的物体,甚 至可以初步理解图片或者视频中的内容,在这方面,人工智能已经达到了 3岁儿童的智力水平。这是一个很了不起的成就,毕竟人工智能用了几十年的时间,就 走完了人类几十万年的进化之路,并且还在加速发展。道路总是曲折的,也是有迹可循的。在尝试了其它方法之后,计算机视觉在 仿生学里找到了正确的道路(至少目前看是正确的)
2、。通过研究人类的视觉原理, 计算机利用深度神经网络(Deep Neural Network, NN)实现了对图片的识别, 包括文字识别、物体分类、图像理解等。在这个过程中,神经元和神经网络模型、 大数据技术的发展,以及处理器(尤其是GPU)强大的算力,给人工智能技术的发展提供了很大的支持。本文是一篇学习笔记,以深度优先的思路,记录了对深度学习(Deep Learning) 的简单梳理,主要针对计算机视觉应用领域。一、神经网络1.1 神经元和神经网络神经元是生物学概念,用数学描述就是:对多个输入进行加权求和,并经过 激活函数进行非线性输出。由多个神经元作为输入节点,则构成了简单的单层神经网络(感
3、知器),可以进行线性分类。两层神经网络则可以完成复杂一些的工作, 比如解决异或问题, 而且具有非常好的非线性分类效果。而多层(两层以上)神经网络,就是所谓的 深度神经网络。神经网络的工作原理就是神经元的计算,一层一层的加权求和、激活,最终 输出结果。深度神经网络中的参数太多(可达亿级),必须靠大量数据的训练来 设置。训练的过程就好像是刚出生的婴儿,在父母一遍遍的重复中学习“这是苹 果”、“那是汽车”。有人说,人工智能很傻嘛,到现在还不如三岁小孩。其实可 以换个角度想:刚出生婴儿就好像是一个裸机,这是经过几十万年的进化才形成的,然后经过几年的学习,就会认识图片和文字了;而深度学习这个“裸机”用
4、了几十年就被设计出来,并且经过几个小时的“学习”,就可以达到这个水平了。1.2 BP算法神经网络的训练就是它的参数不断变化收敛的过程。像父母教婴儿识图认字 一样,给神经网络看一张图并告诉它这是苹果,它就把所有参数做一些调整,使 得它的计算结果比之前更接近“苹果”这个结果。经过上百万张图片的训练,它 就可以达到和人差不多的识别能力,可以认出一定种类的物体。这个过程是通过 反向传播(Back Propagation, BP)算法来实现的。建议仔细看一下BP算法的计算原理,以及跟踪一个简单的神经网络来体会 训练的过程。1.3 小结人工神经网络就是根据人的神经元模型而构建的一个感知算法,利用大量的神经
5、元组合对人的认知行为进行拟合。目前我们仍然无法精确的知道它为什么能 工作、如何工作,如同我们仍然无法精确知道人的大脑是如何工作一样。在摸索过程中,我们好像应该更多地思考人类自己是怎么去“看”的,这会 更有助于设计更好的算法。比如本文开头的视频识别算法,它很快,但是不够精 确,而有些可以“看清”细节的算法,就会非常慢。就像我们人类自己,走马观 花只能看到概貌,驻足观赏才能看清细节。我们越了解自己,就越能做得更好。二、卷积神经网络2.1 简介卷积神经网络(Convocational Neural Network, CNN)是一个特殊的深层神 经网络,目前在计算机视觉领域广泛使用,可以认为它是一个二
6、维向量(图片就 是一个二维向量)的感知器。CNN算法的核心是对图像(二维向量)进行矩阵卷积运算,这就相当于是 对图像进行加权求和。为了减小计算量,CNN采用了局部感知和权值共享的方 法。局部感知,就是用一个 NXN (如N=3)的矩阵(称为卷积核)去滑动扫描 图像,进行卷积运算。权值共享,就是扫描图片的滑动矩阵的权值是共享的(相同的)。在实际运算中,这个卷积核相当于一个特征提取的过滤器(filter)。举例 来说,假设一个10X10的图像,用一个3X3的卷积核以步长1做一次卷积运算, 那么会得到一个8X8的特征图(feature ma©。为了使得到的feature map和原图 等大
7、小,一般给原图进行扩充为 12X12,这样卷积一次以后,得到的仍然是10X 10大小的图像。在这个例子中,如果不采用权值共享,则一共需要 100个权 值参数,权值共享后,只需要 3X 3=9个权值参数。在实际中,一个RGB图像是三个通道,而卷积核也可能有多个。这样计算 起来会比上面的例子复杂些,但基本原理是一样的。2.2 CNN计算流程一个典型的CNN算法的流程大概是这样的:首先是输入,然后是 n个卷积 和池化的组合,最后全连接层感知分类。在这个流程里,卷积运算主要是用来提取特征。一个典型的卷积计算如下图 所示。卷积计算示意图图中input是同一个图像的三个通道,周边有填充0;有两个卷积核Fi
8、lter W0 和Filter W1 , 一个filter滑动到一个位置后计算三个通道的卷积,求和,加bias,得到这个filter在该位置的最终结果;每个filter的输出是各个通道的汇总;输出 的个数与filter个数相同。在这里还要加上激活函数,对计算结果进行非线性变 换。常用的激活函数有tanh、ReLU、sigmoid等。激活函数的作用好像可以解释 为:过滤掉一些可以忽略的不重要因素,以避免其对决策产生过度影响。池化是为了降维,有最大池化(Max Pooling)和平均池化(Average Pooling)。 一个2X2最大池化的示例如下图。Single depth slice102
9、3X466831101224最后是全连接层,它将前面卷积层提取的特征映射到样本标记空间, 它输出 一个分类的概率,也就是最终的结果。2.3 典型的CNN模型LeNet,最早用于数字识别的 CNN,用5X5卷积核,2X2最大池化,识别 输入为 28X 28的灰度点阵,网络结构是( CONV-POOL-CONV-POOL- CONV FC)。AlexNet, 2012 ImageNet比赛第一名,准确度超过第二名 10%。网络结构如 下图。5个CONV、3个POOL、2个LRN、3个FC,卷积核分别是11X11、5 X5、3X3,采用ReLU作为激活函数。37 M442 K13IVI884 K30
10、7Kparams AlexNetFLOPs4M 匚_FC 1000_1| 4M16MFC4096/ReLU16MFC 4096 ; Re LU J 37M Ma)c Pool 3x3s211Conv 3x3st 25S / ReLU j 74M "Conv 3x3s1, 384 / ReLU | 112MConv 3x3s1t 38+ / ReLU 149MMax Pool 3x3s2Local Response NormConv 5x5st 256 / ReLU J 223MMax Pool 3x3s2Local Response Norm35K Conv 11x1154, 961
11、 ReLU 105MVGG,有跟多的卷积层(1619),使用3X3卷积核。GoogLeNet,采用Inception来减少参数(用1X1卷积核降维)。ResNet,很多很多层的网络,从152层到据说上千层。采用残差网络来解决 多层网络难以训练的问题。以上网络的对比如下表。Alex NetVGGGoogLeNetRnNet初入江湖2012201420142C15底数81922152"op 5然误164%7.3%67%3.S7%Data Augmertatio+4+lnception(NIN;-t苍枳层数51621151孝喉文小115337,1*7,1 35堂违搂募敬3m11全连明大小4
12、0蝇409610004096.4056,100010001000Drapcut+*+Looll Response Nornuliuiion+-*Batch Normalization+2.4 训练集应该可以感受到,人工智能也好,深度学习也好,算法的优劣是一方面,而 训练数据集的好坏,对最终的效果影响更大。而训练集又非常难做,需要大量的 数据,且标记这些数据需要巨大的工作量(过去的8年ImageNet就在做这个工作)。逐渐,一些数据集就慢慢出了名。很多算法的性能数据都会指明是在哪个 数据集上训练的。一些有名的数据集如下。MNIST:深度学习领域的“ Hello World!”,一个手写数字数据库
13、,有 60000 个训练样本集和10000个测试样本集,每个样本图像的宽高为 28*28。数据集以 二进制存储,不能直接查看。数据集大小为 12M。ImageNet: MIT李飞飞团队过去几年的成果,目前有 1400多万幅图片,涵 盖2万多个类别。数据集大小为1T。ImageNet根据WordNet层次(目前只有名 词)组织的一个图像数据库,其中每个节点的层次结构是由成千上万的图像描绘。 目前,有平均每个节点超过五百的图像。COCO: Common Objects in Context,是一个新的图像识别、分割、和字幕 数据集,由微软赞助,具有上下文识别、语义描述等特点。数据集大小为40G。P
14、ASCAL VOC:图片集包括20个目录,数据集图像质量好,标注完备,非 常适合用来测试算法性能。数据集大小为 2G。由于数据集生成有一定难度且工作量巨大,两年来GAN (GenerativeAdversarial Nets,生成对抗网络)快速发展,并在很多应用场景的训练集生成产 生了巨大作用,比如车牌识别。三、物体检测3.1 检测流程在实际场景中,我们需要在一副图像中找出有哪些物体, 这是一个多对多的 映射(所谓的回归)。按照已有的CNN方法,常规的检测流程就是:先找到哪些 区域有物体,然后再用CNN来对其分类。区域选择最原始的办法就是用不同大小的滑动窗口对整幅图像进行扫描。这样不但计算量大
15、,也容易造成误判。一个改进的方法是所谓 Region Proposal,即 预先找出物体可能在的位置。这里需要提到以下几个概念。IoU : Intersection over Union, Region Proposal与 Ground Truth 的窗口 的交集 比并集的比值,如果IoU低于0.5,那么相当于目标还是没有检测到。Ground Truth 就是实际物体真实的区域。mAP, mean Average Precision,平均精度均值。是对多个验证集求 PR曲线 的均值。PR曲线是Precision和Recall作为横纵坐标轴的曲线,Precision是准确 率,即检测出的样本有多
16、少是正确的,Recall是召回率,即应该被检测出的样本 有多少被检测出来。PR曲线越高,说明算法越好,即又多又准。3.2 典型的算法从2014年的R-CNN ( Region proposal+CNN)开始,出现了一系列目标检测 算法,从 R-CNN 至U fast R-CNN 和 faster R-CNN,以及 SPP-NET, R-FCN,还有 YOLOv1v3 和 SSD、DSSD。R-CNN:采用 selective search 方法(一种 Region Proposal 方法,Region Proposal的方法有selective search edge boX)进行区域选择,选
17、出2000个左右。 将每个区域缩放至227X227,再送入CNN计算特征,最后由SVM (支持向量 机)分类。很明显,R-CNN很慢。SPP-NET:为了力口快R-CNN的速度,采取对一副图像的多个 Region Proposal 一次提取特征。这就要求网络必须适应不同尺寸的图像。方法是在全连接层之前加入一个网络层,让它对任意尺寸的输入产生固定的输出(将图像分成16、4、1个块)。SPP-NET训练步骤繁琐,并且仍然不够快。fast R-CNN:与R-CNN相比,fast R-CNN在最后一个卷积层后加了一个 ROI pooling layer,同时损失函数使用了多任务损失函数(multi-t
18、ask loss),将边框回归 直接加入到CNN网络中训练,最后用softmax替代SVM进行分类。fast R-CNN 不是真正的端到端训练测试,还是需要 selective search来进行Region Proposal, 所以还是不够快,不能做实时的检测。Faster R-CNN:采用 RPN (Region Proposal Networks)用 Anchor机制和边 框回归直接得到多尺度多长宽比的 Region Proposal Fast R-CNN做到了真正的端 到端,但可惜的是仍然不能达到实时检测。 RPN需要详细了解一下。R-FCN: Object Detection via
19、 Region-based Fully Convolutional Networks,基于 区域的全卷积网络物体检测。嫁接 ResNet的卷积层,采用RPN获取ROI,针对 每个ROI,在POOL之前加入位置信息(通过 score map)。 R-FCN的score map 计算有点绕,需要慢慢理解。YOLO:虽然精度不是最好,但确是目前实时性最好的算法,可以在视频中 实时检测出很多物体。倒也符合人类视觉的特点,一眼望去先看个大概,要想看 细节,那就定格仔细看吧。YOLO系列的算法后面详细总结。SSD: SSD结合了 YOLO中的回归思想和 Faster R-CNN中的anchor机制, 使用
20、全图各个位置的多尺度区域特征进行回归, 既保持了 YOLO速度快的特性, 也保证了窗口预测的跟 Faster R-CNN 一样比较精准。一般后续出现的算法都会与之前的算法做性能对比,SSD和YOLOv1比,YOLOv2、v3又和SSD比,在不同的训练集上也有不同的 mAP,看起来真是眼 花缭乱。因为机缘巧合,我先接触到YOLO系列算法,在自己的电脑上运行DEMO, 也仔细看了 YOLO的发展,于是给一个稍微详细的总结。3.3 YOLO系列算法YOLO算法主要是针对以往物体检测算法速度较慢的弊端,利用一个单独的端到端网络,将原始图像输入,直接输出物体位置和类别。YOLO没有显式的求取 Regio
21、n Proposal的过程(R-CNN 和 Fast R-CNN 采用 selective search取,Faster R-CNN和R-FCN则采用了 RPN)。YOLO的名字也来自于其核心特征:You OnlyLook Once,只看一次。从2015年到2018年3月,YOLO 一共出了三个版本 v1、v2 (YOLO9000)、 v3,性能逐渐提高,mAP与其它算法持平或略胜一筹。3.3.1 YOLOvIYOLO将对象检测框架化为空间分离边界框和相关类别概率的回归问题。 单 个神经网络在一次评估中直接从完整图像预测边界框和类概率。 由于整个检测流 水线是单个网络,因此可以直接针对检测性能
22、端到端地进行优化, 使得统一架构 非常快。基础YOLO模型以45帧/秒的速度实时处理图像。较小版本的网络FastYOLO每秒处理可达155帧,同时实现其他实时检测器的 mAP的两倍。与最先 进的检测系统相比,YOLO产生更多的定位误差,但不太可能预测背景上的误报。 最后,YOLO表现出对目标识别很好的通用性。YOLO检测网络有24个卷积层,其次是2个完全连接的层。 交替的1M 卷积层减少了来自前面层的特征空间。在分辨率的一半(224 * 224输入图像)上预分割ImageNet分类任务上的卷积图层,然后将分辨率加倍以进行检测。Co*. btlRCom.Con错Layers Con*- 回科3
23、Cchi*_ 加*fsQw_ Lar Ccmik-Mwpglr3 匹 512 r 址MAloM2m2-s-2父氧加 IS,3 短UN31024024-2Mi. 1Pd 16nMil明慢!YOLO将输入图像分成SXS个格子,若某个物体 Ground truth的中心位置 的坐标落入到某个格子,那么这个格子就负责检测出这个物体。每个边界框由5个预测组成:x, y, w, h和置信度。(x, y)坐标表示相对于网格单元边界的框的中心。宽度和高度是相对于整个图像预测的。最后,置信 度预测表示预测框与任何 ground truth框之间的IOU。每个网格单元还预测 C条件类概率Pr(Classi|Obj
24、ect)。这些概率取决于包含 对象的网格单元。仅预测每个网格单元的一组类概率, 而不管箱B的数量。在测 试时间,将条件类概率和单个盒子置信度预测相乘,Pr(aaSBi |Objc<t) * Fr(Ob产t) 4 IQU蹑=<11这给出了每个盒子的类别特定置信度评分。 这些分数编码该类出现在盒子中 的概率以及预测盒子如何适合该对象。 YOLO的输出维度为SXSX(BX5+C)。 检测中采用了 S=7, B=2, C=20。YOLO对占比较小的目标检测效果一般。虽然每个格子可以预测B个bounding box,但是最终只选择IOU最高的bounding box作为物体检测输出,即 每个
25、格子最多只能预测出一个物体。 当物体占画面比例较小,如图像中包含鸟群 时,每个格子包含多个物体,但却只能检测出其中一个。YOLO训练时的Loss函数如下S2 BAc £ 52 瑶i=Q j =OS2 B十 XtiMu d £ £ 1富/ = U J =uit)2 + (yt - yt)i -+(怎-2r十三之瑶(G-引j =u2 E+ Anoobj "2 S (g -i =D j =0+ £1? £ 仙%(c)产t = 0c classes其中左oorc=5, Moobj=0.5,是权重系数。公式包括三部分,分别是坐标误差、IOU误差
26、和分类误差。3.3.2 YOLO9000YOLOv2对之刖的版本做了改进。取消了 dropout,在卷积层全部使用Batch Normalization;采用448x448的分辨率训练检测网络;借鉴 Faster R-CNN的思 想预测bbox的偏移,移除了全连接层,并且删掉了一个 POOL层使特征的分辨 率更大。网络结构图如下:laver0filtersconv 32J34 5678910111213 14 IS1617181920 21 2223 24252627282930max conv64ladAeonv128conv64conv12Hmaxconv2568irv128conv256
27、max conv conv conv conv convnw: conv conv conv conv conv conv conv route conv6 2 65 152 5 2-34 2 4 2 4 4 42 12 12 2 264i eoi grout 27 24 conv 1024 conv 4253 q一 3 c J3 13 门J 31 3 c J3 13 13Q j3 1 31 33 3sizex 3 / Ix 2 / 2 x 3 / 1 x 2 / 2 K 3 7 1X 1 / 1X 3 / 1 x 2 / 2 x 3 / 1 x 1 / 1 x 3 / 1 x 2 / 2K
28、3 / 1X 1 / 1 区3 / 1x 1 / 1 x 3 / 1 k 2 / 2 x 3 / 1x 1 / 1 x 3 / 1 K 1 / 1 x 3 / 1 x 3 / 1 x 3 / 1K 1 / 1/ 2x 3 / 1 x 1 / 1416工416 st3416工416 x3220S x208 x3220S x208 x64104父1104,64104 x104 Ji128104 x104 x64104工104 x128input52工5212852 x52x25652 x52工12852 x52*25626 x2625626 x2651226 x26彳25626 x26x51226
29、工26X25626 x26X51213 x13工51213 x13 万102413 x1351213 x13Ml 02113 x13工51213 x13 工102413工13X102426 x26X51226 x26XG413 x132:128013 x13 X1024output416 x416 x32208 x203 x32208 x20S x64104 a104 x64104x104x128104工104x64104x104x12852 k52 x12852 x52 x25652 x52 x12852 x52 x25626 x26 x25626 x26 x51226 x26 x25626
30、 x26 x51226 z26 x25626 x26 x51213 x13笈51213 x13 5d02413 x13 x51213 x13 X102413 xL3 x51213 x13 5d02413 A13 xl02413 xK xl024261313 x 13 xlQ2413 x 13 x 425YOLOv2的性能比v1有了提升,具体数据在v3部分进行对比。3.3.3 YOLOv3YOLOv3是2018年3月25号发布的,里面对当前各种物体检测算法做了性 能对比Method YOLOv3 -®-RtinaNel-&0 - - RetinaNet-101 mAP time
31、B SSD321C DSSD321D R-FCNE SSD513:F DSSD513:G FPN FRCNRetinsNet-50-500RetinaNet-10V500RetinaNet-101-800VOLOv3-320YOLOvSlieYOLQV3-60B618585125156172739019822SU00922 25 48200fi.8*9Ll3.16,12,47,8.113.50100150200250inference time (ms)Figure 1. We adapt this figure from the Focal Loss paper . YOLOv3 runs
32、significantly faster than other detection methods with comparable performance. Times from either ati M40 or Titan X, they are basically the same GPU.在320 * 320分辨率下,YOLOv3达到28.2 mAP、22 ms,与SSD 一样精确,但速度提高了三倍。对旧的 0.5 IOU mAP检测指标YOLOv3表现不俗。在Titan X 上,它达到了 51 ms、57.9 AP50,而 RetinaNetWJ是 198 ms、57.5 AP50,性能 相似,但是快了 3.8倍。YOLOv3主要在多尺度预测、基础分类网络及分类器上做了
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026届高考生物一轮精准突破复习第26讲基因突变和基因重组
- 课件活动安全教育教案
- 幼儿园游戏化教学培训心得汇编
- 工厂员工绩效考核实施细则
- 中学英语常见混淆短语专项练习
- 信息安全管理体系建设最佳实践
- 2026年碎石坝运行的安全管理与监测
- 2026年电气设备维护过程中的常见误区
- 企业内部矛盾调解实务指南
- PCCP管道安装施工详细方案
- 盖州市水务有限责任公司2025年工作总结暨2026年工作计划
- 幼儿园老师面试高分技巧
- 瓷砖工程验收课程
- 难治性癌痛护理
- 2026年管线钢市场调研报告
- 中医内科学考试题库及答案(二)
- 2025年江苏省公务员面试模拟题及答案
- 2025中国家庭品牌消费趋势报告-OTC药品篇-
- 广东省2025届湛江市高三下学期第一次模拟考试-政治试题(含答案)
- 天津市河东区2026届七年级数学第一学期期末复习检测试题含解析
- 水库清淤申请书
评论
0/150
提交评论