时间:2024-06-01
袁明昱 那真 张立
摘要:随着科学技术的不断发展,人们在满足自身物质文化需求的同时,对安全的要求也逐步提高。针对传统摄像头的不足,研发了一种基于嵌入式系统的智能动态摄像头。该系统以嵌入式树莓派为核心,利用motion软件实现视频实时监控。结合OpenCV及其python接口实现運动探测,达到跟踪闯入者并抓拍上传的功能。本系统的优点在于开发体积小,价格低,私密性好等。
关键词:嵌入式系统;树莓派;实时监控;跟踪抓拍
中图分类号:TP277 文献标识码:A 文章编号:1007-9416(2018)01-0061-03
1 项目研究背景及意义
近年来,随着科学技术的不断发展,人们在满足自身物质文化需求的同时,对安全的要求也逐步提高。然而,传统意义上的模拟本地化监控不仅耗费大量存储空间和监控设备,而且所监控的内容大多数为无用的静态画面。
为有效解决传统摄像头的弊端,设计一个基于嵌入式系统(本文采用树莓派)的智能动态摄像头,既能通过网络实时远程观看被监控区域的视频直播,还可以抓拍闯入者,实现闯入者跟踪并将采集到的照片实时传输到百度云盘,最终只有这些照片被保存下来,大大节省了存储空间。除此之外,基于嵌入式系统的智能动态摄像头还具有低成本,算法简单等优点。
2 嵌入式系统的搭建
2.1 嵌入式系统
嵌入式系统是一种完全嵌入受控器件内部,为特定应用而设计的专用计算机系统,用来控制或者监视机器、装置、工厂等大规模设备[1]。 与通用计算机系统不同,嵌入式系统通常执行带有特定要求的预先定义的任务。由于嵌入式系统只针对一项特殊的任务,设计人员能够对它进行优化,减小尺寸降低成本。嵌入式系统通常进行大量生产,所以单个的成本节约,能够随着产量进行成百上千的放大。
树莓派就是一种嵌入式开发板,本文主要以树莓派为核心进行设计。
2.2 树莓派简介
树莓派即Raspberry Pi(RasPi/RPi),如图1所示,只有信用卡大小的卡片式电脑,却具有电脑的所有基本功能。其系统基于Linux。它是一款基于ARM的微型电脑主板,以SD/MicroSD卡为内存硬盘,卡片主板周围有1/2/4个USB接口和一个10/100以太网接口(A型没有网口),可连接键盘、鼠标和网线,同时拥有视频模拟信号的电视输出接口和HDMI高清视频输出接口,以上部件全部整合在一张仅比信用卡稍大的主板上,具备所有PC的基本功能只需接通电视机和键盘,就能执行如电子表格、文字处理、玩游戏、播放高清视频等诸多功能[2-5]。
2.3 树莓派配置
本文均为在Windows上进行的操作。
2.3.1 首次安装操作系统
因为树莓派没有板载存储器,因此使用SD卡存储数据和操作系统。使用SD卡之前先将SD卡格式化。用SD卡伴侣工具格式化清空SD卡上的原有数据,以便让SD卡具有最佳性能。然后将操作系统的镜像工具写入SD卡,用流行的免费工具,Win32 Disk Imager从原始磁盘镜像中将下载好的Raspbian操作系统写入SD卡中。之后即可将SD卡插入树莓派上的插槽[6-7]。
2.3.2 树莓派连入互联网
在完成了树莓派的配置后,就到了将其接入互联网之时。有两种方法,一种利用无限网卡建立Wi-Fi;第二种通过PC从以太网接入互联网。本文采用第二种方法。将树莓派通过路由器连接有线网,使PC连接同一无线网。利用局域网IP扫描器查看树莓派静态IP,以后就用该IP地址从PC上访问树莓派。至此,树莓派已经全部配置完成。
3 视频实时监控
随着信息技术的不断发展,人们将计算机技术引入视频采集、制作领域。本系统以树莓派3和Pi Camera为基础搭建硬件开发平台,基于OpenCV框架下,使用Python语言将运动检测的一系列算法移植于嵌入式树莓派3中,实现了抗干扰能力较强的目标检测的嵌入式系统设计。
3.1 摄像头的连接
树莓派有一个用于连接摄像头模块的专用CSI接口,是一种先进的外围设备控制器。可连接到树莓派的摄像头有两种,分别是USB摄像头和树莓派专用摄像头,后者的性能更为出色,因此本系统使用树莓派专用摄像头。专用摄像头带有两英尺长的弹性线缆,以用于连接到树莓派的CSI接口。
连接好摄像头,需在配置窗口打开摄像头,如图2所示。按回车键选择并打开。
3.2 用摄像头传输实时视频流
在局域网上将树莓派作为网络摄像头以传输实时视频流,用开源软件motion在本地浏览器中启用实时视频流,motion内置了一个HTTP服务器,以用于在网络浏览器中打开摄像头图像,用motion可以录制MPEG格式的视频以及捕捉JPEG格式的图像[8],可以在任何地方存储这些视频和图像。
为了实现这一功能,需要先在树莓派上安装motion,配置相关文件,目的是将树莓派的IP地址和端口地址都告诉motion,然后启动motion将视频流实时传输至该IP地址和端口地址。图3是用树莓派拍到的一段视频的截图,红色框内为IP地址。
4 动态跟踪与捕捉
上一节已经实现了用树莓派进行视频的实时监控,这只是完成了第一步,接下来实现闯入者的跟踪与抓拍,并将抓拍到的图片上传至百度云Python客户端。
4.1 运动探测
检测到运动后,则要完成对运动者的跟踪。
本论文采用OpenCV及其Python接口完成算法移植和软件系统搭建[9-10]。OpenCV是Open Source Computer Vision(开源计算机视觉)的缩写,是功能最强大、运用最广泛的跨平台图像处理库之一,它可以在任意硬件和软件平台上运行,它也可以被安装在树莓派上,以实现运动跟踪。它轻量级而且高效,由一系列C函数和少量C++类构成,同时提供了Python语言的接口,实现了图像处理和计算机视觉方面的很多通用算法[11-12]。
本论文采用图像相减法实现运动目标的检测和跟踪[13],适用于背景己知且固定的场景,具有快速简单和易于实现的特点,可以满足计算量小、实时性好的要求。具体步骤如图4流程图所示[4]。
所谓图像相减法就是先捕获静态的一帧,之后每隔一段时间捕捉一幅参考图像并與第一帧相减,这两幅图像的差值将会传递给一个阈值函数以观测两幅图像之间的变化,若变化数值小于规定值,则不做处理。然后利用代码将RGB图像转换为灰度图像,减小系统冗余。
高斯模糊是一种“数据平滑技术”,可有效过滤掉可能被误认为运动检测目标的高斯噪声,避免一帧图像中出现“假阳性”目标。
二值化图像由灰度图像转化得到[15],是指图像上的每一个像素只有两种可能的灰度等级状态,即黑和白,用这种方法来分割目标与背景。
由于对图像进行了阈值运算,所以图像像素中可能存在噪声,这会在求图像平均值时产生错误结果,因此需要用腐蚀函数删除白色物质的边缘,即检测目标外的小白点。
膨胀函数是腐蚀函数的逆过程,用腐蚀函数去除噪声后,膨胀函数增强了图像边缘的白色像素。
目的就是让运动目标、背景的对比更加明显,更加有利于寻找运动目标的轮廓。
寻找轮廓就是寻找运动目标的轮廓,找到后利用函数确定目标位置,采用绘直边界矩形的方式绘制目标位置。
4.2 运动跟踪
在上一节已经确定了运动目标的位置。可以在屏幕中固定一个点,确定二者的差值、,控制舵机运动逐渐缩小二者差值,以达到闯入者的跟踪效果,该效果可以直接由树莓派实现也可以通过Arduino控制舵机间接实现。
5 实验结果及总结
5.1 实验结果
本文已经实现了以嵌入式树莓派为设计平台,结合树莓派专用摄像头、Arduino并运用Python语言编程实现视频实时监控与跟踪。为了验证此系统的可行性,在日常实验室测试多次,验证该系统为现代人的生活提供了一种简洁可靠的监控方式。主要完成了以下工作:
(1)本文在分析了一般嵌入式系统设计的基础上,对基于视频监控的嵌入式系统进行了总体设计,并选定了嵌入式树莓派为核心的设计。
(2)根据设计的需要,从实时性、安全性、实用性方面综合考虑,使用motion软件及嵌入式系统的以太网接口模块对系统进行设计,达到视频实时监控与传输。
(3)对视频采集处理模块进行了详细的软硬件设计。结合OpenCV及Python语言,使用软件获取闯入者信息,控制硬件对系统进行相应配置。
(4)最后,对视频实时监控与传输的网络接口模块和视频处理跟踪模块分别进行了测试和分析,验证了系统设计方案的可行性。
5.2 总结
基于嵌入式系统的动态监控是基于计算机技术且更加强调体积、功耗、成本、便携化应用等综合因素的精简设计,具有体积小、成本低、性能优越、工作稳定、易于安装和维护等优点。
动态监控是国内外研究的重要课题,国内外都展开了积极的研究,运动目标的检测和跟踪的算法发展较快,由于算法之间的可借鉴性和嵌入式平台的可移植性,系统未来优化和提升的空间巨大。
参考文献
[1]涂刚,阳富民,胡贯荣.嵌入式操作系统综述[J].计算机应用研究,2000,8(11):4-9.
[2]刘永峰.基于远程视频监控的嵌入式系统的研究与设计[D].国防科学技术大学,2005.
[3]侯云东.基于嵌入式系统的视频监控系统的设计与实现[D].电子科技大学,2010.
[4]汪鑫,彭雨薇.基于树莓派的网络监控系统的研究与实现[J].硅谷,2014(14):25-26.
[5]陆杰.基于嵌入式Linux的视频监控系统的设计与实现[D].山东大学,2011.
[6]唐旋来.基于嵌入式技术的远程视频监控系统研究[D].湖北:华中科技大学,2011.
[7]冯志辉.使用树莓派实现网络监控系统[J].电子技术与软件工程,2015,(05):85.
[8]鲁什·贾佳.树莓派+传感器[M].张梦玲,译.机械工业出版社:2016.
[9]李涛.基于OpenCV的嵌入式视频监控系统应用研究[D].长江大学,2016.
[10]袁毅,基于嵌入式Web服务器的网络视频监控[J].电网技术,2000,24(5):72-73.
[11]孔庆玲,胡志军,刘英,等.程序复杂性度量技术分析[J].无线电工程.2011.41(2).61-64.
[12]Bradbury AIex,Everard Ben.树莓派Python编程指南[M].王文峰,译.北京:机械工业出版社,2015.
[13]Alexander Brock. Blackadder, Monty Python, and Red Dwarf[J]. English and American Studies in German (2001),2002,2001((Oct):16-18.
[14]胡静波.基于OpenCV的嵌入式视频监控系统关键技术的研究[D].云南大学,2010.
[15]肖自美.图像信息理论与压缩编码技术[M].广州:中山大学出版社,2000.
[16]Bradbury AIex,Everard Ben.树莓派Python编程指南[M].王文峰,译.北京:机械工业出版社,2015.
[17]Richard BIum,Christine Bresnahan.树莓派Python编程入门与实践[M].北京:人民邮电出版社,2015.
[18]冯鹏.基于嵌入式系统的图像跟踪技术的设计与实现[D].西安电子科技大学,2010.
[19]埃里克·马瑟斯.Python编程从入门到实践[M].袁国忠,译.人民邮电出版社,2017.
[20]康计良.Python语言的可视化编程环境的设计与实现[D].西安电子科技大学,2012.
我们致力于保护作者版权,注重分享,被刊用文章因无法核实真实出处,未能及时与作者取得联系,或有版权异议的,请联系管理员,我们会立即处理! 部分文章是来自各大过期杂志,内容仅供学习参考,不准确地方联系删除处理!