




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、深度神经网络及目标检测学习笔记https:/youtu.be/MPU2HistivI上面是一段实时目标识别的演示, 计算机在视频流上标注出物体的类别, 包 括人、汽车、自行车、狗、背包、领带、椅子等。今天的计算机视觉技术已经可以在图片、 视频中识别出大量类别的物体, 甚 至可以初步理解图片或者视频中的内容, 在这方面,人工智能已经达到了 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 采用了局部感知和权值共享的方 法。局部感知,就是用一个N X N (如N=3)的矩阵(称为卷积核)去滑动扫描 图像,进行卷积运算。权值共享,就是扫描图片的滑动矩阵的权值是共享的(相 同的)。在实际运算中,这个卷积核相当于一个特征提取的过滤器( filter) 。举例 来说,假设一个10X 10的图像,用一个3X 3的卷积核以步长1做一次卷积运算, 那么会得到一个8X 8的特
7、征图(feature map)。为了使得到的feature map和原图 等大小,一般给原图进行扩充为 12X 12,这样卷积一次以后,得到的仍然是 10 X 10大小的图像。在这个例子中,如果不采用权值共享,则一共需要100个权值参数,权值共享后,只需要 3X 3=9 个权值参数。在实际中,一个 RGB 图像是三个通道,而卷积核也可能有多个。这样计算 起来会比上面的例子复杂些,但基本原理是一样的。2.2 CNN 计算流程一个典型的 CNN 算法的流程大概是这样的:首先是输入,然后是 n 个卷积 和池化的组合,最后全连接层感知分类。在这个流程里, 卷积运算主要是用来提取特征。 一个典型的卷积计
8、算如下图 所示。<卷积计算示意图 >图中 input 是同一个图像的三个通道, 周边有填充 0;有两个卷积核 Filter W0 和Filter W1,一个filter滑动到一个位置后计算三个通道的卷积,求和,加bias,得到这个 filter 在该位置的最终结果; 每个 filter 的输出是各个通道的汇总; 输出 的个数与 filter 个数相同。在这里还要加上激活函数,对计算结果进行非线性变 换。常用的激活函数有 tanh、ReLU、sigmoid 等。激活函数的作用好像可以解释 为:过滤掉一些可以忽略的不重要因素,以避免其对决策产生过度影响。池化是为了降维,有最大池化(Ma
9、x Pooling)和平均池化(Average Pooling)。 一个 2X 2 最大池化的示例如下图。Single depth slice/I 1023X4668311012246834最后是全连接层,它将前面卷积层提取的特征映射到样本标记空间,它输出一个分类的概率,也就是最终的结果。2.3典型的CNN模型LeNet,最早用于数字识别的 CNN,用5X 5卷积核,2X 2最大池化,识别 输入为28X 28的灰度点阵,网络结构是(CONV POOL CONV POOL CONV FC)。AlexNet,2012 ImageNet比赛第一名,准确度超过第二名 10%。网络结构如 下图。5个CO
10、NV、3个POOL、2个LRN、3个FC,卷积核分别是11X 11、5 X 5、3X 3,采用ReLU作为激活函数。paramsAlexNetFLOPs4M '_FC 1000_21 4M16M 二FC4096/ReLU二| 16M37 M442K1.3M884KFC 4096/ReLU37MMax Pool 3x3s2 *Conv 3綽§1, 256 / ReLU |Conv 3x3s1t 384 I Re LUConv 3x3s1, 384 J Re LUMax Pool 3x3s274M112M149MLocal Response Norm307K223MCofw 5x
11、5閃,256 】FteLLT"!Max Poo! 3x3s2|Local Response Norm35K Conv 11x11s4, 96 1 ReLU 105MVGG,有跟多的卷积层(1619),使用3X 3卷积核。GoogLeNet,采用Inception来减少参数(用1X1卷积核降维)。ResNe,很多很多层的网络,从152层到据说上千层。采用残差网络来解决 多层网络难以训练的问题。以上网络的对比如下表。AlexN«tVGGGoogleNetRetNet初人江期20122014201-q201519221152Top易惜溟16.47.課6.7%3 57%Aug me
12、n taiion4-*+Inceptian(NIN)i-5162115111,5.37.1.35亍i!站蚊I40 绳 40&4加00311却加6曲 100010001000D rope mt+Local R#sponie Normal iz*tion<Batch Normalization一2.4训练集应该可以感受到,人工智能也好,深度学习也好,算法的优劣是一方面,而 训练数据集的好坏,对最终的效果影响更大。而训练集又非常难做,需要大量的 数据,且标记这些数据需要巨大的工作量(过去的8年ImageNet就在做这个工作)。逐渐,一些数据集就慢慢出了名。很多算法的性能
13、数据都会指明是在哪个 数据集上训练的。一些有名的数据集如下。MNIST :深度学习领域的“ Hello World!”,一个手写数字数据库,有 60000 个训练样本集和10000个测试样本集,每个样本图像的宽高为 28*28。数据集以 二进制存储,不能直接查看。数据集大小为 12M。ImageNet: MIT李飞飞团队过去几年的成果,目前有1400多万幅图片,涵盖2万多个类别。数据集大小为1To ImageNet根据WordNet层次(目前只有名 词)组织的一个图像数据库,其中每个节点的层次结构是由成千上万的图像描绘。 目前,有平均每个节点超过五百的图像。COCO: Com mon Obje
14、cts in Con text,是一个新的图像识别、分割、和字幕 数据集,由微软赞助,具有上下文识别、语义描述等特点。数据集大小为40G。PASCAL VOC :图片集包括20个目录,数据集图像质量好,标注完备,非 常适合用来测试算法性能。数据集大小为 2G。由于数据集生成有一定难度且工作量巨大,两年来GAN ( GenerativeAdversarial Nets,生成对抗网络)快速发展,并在很多应用场景的训练集生成产 生了巨大作用,比如车牌识别。三、物体检测3.1 检测流程在实际场景中, 我们需要在一副图像中找出有哪些物体, 这是一个多对多的 映射(所谓的回归)。按照已有的 CNN 方法,
15、常规的检测流程就是:先找到哪 些区域有物体,然后再用 CNN 来对其分类。区域选择最原始的办法就是用不同大小的滑动窗口对整幅图像进行扫描。 这 样不但计算量大,也容易造成误判。一个改进的方法是所谓 Region Proposa,l 即 预先找出物体可能在的位置。这里需要提到以下几个概念。loU: In tersectio n over Un io n, Regio n Proposal 与 Ground Truth 的窗口的交集 比并集的比值,如果 IoU 低于 0.5,那么相当于目标还是没有检测到。 Ground Truth 就是实际物体真实的区域。mAP,mean Average Prec
16、ision平均精度均值。是对多个验证集求 PR曲线 的均值。PR曲线是Precision和Recall作为横纵坐标轴的曲线,Precision是准确 率,即检测出的样本有多少是正确的, Recall 是召回率,即应该被检测出的样本 有多少被检测出来。PR曲线越高,说明算法越好,即又多又准。3.2 典型的算法从 2014年的 R-CNN(Region p ro posa l+C N N )开始,出现了一系列目标检 测算法,从 R-CNN 至U fast R-CNN 和 faster R-CNN,以及 SPP-NET,R-FCN,还 有 YOLOv1v3 和 SSD、 DSSD。R-CNN :采用
17、 selective search 方法(一种 Region Proposal 方法,Region Proposal的方法有selective search edge box)进行区域选择,选出2000个左右。 将每个区域缩放至227X 227,再送入CNN计算特征,最后由SVM (支持向量机)分类。很明显, R-CNN 很慢SPP-NET:为了加快R-CNN的速度,采取对一副图像的多个 Region Proposal 一次提取特征。 这就要求网络必须适应不同尺寸的图像。 方法是在全连接层之前 加入一个网络层,让它对任意尺寸的输入产生固定的输出(将图像分成16、4、1个块)。SPP-NET训练
18、步骤繁琐,并且仍然不够快。fast R-CNN:与R-CNN相比,fast R-CNN在最后一个卷积层后加了一个 ROI pooling layer,同时损失函数使用了多任务损失函数(multi-task loss),将边框回归 直接加入到CNN网络中训练,最后用softmax替代SVM进行分类。fast R-CNN 不是真正的端到端训练测试,还是需要 selective search来进行Region Proposal, 所以还是不够快,不能做实时的检测。Faster R-CNN:采用 RPN ( Region Proposal Networks)用 Anchor 机制和边 框回归直接得到多
19、尺度多长宽比的 Region Proposal。 Fast R-CNN 做到了真正的 端到端,但可惜的是仍然不能达到实时检测。 RPN需要详细了解一下。R-FCN: Object Detection via Region-based Fully Convolutional Networks,基于 区域的全卷积网络物体检测。嫁接 ResNet的卷积层,采用RPN获取ROI,针对 每个ROI,在POOL之前加入位置信息(通过 score map)。R-FCN的score map 计算有点绕,需要慢慢理解。YOLO :虽然精度不是最好,但确是目前实时性最好的算法,可以在视频中 实时检测出很多物体。
20、倒也符合人类视觉的特点, 一眼望去先看个大概, 要想看 细节,那就定格仔细看吧。 YOLO 系列的算法后面详细总结。SSD: SSD结合了 YOLO中的回归思想和 Faster R-CNN中的anchor机制, 使用全图各个位置的多尺度区域特征进行回归, 既保持了 YOLO速度快的特性, 也保证了窗口预测的跟 Faster R-CNN 一样比较精准。一般后续出现的算法都会与之前的算法做性能对比, SSD 和 YOLOv1 比, YOLOv2、v3又和SSD比,在不同的训练集上也有不同的 mAP,看起来真是眼 花缭乱。因为机缘巧合,我先接触到 YOLO 系列算法,在自己的电脑上运行 DEMO,
21、也仔细看了 YOLO 的发展,于是给一个稍微详细的总结。3.3 YOLO 系列算法YOLO 算法主要是针对以往物体检测算法速度较慢的弊端, 利用一个单独的端到端网络,将原始图像输入,直接输出物体位置和类别。YOLO没有显式的求 取 Region Proposal的过程(R-CNN 和 Fast R-CNN 采用 selective search获取,Faster R-CNN和R-FCN则采用了 RPN)°YOLO的名字也来自于其核心特征:You Only Look Once,只看一次。从2015年到2018年3月,YOLO 共出了三个版本 v1、v2 (YOLO9000 )、 v3,
22、性能逐渐提高,mAP与其它算法持平或略胜一筹。3.3.1 YOLOvIYOLO将对象检测框架化为空间分离边界框和相关类别概率的回归问题。 单 个神经网络在一次评估中直接从完整图像预测边界框和类概率。 由于整个检测流 水线是单个网络,因此可以直接针对检测性能端到端地进行优化, 使得统一架构 非常快。基础YOLO模型以45帧/秒的速度实时处理图像。较小版本的网络FastYOLO每秒处理可达155帧,同时实现其他实时检测器的 mAP的两倍。与最先 进的检测系统相比,YOLO产生更多的定位误差,但不太可能预测背景上的误报。 最后,YOLO表现出对目标识别很好的通用性。YOLO检测网络有24个卷积层,其
23、次是2个完全连接的层。 交替的1X1 卷积层减少了来自前面层的特征空间。在分辨率的一半(224 * 224输入图像)上预分割ImageNet分类任务上的卷积图层,然后将分辨率加倍以进行检测。Ccm*.Cofw. Layers Cotw. 古 Corw.3(31024I>clk3561x1x5923x3jcI3x31024310242ilAcLipwl Lay*!1 MjjpagJJxixBCufliY. LuyrYOLO将输入图像分成SX S个格子,若某个物体 Ground truth的中心位置 的坐标落入到某个格子,那么这个格子就负责检测出这个物体。每个边界框由5个预测组成:x,y,w
24、,h和置信度。(x, y)坐标表示相对于网格单元边界的框的中心。宽度和高度是相对于整个图像预测的。最后,置信度预测表示预测框与任何 ground truth框之间的IOU。每个网格单元还预测 C条件类概率Pr (Classi|Object)。这些概率取决于包 含对象的网格单元。仅预测每个网格单元的一组类概率,而不管箱B的数量。在测试时间,将条件类概率和单个盒子置信度预测相乘,ICbject) *(D这给出了每个盒子的类别特定置信度评分。 这些分数编码该类出现在盒子中 的概率以及预测盒子如何适合该对象。 YOLO的输出维度为SX SX (B X 5+C)。 检测中采用了 S=7, B=2, C=
25、20。YOLO对占比较小的目标检测效果一般。虽然每个格子可以预测B个bounding box,但是最终只选择IOU最高的bounding box作为物体检测输出,即 每个格子最多只能预测出一个物体。当物体占画面比例较小,如图像中包含鸟群时,每个格子包含多个物体,但却只能检测出其中一个。YOLO训练时的Loss函数如下A B刀52谓(啦一轨)"+ (城盹尸 7=0K - /i i + (21S2 B十入 w 52 52i =0 j =0沪 BuU j = 0s2+22 (Pi(c) -?i(c)氐二仃c classes其中?coorc=5, 2ooobj=0.5,是权重系数。公式包括三
26、部分,分别是坐标误差、IOU误差和分类误差3.3.2 YOLO9000Y0L0v2对之前的版本做了改进。取消了 dropout,在卷积层全部使用BatchNormalization ;采用448X 448的分辨率训练检测网络;借鉴 Faster R-CNN的思想预测bbox的偏移,移除了全连接层,并且删掉了一个POOL层使特征的分辨率更大。网络结构图如下:layer0conv323X1旳日耳耳conv64X3xaxX4conv128X5ccnv641X6ccnv1283XFTimaxX8conv3Xgccnv1X10ccnv3X11maA9X12conv5123X13conv2561X14co
27、nv5123X15CODY2561X16conv5123X17max2X18ccnv10243X19conv5121X20conv10243X2Lconv5121X22ccnv10243X23conv10243X24ccnv10243X25route1626conv641X27reorg28route27 2429conv10243X30CORY4251XJ 1血1 ectionf iL t巴丄51 / 13 f 1 2/23 / 11 / 13 / 1° # 仃 £ f £3 f 11 / 13 / 11 / 13 / 19/73 / 11 / 13 / 11
28、/ 13 / 13 / 13 / 14164162082081041041041045252525226262626262613131313131313X 416x 416k 208x 208x 104x 104k 104X 104x 52x 52x 52x 52x 26x 26x 26x 26x 26x 26x 13x 13x 13x 13x 13x 13x 13injutx 3 k 32x 32x 64垃64x 128x 64x 128x 128x 256x 128x 256x 256x 512k 256x 512x 256x 512 a 512 X1024X 512K1O24x 512x
29、l024xl024->->->416 x208 x208 x104 a104 x104 x104 xoilLput416 x208 x208 x104 xJ04 x104 x1Q4 x323264641286412826262626k 512x 6413131313X1280xl02452X52x 128->52X52x 256->52X52x 128->52X52x 256->26X26x 256->26X26x 512->26X26x 256->26瓦26x 512->26X26x 2562B5t26x 512->L3
30、X13x 512->13X13X1024->13X13x 51213X13X1024->L3X13x 512->L3X13xl024L3X13X102413X13xl024->26X26x 64->L3X13x 256->13X13X1Q24->L3X13x 425YOLOv2的性能比v1有了提升,具体数据在v3部分进行对比3.3.3 YOLOv3YOLOv3是2018年3月25号发布的,里面对当前各种物体检测算法做了性能对比Methodd 34B SSD321C DSSD321D R-FGN EJSSD513 FJDSSD513 G FPN F
31、RCN RetinaNet-50-500 RetinaNeM 01 *500 RetinaNet-101-800 VOLOv3-320 YOLOvS-416YQLOv3-eOS0092225482008 89 13624781 32 2 2333332 3315 56 0Q 81251501727390侃222951 YOILOV3 H- FtetinaTNet-50 -RetinahieMOI mAP time50100150200250inference time (ms)Figure 1. Wd adapt this figure from the Focal Loss paper .Y
32、OLO、:3 runs significantly faster than other detection methodswith comparable performance- Times from eitheran M40 or TitanX, 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,而 Ret in aNet 则是 198 ms、57.5 AP50,性能 相似,但是快了 3.8倍。YOLOv3主要在多尺度预测、基础分类网络及分类器上做了改进。采用多尺度预测,每种
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 租书服务的社区文化大使项目考核试卷
- 粪便资源化利用在减少化肥使用中的作用考题考核试卷
- 江西师范高等专科学校《免疫与病原生物学实验Ⅲ》2023-2024学年第一学期期末试卷
- 吉林省辽源市重点名校2025届初三第三次模拟考试语文试题含解析
- 山东省滨州市达标名校2025年中考第三次调研考试语文试题试卷含解析
- 内蒙古自治区呼和浩特市赛罕区达标名校2025届初三中考模拟卷(二)化学试题含解析
- 西安邮电大学《非诉讼实务》2023-2024学年第二学期期末试卷
- 武汉工程大学《演讲与口才》2023-2024学年第二学期期末试卷
- 辽宁省辽河油田第二中学2025年高考模拟试卷(4)化学试题含解析
- 太原科技大学《医生与病人》2023-2024学年第二学期期末试卷
- 解读2024 ESC急性肺血栓栓塞症诊断治疗指南
- T-CALC 007-2025 重症监护病房成人患者人文关怀规范
- 中学教育基础(上)知到课后答案智慧树章节测试答案2025年春陕西师范大学
- 金融数学考试及答案
- 婴幼儿物品消毒育婴师培训凌启课件
- 2025河北省安全员-C证(专职安全员)考试题库
- 湖南省张家界市慈利县实验高中-奋进关键期跨越分水岭-高二下开学家长会【课件】
- 食品运输过程安全管理措施
- 2025年度电梯设备融资租赁合同范本2篇
- 室内保洁施工方案
- 2024届高考专题复习北京高考模拟考《论语》试题
评论
0/150
提交评论