版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、基于深度学习的目标检测研究卓越管理智摩精心制作多年企业咨询,精品管理word模板值得您下载拥有!2019年1月上面是一段实时目标识别的演示,计算机在视频流上标注出物体的类别,包括人、汽车、自行车、狗、背包、领带、椅子等。今天的计算机视觉技术已经可以在图片、视频中识别出大量类别的物体,甚至可以初步理解图片或者视频中的内容,在这方面,人工智能已经达到了3岁儿童的智力水平。这是一个很了不起的成就,毕竟人工智能用了几十年的时间,就走完了人类几十万年的进化之路,并且还在加速发展。道路总是曲折的,也是有迹可循的。在尝试了其它方法之后,计算机视觉在仿生学里找到了正确的道路(至少目前看是正确的)。通过研究人类
2、的视觉原理,计算机利用深度神经网络(DeepNeuralNetwork,NN)实现了对图片的识别,包括文字识别、物体分类、图像理解等。在这个过程中,神经元和神经网络模型、大数据技术的发展,以及处理器(尤其是GPU)强大的算力,给人工智能技术的发展提供了很大的支持。本文是一篇学习笔记,以深度优先的思路,记录了对深度学习(DeepLearnincj)的简单梳理,主要针对计算机视觉应用领域。一、神经网络1.1 神经元和神经网络神经元是生物学概念,用数学描述就是:对多个输入进行加权求和,并经过激活函数进行非线性输出。由多个神经元作为输入节点,则构成了简单的单层神经网络(感知器),可以进行线性分类。两层
3、神经网络则可以完成复杂一些的工作,比如解决异或问题,而且具有非常好的非线性分类效果。而多层(两层以上)神经网络,就是所谓的深度神经网络。神经网络的工作原理就是神经元的计算,一层一层的加权求和、激活,最终输出结果。深度神经网络中的参数太多(可达亿级),必须靠大量数据的训练来设置。训练的过程就好像是刚出生的婴儿,在父母一遍遍的重复中学习“这是苹果”、“那是汽车”。有人说,人工智能很傻嘛,到现在还不如三岁小孩。其实可以换个角度想:刚出生婴儿就好像是一个裸机,这是经过几十万年的进化才形成的,然后经过几年的学习,就会认识图片和文字了;而深度学习这个“裸机”用了几十年就被设计出来,并且经过几个小时的“学习
4、”,就可以达到这个水平了。1.2 BP算法神经网络的训练就是它的参数不断变化收敛的过程。像父母教婴儿识图认字一样,给神经网络看一张图并告诉它这是苹果,它就把所有参数做一些调整,使得它的计算结果比之前更接近“苹果”这个结果。经过上百万张图片的训练,它就可以达到和人差不多的识别能力,可以认出一定种类的物体。这个过程是通过反向传播(BackPropagation,BP)算法来实现的。建议仔细看一下BP算法的计算原理,以及跟踪一个简单的神经网络来体会训练的过程。1.3 小结人工神经网络就是根据人的神经元模型而构建的一个感知算法,利用大量的神经元组合对人的认知行为进行拟合。目前我们仍然无法精确的知道它为
5、什么能工作、如何工作,如同我们仍然无法精确知道人的大脑是如何工作一样。在摸索过程中,我们好像应该更多地思考人类自己是怎么去“看”的,这会更有助于设计更好的算法。比如本文开头的视频识别算法,它很快,但是不够精确,而有些可以“看清”细节的算法,就会非常慢。就像我们人类自己,走马观花只能看到概貌,驻足观赏才能看清细节。我们越了解自己,就越能做得更好。二、卷积神经网络2.1 简介卷积神经网络(ConvocationalNeuralNetwork,CNN)是一个特殊的深层神经网络,目前在计算机视觉领域广泛使用,可以认为它是一个二维向量(图片就是一个二维向量)的感知器。CNN算法的核心是对图像(二维向量)
6、进行矩阵卷积运算,这就相当于是对图像进行加权求和。为了减小计算量,CNN采用了局部感知和权值共享的方法。局部感知,就是用一个NXN(如N=3)的矩阵(称为卷积核)去滑动扫描图像,进行卷积运算。权值共享,就是扫描图片的滑动矩阵的权值是共享的(相同的)。在实际运算中,这个卷积核相当于一个特征提取的过滤器(filter)0举例来说,假设一个10X10的图像,用一个3X3的卷积核以步长1做一次卷积运算,那么会得到一个8X8的特征图(featurema。为了使得到的featuremap和原图等大小,一般给原图进行扩充为12X12,这样卷积一次以后,得到的仍然是10X10大小的图像。在这个例子中,如果不采
7、用权值共享,则一共需要100个权值参数,权值共享后,只需要3X3=9个权值参数。在实际中,一个RGB图像是三个通道,而卷积核也可能有多个。这样计算起来会比上面的例子复杂些,但基本原理是一样的。2.2 CNN计算流程一个典型的CNN算法的流程大概是这样的:首先是输入,然后是n个卷积和池化的组合,最后全连接层感知分类。在这个流程里,卷积运算主要是用来提取特征。一个典型的卷积计算如下图所示。卷积计算示意图图中input是同一个图像的三个通道,周边有填充0;有两个卷积核FilterW0和FilterW1,一个filter滑动到一个位置后计算三个通道的卷积,求和,加bias,得到这个filter在该位置
8、的最终结果;每个filter的输出是各个通道的汇总;输出的个数与filter个数相同。在这里还要加上激活函数,对计算结果进行非线性变换。常用的激活函数有tanh、ReLU、sigmoid等。激活函数的作用好像可以解释为:过滤掉一些可以忽略的不重要因素,以避免其对决策产生过度影响。池化是为了降维,有最大池化(MaxPooling)和平均池化(AveragePooling)。一个2X2最大池化的示例如下图。Singledepthslice1023X466831101224最后是全连接层,它将前面卷积层提取的特征映射到样本标记空间,它输出一个分类的概率,也就是最终的结果。2.3 典型的CNN模型Le
9、Net,最早用于数字识别的CNN,用5X5卷积核,2X2最大池化,识别输入为28X28的灰度点阵,网络结构是(CONV-POOL-CONV-POOL-CONVFC)。AlexNet,2012ImageNet比赛第一名,准确度超过第二名10%。网络结构如下图。5个CONV、3个POOL、2个LRN、3个FC,卷积核分别是11X11、5X5、3X3,采用ReLU作为激活函数。37M442K13IVI884K307KparamsAlexNetFLOPs4M匚_FC1000_1|4M16MFC4096/ReLU16MFC4096;ReLUJ37MMa)cPool3x3s211Conv3x3st25S/
10、ReLUj74MConv3x3s1,384/ReLU|112MConv3x3s1t38+/ReLU149MMaxPool3x3s2LocalResponseNormConv5x5st256/ReLUJ223MMaxPool3x3s2LocalResponseNorm35KConv11x1154,961ReLU105MVGG,有跟多的卷积层(16-19),使用3X3卷积核。GoogLeNet,采用Inception来减少参数(用1X1卷积核降维)。ResNet,很多很多层的网络,从152层到据说上千层。采用残差网络来解决多层网络难以训练的问题。以上网络的对比如下表。AlexNetVGGGoogL
11、eNetRnNet初入江湖2012201420142C15底数81922152op5然误164%7.3%67%3.S7%DataAugmertatio+4+lnception(NIN;-苍枳层数51621151孝喉文小115337,1*7,135堂违搂募敬3m11全连明大小40蝇409610004096.4056,100010001000Drapcut+*+Loc*llResponseNornuliuiion+-*BatchNormalization+2.4 训练集应该可以感受到,人工智能也好,深度学习也好,算法的优劣是一方面,而训练数据集的好坏,对最终的效果影响更大。而训练集又非常难做,需要
12、大量的数据,且标记这些数据需要巨大的工作量(过去的8年ImageNet就在做这个工作)。逐渐,一些数据集就慢慢出了名。很多算法的性能数据都会指明是在哪个数据集上训练的。一些有名的数据集如下。MNIST:深度学习领域的“HelloWorld!”,一个手写数字数据库,有60000个训练样本集和10000个测试样本集,每个样本图像的宽高为28*28。数据集以二进制存储,不能直接查看。数据集大小为12M。ImageNet:MIT李飞飞团队过去几年的成果,目前有1400多万幅图片,涵盖2万多个类别。数据集大小为1T。ImageNet根据WordNet层次(目前只有名词)组织的一个图像数据库,其中每个节点
13、的层次结构是由成千上万的图像描绘。目前,有平均每个节点超过五百的图像。COCO:CommonObjectsinContext,是一个新的图像识别、分割、和字幕数据集,由微软赞助,具有上下文识别、语义描述等特点。数据集大小为40G。PASCALVOC:图片集包括20个目录,数据集图像质量好,标注完备,非常适合用来测试算法性能。数据集大小为2Go由于数据集生成有一定难度且工作量巨大,两年来GAN(GenerativeAdversarialNets;,生成对抗网络)快速发展,并在很多应用场景的训练集生成产生了巨大作用,比如车牌识别。三、物体检测3.1 检测流程在实际场景中,我们需要在一副图像中找出有
14、哪些物体,这是一个多对多的映射(所谓的回归)。按照已有的CNN方法,常规的检测流程就是:先找到哪些区域有物体,然后再用CNN来对其分类。区域选择最原始的办法就是用不同大小的滑动窗口对整幅图像进行扫描。这样不但计算量大,也容易造成误判。一个改进的方法是所谓RegionProposal,即预先找出物体可能在的位置。这里需要提到以下几个概念。IoU:IntersectionoverUnion,RegionProposal与GroundTruth的窗口的交集比并集的比值,如果IoU低于0.5,那么相当于目标还是没有检测到。GroundTruth就是实际物体真实的区域。mAP,meanAveragePr
15、ecision,平均精度均值。是对多个验证集求PR曲线的均值。PR曲线是Precision和Recall作为横纵坐标轴的曲线,Precision是准确率,即检测出的样本有多少是正确的,Recall是召回率,即应该被检测出的样本有多少被检测出来。PR曲线越高,说明算法越好,即又多又准。3.2 典型的算法从2014年的R-CNN(Regionproposal+CNN)开始,出现了一系列目标检测算法,从R-CNN至UfastR-CNN和fasterR-CNN,以及SPP-NET,R-FCN,还有YOLOv1v3和SSD、DSSD。R-CNN:采用selectivesearch方法(一种RegionP
16、roposal方法,RegionProposal的方法有selectivesearchedgeboX)进行区域选择,选出2000个左右。将每个区域缩放至227X227,再送入CNN计算特征,最后由SVM(支持向量机)分类。很明显,R-CNN很慢。SPP-NET:为了力口快R-CNN的速度,采取对一副图像的多个RegionProposal一次提取特征。这就要求网络必须适应不同尺寸的图像。方法是在全连接层之前加入一个网络层,让它对任意尺寸的输入产生固定的输出(将图像分成16、4、1个块)。SPP-NET训练步骤繁琐,并且仍然不够快。fastR-CNN:与R-CNN相比,fastR-CNN在最后一个
17、卷积层后加了一个ROIpoolinglayer,同时损失函数使用了多任务损失函数(multi-taskloss),将边框回归直接加入到CNN网络中训练,最后用softmax替代SVM进行分类。fastR-CNN不是真正的端到端训练测试,还是需要selectivesearch来进行RegionProposal,所以还是不够快,不能做实时的检测。FasterR-CNN:采用RPN(RegionProposalNetworks)用Anchor机制和边框回归直接得到多尺度多长宽比的RegionProposalFastR-CNN做到了真正的端到端,但可惜的是仍然不能达到实时检测。RPN需要详细了解一下。
18、R-FCN:ObjectDetectionviaRegion-basedFullyConvolutionalNetworks,基于区域的全卷积网络物体检测。嫁接ResNet的卷积层,采用RPN获取ROI,针对每个ROI,在POOL之前加入位置信息(通过scoremap)。R-FCN的scoremap计算有点绕,需要慢慢理解。YOLO:虽然精度不是最好,但确是目前实时性最好的算法,可以在视频中实时检测出很多物体。倒也符合人类视觉的特点,一眼望去先看个大概,要想看细节,那就定格仔细看吧。YOLO系列的算法后面详细总结。SSD:SSD结合了YOLO中的回归思想和FasterR-CNN中的anchor
19、机制,使用全图各个位置的多尺度区域特征进行回归,既保持了YOLO速度快的特性,也保证了窗口预测的跟FasterR-CNN一样比较精准。一般后续出现的算法都会与之前的算法做性能对比,SSD和YOLOv1比,YOLOv2、v3又和SSD比,在不同的训练集上也有不同的mAP,看起来真是眼花缭乱。因为机缘巧合,我先接触到YOLO系列算法,在自己的电脑上运行DEMO,也仔细看了YOLO的发展,于是给一个稍微详细的总结。3.3 YOLO系列算法YOLO算法主要是针对以往物体检测算法速度较慢的弊端,利用一个单独的端到端网络,将原始图像输入,直接输出物体位置和类别。YOLO没有显式的求取RegionPropo
20、sal的过程(R-CNN和FastR-CNN采用selectivesearc联取,FasterR-CNN和R-FCN则采用了RPN)。YOLO的名字也来自于其核心特征:YouOnlyLookOnce,只看一次。从2015年到2018年3月,YOLO一共出了三个版本v1、v2(YOLO9000)、v3,性能逐渐提高,mAP与其它算法持平或略胜一筹。3.3.1 YOLOvIYOLO将对象检测框架化为空间分离边界框和相关类别概率的回归问题。单个神经网络在一次评估中直接从完整图像预测边界框和类概率。由于整个检测流水线是单个网络,因此可以直接针对检测性能端到端地进行优化,使得统一架构非常快。基础YOLO
21、模型以45帧/秒的速度实时处理图像。较小版本的网络FastYOLO每秒处理可达155帧,同时实现其他实时检测器的mAP的两倍。与最先进的检测系统相比,YOLO产生更多的定位误差,但不太可能预测背景上的误报。最后,YOLO表现出对目标识别很好的通用性。YOLO检测网络有24个卷积层,其次是2个完全连接的层。交替的1M卷积层减少了来自前面层的特征空间。在分辨率的一半(224*224输入图像)上预分割ImageNet分类任务上的卷积图层,然后将分辨率加倍以进行检测。Co*.btlRCom.Con错LayersCon*-回科3Cchi*_加*fsQw_LarCcmik-Mwpglr3匹512r址MAl
22、oM2m2-s-2父氧加IS,3短UN31024024-2Mi.1Pd16nMil明慢!YOLO将输入图像分成SXS个格子,若某个物体Groundtruth的中心位置的坐标落入到某个格子,那么这个格子就负责检测出这个物体。每个边界框由5个预测组成:x,y,w,h和置信度。(x,y)坐标表示相对于网格单元边界的框的中心。宽度和高度是相对于整个图像预测的。最后,置信度预测表示预测框与任何groundtruth框之间的IOU。每个网格单元还预测C条件类概率Pr(Classi|Object)。这些概率取决于包含对象的网格单元。仅预测每个网格单元的一组类概率,而不管箱B的数量。在测试时间,将条件类概率和
23、单个盒子置信度预测相乘,Pr(aaSBi|Objct)*Fr(Ob产t)4IQU蹑=11这给出了每个盒子的类别特定置信度评分。这些分数编码该类出现在盒子中的概率以及预测盒子如何适合该对象。YOLO的输出维度为SXSX(BX5+C)。检测中采用了S=7,B=2,C=20。YOLO对占比较小的目标检测效果一般。虽然每个格子可以预测B个boundingbox,但是最终只选择IOU最高的boundingbox作为物体检测输出,即每个格子最多只能预测出一个物体。当物体占画面比例较小,如图像中包含鸟群时,每个格子包含多个物体,但却只能检测出其中一个。YOLO训练时的Loss函数如下S2BAc52瑶i=Qj
24、=OS2B十XtiMud1富/=UJ=uit)2+(yt-yt)i-+(怎-2r十三之瑶(G-引j=u2E+Anoobj2S(g-i=Dj=0+1?仙%(c)产t=0cclasses其中左oorc=5,?noobj=0.5,是权重系数。公式包括三部分,分别是坐标误差、IOU误差和分类误差。3.3.2YOLO9000YOLOv2对之刖的版本做了改进。取消了dropout,在卷积层全部使用BatchNormalization;采用448x448的分辨率训练检测网络;借鉴FasterR-CNN的思想预测bbox的偏移,移除了全连接层,并且删掉了一个POOL层使特征的分辨率更大。网络结构图如下:lav
25、er0filtersconv32J34567891011121314IS161718192021222324252627282930maxconv64ladAeonv128conv64conv12Hmaxconv2568irv128conv256maxconvconvconvconvconvnw:convconvconvconvconvconvconvrouteconv626515252-34242444212122264ieoigrout2724conv1024conv4253q一3cJ313门J313cJ31313Qj3131333sizex3/Ix2/2x3/1x2/2K371X1/1X
26、3/1x2/2x3/1x1/1x3/1x2/2K3/1X1/1区3/1x1/1x3/1k2/2x3/1x1/1x3/1K1/1x3/1x3/1x3/1K1/1/2x3/1x1/1416工416st3416工416x3220Sx208x3220Sx208x64104父1104,64104x104Ji128104x104x64104工104x128input52工5212852x52x25652x52工12852x52*25626x2625626x2651226x26彳25626x26x51226工26X25626x26X51213x13工51213x13万102413x1351213x13Ml0
27、2113x13工51213x13工102413工13X102426x26X51226x26XG413x132:128013x13X1024output416x416x32208x203x32208x20Sx64104a104x64104x104x128104工104x64104x104x12852k52x12852x52x25652x52x12852x52x25626x26x25626x26x51226x26x25626x26x51226z26x25626x26x51213x13笈51213x135d02413x13x51213x13X102413xL3x51213x135d02413A13x
28、l02413xKxl024261313x13xlQ2413x13x425YOLOv2的性能比v1有了提升,具体数据在v3部分进行对比。3.3.3YOLOv3YOLOv3是2018年3月25号发布的,里面对当前各种物体检测算法做了性能对比MethodYOLOv3-RtinaNel-&0-RetinaNet-101mAPtimeB SSD321C DSSD321D R-FCNE SSD513:FDSSD513:GFPNFRCNRetinsNet-50-500RetinaNet-10V500RetinaNet-101-800VOLOv3-320YOLOvSlieYOLQV3-60B618585125
29、156172739019822SU009222548200fi.8*9Ll3.16,12,47,8.113.50100150200250inferencetime(ms)Figure1.WeadaptthisfigurefromtheFocalLosspaper.YOLOv3runssignificantlyfasterthanotherdetectionmethodswithcomparableperformance.TimesfromeitheratiM40orTitanX,theyarebasicallythesameGPU.在320*320分辨率下,YOLOv3达到28.2mAP、22ms,与SSD一样精确,但速度提高了三倍。对旧的0.5IOUmAP检测指标YOLOv3表现不俗。在TitanX上,它达到了51ms、57.9AP50,而RetinaNetWJ是198ms、57.5AP50,性能相似,但是快了3.8倍。YOLOv3主要在多尺度预测、基础分类网络及分类器上做了改进。采用多尺度预测
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2027年焦作云台职业学院单招职业技能考试模拟试卷带答案详解(新)
- 2025年郑州工商学院单招职业技能考试题库及参考答案详解(能力提升)
- 2025年大沽河职业学院高职单招职业技能考试题库含答案详解【培优B卷】
- 2027年青岛藏马山职业学院单招职业技能考试模拟试卷附参考答案详解(满分必刷)
- 2026年衡水滏阳河职业学院单招综合素质考试题库附参考答案详解【完整版】
- 2025年衡山康养职业学院高职单招职业适应性测试考试题库及完整答案详解【网校专用】
- 2027年濮阳职业技术学院高职单招职业适应性测试考试题库往年题考附答案详解
- 2026年桐安职业学院高职单招职业技能考试题库附参考答案详解(典型题)
- 2027年黑龙江省鹤岗市单招职业技能考试模拟试卷附答案详解【满分必刷】
- 2025年南充电影工业职业学院高职单招职业技能考试题库带答案详解(培优B卷)
- 南京公房承租管理办法
- 技术文件核查审核和审批制度
- GB/T 6974.3-2024起重机术语第3部分:塔式起重机
- 布朗运动公式
- 仁爱版英语七年级单词总表(上下册)
- 采矿工程毕业设计(论文)-灵新煤矿十四煤层年产300万吨地下开采初步设计
- 《特种作业实际操作考评手册》(高压电工作业分册)
- 供热管网项目安全文明施工保证措施
- QBT 2602-2003 影剧院公共座椅
- GB/T 11091-2024电缆用铜带箔材
- (正式版)SHT 3046-2024 石油化工立式圆筒形钢制焊接储罐设计规范
评论
0/150
提交评论