2024年5月29日发(作者:)

基于树莓派的系统的设计与实现

王怀泽

【摘 要】当今网络视频监控的使用率越来越高,而家庭安全的视频监控还未得到人

们的重视,因此设计一个家庭的网络视频监控是有必要的.本文采用树莓派作为平台、

选用开源的Mjpg-Streamer,运用HTML语言编辑网页,并结合CSS美化网页、用

JavaScript开发脚本,连接USB摄像头,开发了一个实时查看视频和静态图像的视频

监控系统,该系统能够保存并查看历史图像.

【期刊名称】《智能计算机与应用》

【年(卷),期】2018(008)003

【总页数】4页(P158-160,165)

【关键词】树莓派;视频监控;MJpg-Streamer;HTML;CSS;JavaScript

【作 者】王怀泽

【作者单位】集贤县气象局,黑龙江 集贤155900

【正文语种】中 文

【中图分类】TP391.41

引言

随着科技领域的快速发展,科技成果层出不穷,与此同时,在网络的飞速发展和迅

速普及的情况下,两者结合带给人们越来越多的便利。同时,网络视频监控应该到

各个方面,人们利用监控来管理交通秩序、商场经营、工业生产以及进行医疗观察,

公共场所的监控覆盖率越来越高,安全方面有了很大保证。然而一般家庭很少会安

装视频监控,这导致罪犯趁虚而入,案发后又很难追查,不仅家中财产损失,还让

罪犯逍遥法外。

本项目选用树莓派作为平台,运用HTML、CSS、JavaScript语言并基于Mjpg-

Stremaer开源软件开发出一个家用的、便捷的视频监控系统。

1 国内外研究现状

近几年,视频监控不仅在安防方面得到广泛的应用,还在向生产经营方面扩展。随

着“平安城市”的提出,对视频监控的发展起到了很大的促进作用。网络的普及促

使视频监控中网络视频监控逐渐占据市场上重要位置,除了显示设备外,视频监控

系统中的其他设备全部都网络化[1-2]。这一要求使得嵌入式视频监控系统得到发

展,其具有成本低、稳定性好、集成度高等特点。虽然国外产品性能较好,但价格

昂贵难以接受[1]。目前,国内许多安防企业的竞争不单是软件上的技术研发竞争,

同时也需要好的芯片作为硬件基础。在众多芯片中,树莓派是相对杰出的一个,在

方便软件升级的前提下提供了足够的硬件功能。

在基于树莓派的研究中,李龙棋等人以树莓派作为开源服务器的平台,把Python

语言编写的SimpleCV应用在图像压缩方面。充分利用树莓派处理速度快且能够

无线连接网络的特点,使用网络摄像头无线连接到路由器上,树莓派与摄像头连接

到同一个路由器上进行通讯,实现了视频的实时监控[3]。 高峰等人提出了基于树

莓派的简易式食品检测跟踪系统,实现了视频检测跟踪系统的便携式小型化,通过

远程桌面连接工具和显示器进行视频显示[4]。视频检测的同时,还能对运动目标

进行跟踪,这一点将会在未来的视频监控中得到广泛应用。蔡燕敏等人的设计中树

莓派是核心,客户端直接运用新浪微博,模拟用户登录使用微博,调用新浪微博

API,定时定点的将监控图像作为一条微博发布。进行视频监控的同时还对CPU

的温度及网络连接情况进行监控[5]。此方法在查看微博的同时还能对家中环境进

行监控,做到了娱乐的同时还对家中安全进行了防护,符合现代人的生活习惯。但

是在获得监控信息的过程中,监控图像直接作为微博发布并不利于隐私的保护。美

国的电报电话公司AT&T结合了杰尔系统的TrueONE可信任网络解决方案建立

了一个网络平台,企业、家庭和手机用户能够随时随地在此平台上获取实时可靠的

服务,如视频监控、观看高清的网络电视、进行实时的视频会议等,将大量的本地

数据上传到网络平台上[6]。卡内基梅隆大学与戴维SARNOFF研究中心合作,共

同研发视频监视与监控系统VSAM(Visual Surveillance and Monitoring),该系

统实现了自动视频理解技术来解决非常危险或人力无法实现等场合的监控问题[7]。

无线传感网络中的普适计算技术被KT和SK电讯两大韩国通讯运营商运用在

Nespot系统上,该系统可以使用户不论身在何处,都能够通过手机、PDA或电

脑来获取和控制远程监控信息[6-9]。英国南安普敦大学的工程师将冷冰冰的开发

板和玩具相结合搭建出了一台拥有近1T存储空间的超级计算机,该超级计算机看

起来更加可爱。

本文设计了一个基于嵌入式Linux的视频监控系统,在树莓派上下载相应的Linux

系统,并在系统上研究视频监控这一应用。

2 系统总体功能分析

2.1 功能模块设计

本文设计了一个基于树莓派的家庭视频监控系统。监控系统应具备实时监控功能;

同时,监控系统为了实现对历史图像进行保存并进行查看,还应具备回看功能。在

家庭视频监控系统中,最重要的就是对隐私安全的防护,因此还需要有登录功能。

视频监控系统的主要模块包括:登录模块、实时静态截图模块、实时视频播放模块、

回放图像模块。系统功能模块如图1所示。

(1)登陆模块。用户通过该模块登陆视频监控系统,以保证用户的隐私安全。用户

的用例图如图2所示。

(2)静态图像模块。用户通过该模块可即时对视频图像进行截图,通过此模块可清

晰明了地反应某一时刻发生的事情。

(3)视频功能模块。用户通过该模块查看实时的视频监控动态,如果摄像头倒置,

系统具有对图像进行旋转的功能。

(4)回放功能模块。用户通过该模块回看视频监控记录下来的图像。

图1 系统功能模块图Fig.1 System function module diagram

图2 用户用例图Fig.2 User instance diagram

本文选用树莓派3作为开发平台,由于树莓派具有无线网卡和USB接口,能够连

接USB摄像头和路由器无线连接并进行通信,因此,客户端也可通过无线的方式

获得信息。Mjpg-Streamer在视频监控时对CPU的占用率低、可移植性较好,

且在传输时能够通过TCP/IP协议将数据传送到网络中,适合于嵌入式系统的开发

与研究,因此,本文使用Mjpg-Streamer对采集到的图像进行压缩传输。同时,

本文运用HTML开发页面、CSS美化页面、avaScript编辑复杂的运算脚本来完

成客户端的设计与实现。

2.2 系统整体架构

本系统的结构如图3所示。用户的交互界面采用网页的形式将视频图像、应用信

息、回放图像等向用户进行展示。

图3 产品结构图Fig.3 Product structure diagram

3 系统实现

MJPEG-Streamer中主要工作的是plugins文件夹和www文件夹。plugins文件

夹包含输入输出模块组件的开发文件,www包含前端设备所显示出的网页的文件。

其中,文件是对项目说明的主界面;文件显示视频的截图;

文件是显示图像视频流的界面;static_文件是一个单独

的视频截图界面;stream_文件是单独的视频流界面;是整

个系统样式的样式表;是编辑系统整体脚本的文件;是

针对视频流画面旋转功能而编辑的一个脚本。在www目录下建立文

件和record_文件来实现视频监控系统的回放功能,两个文件分别实

现了对回放图像总体的预览和对回放图像具体的浏览。最后,通过TCP/IP协议使

用户能够在远端对视频进行监控。

3.1 视频模块

V4L2是Linux系统下采集视频、音频和图像的API接口,支持多种设备,具有视

频采集接口、输出接口、直接传输视频接口、收音机接口。主要针对uvc免驱

USB设备,用于采集USB摄像头所拍摄到的信息。V4L2通过内存映射方式和直

接读取方式采集图像。

Mjpg-Streamer采用内存映射方式,通过对终端命令的分析,由输入插件

input_把兼容Linux-UVC V4L2设备中拍摄的视频分解成独立的jpg图像

数据,并放入到内存中pglobal->buf = malloc(videoIn->framesizeIn);当线

程结束,调用cam_cleanup来做些清理工作

pthread_cleanup_push(cam_cleanup, NULL);如果这一帧数据太小if(videoIn-

>sed

把内存中的图片取出并传输到网页上显示DBG("Headers send,sending stream

nown"),进入循环while(!pglobal->stop),等待线程结束,回收资源

pthread_detach(client)。客户端显示的视频图像的清晰度和连贯程度由分辨率和

帧率决定。

3.2 回放模块

在视频监控回放界面中,图像是已经保存好的write(fd,frame,frame_size),却只

显示最早的几张图像。如果点击图像,则加载出原图像大小的单张图像

=(‘.xubox_bigimg’),可通过点击左侧箭头

v、右侧箭头t和方向键keyup(function(event))对图

像进行切换。

回放相册可以对图像进行幻灯片播放eshowRunning=true,也可暂停

eshowRunning=false。整体的流程为:初始化的幻灯片是暂停状态,

当点击播放幻灯片时,计时器开始计时,即设置切换图像的时间;若中间没有暂停,

则一直循环播;若中间暂停幻灯片,计时器计时停止并重置。

3.3 核心模块

(1)视频展示模块。该模块调用输出模块,从内存缓存区获取图像形成视频流并显

示出来,同时,还能对图像进行旋转,防止图像颠倒。

(2)回放预览模块。回放界面中,鼠标放置在图片上的颜色为正常色

(),其他图片的颜色要比正常的颜色暗一些(),

以此明确的显示出当前所指的图片是哪一张。当点击一张图片,图片放大显示,在

图片的两端分别有向左和向右的箭头,在当前图片设置一个指标,与整体图片的长

度相比较,以此来判断图片的切换。

(3)回放画廊模块。回放画廊中,幻灯片处于暂停状态,将计时器清除且不赋值,

若控制器接收到了播放信号,则开始播放幻灯片。

4 结束语

本文分析了现有的网络视频监控系统,设计并实现了基于树莓派的视频监控系统。

主要完成了树莓派环境的搭建、Mjpg-Streamer的移植、USB摄像头基于Linux

的开发以及图像的采集和网络传输。本文的研究尚有不足之处,如视频存储以图片

的形式存放数量庞大时不便查看、没有声音传输、用户不能通过页面对视频监控的

存放进行控制。后续的改进研究主要集中在以上几方面。

参考文献

[1] 张秀玲.视频监控系统研究现状与发展趋势[J].科技信息(学术研

究),2008(36):341-343.

[2] 信师国,刘庆磊,刘全宾.网络视频监控系统现状和发展趋势[J].信息技术与信息

化,2010(1):23-25.

[3] 李龙棋,方美发,唐晓腾.树莓派平台下的实时监控系统开发[J].闽江学院学

报,2014,35(5):67-72.

[4] 高峰,陈雄,陈婉秋.基于树莓派B+微处理器的视频检测跟踪系统[J].电视技

术,2015,39(19):105-108.

[5] 蔡燕敏,孔维通.基于树莓派网络监控系统的研究[J].实验室科学,2015,18(6):87-

90.

[6] 龙欣.多协议云台模块设计及视频大纲技术研究应用[D].武汉理工大学,2009.

[7] 高熊.基于ARM11的嵌入式视频监控系统设计[M].华中科技大学.2012.

[8] 陈自文.Raspberry Pi应用前景分析.百度文库,2012.

[9] Colin MagPi issue[J].2012 (6),16-17.

[10]wwwasw.开源软件mjpg-streamer简要分析.CSDN.2014.3.13.

[11].百度百科,2016.

[12] 权威指南[M].中国电力出版社, 2007.

[13]Sbelley ript学习指南[M].人民邮电出版社.2009.

[14]Julie Michael 与CSS入门经典[M].人民邮电出版

社,2011.

[15]Elisabeth Freeman,Eric Freeman.深入浅出html[M].中国电力出版社.2008.

[16]MATT RICHARDSON,SHAWN_WALLACE.爱上Raspberry Pi[M].科学出版

社,2013.