版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
PAGEIPAGEII基于神经网络的监控识别系统设计摘要对于传统视频监控系统缺少信息提取,信息分析能力的情况,本次课题主要将卷积神经网络部署到嵌入式端设备以实现信息提取的功能。由于嵌入式端设备本身资源有限的因素,使得在部署神经网络时需要严格考虑网络运行效率与网络体积。因此本次课题使用小体积YoloV2MobileNet网络来实现图像处理以获取特征物体信息。硬件方面包含以目标识别任务为主的K210单片机外围电路设计,另一部分是以通信、报警、控制为主的STM32单片机外围电路设计。在完成整体设计与实现之后,本文对于目标物体识别的效果进行了检测。测试部分主要测试识别精度,从测试效果来看本次的系统较好的实现了设计目标,但是在识别精度方面还有提升空间。在检测的最后部分对检测效果做出了分析,具体分析了造成检测精度不高的原因,以及提高检测精度的可行方法。关键词:卷积神经网络;目标检测;实时监控;嵌入式;目录TOC\o"1-3"\h\u1 绪论 11.1 引言 11.2 安防发展现状 11.3 神经网络发展与应用 21.4 本文研究内容与章节介绍 32 卷积神经网络 42.1 卷积神经网络组成 42.1.1 单维卷积 42.1.2 三维卷积 52.1.3 深度可分离卷积 52.1.4 池化层 62.1.5 全连接层 72.2 目标检测 72.2.1 YoloV1 72.2.2 YoloV2 82.2.3 YoloV2MobileNet 83 硬件系统设计 103.1 主控芯片K210 103.2 K210底板 113.2.1 底板电源接口 113.2.2 Micro-SD卡接口电路 123.2.3 通讯转换电路 123.2.4 液晶显示电路 133.3 主控芯片STM32 133.3.1 最小系统电路 143.3.2 报警电路 153.4 摄像头 154 软件系统设计 164.1 数据集的获取 164.2 下位机程序 174.2.1 STM32单片机程序开发 174.2.2 K210单片机程序开发 185 测试及分析 205.1 测试内容 205.2 人脸检测 205.3 电池检测 215.4 目标检测分析 226 总结与展望 236.1 课题总结 236.2 课题展望 23参考文献 24PAGE2绪论引言随着计算机技术的发展以及社会安防保障要求的提高,视频监控系统的质量也在不断改进,越来越多的监控摄像头运用在生活中的各种场合。监控摄像头数量上的增加为人们提高了安全保障,但是同样也加重了人工操作的负担。虽然当前监控摄像头数量较多,但是没有相应的应急机制,人工操作不能及时的找到有价值的监控险情,而且大多监控摄像头是普通摄像头,没有自主分析能力,所以当前安防效率的提升还有很大空间。课题将卷积神经网络中的目标检测算法运用在视频监控系统中,目的是为了实现监控系统的智能化。智能化后的摄像头可以对危险物品或危险行为进行分析识别,在成功识别特定物品之后及时通过网络将危险信息上传视频管理中心。这样可以将人们的主动监视行为变成被动接受,监控人员可以及时调取处于危险警报状态的监控摄像头进行查看,并根据监控摄像头的位置信息做出下一步动作,这对于处理险情无疑是更高效且及时的。安防发展现状我国在安防领域发展较晚,上世纪七十年代国外企业在国内安防行业占据了大部分比重。反观当时国内安防技术则较为落后,大部分安防领域技术以学习与模仿为主。早期的视频监控系统使用模拟数据进行传输,当传输数据由模拟信号向数字信号变革时,国内工程师准确的抓住了时机大力发展安防技术,实现了对外企的超越。此外国内安防需求也在不断扩大。十二五期间为了确保国内安全稳定发展,以及对恐怖主义的预防,国内安防政策提出确保视频监控系统完成对城市以及主要乡村的全覆盖。典型工程如平安城市,雪亮工程等[1]。由此国内安防领域市场不断壮大,逐步形成完整产业链,至今国内已有很多优秀的安防公司向全国以及全世界输出优秀的安防产品。在传统的安防中,视频监控可以将事故现场还原。不仅为警方破案提供了充足的证据与线索,而且对于不法分子有着非常大的震慑力。另外在道路运行的环境中,监控系统不但可以将视频数据保存下来,而且还可以搭配计算机视觉算法进行道路车流量计算,以及通过识别车牌号对违法车辆进行跟踪抓捕等。对于传统安防可以看出,视频监控安防系统整体偏于被动,大多数情况只能在案发之后通过视频监控搜集线索。其一部分监控系统具有信息提取的功能,但是信息提取受限于算法的功能,获取信息量较为有限,且使用场所较为单一。随着人工智能技术在2017年以来的飞速发展,其在安防领域造成了非常大的影响。由于人工智能在图像识别领域的识别精度与识别速度不断提高,类似于人脸识别,特征物体识别等技术变为可能。而这些技术对于传统的安防手段无疑是一场革命性的发展,安防系统被赋予智能化,传统安防系统的工作任务发生了本质性的变化。与此同时国内一些已颇具实力的公司也将业务伸入到安防领域中。例如华为研发的以边缘计算芯片昇腾、鲲鹏为中心的安防体系,不但可以使摄像头赋予智能化,还可以将没有智能化的摄像头通过计算平台实现智能化改造,将安防从芯片到系统再到应用完成整体设计[2]。此外深度学习的识别精度还在不断提高中,类似于人体行为检测,三维物体边界预测等神经网络都已经达到了较高的识别精度。此时的智能安防正处于蓬勃发展的阶段。神经网络发展与应用神经网络早期是人工智能发展中的一条分支。在探索人工智能的道路中,神经网络在1982年被证明可以以一种新的形式进行学习,并可以通过反向传递的方法进行训练。但是受限于早期计算能力的低下,人工智能与神经网络大多停留在实验阶段,对于真正可以投入产业的成果少之又少。1998年LeNet被提出,他是后期卷积神经网络发展的雏形。首次在网络中使用了卷积、池化、全连接的结构,可以实现小区域内的手写数字识别。随着计算机技术的发展,计算机的运行速度与内存容量不断提高。在此之后,卷积神经网络逐步朝着大计算量,高速度,高识别精度的方向发展。2012年Alexnet网络被提出,实现了百万级别数据量的准确分类。2015年,目标检测算法Yolo被提出,Yolo算法是一种可以实现快速检测目标物体的算法。2017年Google公司提出MobileNet。通过改善网络结构大幅度减少了卷积神经网络体积,便于将神经网络部署到移动设备中。2016年Google公司开源TensorFlow源代码,并在同年使用阿尔法狗击败棋手李世石,这使得人工智能达到空前热度。在之后的一段时间内,神经网络应用逐步进入了大众的生活中,例如人脸识别认证,智能音箱,眼球跟踪等等。人脸识别技术应用非常广泛,他的原理是通过摄像头采集个人脸部信息,通过神经网络识别脸部特征点以确定个人身份。通过人脸信息与手机软件的绑定,还可以实现人脸支付,人脸认证等应用。此外在安防领域,人脸识别可以用于出入口的身份识别等。神经网络对于广告等信息的精准投放,原理也是通过人们对广告信息的关注程度进行学习。学习后的神经网络可以准确识别客户的需求,投放更多有关广告来进行信息的传播。而对于那些客户不感兴趣的广告,则神经网络之后会选择减少此类信息的投放。神经网络还可以识别语音。在神经网络识别语音技术出现之前,就已经存在着一些硬件语音识别的方案。但是这种语音识别结构较为简单,且识别的语音数量有限。而神经网络可以对任意的对话内容做出信息获取与控制判断,这类技术被用在蓝牙音箱中,构成了智能家居的重要组成部分。此外2018年,无人驾驶进入大众视线,并且多家快递公司与外卖公司开始了无人配送的新尝试。人工智能以及神经网络一定程度上改变了人们的生活方式,也初步实现了早期人们对于人工智能的高期望与高要求。面对传统算法,在计算机性能以及传感器精度提高的基础上,神经网络不可否认在某些方面是一种处理问题更加有效的方法。但是以现在的角度来看神经网络,它在处理问题中也有非常大的局限性。虽然在某些方面经过训练的神经网络可以超越正常人的能力水平,但是当输入数据异常或是超出范围时,他就不能做出较为合理的判断。因此,人工智能还有很长的路要走本文研究内容与章节介绍本文主要介绍特征识别系统的工作原理与硬件结构。通过对监控摄像头工作原理以及图像算法的研究,运用卷积神经网络算法训练出某一特征物体相应的模型,并将模型部署在嵌入式监控系统中。当监控摄像头观察到对应特征物体时,即可自主识别并达到报警的效果。本文第一章对神经网络的发展与应用做出了概述,并分析了神经网络在安防方面发应用。本文第二章主要介绍卷积神经网络的卷积、池化、全连接等运算过程。完成卷积神经网络介绍之后对目标检测算法做出介绍,课题中使用到的目标检测算法为YoloV2与MobileNet的结合网络,对于YoloV2MobileNet重点介绍了网络结构,并且分析了其算法的优势。本文第三章重点介绍了视频监控系统嵌入式硬件的构成。其中包括了电源的输入转换,图像数据的输入与处理,串口通信的传递方向等。嵌入式硬件主要功能是为图像识别与报警提供运行条件,所以在主控制器方面,选择计算能力较大K210芯片处理图像识别任务,选择控制稳定的STM32单片机完成报警通信等任务。本文第四章重点介绍了在嵌入式硬件下的软件开发过程,其中包括了神经网络数据集的获取,特征物体的标注,选择神经网络训练参数,以及嵌入式端软件的开发等。本文第五章是对设计的系统进行测试,测试方面主要测试特征物体识别率,本次课题主要测试人脸模型和电池模型,根据两者模型的识别率提出数据集训练过程中可能出现的问题并提出改进方案。卷积神经网络为了实现在实时采集的图像数据中完成对目标物体的实时检测,这使得本课题在算法性能方面要求较高,最重要的特点是实时性高,准确性高,体积小。本课题主要任务有特征物体的识别以及目标物体的定位。在进行神经网络的搭建之前,需要考虑的限制因素有很多,例如硬件控制器性能,缓存大小和输入图像的大小等。本次课题中完成目标检测和目标定位的主要算法由YoloV2Mobilenet实现,他是将YoloV2目标检测功能与MobileNet卷积神经网络构架结合的一种小体积网络。神经网络YoloV2是一种可以快速识别物体并且预测出物体边界框的算法,而Mobilenet网络结构参数少,适合运用于移动端或嵌入式端设备。因此本章重点对构成YoloV2Mobilenet卷积网络中的运算细节做出介绍。卷积神经网络组成在运用神经网络之前,需要先对已有的图像做一定的处理。例如处理一张较大的图片,如果使用全部的像素来实现神经网络的建立,那么网络中的参数量是非常巨大的。为了避免图像处理中大量的数据计算,我们需要进行卷积、池化、全连接等方法对图片进行处理[3]。单维卷积卷积神经网络主要被用作图像处理,图像卷积运算主要使用到的工具是卷积核。单维卷积主要包含以下几个参数,卷积核大小、Padding数量、卷积步长以及输入数据大小。卷积步长是卷积核运算完一个结果后向右或者向下移动的长度。Padding是为了满足计算要求对图像周围像素进行填充。例如使用3×3大小的卷积核完成对10×10大小的图像以卷积步长为1进行卷积,将10×10大小的图片每个像素记为,3×3大小的卷积核权重参数记作,卷积出的结果像素为则卷积过程可以用公式(2-1)表示。 (2-1)公式(2-1)中f代表激活函数,代表偏置项。例如以无激活函数,无Padding,偏置量为0,卷积步长为1的条件下进行卷积计算,卷积结果如下图2-1所示。图2-1灰度图像边缘检测图2-1的卷积过程也是特征提取的过程,假设输入图像为灰度图像,数字5的区域为白色,数字0的区域为灰色。完成卷积之后,图片在由白到黑的地方形成了一道竖线,这说明使用特定卷积核可以将图像的边缘特征提取出来。三维卷积在了解了二维卷积的基础上,再来对立体卷积做出介绍。任何颜色都可以由三种颜色,红黄蓝组成,一张彩色图片也不例外。所以对于彩色图像的卷积,就需要有三个维度的过滤器去实现卷积。例如彩色图像大小是6×6×3,那么过滤器的大小就可以是3×3×3,卷积的结果是4×4的二维矩阵。实际效果如下图2-2所示。图2-2三维图像卷积深度可分离卷积深度可分离卷积由两个阶段的卷积构成,第一个阶段是逐深度卷积,第二个阶段是1×1卷积。1×1卷积与三维卷积原理相同,都属于立体卷积,但卷积核大小为1×1。卷积核与输入数据有着相同的维度,而且每个卷积核内部有着自己的权值。每个1×1卷积核经过与输入数据卷积之后会生成一个二维的数据,其卷积过程如图2-3所示图2-31×1卷积1×1卷积实际上是横着排列运算的全连接层,并且在卷积神经网络中起到提高维度与降低维度的过程。例如数据输入大小为32×32×128,如果需要将输入数据维度降低为64,则需要使用64个1×1×128大小的卷积核进行1×1卷积,即可将卷积结果变为32×32×64,这对降低模型参数非常有效。同理如果需要提升数据的维度,可以使用大于输入数据维度个数的1×1卷积核对输入数据进行卷积。逐深度卷积不同于立体卷积,它的卷积核维度为一,其中一个卷积核的卷积过程与单维卷积相同。在对于立体数据做卷积时,逐深度卷积的卷积核数等于输入数据的维数,每一个卷积核处理一个维度的数据。所以经过逐深度卷积的卷积结果不会改变数据维度。逐深度卷积没有像立体卷积一样使用大量的立体卷积核,而是保持了原始输入的数据维度,因此单从逐深度卷积来看其获取的数据特征较少。而深度可分离卷积第二步使用1×1卷积来提升逐深度卷积数据结果,增加了数据维度。深度可分离卷积大量减少了卷积运算过程中的参数,并且在识别效果上与普通的立体卷积没有较大差距。其两个阶段的卷积如下图2-4与2-5所示。图2-4逐深度卷积图2-51×1卷积池化层池化层可以减少神经网络参数,去除多余信息。在池化层中主要存在两种池化方式:平均池化,最大池化。例如假设输入是一个4×4大小的二维图像信息,池化的步长是2。对于最大池化,就是在2×2大小的池化步长中寻找最大像素值,对于平均池化,就是在2×2大小的池化步长中将全部像素值相加再求平均[4]。图2-6与图2-7为最大池化与平均池化的过程。图2-6平均池化图2-7最大池化 池化层的应用非常广泛,从1998年实现手写数字识别的LeNet网络中应用到池化层至今,各种卷积神经网络中都能看到池化层的应用。全连接层在经过多次卷积与池化的数据获取与压缩后,将这些向量依次排列,将会得到一个神经元集合,并在这些神经元集合后方再次构建下一层神经元集合,这就是一层全连接层。全连接层就是神经网络的标准形式,其中包含着前向传递与反向传递的过程。例如在特征物体识别的例子中,通过多次模型的训练过程,神经网络不断修改每个节点之间的连接权重,最终在完成训练之后,神经网络完成权重的修改,也就意味着神经网络训练的完成。目标检测在图像识别的任务中还包含着一些其他的任务,目标检测就是其中之一。目标检测需要在识别目标物的基础上确定目标物的具体位置,所以目标检测还有以下几个参数需要确定,如目标物体的中心,长宽以及类别。YoloV1Yolo算法在刚刚被提出时,其运行速度远超同类目标识别算法,这是基于其在目标检测方面做出了全新的解决思路。Yolo与其他种类目标检测的不同之处在于,它将目标边界框的遍历计算问题变成了概率计算问题。Yolo目标检测的输入为448×448×3大小的彩色图像,使用了24个卷积层和2个池化层,最后经过全连接层后得到7×7×30大小的数据集合。得到7×7×30的数据集合后之后,就可以在数据集合的基础之上进行模型预测,其预测步骤大致如下。1.将输入图像划分为大小相等的7×7个小图像[5]。2.每一个小图像负责预测两个目标窗口,目标窗口可以小于小图像,也可以大于小图像,并且每一个预测的目标窗口都有自己的置信度。3.设置阈值将置信度低的目标窗口去除,留下置信度较高预测窗口。最后使用非最大抑制(NMS)算法去除多余窗口。最后就可以得到目标物体的边界框。综上结合7×7×30大小的数据集合与预测步骤来对数据集合做出分析,在数据集合内任意一个维度为30的向量中,包含着2个目标种类边界框的5个参数(长宽,中心坐标,置信度),剩下的20个参数是不同种类物体的分类。YoloV2YoloV2是YoloV1的改进型,他的速度与准确率相较上一代都有较大的提升。他在YoloV1的基础之上添加了7种模型训练方法,将识别物体的准确度由一代的63.4%提升到了78.6%[6]。此外二代的模型在网络结构上也做出了优化,YoloV2使用19个卷积层和6个池化层,并且取消了全连接层改换为使用1×1卷积。修改网络结构后使得整体运算量减少,提升了模型运算的速度。YoloV2MobileNet谷歌公司在2017年提出了MobileNet网络结构。在传统的神经网络结构中,通常是先使用大量的卷积核进行图像卷积操作,之后再对卷积结果完成池化。而为了使神经网络方便的运行在移动设备以及嵌入式设备中,需要一种具备体积小,且有一定识别精度的网络。因此MobileNet由此而生,它在卷积神经网络结构中使用深度可分离卷积,致使MobileNet网络在参数、体积大小上得到了相较于传统网络8至9倍的改进。而对于YoloV2MobileNet网络,则是将YoloV2的卷积网络结构换为MobileNet的网络结构,而对于目标识别部分则保留不变,这就是本次模型训练所用的卷积神经网络。MobileNet网络构成如图2-8所示。图2-8MobileNet卷积神经网络结构由图2-8可以看出MobileNet网络的最大特点就是先使用逐深度卷积,再使用1×1卷积[7]。在模型训练时,MobileNet网络可以通过修改卷积核倍率以达到调整网络体积的目的。卷积核倍率共有四种选项,分别是1.0、0.75、0.5、0.25。其在不同参数情况下对目标的识别率也不同,其不同参数关于图像的识别率大小对应关系如图2-9所示。图2-9MobileNet卷积神经网络准确率本次目标识别中使用到的卷积核个数倍率为0.25,经过训练之后可以生成小体积的模型文件,便于放入K210单片机中运行。硬件系统设计本课题硬件为监控系统特征物体识别,其中主要使用到两片单片机进行控制。特征物体识别部分由K210单片机完成,报警与信息传输部分由STM32单片机完成。K210核心板与摄像头连接,并接收摄像头的图像数据。在K210接收到摄像头数据后使用神经网络加速器模块完成对图像的实时处理以达到特征物体识别的效果。当K210识别到特征物体后立即与STM32单片机进行数据通讯,使STM32做出相应的报警与控制动作。硬件系统的结构体为图3-1所示。图3-1硬件系统结构体主控芯片K210实现特征物体的实时监测需要进行图像采集,并且对图像进行处理。而在单片机中K210较为适合胜任,其芯片构架图如下图3-2所示。图3-2K210芯片构架图该芯片CPU部分采用双核RISC构架[8、9]64bit,频率可以达到400MHz。本课题主要使用到的主要模块是神经网络加速器(KPU)[10],它是嘉楠智能公司自研的一款处理器,一片K210的计算能力可以到达0.8TOPS(TeraOperationsPerSecond),对于解决实时图像识别的任务是一把利器。此外除了使用到KPU,还有使用到的模块是嵌入式硬件通讯接口协议(UART),在K210识别到特征物体之后,需要将识别信息与位置信息通过通讯接口交与STM32单片机内,完成两个单片机通信的任务。由于K210单片机采用BGA144的封装,致使核心电路制作难度较大,所以本课题中使用了矽速科技生产的K210成品核心板,形状如下图3-3所示。图3-3核心板实物图该模块采用了M.2金手指引出IO的方式,自带PVD双摄像头接口、128M大小的flash。核心板布局紧凑,布线条理,集成度高,适合作为本次课题使用的标准。K210底板与K210芯片连接的是K210底板,该底板借鉴了他人开源硬件的设计方案,本课题在底板中运用到的主要器件有microSD卡短体卡座、Type-C连接接口、240×320像素大小的TFT液晶显示屏幕和用于连接K210核心板的M.2BKey的连接器,其硬件原理图如下图3-4所示。图3-4K210底板原理图底板电源接口底板使用Type-C接口作为通讯与供电接口。Type-C接口上下对称,所以在使用数据线连接时可以不用区分正反,这是Type-C接口相较于Micro-USB接口的方便之处。此外Type-C接口相较于Micro-USB接口在某些情况下功能也更多,它有着更高的数据传输速率和更高功率的充电速度。本次课题主要使用Type-C接口中D+与D-两根数据线完成数据的传输,VBUS与GND完成5V电源的输入[11]。此外为了防止Type-C接口与数据线接触时偶尔产生高压静电导致损坏内部敏感芯片的情况,所以在Type-C接口下端放置了ESD保护电路[12]。保护电路中使用到的芯片是USBLC6,芯片内部包含了一颗单向的瞬态二极管,当数据线与连接器之间产生高压静电时,USBLC6可以将静电产生的电流导入电源中。最后为了防止硬件系统出现故障导致烧毁元器件的情况发生,本课题在电源的输入端添加了电源的过电流保护电路。电路中使用MT9700芯片进行电路的过电流保护,根据该芯片数据手册得知芯片的过电流阈值可以通过调整芯片SET引脚电阻值的大小来完成设置。本次课题过电流芯片电阻大小设置在8.2K,当输入电流大于800mA左右时芯片会将输入电源切断,以达到保护系统硬件电路的目的。综上所示,底板电源接口部分的原理图如下图3-5所示:图3-5K210底板接口电路原理图Micro-SD卡接口电路底板中Micro-SD卡与K210单片机连接,其主要目的是拓展硬件系统的存储空间。在本次课题中,特征物体训练的模型数据需要存放在TF卡中,当单片机进行特征物体识别时需要将特征物体的模型数据取出进行运算,而TF卡就是存放特征物体模型的主要位置。硬件部分短体Micro-SD卡使用3.3V作为供电输入。使用SPI通讯协议与单片机进行数据交换[13]。其原理图如下图3-6所示:图3-6短体Micro-SD卡接口电路原理图通讯转换电路通讯转换部分使用CP2104芯片来完成USB数据到UART数据[14]的转换。CP2104相较于CH340芯片有着较好的兼容性与稳定性,它支持大多数常见的操作系统。而对于CH340常常出现在Windows10系统中不能成功安装驱动程序的情况,使用CP2104芯片提升了系统开发的稳定性。其芯片驱动电路如下图3-7所示:图3-7通信芯片CP2104原理图液晶显示电路本系统中使用的液晶分辨率为240×360,彩色,其主要目的是方便检测目标识别调试效果。对于目标检测,图像输入的大小为224×224大小,所以使用该分辨率的液晶可以完整的将识别效果显示出来。液晶包含两个供电基准,一个是3.3V的电压输入,另一个是1.8V的电压输入。电压基准全部来自于核心板的电源输出[15]。控制数据使用8位并行的通讯方式,其电路原理图如下图3-8所示:图3-8液晶接口电路原理图主控芯片STM32STM32单片机主要实现数据接收、云台控制与报警的功能。单片机使用到的功能模块有一路UART、一路IIC、一路SPI和两路PWM信号。UART负责接收K210单片机发送的图像检测数据,IIC用于驱动一路0.49寸的OLED,用于显示目标寻找信息,SPI用于与无线通信芯片24L01通讯,完成报警过程中数据的无线传输。其原理图如下图3-9所示。图3-9STM32底板实物图在STM32的主板一侧放置了一排贴片排针,其目的就是完成接收K210底板的数据信息。其中在K210单片机发送的数据中,包括特征物体的信息有特征物体类别,特征物体位置信息。当被检测的特征物体位置偏离摄像头中心位置时,STM32单片机可以通过接收物体位置信息,进而控制两路脉冲宽度调制信号的占空比达到控制舵机转角的目的。最小系统电路STM32最小系统电路如下图3-10所示,其中包括两个晶振电路和一个复位电路。晶振负责提供单片机时钟基准,而复位电路负责单片机工作异常时的硬复位。P3接口是单片机的外接接口,其中包括了两路PWM信号接口、BOOT启动设置接口还有程序下载接口。图3-10STM32最小系统电路原理图报警电路报警电路使用一颗有源蜂鸣器实现,其中蜂鸣器使用三极管9013作为驱动器件,9013的基极与单片机IO连接,当STM32单片机接收到K210发出的特征物体识别信号之后,将与9013连接的IO口电平至高,此时三极管处于导通状态,蜂鸣器通电鸣叫,以达到报警的效果。其控制电路原理图如下图3-11所示。图3-11蜂鸣器报警电路原理图摄像头本课题中选用一颗180度广角的OV2640摄像头与K210核心板直接相连。该摄像头采用使用OmniVision公司生产的一颗CMOS图像传感器OV2640,采用标准的串行摄像头控制总线(SCCB)接口,兼容IIC接口,像素可以达到200万[16]。本次课题中限制使用的图像输入大小为244×244,对于OV2640来说可以胜任。在摄像头内部含有一颗有源晶振,并且内带线性稳压器,只要外部通电3.3V就可以使其正常工作,较为方便,并且与K210核心板中接口兼容,适合用于本课题。其外观如下图3-12所示。图3-12OV2640摄像头实物图软件系统设计本课题是基于神经网络的监控识别系统,软件部分主要分为两块,一是数据集训练的软件部分,二是下位机中的代码编写部分。其中数据集的训练包括特征物体的采集,压缩,标注,训练等处理,而下位机中的软件主要是各个硬件部分的驱动程序、图像识别报警的基本逻辑等功能。数据集的获取完成数据集的训练首先要完成大量的图片采集,任何物体都可以作为被训练的目标。图片的获取方式有很多,例如使用摄像机进行手动拍照,或者访问与数据集有关网站进行相应图片的批量下载。如果没有大量的图片数据,也可以对已有图片进行相应的修改以达到扩充数据集的目的,常见的图像修改方法有图像的镜像,对比度的调整等使用手动调整图片修改图像是快速扩充数据集非常有效的方法[17]。本次课题中采集了200张18605电池图片进行训练。完成图片采集之后再使用图像像素压缩软件进行图像的批量处理。由第二章MobileNet卷积神经网络的结构可知,神经网络的输入量为224×224×3大小,所以需要将所有采集到的图像的分辨率统一降低到224×224大小,达到统一卷积神经网络的输入量大小的目的。其次使用标注软件对压缩后图像中的特征物体进行框选。本次课题中使用到的标注软件为LabelImage,它可以直接在处理好的图像中对目标物体进行框选,其使用过程如下图4-1所示。在完成一张图片的标注并保存之后,软件会自动生成被标注物体名称信息以及自动生成与图片对应的XML文件。图4-1模型标注软件界面本课题模型训练使用的是Mx-yolov3的软件工具。该软件内部集成了YoloV2以及YoloV3两种网络类型,内部集成了模型训练的代码,留出了一些基本的参数选项,例如锚点,训练次数等。使用该软件减少了环境配置与代码移植时可能出现的错误,简单易上手。其训练过程的实际界面如下图4-2所示:图4-2模型训练软件界面首先在软件中配置网络参数,网络类型选择为Yolo2MobileNet。Batch_size参数代表批量归一化的样本个数,批量归一化是YoloV2在YoloV1中加入的训练模型的方法。训练次数选择为20次,再将数据集的路径输入,并且输入物体的种类名称,最后点击计算Anchors,软件会根据提前标注好的文件生成Anchors。将所有的参数设置完成之后就可以点击右边的开始训练,完成神经网络的训练[18]。在训练成功后会得到该特征物体相应的模型文件,此时的模型文件为tflite文件,不能直接被K210单片机识别处理。此时还需要将tflite文件转化为kmode格式,格式转化工具使用的是NNC0.1。转化完成的模型文件放入Micro-SD卡中,即可进行模型准确性的测试[19]。下位机程序下位机中的软件编写主要是STM32单片机的C语言编程和K210单片机的micropython语言编程。嵌入式C语言的开发使用Keil5编译器,micropython的开发使用maixpy编译器。STM32单片机程序开发C语言开发需要移植的驱动程序有IIC通信协议的初始化,ssd1306的液晶驱动程序与字库文件的移植。此外还需要初始化SPI通信协议以用来进行24L01无线模块的信号收发。另外还有嵌入式硬件的通信接口(UART)初始化以及报警蜂鸣器IO口的推挽输出。在完成驱动移植的基础上进行接收数据的分析,完成与之对应代码的编写,即可完成STM32端的软件开发。STM32单片机的运行流程大致如下,先初始化外围设备,包括OLED液晶、串口等。其次进入到循环中,判断串口是否接收到寻找到目标物的位置信息。当确认收到目标物信息时,STM32主控芯片控制蜂鸣器鸣叫,以实现报警的功能。其程序流程图如下图4-3所示。图4-3STM32软件流程图K210单片机程序开发相较于使用C语言的开发,micropython的开发就相对简单。并不是因为开发K210简单,而是micropython中包含了自己独立的编译器,解释器,和类库等等。语法上继承了python3的语法,使得在嵌入式开发中有着非常简洁的语言表示,并且有着较好的可读性[19]。其次python语言对于C语言有着较为宽松的语法规则,并且有非常高效的功能函数,例如相较于C语言中头文件与源文件的调用在micropython中可以用一行代码解决,可以达到高效开发的目的。在K210单片机中使用micropython开发需要先烧入它的固件,在完成烧录之后才可以正常开发。开发中首先导入库文件,例如LCD、SENSOR、KPU等。其次再初始化相应模块的相应参数,完成初始化之后就可以进行主函数的编写。主函数中首先进行摄像头图像的采集,完成采集之后再使用kpu.run_yolo2函数进行图像特征物体识别,当识别出特征物体后进行数据的发送,如果没有识别到就再次返回摄像头采集图像进行程序的循环运行。K210单片机运行流程为:单片机上电,完成摄像头、液晶、串口以及卷积神经网络结构参数的初始化,在初始化完成之后进入循环。循环中摄像头先采集一张图片,完成采集后将图片用Yolo卷积神经网络处理,如果在图像中找到目标物体则将目标物信息发送到STM32单片机,并将目标物具体位置框出显示在液晶上。如果图像中没有目标物,则一次循环结束,继续获取下一站图片。其程序的流程图如下图4-4所示。图4-4K210软件流程图测试及分析在完成本次课题的设计后,需要对设计的内容进行测试及分析。测试可以判断出本次特征物体识别系统的工作效果,分析可以将本次设计的设计缺陷,设计问题指出,并在之后的研究中进行进一步改善。测试内容本次课题主要研究的是监控识别系统,所以本次测试的主要内容是目标物检测的准确度。此外本次课题中包含硬件嵌入式的设计,所以在测试时还需要对嵌入式硬件平台的最高性能做出测试。因此在本次课题中一共选择了两种特征物体进行识别,其中一种是检测识别率较高的人脸模型,而另一部分是自己通过YoloV2MobileNet网络训练出的电池模型。人脸检测本次课题中人脸数据集来源于网络中公开的数据,并且该模型训练结果精度高,体积小。本次测试人脸目标,目的在于了解K210单片机是否能够胜任复杂目标物体的实时、精准检测。对于人脸检测,检测方案为使用笔记本屏幕显示人脸图案,目标检测识别系统进行特征物体的识别。人脸识别数据选择一个规模较大的人脸数据集Multi-TaskFacialLandmark(MTFL)进行检测。数据集中包含了大量的彩色人脸数据,可以对识别系统进行充分的测试[20]。在实际测试中首先将嵌入式系统上电,使得特征物体识别系统开始正常工作。其次将笔记本电脑屏幕亮度调整到合适的位置,最后将摄像头部分对准识别图片人脸部分,系统开始工作,通过切换图片完成系统对大量数据的识别。如果系统正常识别到了人脸部分,系统会在人脸四周画出边界框。如果系统没有识别到人脸,则屏幕中没有边界框的信息。实际的检测结果如图5-1所示。在若干次人脸检测中,可以看出人脸检测的识别速度与识别精度是比较高的。这反映出了本次嵌入式识别系统在模型训练精确度较高的情况下是可以进行较高精度的目标检测任务的。图5-1人脸识别检测效果图5-1中每一个窗口都是一次对于人脸的识别,可以看出目标识别率较高。但是在图像中有个别人脸出现没有检测到的情况,根据相应图片内容可以发现图片中人脸较为黑暗,目标也处于较为黑暗的环境中。电池检测对于电池数据的检测,检测方案为使用摄像头围绕电池做移动检测。当电池放在摄像头前时,识别系统将特征物体识别。此时通过观察TFT液晶屏幕中显示的预测目标物方框来判断目标识别精度。电池检测的实际结果如下图所示,由于电池底部为白色背景,所以在绘制方框时选用了黑色粗线条。相较于人脸识别,电池识别的精度是相对较低的,偶尔会出现检测错误、不检测的情况。其电池检测效果如图5-2所示。图中从18650电池的多个角度进行了检测,其中包括由低角度到高角度,电池的横放与竖放角度。可以看出本次课题设计的系统完成了目标进行识别并定位。但是在测试过程中还存在着很多问题,例如18650电池同时被多个目标框所框取,在没有目标的地方出现噪声框,还有不检测的情况。另外由于模型的训练过程中只选择了电池竖放作为训练集,所以在检测时可以看出目标框整体都呈现窄高的形状。此外在训练模型时没有考虑到Yolo本身的缺陷,Yolo在识别小目标时本身识别率会降低,对于电池这种小面积模型在检测时会由于本身的问题造成识别率较低的情况。因此在模型训练时需要尽可能选择面积较大的目标物。图5-2电池识别检测效果目标检测分析经过以上测试确定K210单片机可以处理较为复杂的目标物识别任务,所以之后需要处理的功能主要是提升目标物数据训练结果的准确性。本次模型的训练使用了YoloV2MobileNet网络模型来对目标物进行训练,但是训练出的数据没有达到稳定检测的效果,因此在之后精确度提升的过程中还需要对多种神经网络结构训练进行实验,以确定有更加稳定的模型训练方法。课题中设计的目标检测报警系统在模型识别精度以及系统硬件的稳定性方面还有提升空间。对于提升目标物检测的精度,需要在模型训练的过程中将特征物体各个角度,各个位置的图片信息作为训练样本,这样数据集的训练结果可以较好的在目标检测任务中达到高概率检测的效果。对于电池检测其主要原因在于训练样本较少,只使用了200个样本图片进行训练,造成了识别率的低下。其次样本图片目标物角度单一,以至于在检测时无法将目标物各个角度特征框出。另外电池属于小目标,而YoloV2神经网络在识别小目标时本身有精度不高的特点,所以这几个致命缺点都导致了训练出的模型识别率低的情况。总结与展望课题中的重点在于完成目标识别神经网络硬件环境的搭建,并在硬件环境的基础上完成软件的编写。而难点是在有限的硬件资源中提升目标物体识别的精确度。课题总结本次课题的主要研究工作如下:1.本次课题在模型检测方面经行了人脸模型检测以及18650电池模型训练,对于训练结果识别精度存在较大误差,其人脸模型检测成功率较高,而电池检测成功率较低。2.硬件方面实现了目标检测电路以及报警电路,目标检测主要由K210核心板以及底板实现,在实际的工作中表现较为稳定。K210核心板在处理目标识别任务时其电流大致在200毫安,因此如果是高电压提供电源则需要考虑线性稳压器的功率因素。其次实现通讯报警控制任务的STM32底板也完成了稳定的通信与报警。3.在软件方面完成了STM32单片机C语音驱动程序以及报警逻辑的编写,并且使用MicroPython实现了特征物体识别的效果。4.根据测试结果中模型精度,硬件稳定性等问题提出了适当的解决办法。课题展望项目开发中大量的时间用在了目标图像训练集的获取以及模型训练的过程,一次模型训练的过程长达四小时。这很大程度增加了分析目标特征物体模型准确性的难度。因此在今后的模型训练过程中,条件允许的情况下最好使用专用的深度学习模型训练平台,这对于提升模型训练效率是很有帮助的。课题中使用了成本较低的嵌入式硬件设备完成特征物体识别的效果。在模型识别度较高的情况下可以用来解决对特征物体提取坐标的需求任务。此外目标识别与STM32单片机通信,这样增强了目标识别后的联动操作。在本次课题中STM32底板包含着两路PWM信号的输出,因此在课题的后续研究者可以方便的外接两路舵机以实现摄像头对目标物实时跟踪的目的。对于监控系统,本课题使用识别报警的逻辑可以将安防危险信息实时传递给监测端,可以降低危险事件的处理时间
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026库尔勒市兰干乡人民政府公开招募村级见习岗备考题库(15人)附答案详解(模拟题)
- 2026上半年四川凉山州会理市考试招聘警务辅助人员30人备考题库含答案详解(基础题)
- 2026广西贵港桂平市社步镇卫生院招聘编外工作人员的1人备考题库及1套参考答案详解
- 2026甘肃平凉市第三批市直单位公益性岗位工作人员招聘23人备考题库含答案详解(新)
- 2026黑龙江省龙江化工有限公司招聘1人备考题库含答案详解(预热题)
- 2026南昌市劳动保障事务代理中心招聘外包人员2人备考题库附答案详解(研优卷)
- 2026中盐舞阳盐化有限公司招聘4人备考题库附答案详解(综合卷)
- 2026海南琼海市妇女联合会公益性岗位招聘1人备考题库含答案详解(基础题)
- 2026北京大学电子学院招聘劳动合同制工作人员1人备考题库含答案详解(培优)
- 2026河北兴冀人才资源开发有限公司招聘护理助理30人备考题库完整答案详解
- 2026年医师定期考核人文押题宝典题库含答案详解(突破训练)
- 4月23日世界读书日主题班会课件
- 2026年合肥国先控股有限公司及子公司社会招聘19名(第一批)笔试备考试题及答案解析
- 农场手机营销方案(3篇)
- (T8联考)2026届高三年级四月阶段练习语文试卷(含答案及解析)
- 8.4 祖国的神圣领土-台湾省 课件-2025-2026学年八年级地理下学期人教版
- 河南中医大方剂学课件06祛暑剂-1清暑益气汤
- 2025北京燕山区六年级(下)期末英语试题及答案
- 5.3《民族区域自治制度》教案- 2025-2026学年统编版道德与法治八年级下册
- 结直肠癌诊疗规范课件
- 抖音短视频代运营公司案例分析
评论
0/150
提交评论