版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
嵌入式目标检测系统目标检测算法研究概述目录TOC\o"1-3"\h\u23624嵌入式目标检测系统目标检测算法研究概述 139781.1卷积神经网络相关知识简介 1121471.1.1输入层 271921.1.2卷积层 3175901.1.3池化层 4174471.1.4激活函数 5192371.1.5全连接层与损失函数 747791.2YOLO目标检测算法 985221.2.1YOLOv3算法网络结构 1155721.2.2边界框 13101151.2.3损失函数 14297451.2.4目标检测算法性能比较 15本课题的主要设计内容,是在嵌入式开发平台上,对复杂环境下对物体进行检测识别,与基于机器学习的传统图像识别算法相比,引入卷积神经网络的概念,受复杂环境因素的影响较小,同时功耗低、设备体积小,更适用于外界环境中。本章将首先对卷积神经网络的基本结构进行了叙述分析,然后对常见的图像识别算法进行比较分析出更适合的一种,最后描述该算法的网络结构以及输出的特点。1.1卷积神经网络相关知识简介卷积神经网络(ConvolutionalNeuralNetwork,CNN)在MLP的基础上增加了卷积层和池化层[25],属于一种前馈神经网络。常见的卷积神经网络架构如图3-1,一般分为特征提取器和分类器两个部分,其中特征提取器有三个部分组成:输入层(即待处理图像对应像素矩阵)、卷积层和池化层;分类器由全连接层和输出层组成。在进行训练学习时,图像的像素矩阵经过卷积处理和池化处理后提取出图像中物体的特征信息,全连接层负责把各个物体的特征信息如颜色、轮廓等转化为一维特征向量。网络的最后一层输出层通过目标物体的预测值及损失函数计算出物体所属类别的概率,通过进行比较,将概率最高的结果输出[26]。图3-1卷积神经网络结构Figure3-1StructureofCNN1.1.1输入层卷积神经网络通过输入层接收图像。卷积神经网络在进行训练之前不需要设置所需参数,无需做其他处理直接把训练图像输入卷积神经网络[27]。卷积神经网络具有较高的鲁棒性,在图像的物体检测过程中,彩色图像会被神经网络转换为一个范围为0~255的二维像素矩阵,包含了图像的色彩信息。例如,输入图像的尺寸大小为448×448像素,则输入层的矩阵可以表示为[448x448x3],其中宽度=448,高度=448,深度=3,此处的深度表示R,G,B通道。可以使用数学表达式pija来表示图像像素矩阵中的某一具体元素,其中a图3-2RGB图像Figure3-2RGBimage1.1.2卷积层卷积层可以利用卷积核提对图像进行处理从而得到图像的特征信息,其运算过程类似于图像处理中的滤波运算,通过卷积核与图像的每个像素点进行相乘再相加运算,得到图像中物体的特征信息[28]。影响卷积处理后的图像大小的因素包括卷积层中卷积核的尺寸、卷积运算的步长和填充参数。输出图像的尺寸计算公式如下:W(3-1)H(3-2)其中,W*H为输入图像的宽和高,卷积核的尺寸为F∗F,步长为S,填充为P,卷积核个数为C,经过卷积层之后输出的图像尺寸为W'∗H'*C,具体的运算过程示例如图3-3所示。图3-3卷积运算过程Figure3-3Convolutionoperationprocess 对于同一张图片不同大小的卷积层可以提取出图像各类特征,因此在算法的结构中卷积层通常包含多个大小不同的卷积核,每个卷积核都对应一个特征映射(FeatureMap)。在学习和检测过程中,各个卷积核在输入图像或特征图上沿横向和纵向的方向进行遍历,从而提取得到图像的不同特征。步长是卷积核每次在图像上移动的像素数,当步长为2时,卷积核每次移动两个像素,以此类推。经过卷积操作后的特征图的尺寸一般会比原始图片小,可以通过填充(padding)操作来保留图像的有效部分,常用零填充(zero-padding),即在特征图的周围填充0。1.1.3池化层 池化层也可称为下采样层,是对输入图像的特征信息进行采样和聚合的操作方法[29]。常用的池化处理分为最大池化、平均池化和总和池化。池化处理可以压缩图像尺寸,降低特征图的数据维度,防止出现过拟合现象,并且在一定程度上保留原始图像的特征信息。图像在经过卷积处理后,通过设定池化窗口的大小和步长大小来对卷积后的特征图进行池化处理,得到新的特征图。图3-4为最大池化、平均池化和总和池化的原理图。图3-4池化原理图Figure3-4Poolingschematic 其中,输入为4x4的图像,经过2x2的池化窗口,步长为1,输出3x3的特征图。最大池化是选择窗口中的最大值作为输出,然后移动窗口继续同一操作;平均池化是将窗口中的所有像素经过平均计算后作为输出,移动后继续计算。最大池化是将窗口中的最大值作为输出,使得整体特征的可分性强。平均池化计算每个视野范围内的平均值作为输出,处理后图像整体的特征信息变化不太剧烈。总和池化是将所有像素值的总和作为输出,经过总和池化后,图像的特征信息更加显著。池化层的引入使得网络在训练时可以有效提取出图像的特征信息位置,同时池化操作可以减少参数量,从而减少计算量,在学习过程中有效防止过度拟合的现象。1.1.4激活函数 在神经网络学习的过程中,如果只依靠卷积、池化等处理对图像像素矩阵进行单纯的线性处理,最后无论输入层和输出层之间有多少层,得到的结果都只能是输入的线性组合,这样神经网络的学习能力相对局限。为了使深层神经网络的学习能力更加强大,可以引入非线性函数作为激活函数[30],进行非线性处理,使神经网络可以更好得运用于实际场景中。下面是几种典型的激活函数。 (1)Sigmoid函数 Sigmoid激活函数也称Logistic函数[31],它将函数的输出值限定在[0,1]内。但是在函数两端趋向饱和,即输入为极大的负数时,输出无限靠近0,输入为极大的正数时,输出靠近1,在这两种情况下函数的梯度无限接近于0。在反向传播过程中,梯度消失出现的概率比较大,损失某些重要信息,从而无法完成神经网络进行学习时对相关参数的优化。计算公式3-3如下:Sigmoid(3-3) (2)tanh函数 tanh函数作为Sigmoid函数的优化函数,可以把函数的输出范围扩大到[-1,1]之间,一定程度上改善Sigmoid变化过于平缓和零均值化的问题,但是仍然存在梯度消失的问题。计算公式3-4如下:tanh(3-4) (3)ReLU函数 Nair等人针对深度学习中存在的梯度消失问题提出了ReLU函数[32]。ReLU函数是一个比较函数,大于0的输入经过函数处理后保持不变,小于0的输出为0。ReLU函数是目前使用频率最高的函数,其计算过程快捷,只需将输入与0相比,可加快学习速度,同时其收敛速度远快于其他函数。但缺点在于置0的神经元不会再被激活,导致相应的参数不会被更新。其表达式如下式3-5:ReLU(3-5) 针对ReLU存在的不足,ReLU的改进版LeakyReLU将ReLU的前半段设为αx而非0,可以有效避免神经元坏死的情况[33],但是需要增加参数量和计算量。其表达式如下式3-6:LeakyReLU(3-6) (4)Swish函数 尽管ReLu函数已经满足深度学习中大部分应用场景,但是ReLu函数在负半轴区域已经饱和,造成该区域的参数没有完全利用,对此Google提出了一个效果更好的激活函数[34],其计算公式如3-7:Swish(3-7) Swish在原点附近并不饱和,只有在负半轴随着输入逐渐减小函数才趋于饱和,同时ReLu函数在原点的负半轴空间全部都是饱和[35]。在训练模型时,初始化时的输入数值一般呈均匀分布或正态分布,均值都为0。与ReLu函数相比,Swish在负半轴也存在不饱和区,对参数的利用率更大。 以上几种激活函数的函数图像如图3-5所示。图3-5常见激活函数图像Figure3-5Commonactivationfunctionimage1.1.5全连接层与损失函数 全连接层是构建神经网络的主要结构,一个全连接层可以看作是由若干个“神经元”组成,作为目标检测过程中的分类器[36]。全连接层通过将输入层和输出层的节点连接,通过设置每个神经元所对应的权重和偏置,以及利用激活函数进行调节后,将得到的二维特征信息矩阵转换成为一个一维特征向量数组,再经过上一节提到的激活函数对图像的类别进行预测,得到一个预测向量y={y1,y2,y1yn}T,通过比较得出检测结果。例如,一幅图经过一系列的处理后,通过激活函数得到预测结果y={0.85,0.16,0.91,0.13}T,表示检测物体属于第一类、第二类、第三类和第四类的概率分别为0.85,0.16,0.91,0.13,则概率最高的第三类作为最终的输出,得到最后的检测结果。全连接层的数学表达式为3-8所示:a(3-8) 其中,ajl表示l层第j个神经元的加权输出,zjl表示第l层第j个神经元的加权输入,ajl−1表示l−1层第图3-6全连接层Figure3-6Fullyconnectedlayer 常见的神经网络模型的目的是找到最优的权重{w1,w2,...,wn}使得输出值{y1,y2,...,yn}与n个样本{x1,xf(3-9)loss=(3-10)loss=−(3-11)1.2YOLO目标检测算法YOLO是由JosephRedmon在FasterR-CNN的基础上提出的[38],其主要作用是在较高检测精度的前提下实现了对整幅图片的实时检测。YOLO将目标检测问题转化为回归问题[39],通过使用神经网络对整个图像进行遍历,对物体进行检测识别。YOLO算法的一般检测流程是通过将待检测图片重新调整为适合检测的尺寸,之后使用神经网络对图像进行处理,通过将输入图片划分为S×S个网格,判断识别目标的中心处于哪一个网格内,则该网格就负责检测该目标物体。图3-7YOLO检测系统Figure3-7YOLOdetectionsystem YOLO算法实现了在单一网络里提取特征并预测边界框位置坐标和目标类别概率。YOLO的分类网络与GoogLeNet的网络结构相似[40],与GoogLeNet不同,YOLO中在3×3卷积层前采用1×1卷积层实现降维。GoogLeNet算法的网络结构包含24个卷积层和2个全连接层[41],同时规定输入的检测图像的分辨率为224×224。YOLO算法的检测原理如图3-8,YOLO拥有22层网络层的分类模型,包括20层卷积层、1层平均池化层和1层全连接层,识别准确率达到88%。接着在预训练分类网络基础上增加了4层卷积层和2层全连接层,并将输入图像分辨率提高为448×448进行预测。图3-8YOLO模型Figure3-8YOLOmodel YOLO为目标检测提供了一个新的解决思路,具有以下优点: 1)速度快。将检测问题转换为回归问题,减少了计算量,检测速度可达150FPS[42]。 2)YOLO在检测时对图片进行推理。与FastRCNN不同,YOLO可以在训练和检测时提取检测图片的特征信息,包含特征信息和语义信息。FastRCNN有时会把背景误检测为目标物体[43]。YOLO的误检率比FastRCNN至少低50%。 3)YOLO能够学习到目标更加泛化的特征。当它被应用到新的场景或者输入有较大差异的图像时,性能不会有太大的下降。 针对前两个版本YOLO存在的问题,YOLOv3通过采用Darknet-53作为基础网络结构[44],通过不同的卷积层对图像进行降采样,舍弃原本的池化处理,有效减弱了池化处理带来的梯度消失缺陷。同时YOLOv3将原先一层检测层扩展为13x13、26x26和52x52三个不同尺度的特征图,同时沿用了K-means聚类出的边界框,增加了边界框数量[45],根据其大小分别在三个特征图进行预测。1.2.1YOLOv3算法网络结构图3-9YOLOv3算法整体网络结构Figure3-9YOLOv3algorithmoverallnetworkstructure 相比于YOLOv2,YOLOv3的算法结构变得更加复杂,其中最大的变化包括两点:残差模型和采用FPN架构。 1)残差模型: YOLOv3与YOLOv2在网络结构中最大的不同点在于YOLOv2中Darknet-19结构中不存在残差结构(resblock),而YOLOv3中的Darknet-53却借鉴了ResNet的残差结构[46],并且去除了池化层,降低池化层带来的负面效果。该结构中的卷积层大多采用1x1或者3x3的卷积核;卷积处理之后,再进行批规范化处理;之后选择表现更好的Leaky-Relu激活函数[47]。以上三部分模块构成了卷积模块。在卷积模块的理论基础上,将输入值在经过两次卷积模块处理后的输出结果与输入值相加,得到残差结构。使用残差结构,可以使神经网络在深度学习的情况下,保存图像更细节的特征信息,让损失函数更好地收敛,极大地降低了梯度消失现象出现的概率[48],能够对神经网络进行更好地优化。卷积模块和残差模块的结构如图3-10。卷积模块残差模块图3-10残差模型结构Figure3-10Residualmodelstructure 2)FPN架构 采用FPN架构(FeaturePyramidNetworks)来实现多尺度检测。YOLOv3采用了3个尺度的特征图(当输入为
416x416
时):
13x13,
26x26
,52x52
,其分辨率分别是原有尺寸的1/32、1/16、1/8。利用K-means得到9个边界框,每个特征层使用3个边界框,尺度更大的特征图使用更小的边界框,和SSD类似[49]。将从三种尺度的特征图上提取出的信息进行特征融合,可以获得更详细的特征信息。1.2.2边界框 在利用算法对检测物体进行类别预测时,如果对图像中多个待检测物体使用多个分类器去进行预测,可能会由于没有限制条件约束使分类器在检测的时候产生冲突,对检测结果造成影响[50]。所以在检测之前,使用先验框让各个分类器只检测各自区域的检测物体。YOLO使用的是在YOLOv2中引进的边界框机制[51],通过K-means聚类算法,在对数据集进行训练时,生成不同大小的边界框。同时,边界框的数量由YOLOv2中的5个增加到9个,能够在三个尺寸不同的特征层进行检测,可以有效提高算法的预测结果准确率。算法在预测待测物体的中心坐标(x,y)上的原理如下图3-11所示。图3-11网络输出的坐标值预测图Figure3-11Coordinatevaluepredictionmapoutputbythenetwork 为了提高预测的准确率,算法中预测物体的宽和高通过间接与边界框进行转换联系到一起。通过计算边界框在特征层中的位置,可以确定边界框的中心在哪一个单元格内,能够进行更准确地预测。通过上述的坐标值预测图可知,Cx,Cy是特征层中单元格的左上角坐标,单元格宽和高均为单位长度。如图3-11,边界框的中心位于第二行第二列,其中Cx=1,Cy=1。对tx,ty进行归一化处理,可以确保检测物体的中心处于预测网格单元中,防止偏移过多。公式中的Pw、Ph是预设的边界框映射到特征层中的宽和高。而tw,th由于被log尺度映射到对数空间了,所以需要通过指数运算恢复。再通过左边乘以Pw或者Ph得到待测物体真正的宽高。因此,实际检测物体的参数位置坐标、宽和高bx,by,bw,bh计算公式如3-12。bx=σbw=(3-12)1.2.3损失函数 损失函数由检测目标时边界框位置坐标的损失、置信度损失和预测类别损失三部分组成[52],由于算法在检测物体时由于目标物体的实际尺寸造成的边界框计算物体参数时的误差,对检测重叠物体进行分类时造成的损失,以及检测框和物体实际位置的偏差造成的置信度损失,为了提高算法检测物体的精准度,算法针对以上三个部分分别进行了误差校正[53]。 由于YOLOv3算法在检测物体类别时引入了3个不同尺寸的特征层,所以在计算边界框损失时,算法仅对边界框是否检测到物体时的损失做出加权处理。其中负责检测物体的边界框的损失,添加权重为𝜆𝑜𝑏𝑗𝑐𝑜𝑜𝑟𝑑=1.0,不负责预测物体的边界框的损失,添加权重𝜆𝑛𝑜𝑜𝑏𝑗𝑐𝑜𝑜𝑟𝑑=0.1。在不同的尺度进行预测时,对同等大小的物体的预测产生偏差在IOU值上的影响程度也是不同的,因此,加入了权重系数2−𝑤×ℎ𝑖,其中,wi和hi是对特征输出层尺度进行归一化之后的物体宽和高,权重系数将会随着物体尺寸的缩小而增大,使得预测的坐标误差放大比例也随之增大。 在设计classError时,考虑到softmax损失函数在检测目标是针对相互独立的类别,但是在实际检测时可能会有相互重合属性的类别,这时softmax分类器对数据的拟合较差,检测准确率下降,因此YOLO
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 23000台智能化集装箱更新项目可行性研究报告模板申批拿地用
- 年加工300吨调味品预处理扩建项目可行性研究报告模板立项申批备案
- 2026年四川省德阳市中考道德与法治试卷真题(含答案详解)
- 《跨境贸易风控与核算》高职全套教学课件
- 吉林成考高升专语文真题练习试卷
- 2026广西河池市天峨县天融文化传媒有限公司招聘补充2人考试备考题库及答案解析
- 2026年10月浙江商业技师学院公开招聘工作人员(第三批)笔试参考题库及答案解析
- 恒丰银行2026下半年毕业生招聘笔试参考题库及答案解析
- 2026曲靖经济技术开发区工委组织部公开招聘城镇公益性岗位工作人员1人考试备考题库及答案解析
- 2026年重庆渝康资产经营管理公司人员招聘考试模拟试题及答案
- 民航招飞pat测试题库及答案
- 2026年企业所得税汇算清缴规范与申报风险防控方案
- 猛士车课件教学课件
- 2025年金矿矿山选矿技术员新员工岗位专业知识笔试题目及答案
- GJB3206B-2022技术状态管理
- 《平行四边形的性质(第一课时)》教案
- 《冠状动脉介入治疗并发症》课件
- 核反应堆物理分析教材谢仲生修订版
- 嘉兴怡麦食品有限公司年产 980 吨营养面包项目环评报告
- 隐睾围手术期
- 国有资产报废回收合同范本
评论
0/150
提交评论