资源描述:
《多方位智能监控系统设计》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库。
本科毕业设计(论文)多方位智能监控系统设计DesignofMulti-DirectionalIntelligentMonitoringSystem院(系)计算机学院专业电子信息工程班级电子信息工程1班学号16210420124学生姓名黄均和指导教师何世添提交日期2020年4月20日
1毕业设计(论文)原创性声明本人郑重声明:所呈交的毕业设计(论文),是本人在指导老师的指导下,独立进行的设计(研究)工作及取得的成果,论文中引用他人的文献、数据、图件、资料均已明确标注出,论文中的结论和结果为本人独立完成,不包含他人已经发表或撰写的作品及成果。对本文的研究作出贡献的个人和集体,均已在论文中作了明确的说明。本人完全意识到本声明的法律结果由本人承担。毕业论文作者(签字):签字日期:年月日
2内容摘要为了提高监控系统的监控效率,减少对监控系统的操作,本文针对监控系统监视区域主要在摄像头前方、多方位监控较差的问题,设计一种具有多方位监控的系统。该系统具备自动拍摄、多方位监控、及时反馈等功能。本文主要做了以下几个方面的工作:介绍了监控系统的发展历史,分析了监控系统在国内外的市场以及研究现状:针对监控系统以及监控摄像头存在的问题,提出了基于人体红外感应的多方位智能监控系统方案;设计了整个多方位智能监控系统的硬件框架并介绍了各个模块的具体情况;分析了软件系统框架并设计相应代码;通过摄像头录制、人体红外感应到人后摄像头拍摄、舵机旋转摄像头三个实验,测试结果证明了基于人体红外感应的多方位智能监控系统方案的可行性。关键词:智能监控系统单片机ZigBee人体红外感应
3AbstractInordertoimprovethemonitoringefficiencyofthemonitoringsystemandreducetheoperationofthemonitoringsystem,thispaperdesignsamulti-directionalmonitoringsystemforthemonitoringsystem,mainlyinfrontofthecameraandthepoormulti-directionalmonitoring.Thesystemhasthefunctionsofautomaticshooting,multi-directionalmonitoringandtimelyfeedback.Thisarticlemainlydoesthefollowingwork:introducedthehistoryofmonitoringsystem,analyzedthemonitoringsystemathomeandabroadmarketandresearchstatusquo:forthemonitoringsystemandsurveillancecameraproblems,putforwardamulti-directionalintelligentmonitoringsystembasedonhumaninfraredinductionprogram;Thethreeexperimentsoftherotarycameraoftheruddershowthefeasibilityofmulti-directionalintelligentmonitoringsystembasedonhumaninfraredinduction.Keywords:IntelligentMonitoringSystemSinglechipZigBeeInfraredSensingofHumanBody
4目录第一章绪论11.1课题研究背景和意义11.2国内外研究历史和现状11.3论文研究内容与目标21.4论文结构安排2第二章多方位智能监控系统设计相关技术42.1人体红外感应技术42.2嵌入式系统相关技术42.2.1树莓派42.2.2Arduino42.3OpenCV52.4本章小结5第三章硬件系统设计63.1硬件整体设计框架63.2树莓派与Arduino63.3多方位智能监控系统模块设计83.3.1人体红外感应模块83.3.2摄像头模块93.3.3舵机模块103.4本章小结10第四章系统软件开发114.1软件系统框架114.2相关任务模块处理流程114.3树莓派的安装和连接124.4搭建Arduino开发环境154.5搭建树莓派与Arduino通信环境164.6OpenCV174.6.1搭建OpenCV工作环境174.6.2OpenCV模块代码184.7相关模块代码的开发194.7.1人体红外感应模块194.7.2时间模块20
54.7.3舵机模块214.8本章小结21第五章多方位智能监控系统测试225.1测试目的225.2摄像头录制测试225.3人体红外感应模块测试245.4舵机旋转摄像头测试255.5整体测试265.6本章小结27总结与展望28参考文献29致谢30
6广东东软学院本科毕业设计(论文)第一章绪论1.1课题研究背景和意义现代社会发展迅速,家庭的安全问题日益突出,社会上出现的犯罪手法更趋向于现代化、隐蔽化,但是现在一些小区产生了因为安保设备水平不高从而导致了小区的一些住户遭受小偷盗窃的问题,加强安保设备技术的需求显得更为急迫。安防管理技术就为此而生,该技术通过结合计算机、传感器、通讯的技术来对犯罪行为以及灾害进行预防以及监控,通过建立监控系统来加强治安管理,告别了以前只能通过大量安保人员进行安保巡逻的窘境。现代科学技术水平已经越来越发达,许多先进的科学技术在不断地在进步,现在的传感器技术日趋成熟,监控系统的功能越来越多,监控系统的作用也越来越大,当一个区域内布置了监控摄像头,安保人员只需通过观看屏幕就可以通过监控摄像头该区域进行监控,只要通过合理运用监控系统,可预防犯罪的产生,减少大众对安全问题的忧虑。在日常生活中,监控系统已越来越常见,如今在医院、在学校、在街口都可以看到不同的监控摄像头发挥不同的作用,在现在的日常生活中,监控系统已悄无声息地为我们的安全做出贡献。本课题针对现有的大部分监控摄像头监视区域主要在摄像头前方、多方位监控较差的问题,设计一种可多方位监控,并且通过相关模块实现自动对人体进行拍摄的系统。1.2国内外研究历史和现状从1942年德国西门子公司安装了世界上第一台监控摄像头,到1973年美国纽约开始布置监控系统,当时纽约警察局为了震慑犯罪分子在时代广场安装了现代第一套监控系统,在往后的十年间,视频监控系统在全美国开始普及,各种各样的公共场所都开始安装监控系统来预防犯罪行为的发生。如今视频监控系统已经发生了翻天覆地的变化,通过技术水平的分类,现代的监控系统可以被划分为三代。第一代的监控系统为模拟监控,这是最原始的视频监控系统,这个时候的监控系统基本上监控摄像头只能通过视频线直接连接到电视屏幕,通过简单的设备进行图像切换,这个时候的监控设备基本上只能进行实时监控,很少监控系统有视频储存的功能,当时的安保人员进行视频监控只能靠双眼进行观测,如果出现事故也无法把视频进行储存来保存证据。后来,人们发明了监控矩阵,透过监控矩阵可以在减少监控屏幕使用的同时进行不同摄像头的切换,监控视频也开始可以通过磁带来进行储存,这时的监控系统已经开始成型,系统已经有监控、储存、控制的功能,但是此时的监控系统还是存在需要使用大量视频线连接、只能用磁带储存不支持网络等问题。第二代的监控系统为数字监控,这个时候硬盘录像机诞生了,监控系统通过硬盘取代了磁带进行视频储存,同时监控系统也可以联网,可是此时的监控系统还是存在不同30
7广东东软学院本科毕业设计(论文)厂家的设备兼容性差的问题,此时由于设备兼容性的问题客户可以选择的监控系统就非常少。而且硬盘录像机也是受限于硬件性能,如果图像变化过大,视频质量会变差。第三代的监控系统为网络监控,现在的监控系统已经可以通过网络进行各种储存、监控、控制等操作,并且此时的监控摄像头也出现了不同的种类。此时的监控系统布置方便,储存设备也可任意布置,通过对不同种类的监控摄像头的应用,监控系统的监控效果大幅提高。近几年更加出现了IP智能监控系统,该监控系统可通过网络进行监控视频储存,通过网络安保人员可远程控制不同的监控摄像头,可以快速排除问题,提高监控系统的效率。随着大众对安全问题的重视,安防行业的发展势头强劲。我国的安防行业产值在16年已经达到5400亿元。在我国,传统的安防概念只将安防限定在一个比较狭窄的领域中,安防设备的适用范围也主要局限于保密程度要求很高的特殊行业,但是在不同行业进入快速发展阶段,安防在各行业领域广泛应用,并融入全社会乃至普通百姓的多方需求。随着近几年的发展,我国的视频监控市场越来越大,我国也成为了世界上最大的视频监控产品制造地,但是除了特殊行业,大部分民用的监控设备还存在部分问题。这其中有大部分地方安装的监控系统为第二代数字监控,整个系统存在需要布置的线路多,并且这些监控系统的监控摄像头只能监控一个固定的方位,并且监控摄像头设备功能单一,还有些摄像头存在清晰度不足的问题,使用这些监控摄像头的监控系统也需要大量屏幕来观看实时监控,本课题基于这样一种现状,考虑利用嵌入式技术和各种传感器模块整合开发一款新型监控摄像头。1.3论文研究内容与目标根据多方位智能监控系统设计的要求,系统包括了单片机核心模块,人体红外感应模块,摄像头模块等等。通过单片机控制搭配各类传感器模块丰富多方位智能监控系统的功能。使用人体红外感应模块对范围内的空间进行人体识别,当识别到人体后系统会发出光信号提醒控制人员,人体被识别后摄像头可进行拍摄图片保存记录,图片保存时会记录拍摄的时间并对图片进行命名,此时控制人员可手动控制摄像头进行实时监控。1.4论文结构安排本论文的结构主要由以下六个章节组成:第一章为绪论,通过研究本课题的背景以及意义并对国内外的研究历史和现状进行分析,然后提出了本论文的研究内容以及本课题的目标。第二章为多方位智能监控系统相关技术分析,分析了人体红外感应技术、树莓派、OpenCV,描述其特性以及在多方位智能监控系统的功能。第三章为硬件系统设计,描述了多方位智能监控系统的硬件框架并介绍树莓派、人体红外感应模块、舵机模块、Arduino的详细信息,分析他们的应用场景。30
8广东东软学院本科毕业设计(论文)第四章为系统软件开发,描述了多方位智能监控系统的整体软件框架,描述了相关任务模块的处理流程,同时说明了树莓派和Arduino的安装与连接流程,然后描述搭建树莓派和Arduino通信环境的流程,同时描述了人体红外感应模块、OpenCV、时间模块、舵机模块的相关代码。第五章为多方位智能监控系统测试,对多方位智能监控系统设计进行不同的测试,通过对多方位智能监控系统进行详细的测试,做了摄像头录制、人体红外感应到人后摄像头拍摄、舵机旋转摄像头、整体测试四个实验,证明了基于人体红外感应的多方位智能监控系统方案的可行性。第六章为总结与展望,对本论文研究的多方位智能监控系统设计进行总结,主要描述了本文研究成果以及当前智能监控系统所存在的不足,并展望了未来的智能监控系统。30
9广东东软学院本科毕业设计(论文)第二章多方位智能监控系统设计相关技术2.1人体红外感应技术人体红外感应技术是一种利用感应红外线进行工作的技术,可以通过温度的不同来进行人体识别,所有高于绝对零度的物质都会产生红外线,而一个正常人将会产生10UM左右的红外线,当探头接收到人体产生的红外线就会向外释放电荷。如今人体红外感应技术多被应用在不同的监控系统当中。人体红外感应模块除了HC-SR501还有HC-SR505、HC-SR602两种型号,但是由于HC-SR505、HC-SR602这两个型号都为小型人体红外感应模块,这两款模块探头的检测范围都比HC-SR501小,所以在本次多方位智能监控系统设计中我选择了HC-SR501这款人体红外感应模块,此款模块是的目标主要是检测人体,所以模块对人体产生的红外辐射相当敏感,此模块还拥有菲涅耳透镜,通过透镜,人体红外感应模块探头的灵敏度将大幅提升。2.2嵌入式系统相关技术2.2.1树莓派在大学的学习课程中,51单片机因为其简单的结构以及其经过多年发展现在成为很多大学课程的入门单片机,但随着科技的发展,在一些复杂的场景下,51单片机的性能已不足以应付。现在许多公司开发了不同的单片机给人们进行开发应用。而近几年出现的树莓派就是其中一颗闪亮的新星。它不同于一般的单片机在于它整合了一台电脑的大部分东西到一个开发板上,其CPU性能也远超大部分单片机,树莓派的系统基于Linux,树莓派还同时拥有视频输入输出接口、网络接口,随着树莓派的更新换代,现在树莓派也出现了不同的版本如图2.1所示。在多方位智能监控系统设计中我通过树莓派控制系统的实时监控以及进行拍照操作。2.2.2ArduinoArduino是一款开源电子原型平台。它构建于开放原始码simpleI/O介面版,并且具有使用类似Java、C语言的Processing/Wiring开发环境。我们只要在IDE编写好代码就可以控制Arduino的模块。Arduino拥有以下几个特点:(1)ArduinoIDE可在三大主流平台Windows、Linux、Macintosh上运行。(2)Arduino是开源的,它的原理图、电路图、核心库文件都可以查看。(3)Arduino灵活性高,它基于wiring语言开发,经简单学习可快速进行开发。30
10广东东软学院本科毕业设计(论文)图2.1不同版本树莓派的数据2.3OpenCVOpenCV诞生于1999年,它的全名为OpenSourceComputerVisionLibrary,OpenCV是一个跨平台计算机视觉库,可以在Linux、Windows和MacOS操作系统上运行,如今OpenCV是由WillowGarage提供支持。它可以应用于:图像分割、人机互动、物体识别等功能。OpenCV并不像一般计算机的视觉软件比如MATLAB、Halcon,这种商业软件需要耗费大量金钱,也不像某些研究代码,兼容性不太好。OpenCV通过C函数和少量C++类构成,同时提供了Python、MATLAB等语言的接口,这使它非常轻量以及高效。根据功能和需求的不同,OpenCV中的函数接口大体可以分为core核心模块、imgproc图像处理模块、highgui模块。2.4本章小结本章主要针对了多方位智能监控系统的关键技术做了简略的介绍以及分析。首先对人体红外感应技术的原理以及其工作方式进行了介绍;然后对树莓派和Arduino进行了简略的介绍;最后介绍了OpenCV的应用领域以及相对于其他视觉软件的特点。30
11广东东软学院本科毕业设计(论文)第三章硬件系统设计3.1硬件整体设计框架图3.1所示为多方位智能监控系统设计的硬件框架设计图。树莓派和Arduino通过数据线进行连接。树莓派控制摄像头模块的实时监控以及拍照保存,Arduino控制人体红外感应模块,当摄像头启动后会开始录像,在人体红外感应模块感应到人体将信号传送到Arduino然后会通过数据线向树莓派发送数据,树莓派控制摄像头拍摄照片并进行保存,并且Arduino上的LED灯会闪烁提醒,此时可通过Arduino控制舵机对摄像头模块进行旋转控制。每过一段时间,人体红外感应模块会重复检测是否出现人体并会再次发送拍摄照片保存命令,并且图片保存时将会获取当前时间并以当前时间进行命名。图3.1硬件整体设计框架3.2树莓派与Arduino本次树莓派选用了树莓派3代b+开发板,该开发板的工作频率为1.4GHz,它是采用BCM2837B0型号CPU构建,是树莓派3b上用的博通处理器的更新版本,这个处理器包含完整的性能优化和散热器。这允许更好的时钟频率,并能更准确地监控芯片温度。双频无线网卡和蓝牙采用CypressCYW43455“combo”芯片与上一代产品相比,3B+在2.4GHz频带的数据传输表现更好。实物图如图3.2所示。图3.2树莓派实物图30
12广东东软学院本科毕业设计(论文)在多方位智能监控系统设计中,人体红外感应模块和舵机模块使用Arduino来控制,以及使用Arduino与树莓派进行通信。Arduino Mega2560也是采用USB接口的核心电路板。Mega2560的处理器核心是ATmega2560,Arduino的实物图如图3.3所示,原理图如图3.4和图3.5所示。图3.3Arduino实物图在本次多方位智能监控系统设计中,我选择了树莓派和Arduino而不选择使用STM32是有原因的,STM32是基于ARMCortex-M3内核,运算速度和响应能力比较迅速。STM32的优势在于它的开发资料比较丰富、开发工具比较齐全,并且带有唤醒功能的低功耗模式,在功耗方面控制得比较好,实时性比较强,但是STM32没有操作系统,太过复杂的计算没有办法应对。而树莓派开发速度比较快,拥有比较多的开源硬件库,并且树莓派的性能突出,与STM32相比,除了可以完成相同的IO引脚控制之外,因为运行有相应的操作系统,可以完成更复杂的任务管理与调度,能够支持更上层应用的开发,为了开发者提供了更广阔的应用空间。并且,在本次多方位智能监控系统设计中同时使用树莓派与Arduino通信更为方便,如果使用STM32和Arduino通信将会相对复杂很多。图3.4Arduino原理图30
13广东东软学院本科毕业设计(论文)图3.5Arduino原理图3.3多方位智能监控系统模块设计3.3.1人体红外感应模块在多方位智能监控系统设计中,HC-SR501将作为本次系统的人体红外感应模块。这款感应模块采用了双元探头,探头的窗口为长方形,双元(A元B元)位于较长方向的两端,并且该感应模块还可通过两个旋钮分别调节延时的时间以及感应范围的大小,感应模块的工作方式为当人体从左到右或者从右到左走过时,红外光谱到达双元的时间、距离或者会有差值,差值越大,感应会越灵敏。这款HC-SR501人体红外感应模块具有全自动感应的功能,相对于HC-SR505、HC-SR602这两种小型的人体红外感应模块,HC-SR501的人体红外感应的探头感应范围更大,感应的效果将会更好。当有人进入HC-SR501模块的感应范围时模块将会输入高电平,当人离开其感应范围后则自动延时并关闭高电平,然后模块会输出低电平。在本次多方位智能监控系统设计中使用HC-SR501模块用来对特定方位的区域进行人体红外感应,如果检测到有人进入特定区域则输出高电平,树莓派以及Arduino根据设计要求进行相应的操作,人体红外感应模块HC-SR501的实物图如图3.6所示,它的工作范围如图3.7所示,模块的两个旋钮位置如图3.8所示。30
14广东东软学院本科毕业设计(论文)图3.6HC-SR501实物图图3.7人体红外感应模块的感应范围图3.8两个调节旋钮位置3.3.2摄像头模块在这次多方位智能监控系统设计中我选择的摄像头模块其感光芯片为1/4英寸CMOS,它的动态分辨率为1280*720,通过USB线连接,在本次多方位智能监控系统设计中通过此摄像头来进行实时监控以及拍摄照片。它的实物图如图3.9所示。30
15广东东软学院本科毕业设计(论文)图3.9摄像头模块实物图3.3.3舵机模块本次多方位智能监控系统设计中舵机的型号为SG90,它的工作电压为4.8V-6V,舵机的尺寸为:21.5mm*11.8mm*22.7mm。在本次多方位智能监控系统设计中通过按钮控制舵机来旋转摄像头模块达到多方位监控的效果,实物图如图3.10所示。图3.10舵机SG90实物图3.4本章小结本章主要介绍了多方位智能监控系统设计的单片机和系统设计的相关模块进行了简要的介绍。首先介绍了硬件的整体设计框架,然后分别介绍了树莓派以及Arduino的优势以及功能,通过对比树莓派以及STM32各自的优劣来说明多方位智能监控系统设计为什么选择使用树莓派和Arduino。然后对多方位智能监控系统设计中的人体红外感应模块、摄像头模块、舵机模块的性能以及相关数据进行了介绍并描述了该模块在整个多方位智能监控系统设计中的作用。30
16广东东软学院本科毕业设计(论文)第四章系统软件开发4.1软件系统框架图4.1为多方位智能监控系统设计的软件系统框架图。Arduino控制人体红外感应模块与舵机模块,并和树莓派搭建通信环境,如果人体红外感应模块检测到有人则通过Arduino发送信号给树莓派。树莓派则负责摄像头模块的实时监控以及等待接收Arduino发送的信号并获取当前时间对拍摄的照片进行命名。图4.1软件系统框架4.2相关任务模块处理流程图4.2人体红外感应模块任务模块处理流程30
17广东东软学院本科毕业设计(论文)图4.3摄像头模块任务处理流程图4.4舵机模块任务处理流程4.3树莓派的安装和连接由于在这个设计里我需要通过树莓派来控制多方位智能监控系统的摄像头模块进行实时监控以及拍摄保存照片,首先我需要安装树莓派。树莓派镜像的镜像为2020-02-13-raspbian-buster-full.img,TF卡先使用SDFormatter进行格式化如图4.5所示,再通过Win32Diskimger写入镜像如图4.6所示。30
18广东东软学院本科毕业设计(论文)图4.5格式化TF卡图4.6写入镜像树莓派的连接方式:写入镜像后,通过使用HDMI线连接树莓派到显示屏,使用网线SSH连接到笔记本电脑,通过VNC登录。SSH是一种安全网络协议,通过SSH可以把传输的数据进行加密,它还有一个额外的好处就是使用SSH传输的数据是经过压缩的,所以这样传输数据可以加快数据传输的速度。目前SSH传输已经成为Linux系统的标准配置,但是如果要在Windows系统使用SSH传输数据则需要PUTTY。在通过网线SSH连接笔记本电脑时在PUTTY上输入树莓派的网络地址即可,需要注意的是,树莓派首先需要设置能使用SSH登录,其次还需要树莓派与笔记本电脑连接到同一个网络。在本次使用SSH传输中,使用的树莓派IP是192.168.43.238,如图4.7所示。30
19广东东软学院本科毕业设计(论文)图4.7SSH传输树莓派成功连接后,登录时需要输入用户名和密码,这里登录名为:pi,登录的密码为:jkl00.如图4.8所示。当成功利用SSH登录后如图4.9所示。图4.8登录时输入用户名和密码图4.9成功利用SSH登录VNC是一种Linux系统下常用的图形化远程管理工具,使用的是RFB协议。在VNC内输入树莓派的IP地址,树莓派的用户名(这里为pi),密码(这里为jkl00.)如图4.10所示。成功登录后的画面如图4.11所示。由于这个镜像是带了桌面的,所以登录进去后是能够显示桌面的。30
20广东东软学院本科毕业设计(论文)图4.10在VNC内输入树莓派的IP地址图4.11登录进去后的桌面4.4搭建Arduino开发环境ArduinoIDE版本:1.8.12。Arduino开发板型号为ArduinoMEGA2560,如图4.12所示。Arduino程序基础开发流程:新建文件→保存文件→编写代码→验证,编译(CTRL+R)→选择开发板型号以及端口→上传(CTRL+R)。图4.12ArduinoMEGA256030
21广东东软学院本科毕业设计(论文)4.5搭建树莓派与Arduino通信环境多方位智能监控系统设计通过搭建树莓派与Arduino通信环境让人体红外感应模块的信号可以通过串口传到树莓派,树莓派串口接收到信号后可控制摄像头模块进行拍摄并保存照片。搭建树莓派与Arduino通信环境首先需要在树莓派上安装RPi.GPIO,在终端输入:sudoapt-getinstallpython-rpi.gpio,如图4.13所示。然后验证是否安装成功,在终端输入python后,再输入importRPi.GPIO,没有错误提示就安装成功,如图4.14所示。图4.13在树莓派上安装RPi.GPIO图4.14验证是否安装成功树莓派上成功安装RPi.GPIO后,在树莓派上安装serial。在终端输入:sudoapt-getinstallpython-serial,如图4.15所示。图4.15在树莓派上安装serial为了验证是否成功安装,在终端输入python后,再输入importRPi.GPIO,如果没有出现错误提示就安装成功,如图4.16所示。图4.16验证是否成功安装Arduino数据线与树莓派物理连接接线后,在终端输入:ls/dev/tty*来检查是否两者通过USB连接成功,如果有/dev/ttyACM0则说明连接成功,如图4.17所示。30
22广东东软学院本科毕业设计(论文)图4.17检查两者是否通过USB连接成功4.6OpenCV4.6.1搭建OpenCV工作环境sudoapt-getinstalllibopencv-dev;sudoapt-getinstallpython-opencv如图4.18、图4.19所示。图4.18安装流程图4.19安装流程30
23广东东软学院本科毕业设计(论文)4.6.2OpenCV模块代码在使用OpenCV库之前,我们首先要导入OpenCV模块:importcv2导入OpenCV模块然后通过cv2.VideoCapture(0)创建摄像头对象并使用XVI编码器,然后获取当前窗口的分辨率并创建视频文件:cap=cv2.VideoCapture(0)创建摄像头对象fourcc=cv2.VideoWriter_fourcc(*'XVID')使用XVI编码器size=(int(cap.get(cv2.CAP_PROP_FRAME_WIDTH)),int(cap.get(cv2.CAP_PROP_FRAME_HEGHT)))获取当前窗口的分辨率out=cv2.VideoWriter(times+'.avi',fourcc,10.0,size)创建视频文件,传入参数分别是名称,编码器,帧率,分辨率在上面这段代码中,VideoCapture()中的参数是0,代表打开了内置摄像头,若VideoCapture()中的参数是视频文件的路径则打开这个视频。而fourcc意为四字符代码(Four-CharacterCodes),顾名思义,该编码由四个字符组成,。编码的主要目的是把视频、音频按设定编码成特定文件格式,通过编码可以有效提高储存和传输的效率,如果不采用编码那文件将会变得很大。在上面的代码中,我是用了XVI编码器,它的四字符代码为XVID,这个参数为MPEG-4编码类型,如果四字符代码为PIMI,那这个为MPEG-1编码类型。因为在录制相同时间视频的情况下,MPEG-4编码类型生成的视频文件小于MPEG-1编码类型生成的视频文件,由于本设计为多方位智能监控系统,只要摄像头打开就会开始录像,基于对监控系统磁盘空间的考虑,设计优先使用MPEG-4的编解码方式。在上面这段代码是使用out=cv2.VideoWriter(times+'.avi',fourcc,10.0,size)来保存视频文件。这里面的times+'.avi'表示保存文件的路径,而fourcc则是上面代码指定的编码器,我是用了XVI编码器,第三个参数10.0则表示了这个视频文件的帧率,而size表示保持这个视频文件的画面尺寸大小。while(cap.isOpened()):开启摄像头ret,frame=cap.read()frame=cv2.flip(frame,1)横向翻转图片out.write(frame)写入一帧图像到视频文件中cv2.imshow("test",frame)创建一个窗口,命名为test30
24广东东软学院本科毕业设计(论文)ifser.read():如果串口接受到数据(检测到人)time=datetime.now().strftime('%Y-%m-%d%H:%M:%S')获取当前时间作为图片命名cv2.imwrite(time+'.jpg',frame)创建图片文件key=cv2.waitKey(1)等待键盘按下ifkey&0x00ff==ord('q'):如果键盘按下q则停止录制,退出程序break;cap.release()out.release()cv2.destroyAllWindows()通过上面这段代码可进行读取视频并实时处理输出,做到实时监控的目的。当摄像头模块启动后,就会开始进行录制视频并保存视频。这里通过使用函数cv2.flip(img,flipcode)来翻转图像,里面的flipcode用来控制翻转效果,如果flipcode=0:沿x轴翻转;flipcode>0:沿y轴翻转;flipcode<0:x轴,y轴同时翻转。当人体红外感应模块传来信号,就会使用cv2.imwrite创建一个图片文件。cv2.imwrite里面的time+'.jpg'为保存的文件名,而frame则是要保存的图像。cv2.imwrite还有第三个可选择的参数。对于JPEG格式保存的图像,它表示为图像的质量,用整数0-100表示;而对于png格式保存的图像,这个可选择的参数表示的是这个保存图像的压缩级别。在代码的最后,如果我们需要退出程序,则可以如果在录制监控视频的过程中键盘按下q键。在这里cv2.waitKey()表示等待键盘的输入,如果里面为1,则表示延时1ms切换到下一帧的图像;ifkey&0x00ff==ord('q'):表示按下q则停止录制,退出程序,通过使用destroyAllWindows()关闭所有图像窗口。4.7相关模块代码的开发4.7.1人体红外感应模块在多方位智能监控系统设计中使用的人体红外传感器为HC-SR501。它具有功耗低、感应范围大、隐蔽性高、不发各种类型辐射的特点,但是在强光、高热的环境下HC-SR501会受到干扰。它可通过旋钮在0.3秒~18秒之间调节延时时间和最高7米的感应范围。HC-SR501可通过使用跳线帽来选择两种不同的方式,如图4.20所示,人体红外感应模块跳线帽的位置如图4.21所示。该模块默认是选择可重复的方式,如果选择了改模式,该模块感应人体输出高电平后,若有人还在感应范围内,模块会一直输出高电平,直到人离开该范围才会进入延时时间再输出低电平。如果是选择了不可重复的方式,当输出高电平后,会进入延时时间最后输出低电平。30
25广东东软学院本科毕业设计(论文)图4.20跳线帽选择不同模式图4.21跳线帽位置HC-SR501在通电后会有一分钟左右的初始化时间,HC-SR501在这一分钟左右会间隔输出0-3次,在过了这一分钟左右该模块就会进入待机模式。感测模块在每个传感器输出(从高到低)后会设置一个封锁时间,在此期间传感器不会接收到任何感应信号。该特性可以实现(感应输出时间和阻塞时间)间隔可以应用于间隔检测产品;该特性可以有效抑制负载切换过程中产生的各种干扰。在多方位智能监控系统设计中,由于已经搭建好树莓派与Arduino通信环境,人体红外传感器只要在感应范围内感应到人体并输出高电平后,树莓派和Arduino都会做出相应的反应,Arduino接收到信号后会有LED灯闪烁,本设计透过LED灯闪烁达到提醒操作人员的目的,而树莓派接收到信号后会控制摄像头模块拍摄并保存照片。下面的图4.22为Arduino读取到传感器数据后LED灯闪烁的流程图。图4.22LED灯闪烁的流程图4.7.2时间模块使用时间模块首先使用语句import导入模块,再导入datetime,datetime是Python处理日期和时间的标准库。30
26广东东软学院本科毕业设计(论文)importtime导入时间模块(获取当前时间戳)fromdatetimeimportdatetimetimes=datetime.now().strftime('%Y-%m-%d%H:%M:%S')获取当前时间作为视频文件名字已经有了datetime对象,就需要通过strftime()进行转换为字符串显示给用户。4.7.3舵机模块在多方位智能监控系统设计中,舵机模块SG90用来控制摄像头模块进行旋转达到多方位智能监控系统设计中多方位监控的目的。在流程图图4.23中,本设计通过使用按键来控制舵机转动的角度,并且通过使用延时程序防止按键抖动不稳定过程的产生。图4.23舵机控制流程图4.8本章小结本章主要针对多方位智能监控系统设计中的树莓派、Arduino以及相关模块的使用方式做了详细的研究和分析。首先本章先描述了多方位智能监控系统设计的软件系统框架和相关任务模块的处理流程,并且介绍了树莓派的安装以及连接。然后介绍了Arduino开发流程并且描述了搭建树莓派与Arduino通信环境,对OpenCV工作环境的搭建以及OpenCV相关代码进行描述,最后对人体红外感应模块、时间模块、舵机模块的相关代码进行了描述。30
27广东东软学院本科毕业设计(论文)第五章多方位智能监控系统测试5.1测试目的一个完整项目的开发,不仅仅要完成硬件整体的开发和软件的开发,最后还需要对该项目进行详细测试,确保项目各方面的安全性以及稳定性,减少消费者和厂商因为项目出现问题导致不必要的损失,图5.1为多方位智能监控系统设计的实物图。此次测试将会测试以下四个方面:(1)摄像头录制测试,测试摄像头模块是否可以完成实时监控功能,按下q键是否会保存监控视频并退出监控画面。(2)人体红外感应模块到人后摄像头进行拍摄照片保存测试,测试当人体红外感应模块检测到人后,Arduino的LED灯是否闪烁同时摄像头模块是否把此时的照片进行拍摄并保存。(3)舵机旋转摄像头测试,测试舵机是否可以控制摄像头进行旋转达到多方位智能监控系统设计中可多方位监控的目的。(4)整体测试,完整测试整个多方位智能监控系统,检验整个系统的稳定性。图5.1本项目的实物图5.2摄像头录制测试作为一个监控系统,最基础的功能就是可以进行实时监控以及进行录像保存,在多方位智能监控系统设计中,当摄像头启动,就会同时进行实时监控,当在实时监控途中按下键盘q键,就会对这段时间的实时监控视频进行保存并获取当前时间作为保存视频的文件名,测试的图片如图5.2所示,保存录像的名字如图5.3所示,在微弱光线下的拍摄效果如图5.4所示,通过这次实验证明摄像头模块可以正常运作。30
28广东东软学院本科毕业设计(论文)图5.2测试的图片图5.3摄像头录制的视频图5.4在微弱光线下拍摄的效果30
29广东东软学院本科毕业设计(论文)5.3人体红外感应模块测试在多方位智能监控系统设计中,通过人体红外感应模块对范围内的空间进行人体红外感应,当感应到有人控制摄像头拍摄照片,照片也会获取当前时间作为文件名,如图5.5所示就是检测到人后摄像头拍摄的图片,这时人距离人体红外感应模块1米,此时Arduino的LED灯闪烁,如图5.6、图5.7所示,在人体距离红外感应模块3米距离,周围环境强光照射感应模块的条件下,可以感应并拍摄照片如图5.8如图所示。图5.5检测到1米距离的人拍摄照片图5.6LED灯闪烁30
30广东东软学院本科毕业设计(论文)图5.7LED灯闪烁图5.8距离3米强光照射人体红外感应模块可进行识别5.4舵机旋转摄像头测试在多方位智能监控系统设计中,通过按钮控制舵机模块旋转摄像头模块,舵机的旋转角度为180°。使用两个按钮可控制舵机向两个相反方向进行旋转。按钮如图5.9所示,舵机旋转不同方向最大值如图5.10、图5.11所示。图5.8按钮实物图30
31广东东软学院本科毕业设计(论文)图5.9向左转图5.10向右转在系统正常监控的时候,舵机可以通过按键控制进行旋转,达到多方位监控的目的,如图5.11所示。图5.11在监控过程中舵机进行旋转可监控不同的方位5.5整体测试在测试完各模块后,通过对整个系统设计进行测试,对系统的稳定性进行测试,验30
32广东东软学院本科毕业设计(论文)证多方位智能监控系统方案的可行性。首先测试在正常环境下,系统各模块运行情况,再测试在不同环境下,各模块是否受到环境因素的影响,详细测试情况如表5.1所示。表5.1整体测试情况测试环境预期情况测试次数实际情况结论正常启动系统,人体距离3m各模块正常完成任务10次各模块正常完成任务设计能正常运作正常启动系统,人体距离7m人体红外模块因距离过远,无法正常运作10次模块偶尔出现无法感应到人体的情况在极限距离情况下,设计稳定性下降周围环境高光照射设计不受干扰,各模块正常完成任务10次各模块正常完成任务设计能正常运作在人体红外感应模块旁边使用打火机晃动干扰设计不受干扰,各模块正常完成任务10次在1m以内打火机会影响到模块正常运作设计除1m内出现火源会被干扰,其他距离能正常运作通过该表格的测试情况可看出,光线对人体红外感应模块的影响较低,而在近距离的情况下,高热对红外感应模块影响较大,在1m内出现火源,模块容易出现误判。而在3m到5m的范围内,整个系统的效率是最高的,人体红外感应模块在远距离感应会出现感应正确率下降的问题。5.6本章小结本章节主要针对已经完成的多方位智能监控系统设计的功能做了完整且详细的测试。首先本章先说明了测试的目的,然后对摄像头的录制进行测试,对人体红外感应模块测试,并测试感应到人后树莓派以及Arduino是否根据设计做出相应反应,对舵机模块进行了测试,最后进行整体测试,透过测试结果证明基于人体红外感应的多方位智能监控系统方案的可行性。30
33广东东软学院本科毕业设计(论文)总结与展望本文的主要工作室完成了多方位智能监控系统设计。它能够针对监控系统监视区域主要在摄像头前方、多方位监控较差的问题,通过使用舵机来做到多方位监控,使用人体红外感应模块来监控一个区域,通过自动保存图片在需要查看监控的时候可以快速找到所需要的视频片段。现在随着科技的发展,监控系统可逐渐走向智能化、自动化,越来越多的新型传感器应用于监控摄像头,本次多方位智能监控系统设计就是通过加入人体红外感应模块可以自动保存照片,监控人员在监控的时候就可以通过led来判断区域内是否有人,如果有人可以通过实时监控或者查看照片来确认,并且通过按键可以控制摄像头监控的方位,这样可以减少监控摄像头的布置,加大监控摄像头的监控范围。经过测试,成功验证了多方位智能监控系统设计的摄像头实时监控、人体红外感应、舵机操控三个方面的功能。尽管多方位智能监控系统设计的功能已经完成,但是整个系统还存在不足:(1)摄像头没有红外摄像功能,存在黑暗环境监控效果差的问题。(2)摄像头的控制需要数据线连接,在大规模布置的时候需要大量线材,在后期检查设备耗时长。希望能在进一步的工作中可以完善该系统的安全性以及加强其可靠性,同时还要扩展该系统的功能,让其能更好的服务于大众。目前整个智能监控系统还没进入到最终整合的阶段,各种品牌的监控摄像头对不同公司的产品兼容性都很弱,在组成一个监控系统的时候很多时候还是需要使用同一公司的解决方案,很难通过使用不同公司的产品来组成一个完整的智能监控系统。而随着监控设备提升其兼容性以及增加不同的功能,我相信智能监控系统将会更好的服务大众,随着增加不同的功能,智能监控系统可使用的范围也更加广泛。30
34广东东软学院本科毕业设计(论文)参考文献[1]李红莲.积极推进人工智能与安防产业深度融合——中安协专家委员会战略组“人工智能与安防产业深度融合”研讨会扫描[J].中国安防,2019(06):6-14.[2]刘南君毛培宏.基于ArduinoMega2560单片机的简易智能割草机器人的设计与实现[J].安徽农业科学,2012(36):467-469.[3]王瑞琦.基于Arduino的单相用电器分析检测装置设计[J].自动化与仪表,2019(06):73-77.[4]谢轶涧陶琦.构建OpenSSH服务器[J].网管员世界,2006(8):3-3.[5]阴法明.基于OpenCV的图像处理[J].科技信息,2009(32):229-229.[6]高娜.智能楼宇无线视频监控系统优化设计[J].电子技术与软件工程,2019(02):35.[7]王庆刚,陈旭阳.基于单片机的人体红外计数系统的设计和实现[J].信息通信,2020(01):111-113.[8]熊波.基于树莓派的智能家居系统的设计与实现[D].西南石油大学,2018.[9]罗顺元,李志强,马文颢.基于树莓派的无人值守信息处理系统[J].计算机测量与控制,2018,26(09):227-231.[10]李国诚,黄明,崔进宝,曹旭峰,徐泽琨.基于树莓派的智能监控系统设计与实现[J].工业技术创新,2019,06(02):42-47.[11]尤好,张新鑫,张朝晖.基于OpenCV和树莓派的运动检测[J].电子技术,2017,46(02):59-61.[12]阴法明.基于OpenCV的图像处理[J].科技信息,2009(32):229-229.[13]KrishnarajRaoNS,AkashAcharya,AneeshRaoHS,etal.AResearchontheIntelligentCityPlanningEfficientParkingSystembasedonCyclicHoughTransformation.2020,7(3)[14]G.Pomaska.STEREOVISIONAPPLYINGOPENCVANDRASPBERRYPI.2019,XLII-2/W17:265-269.30
35广东东软学院本科毕业设计(论文)致谢光阴荏苒,日月如梭,转眼间四年的大学生活即将结束。在学校生活学习的点点滴滴都给我留下了美好的回忆。在这期间我认识了很多良师益友,正是在他们的帮助下,我的学习生活过得很充足,我非常感谢这四年来帮助过我的老师、同学,正是由于你们的支持,让我渐渐长大,也慢慢走向成熟。在本文的撰写过程中,自始至终得到了何世添老师的悉心指导。从本文的选题,到论文思路的引导、文字的组织、结构的安排、资料的收集和整理,再到论文的修改,老师都倾注了大量的心血,才得以让我顺利地完成本文的写作,正是由于老师在百忙之中多次审阅全文,对细节进行修改,本文才得以成型。同时我要感谢我的三位舍友,从他们身上我学到了很多,也是他们让我的大学生活变得更加丰富多彩,希望他们在今年能更加的顺利、平安。最后,我要感谢我的父母。在生活中他们一直支持我不同的兴趣爱好,带我行万里路、读万里书,在我的人生道路上我的父母也教会了我很多。正是他们的悉心培养,现在的我才能顺利完成学业,在这里我祝愿他们身体健康,万事如意。30