版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
基于深度学习的巡检机器人指示灯状态识别系统设计摘要随着我国变电站规模的不断扩大,对变电站中各种设备的巡查越来越困难。由于变电站开关设备在变电站中使用、检修等较为频繁,仅通过人工检修方式对变电站指示灯开关设备进行检测,难度很大。因此,以变电站的指示灯状态为具体研究对象,本文提出了一种基于深度学习的变电站指示灯开关状态识别方法,能自动检测与识别指示灯开关的状态,对于实现变电站系统智能化具有重要的研究意义与应用价值。YOLO(YouOnlyLookOnce)是深度学习应用在目标识别领域的经典算法,它不仅提高了模型的检测速率,而且增加了模型的识别准确率。本文针对变电站指示灯开关状态的样本数量少、目标小、形状有规则等特点,使用YOLO算法进行变电站指示灯开关状态识别,YOLO算法在变电站指示灯开关状态识别上具有显著的优势。最后,以训练好的识别模型为基础,实现了变电站指示灯开关状态识别程序,同时实现了识别模型的可视化,为变电站工作人员提供了远程监控变电站开关设备的服务,推进了变电站智能化进程。关键词:深度学习;变电站;开关状态识别目录摘要 ITOC\o"1-3"\f\h\z第1章绪论 11.1研究背景及意义 11.2国内外研究现状 11.3主要研究内容 2第2章系统设计 32.1设计流程 42.2神经网络简介 102.2.1人工神经网络 42.2.2卷积神经网络 52.3深度学习框架Pytorch 62.4Yolov3算法 72.4.1Yolov3模型原理 72.4.2Darknet-53网络 82.5模型构建 102.6模型可视化 10第3章数据集构建 113.1数据集预处理 113.1.1灰度和色彩空间转换 113.1.2几何变换 113.1.3添加噪声和滤波 123.2图片标注 13第4章训练测试 164.1模型训练 164.2模型测试 194.3模型性能评价 20第5章总结展望 235.1总结 235.2展望 23参考文献 24附录 25
绪论随着变电站智能化程度的提高,采用巡检机器人对变电站指示灯状态进行巡检,可以实时监测设备,更好的维护变电站的正常运行。巡检机器人主要对指示灯状态进行识别,通过对图像识别,能自动判断并记录指示灯的状态。通过对变电站和巡检工作人员进行调研,同时查阅了大量文献,本课题提出基于深度学习的变电站巡检机器人的图像识别模型,能够精确地对变电站中指示灯的状态进行分析识别。研究背景及意义由于发电厂、变电站生产环境特殊,目前大多数的设备的巡检依旧是采用人工方式,人工巡检过程缓慢,巡检信息量不完整且容易出差错,仅能够满足一些巡检不频繁、指示灯数量较少数据巡检要求,缺少了快速及时的记录与反馈。此外人工巡检的效率不高,而且工作强度大易疲劳,受环境和天气的影响较大,这使得在巡检过程中非常容易出错,这就人为的引入了误差,影响了巡检数据的准确度。因此,需要能实现指示灯状态的自动识别,并且快速、准确、高精度的完成变电站指示灯状态识别的巡检记录工作。指示灯状态的自动识别大大提高了现场生产效率和智能化程度,有效避免人工在危险的环境中停留的可能,优秀实用的系统将极大的提高指示灯状态的识别效率和准确度。使用深度学习来进行指示灯状态的自动识别过程,具有重要的理论价值和社会应用意义。国内外研究现状目标检测与识别技术是目前图像监测识别领域的重点研究方向之一,其根本就是在给出的图像里,找出图中需要的所有目标,并对其找出的目标进行分类,同时标出图中所有目标的位置坐标[1]。随着科学技术和人工智能的进步、智能硬件设备的不断出现以及深度学习技术和各种算法的不断成熟,在我们的日常生活中存在着大量的图像数据,这使得目标检测与识别技术在人类生活中起的作用越来越大,同时目标检测与识别技术作为计算机视觉领域的基础性研究课题,也变得越来越受到重视。针对变电站的指示灯状态识别问题,相关学者和研究人员在传统的目标检测与识别方法上进行了改进,并在图像的检测与识别上取得了一定的成果[1]。陈安伟等在2012年研发了一种专门针对变电站使用的专用智能机器人,通过尺度不变特征变换算法对开关设备进行准确定位,然后利用霍夫变换实现了开关设备的状态识别,从而实现了智能机器人自主识别各种形式的开关设备的图像的状态[2]。丁四海等通过对开关设备的状态特征的探索与研究,提出了一种基于数字图像处理技术的开关设备状态识别的方法[3]。首先对开关状态图进行阴影去除、边缘处理、二值化等预处理操作,然后通过对图像中开关设备的位置定位,以及图像中开关设备的状态识别对比,实现了变电站开关设备的定位、校正、分割与识别[4]。杨艳召等为了应对变电站汉字式开关的有效监控与检测识别,提出了一种基于SURF的开关状态识别方法,首先获取图像中需要识别的开关目标区域,并对该目标区域进行图像预处理,然后利用SURF算法分析和对比待识别图像中和模板图像中相对应区域的特征点,最后将特征一致的特征点与模板特征点进行对比,判断需要识别的图像中的目标的状态和目标的类别[5]。邵建雄等针对变电站中开关设备的多样性和复杂性,提出了基于霍夫森林的图像中开关设备状态检测与识别的方法,此方法通过提取图像中开关设备的多种特征,并利用霍夫森林构建检测与识别过程中所需的分类器,实现了多个图像中开关设备状态的同时检测与位置定位[6]。何雪松将图像处理技术与计算机视觉技术结合起来,提出了一种基于计算机视觉技术的图像中的开关设备状态检测与识别方法,通过对图像中开关设备的状态图进行读取、预处理、特征分析、状态筛选等一系列操作,实现了开关设备状态的自动检测与识别[7]。以上提及的方法都能在一定程度上实现变电站指示灯状态的自动检测与识别,但是这些方法针对真实环境下的变电站指示灯状态检测与识别仍然存在一些不足。受变电站复杂环境因素、所需识别的图像清晰度因素、开关设备数量较多因素等影响,上述方法对指示灯的状态检测效果不稳定,且抗干扰能力不足,在对指示灯状态识别过程中存在较大概率的误检漏检等情况,并且,现有的方法对具体的应用环境依赖较强,更适合于室内环境稳定、图像清晰的目标识别与检测,具有较强的针对性和单一性,还未形成对室外环境复杂、图像不清晰的开关设备的状态检测与识别。而深度学习技术的显著特点就是自己学习,即能通过不同的图像中的数据学习到图像中的不同的特征,与变电站开关设备的环境多变、数量繁多等需求相贴合,且现有的各种卷积神经网络在目标检测与识别的应用上具有较好的识别准确度和速度,因此,将深度学习模型应用在变电站开关状态检测与识别上,具有十分深远的应用前景,也能进一步推进变电站智能化进程,解放人力。主要研究内容基于深度学习的巡检机器人指示灯状态识别问题主要研究内容是对变电站中指示灯的状态识别。针对变电站指示灯状态识别问题,在深度学习技术的基础上,以变电站的指示灯状态识别为研究对象,实现了指示灯状态的自动识别,主要工作如下:(1)系统设计;(2)构建数据集;(3)用YOLOv3算法对数据集训练;(4)结果分析。第2章系统设计2.1设计流程训练基于卷积神经网络的变电站巡检机器人的图像识别模型,使其更精确地对变电站中的指示灯状态进行识别。具体步骤如下:开始开始指示灯状态图片数据库指示灯状态图片数据库图像数据集图像数据集测试样本训练样本测试样本训练样本卷积神经网络模型训练卷积神经网络模型训练是否预测精度符合要求是否预测精度符合要求机器人巡检图像卷积神经网络模型机器人巡检图像卷积神经网络模型否是发生故障?否是发生故障?继续巡视发出警报继续巡视发出警报图2-1流程结构图2.2神经网络简介深度学习(也称作深度结构化学习或者分层学习)是一种基于人工神经网络的更广泛的机器学习方法族中的一部分[8]。学习分为有监督的、半监督的或者是无监督的[9]。其中深度学习架构,包括深度神经网络、深度信念网络、循环神经网络和卷积神经网络,已经被应用于计算机视觉、语音识别、自然语言处理、社交网络、机器翻译、药物设计、医学图像分析、材料检查和棋盘游戏程序在内的领域中,在这些领域中,它们能力在某些情况下胜过人类专家[10]。2.2.1人工神经网络人工神经网络(ANN)或联结主义系统是一种构成动物大脑的生物神经网络但又不完全一样的计算系统[11]。该系统通过案例来“学习”并执行相应任务,而不用特定于任务的规则来进行编程。例如,在图像识别中,人工神经网络可能会通过分析一些图像数据来学习识别和检测包含猫的图像,这些图像被手工标记为“猫”或“不是猫”,并使用结果识别在其他包含猫的图像中的猫[12]。他们这样做是在没有猫的任何先验知识的情况下进行的。比如,它们有毛皮、尾巴、四条腿、胡须和长得像猫的脸。与之不同的是,人工神经网络会自动从它们处理的图像数据中识别出特征。人工神经网络是一种称作基于人工神经元的连接单元或节点所组成的合集,这些单元或节点模拟了各种生物大脑里的神经元。就类似于生物大脑里的的神经突触一样,其中的每个连接都能够把信号从一个人工神经元传输到另外一个。负责接收信号的神经元能够对它进行相应的处理,然后向与之连接的另一个附加的人造神经元发出它之前接收的信号[13]。在平常可见的一般人工神经网络实现里,人造神经元之间相连接处的信号可以看做一个实数,其中每个人工神经元的输出量由它的输入量相加之和的一些非线性函数来计算。把人造神经元之间存在的联结称作“边”。人造神经元和其中边通常被认为具有随着学习的进行而同时调整的权重。权重能够增加或减弱神经元连接处的信号的强度[12]。人造神经元可能有一个阈值,使得只有在总信号超过该阈值的情况下才能够发送其接收的信号。在典型的神经网络中,每一层网络都是由多个人造神经元聚合组成[13]。不同的网络层能够对它们的输入信号进行不同类型的转换。信号从输入层传播到输出层时,在这过程之间或许会多次穿过这些层[13]。人工神经网络方法的最初目的是使用和人脑相同的方式来解决一些问题。但是,随着时间的推移,人们的注意力逐渐转移到了执行特定的任务上,从而逐渐偏离了生物学[14]。人工神经网络已被用在很多领域,其中包括计算机视觉、机器翻译、社交网络过滤玩棋盘和电子游戏。图2-2人工神经网络简图2.2.2卷积神经网络卷积神经网络是最近几年才逐渐发展起来,并引起了广泛重视的一种高效的目标识别和检测的方法[15]。现在,CNN(卷积神经网络)已经是很多领域的研究热点了,尤其是在图像模式分类识别中。卷积神经网络可以直接输入原始图像数据进行训练而不用对数据进行前期的非常复杂的预处理,这一方式节省了大量时间和精力,因而得到了十分广泛的使用[16]。K.Fukushima在1980年时提出的新识别机是卷积神经网络的首个实现网络[17]。随后,越来越多的相关科研工作者对这个网络进行了优化。其中,具有代表性的研究成果是Alexander和Taylor一起提出的“改进认知机”,这种方法融合了很多种改进方法的优点并且避免了耗时的误差反向传播[18]。一般地,CNN的基础的网络结构包含了两层,其中一层称为特征提取层,每个神经元的输入和前一层的局部接受域相连接,同时提取该局部的特征部分[18]。一旦局部特征被提取出来后,它和其它特征间的位置关系也能够确定出来;还有一层称作特征映射层,多个特征映射组成了网络的每个特征计算层,每个特征的映射是一个平面,其中所在平面上全部神经元的权值是一致的[17]。特征映射结构使用了影响函数核小的sigmoid函数作为卷积网络的激活函数,这使得特征映射拥有了位移不变的特性。除此之外,由于一个映射面上的神经元共同分享之间的权值,所以降低了网络自由参数的数量[18]。卷积神经网络中的任何一个卷积层都紧紧跟随着另外一个用于求局部平均与二次提取的计算层,这种特有的两次特征提取结构降低了特征分辨率[18]。CNN主要被用来作位移的识别、缩放以及其他形式的扭曲不变性的二维图形[19]。由于CNN的特征检测层是通过训练数据来进行学习的,因此在使用CNN时,避免了显示的特征抽取,而隐式地从训练数据中来进行相应的学习;再者由于同一特征映射面上的神经元权值相同,所以网络可以并行学习,这也作为是卷积网络相对于神经元互相相连网络之间的一大优点。卷积神经网络因为它具有局部权值共享的特殊结构在语音识别和图像处理领域有着特殊的优越性,它的布局更类似于现实的生物神经网络,权值的共享减弱了网络的复杂性,特别是多维输入向量的图像可直接输入网络这一特性避免了特征提取和分类过程中数据重建的难度[19]。图2-3卷积神经网络2.3深度学习框架PytorchPyTorch作为一个开源的Python机器学习库,它基于Torch,被用于自然语言处理等应用程序[20]。2017年1月,由Facebook人工智能研究院(FAIR)基于Torch推出了PyTorch。它是一个基于Python的可续计算包,提供两个高级功能:1、具有强大的GPU加速的张量计算。2、包含了自动求导系统的深度神经网络结构[20]。PyTorch的前身是Torch,它的底层和Torch框架是一样的,但是它使用了Python重新写了很多内容,不仅变得更加灵活,能够支持动态图,并且提供了Python接口。它是由Torch7团队研发的,是一个以Python优先的深度学习框架,在实现强大的GPU加速的同时支持了动态神经网络[21]。PyTorch既可以认为是一种加入了GPU支持的numpy,同时也可以当作一个拥有自动求导功能的强大的深度神经网络。除Facebook外,它已经被Twitter、CMU和Salesforce等机构采用[21]。2.4YOLOv3算法在算法的选择上选择了YOLOv3算法。YOLO的意思是“YouOnlyLookOnce”的首字母缩写,它尽管不是最精确的算法,但是它选择在精确度和速度之间折中,当然效果也是相当不错。YOLOv3同时借鉴了YOLOv1和YOLOv2,并没有太多的创新之处,但是它在保持YOLO家族速度的优势的同时,增强了对小物体的检测识别能力。YOLOv3算法使用一个单独神经网络作用在图像上,通过将图像划分多个区域并且预测边界框和每个区域的概率[21]。对比其他算法,YOLOv3算法更适合对指示灯状态这类小物体图案进行检测。2.4.1YOLOv3模型原理YOLOv3算法的基本思想可以分为两个部分:首先,依据一定的规则在图片上生成一系列的目标候选区域,
然后通过这些候选区域与图片上所需要检测的物体的真实区域之间的位置关系对候选区域进行相应的标记[21]。与真实框之间的距离小于阈值的那部分候选区域就会被标注成为为正样本,同时把真实框的位置坐标作为正样本的位置坐标的目标值。距离真实框的距离比较大的那些候选区域则会被标注为负样本,负样本不需要预测位置坐标或者类别信息[21]。然后是使用卷积神经网络提取出图片的特征,并对候选区域的位置坐标和类别信息进行目标区域的预测。这样就可以将每一个预测框看成是一个样本,并根据真实框相对于它的位置坐标和类别信息来获取标签值。通过使用网络模型来预测它的位置和类别,并比较网络预测值和标签值。这样就可以来构建损失函数并进行训练了。图2-4YOLOv3结构图图2-4中的三个蓝色方框内的组件表示的是YOLOv3的三个基本组件:CBL:YOLOv3网络结构中最小的组件,由Conv+Bn+Leaky_relu激活函数三者组成[18]。Resunit:借鉴Resnet网络中的残差结构,让网络可以构建的更深[21]。ResX:由一个CBL和X个残差组件构成,是YOLOv3中的大组件[18]。每个Res模块前面的CBL都能够起到下采样的作用,因此经过5次Res模块后,得到的特征图是608->304->152->76->38->19大小。2.4.2Darknet-53网络YOLOv3使用的是一个全新的并且更深层次的卷积神经网络Darknet-53,这个网络是由多个残差单元叠加组成的[21]。相比较在YOLOv2中使用的Darknet-19网络,该网络主要是由连续的1×1和3×3的卷积层组成的,包含有53个卷积层和5个池化层,每个卷积层后面都会有一个批量归一化层(batchnormalization)[21]。为了解决过拟合的问题,加入了去droput处理。同时引入了多尺度融合的思想,能够更好地检测小目标[21]。图2-5YOLOv3与其它模型的性能对比图2.5模型构建Yolo检测网络包含24个卷积层和2个全连接层,其中卷积层用来提取图像特征,全连接层用来预测图像位置和类别概率值。卷积神经网络可以通过降维操作训练输入的指示灯状态图片,进而提高识别精度,其中指示灯状态图像输入层主要是对图像进行归一化预处理,现场目标特征提取卷积层通过卷积核对目标进行局部感知,提取标志性特征,得到图像的特征图谱,再将输入图像分割成大小相同的细胞网格,使用图像目标的中心坐标所在细胞网格进行预测最后根据每个细胞网格固有数量的基础框,计算出真值交并比最高的基础框并用来判断目标是否为指示灯的开启或关闭状态,将获取的特征与之前的学习进行比对,当满足一定阈值时判定目标,最终完成指示灯状态识别。在YOLOv3原始模型中IoU损失函数采用的是GIoU损失函数,其相比原始IoU的优化在于增加了错误框选的惩罚,即误差越大惩罚越大,在训练过程过能够对不同比例的检测框都有较好的检测效果,其原理如式(2-1)所示:LGIoU=1−IoU+C−B∪BgtC式Yolov3中并没有像其他神经网络一样采取单独池化层,是因为最大池化与使用卷积(stride为2)来做downsample性能并没有明显差别,使用卷积(stride为2)相比卷积(步进为1)加池化,还可以减少卷积运算量和一个池化层。数据输入层:对原始数据进行预处理,去均值,把输入数据各个维度都中心化为0,其目的就是把样本的中心拉回到坐标系原点上。然后进行归一化处理,通过根据代码中给定的标签,读取图片尺寸,读取识别框的宽度和高度,计算出中心坐标,并把相关值进行等比例转换(归一化),然后从每个xml文件中读出数据,用函数中归一化,然后生成对应图片的txt文件,将得到信息写到相应的txt标注文件中,即生成相应图片的标注文件。第3章数据集构建在大多数应用场景下训练模型使用的原始数据集并不能满足理想的训练需要,而获取更多的数据集也会增加训练的成本和带来更多的工作量,更好的处理方式是进行合适的数据预处理。数据预处理的主要目的包括增加训练的基础数据量来提高模型的泛化能力和增加噪声来提高模型的鲁棒性两个方面,经典的数据增强方法包括:数据翻转、数据旋转、图像缩放、图像裁剪、图像平移、覆盖噪声和修改对比度等处理方法。通过对原有数据集数据进行此类拓展即可得到大量新的训练数据,有效提升模型训练集大小,在原有训练集较小的条件下快速提升目标检测效果。3.1数据集预处理本次训练用的数据集图片是用相机拍摄的,由于图片数量太少,图片角度和形式单一,达不到训练要求,需要对数据集进行预处理。3.1.1灰度和色彩空间转换通过对图片进行亮度调整、对比度饱和度调整、颜色空间转换、色彩调整来对数据扩增。并且扩增后的数据集在训练时可以更好的应对真是环境的变化,对抗真实环境中存在的光照、色彩、亮度偏差。如图3-1所示,通过改变图片的亮暗,将一张图片变换为多张图片,从而增加图片的数量。图3-1通过亮度的改变扩增数据集3.1.2几何变换通过对图片进行旋转、缩放、翻转、裁剪、平移、仿射变换等操作来对数据进行扩增。几何变换可以有效地对抗数据中存在的位置偏差、视角偏差、尺寸偏差,而且易于实现,非常实用。如图3-2所示,通过对图片进行旋转,将一张图片变换为多张图片,从而增加图片的数量。图3-2通过几何变换扩增数据集3.1.3添加噪声和滤波通过对图片注入高斯噪声、椒盐噪声、模糊、锐化等操作来对数据扩增。在扩增数据集的同时在训练时更能应对噪声干扰、成像异常等特殊环境,帮助CNN学习更泛化的特征。如图3-3所示,通过给图片注入高斯噪声,将一张图片变换为多张图片,从而增加图片的数量。图3-3通过改变图片参数扩增数据集图3-4是扩增后的部分数据集:图3-4扩增后的部分数据集3.2图片标注在进行图片标注时使用的工具是labelimg。labelimg是一个图形图像注释工具。它用python编写的,用QT作为图形界面。注释被按照ImageNet所使用的PASCALVOC格式存成XML文件。打开需要标注的图片的文件夹,按顺序逐一标注。将要识别的部分框选出来,选择目标所属类别,点击保存。生成XML文件后保存在当前文件夹内。文档中,filename代表文件名,path图片代表绝对路径,size代表图片尺寸与通道数量,object代表标注框的目标种类,bndbox代表标注框的尺寸。其中,在一个xml文档中,object标签个数可有多个,代表有多个标注框。将所有图片标注完成后就可以导入框架进行训练了。图3-5对检测部位标注图3-6标注时生成的部分xml文件如图3-7所示,将生成的XML文件保存在Annotations文件中用于后续的模型训练。图3-7标注后的文件图3-8data文件夹中包含的文件第4章训练测试原始的数据集分别经过on标注和off标注生成两个训练数据集:on集和off集分别表示指示灯状态的开和关。在获得所有图片的标注文件之后,数据集将按照比例被分为训练集与测试集。一般来说,需要采用随机的方式,将数据集总数的90%作为训练集,同时将总数的10%作为测试集,分别生成train.txt保存训练数据文件名,test.txt保存测试数据文件名。在生成train.txt、test.txt后,结合train.txt、test.txt信息和数据集的标注文件信息,将图片文件的绝对路径、标注框位置信息、类别信息全部整合到一个文件,最后生成两个用于训练的led_train.txt文件以及用于测试的test.txt文件。最后生成的一部分train.txt、test.txt文件。4.1模型训练在对数据集进行训练前,需要对模型文件进行修改。4.1.1修改模型文件每一个[region/yolo]层前的最后一个卷积层中的filters=预测框的个数(mask对应的个数,比如mask=0、1、2。代表使用了anchors中的前三对,这里预测框个数就应该是3*(classes+5),5的意义是4个坐标+1个置信度代表这个格子含有目标的概率。更改yolov3.cfg文件为custom.cfg文件,其中文件每层yolo前面的filters数值更改为(class+5)*3,classes数值改成类别数。图4-1更改后的程序图进行目标特征提取,在根目录下新建voc_label.py文件,voc_label.py文件主要是调用已经分类好的xml文件和对应图片,定义要检测的类别,即标注的名称,通过根据代码中给定的标签,读取图片尺寸,读取识别框的宽度和高度,计算出中心坐标,并把相关值进行等比例转换(归一化),然后从每个xml文件中读出数据,用函数中归一化,然后生成对应图片的txt文件,将得到信息写到相应的txt标注文件中,生成相应图片的标注文件。规划处中心点x坐标比,中心点y坐标比、宽度比、高度比。图4-2voc_label.py中的部分程序图date目录下生成train.txt、test.txt、val.txt三个txt文件,与前面makeTxt.py生成的train.txt有区别,voc_label.py是Yolo训练前数据预处理一部分,主要功能是根据ImageSets目录下的VOC数据集train.txt,test.txt,val.txt读取txt文件中图片名字,从而读取Annotations目录下对应的xml文件内坐标等信息进行处理,将groudtruth(正确标注框)x,y需要转化为groudtruth的中心坐标,进一步框的x_center,y_center,w,h归一化到0-1。最终生成一个labels目录,用来保存x、y、w、h,每张图片对应每个txt文件和train.txt文件和val.txt文件,test.txt文件。图4-3训练时data目录生成的文件因为训练用的是yolov3-tiny模型,所以在配置权重就需要yolov3-tiny.conv.15。采用预训练权重文件yolov3-tiny.conv.15。这里需要对程序进行修改。修改后的内容如图4-4所示:图4-4yolov3-tiny.conv.15部分程序内容所有准备工作做好就可以训练数据集了。在终端中输入命令pythontrain.py--datadata/on.data--cfgcfg/yolov3-tiny.cfg--epoch1000--batch-size2--weightsweights/yolov3-tiny.conv.15设置每张图片迭代1000次,这个训练过程需要数个小时。图4-5终端训练命令本次实验中,操作系统为Windows10,采用的深度学习框架为pytorch。训练完成时会在YOLOv3跟目录下生成结果文件result.png,同时会生成best.pt模型文件和last.pt测试文件。训练结束得到最终的检测模型。生成的result.png文件如图4-6所示:图4-6result.png文件图(1000次迭代)4.2模型测试以未训练的图片为验证对象。实际测试时,共选用10张未进行标注训练的图片。可以看出,虽然某些指示灯状态的图片光照并不充足,该模型依旧表现优异,在10张测试图片中可以识别出9张图片的指示灯状态。通过在测试集上测试模型的检测效果,从图4-7中可以看出检测效果非常好,训练好的模型可以准确识别出不同图片的指示灯状态。图4-7部分测试结果图从图中可以看出,尽管检测的图片角度有偏差、亮度和清晰度不一致,模型依然可以检测出图片的指示灯状态。改进算法在不良条件环境下依然可以做出正确的判断。4.3模型性能评价选择精度评价指标mAP(meanaverageprecision)、准确率评价指标Precision、召回率评价指标Recall、标记边框重合度评价指标GIoU对训练好的模型进行性能评估。mAP评估检测准确度,mAP值越大证明检测效果越好,在本次实验中,检测目标只有指示灯这一类物体,所以mAP数值较高,如图4-8所示:图4-8mAP精度评价指标值准确率评价指标Precision是识别的精准度,是程序检测预测出来的框与测试集正确的框的比值,是识别正确的图片占整个图片的比值,数值越高代表识别精准度越高。经过训练该模型的识别精准度已经接近于1,可应用在实际的指示灯状态识别场景。图4-9是迭代1000次后的Percision的结果图。图4-9Precision准确率评价指标值召回率评价指标Recall是被正确识别出来的指示灯状态个数与测试集中所有指示灯状态个数的比值。经过改进后算法1000次迭代训练后的模型,其检测召回率接达到了95%以上,满足实际应用场景。召回率评价指标Recall的结果图如图4-10所示:图4-10Recall召回率评价指标值标记边框重合度评价指标GIoU是作为任意边框的度量,检测两个预测框的位置损失。简单来说就是程序预测出来的框与原来图片中标记的框的重合程度。数值越低代表预测框约精确。经过1000次的迭代训练后标记边框重合度评价指标GIoU已经趋近于0。结果如图4-11所示:图4-11GIoU标记边框重合度评价指标值改进后的YOLOv3算法对于小目标物体检测的准确度较高。这说明算法改进后提取到了更丰富的细节特征,改善了原有算法中在检测小目标情况下会出现的漏检误检、检测率低等现象。可见,模型以较为优异的性能完成了指示灯状态识别任务。实验结果表明,运用YOLO算法进行的目标检测,准确率好,可以在不同工况下对指示灯状态图片进行检测,满足了巡检机器人对指示灯状态目标检测的要求。综述所述,本文提出的基于深度学习的巡检机器人指示灯状态识别问题的研究能够对指示灯状态进行有效识别,提出的训练技巧与能够切实提高模型训练效果,所提方法简单有效,具备一定的实际应用价值。第5章总结展望5.1总结本文研究了基于深度学习的巡检机器人的指示灯状态识别问题,介绍了卷积神经网络的相关内容,用已有的算法对指示灯的状态进行了识别并对算法做了进一步的优化来提升YOLOv3算法对小物体的检测识别能力。另外通过数据集的预处理,对训练图片进行添加噪声、改变环境光、轻微旋转等操作模拟自然环境下图片的干扰,通过此数据集训练的模型更能准确识别复杂环境。在选用算法时选用了对小目标检测更有利的YOLOv3算法,并在模型训练之前进行了网络结构和损失函数的改进,让YOLOv3算法进一步增强对指示灯这类小目标的识别能力。在构建数据集时由于样本图片较少,对数据集进行了扩增后确保训练好的模型足够准确。训练好的模型经过测试表明对指示灯状态识别的准确度达到了90%,已经可以满足实际应用。综上,本文提出的基于深度学习的巡检机器人指示灯状态识别问题的研究能够对指示灯状态做出有效的识别,对算法的优化可以增强对小物体的检测能力,最后训练好的模型识别准确率高,具备一定的实际应用价值。5.2展望本文提出的基于深度学习的巡检机器人指示灯状态识别问题的研究训练好的模型可以进行指示灯状态的有效识别,但同时还有很多地方需要改进。本文只针对了图片的训练及识别,后续可以对视频进行实时的检测识别。通过将视频的每一帧化为图像,用训练好的模型对视频检测。同时在识别的准确率上也可以做进一步的提升,增加训练的数据集的图片,增加模型训练时的迭代次数,都可以进一步提升模型识别的准确率。随着社会的不断发展,深度学习也将应用在更多的场景上,比如最近发展迅猛的汽车自动驾驶技术和各种视频识别技术,它在为我们提供便利的同时也保护着我们的安全。参考文献[1]吴正文.卷积神经网络在图像分类中的应用研究[D].电子科技大学,2015.[2]施荣.基于深度卷积神经网络的毫米波图像目标检测方法研究[D].哈尔滨工业大学,2015.[3]李梁.变电站巡检机器人视频监控系统设计与实现[D].上海交通大学,2013.[4]赵小鱼,徐正飞,付渊.一种适用于智能变电站巡检机器人的异物检测算法研究[J].现代电子技术,2015,38(10):124-127.[5]曾朱文,郑连清.无人值守变电站智能遥视系统的研究[D].重庆:重庆大学,2005.[6]景美丽.无人值守变电站中智能视频监控的技术研究[D].保定:华北电力大学,2012.[7]ShinHC,RothHR,GaoM,etal.DeepConvolutionalNeuralNetworksforComputer-AidedDetection:CNNArchitectures,Da-tasetCharacteristicsandTransferLearning[J].IEEETransactionsonMedicalImaging,2016,35(5):1285-1298.[8]TangY.DeepLearningusingLinearSupportVectorMachines[J].ComputerScience,2015.[9]许可.卷积神经网络在图像识别上的应用的研究[D].浙江大学,2012.[10]徐姗姗.卷积神经网络的研究与应用[D].南京林业大学,2013.[11]常亮,邓小明,周明全等.图像理解中的卷积神经网络[J].自动化学报,2016,42(9):1300-1312.[12]魏小邦.基于计算机视觉的内河船舶导航技术研究[D].大连海事大学,2018.[13]刘东东.基于USB摄像头的单目视觉测距技术的研究[D].大连交通大学,2014.[14]王磊.基于Canny边缘检测的工业零件分类识别[J].电子设计工程,2019,27(21):190-193.[15]杨芳.基于OpenCV的双目视觉系统目标定位与测距方法研究[D].宁夏大学,2018.[16]聂红梅,刘忠艳.基于OpenCV的摄像机标定研究[J].微处理机,2017,38(06):58-61.[17]黄秀珍,王佳斌,高发钦,冉宇瑶.机器双目视觉里程计定位算法[J].无线电通信技术,2019,45(06):676-681.[18]汪永超,耿丽清.摄像机标定系统方法研究[J].天津职业技术师范大学学报,2019,29(02):59-62.[19]Edgedetectionbyscalemultiplicationinwaveletdomain[J].LeiZhang,PaulBao.PatternRecognitionLetters.2002,(14).[20]EdgeDetectionwithEmbeddedConfidence.P.Meer,B.Georgescu.IEEETransactionsonPatternAnalysisandMachineIntelligence.2001.[21]RenjieSong,ZiqiZhang,HaiyangLiu.EdgeconnectionbasedCannyedgedetectionalgorithm[J].PatternRecognitionandImageAnalysis,2017,27(4).
附录:附录一:voc_label.py程序#-*-codeing=utf-8-*-#@Time:2021/3/3016:13#@Author:宋志虎#@File:voc_label.py.py#@Software:PyCharmimportxml.etree.ElementTreeasETimportpickleimportosfromosimportlistdir,getcwdfromos.pathimportjoinsets=['train','test','val']classes=["on","off"]#我们要检测开关状态,因此有两个类别defconvert(size,box):dw=1./size[0]dh=1./size[1]x=(box[0]+box[1])/2.0y=(box[2]+box[3])/2.0w=box[1]-box[0]h=box[3]-box[2]x=x*dww=w*dwy=y*dhh=h*dhreturn(x,y,w,h)defconvert_annotation(image_id):in_file=open('data/Annotations/%s.xml'%(image_id))out_file=open('data/labels/%s.txt'%(image_id),'w')tree=ET.parse(in_file)root=tree.getroot()size=root.find('size')w=int(size.find('width').text)h=int(size.find('height').text)forobjinroot.iter('object'):difficult=obj.find('difficult').textcls=obj.find('name').textifclsnotinclassesorint
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025《登岳阳楼》课件
- 注册登记与定期报检制度培训课件
- 2026年新能源并网工程合同
- 护理安全管理与监控措施培训
- 食品安全综合检查制度培训课件
- 2026年广东省梅州市单招职业适应性考试题库及完整答案详解1套
- 2026年广东农工商职业技术学院单招综合素质考试题库附答案详解(达标题)
- 2026年广东舞蹈戏剧职业学院单招职业适应性考试题库及一套完整答案详解
- 2025《念奴娇 过洞庭》艺术特色赏析课件
- 变配电室值班制度培训
- 2026江苏中烟工业有限责任公司高校毕业生招聘14人备考题库(第一批次)及答案详解(必刷)
- 2025~2026学年江苏省徐州市高三上学期期中零模英语试卷
- 自然语言处理:大模型理论与实践 课件全套 第1-12章 绪论、词向量-评价指标
- 钢管桁架结构制作与安装施工技术
- 人工智能在高职机械专业教学中的应用研究
- T-CWEMS 032-2025 电力行业健康企业建设指南
- 高标准农田建设项目操作方案指南
- 2026年上饶职业技术学院单招职业技能考试必刷测试卷附答案
- 饿了么代理协议书
- 油锅起火应急处理课件
- 《幼儿数学教育活动设计与指导(第3版)》课件-第七章 幼儿空间方位概念的发展和教育
评论
0/150
提交评论