基于树莓派的系统的设计与实现
   来源:智能计算机与应用     2018年09月09日 14:30

基于树莓派的多串口多总线服务器设计

王怀泽

文章编号: 2095-2163(2018)03-0158-04中图分类号: 文献标志码: A

摘要: 关键词: (Baoqing Weather Bureau, Jixian county, Heilongjiang, 155900, China)

Abstract: The using of network monitoring in today's world is getting higher and higher, but the defense against home security is neglected by many people, Network video surveillance is necessary to monitor the security of the home. This project selected Raspberry Pi this design ,uses the open source Mjpg-Streamer, uses HTML language to edit web pages, and uses CSS to beautify web pages, develops scripts with JavaScript, and connects USB cameras to create video and still images that can be viewed in real time. System can save and view previous images.

Key words:

作者簡介:

收稿日期: 引言

随着科技领域的快速发展,科技成果层出不穷,与此同时,在网络的飞速发展和迅速普及的情况下,两者结合带给人们越来越多的便利。同时,网络视频监控应该到各个方面,人们利用监控来管理交通秩序、商场经营、工业生产以及进行医疗观察,公共场所的监控覆盖率越来越高,安全方面有了很大保证。然而一般家庭很少会安装视频监控,这导致罪犯趁虚而入,案发后又很难追查,不仅家中财产损失,还让罪犯逍遥法外。

本项目选用树莓派作为平台,运用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)回放功能模块。用户通过该模块回看视频监控记录下来的图像。

本文选用树莓派3作为开发平台,由于树莓派具有无线网卡和USB接口,能够连接USB摄像头和路由器无线连接并进行通信,因此,客户端也可通过无线的方式获得信息。Mjpg-Streamer在视频监控时对CPU的占用率低、可移植性较好,且在传输时能够通过TCP/IP协议将数据传送到网络中,适合于嵌入式系统的开发与研究,因此,本文使用Mjpg-Streamer对采集到的图像进行压缩传输。同时,本文运用HTML开发页面、CSS美化页面、avaScript编辑复杂的运算脚本来完成客户端的设计与实现。

2.2系统整体架构

本系统的结构如图3所示。用户的交互界面采用网页的形式将视频图像、应用信息、回放图像等向用户进行展示。

3系统实现

MJPEG-Streamer中主要工作的是plugins文件夹和www文件夹。plugins文件夹包含输入输出模塊组件的开发文件,www包含前端设备所显示出的网页的文件。其中,index.html文件是对项目说明的主界面;static.html文件显示视频的截图;stream.html文件是显示图像视频流的界面;static_simple.html文件是一个单独的视频截图界面;stream_simple.html文件是单独的视频流界面;style.css是整个系统样式的样式表;jquery.js是编辑系统整体脚本的文件;jquery.rotate.js是针对视频流画面旋转功能而编辑的一个脚本。在www目录下建立record.html文件和record_simple.html文件来实现视频监控系统的回放功能,两个文件分别实现了对回放图像总体的预览和对回放图像具体的浏览。最后,通过TCP/IP协议使用户能够在远端对视频进行监控。

3.1视频模块

V4L2是Linux系统下采集视频、音频和图像的API接口,支持多种设备,具有视频采集接口、输出接口、直接传输视频接口、收音机接口。主要针对uvc免驱USB设备,用于采集USB摄像头所拍摄到的信息。V4L2通过内存映射方式和直接读取方式采集图像。

Mjpg-Streamer采用内存映射方式,通过对终端命令的分析,由输入插件input_uvc.so把兼容Linux-UVC V4L2设备中拍摄的视频分解成独立的jpg图像数据,并放入到内存中pglobal->buf = malloc(videoIn->framesizeIn);当线程结束,调用cam_cleanup来做些清理工作pthread_cleanup_push(cam_cleanup, NULL);如果这一帧数据太小if(videoIn->buf.bytesusedstop),等待线程结束,回收资源pthread_detach(client)。客户端显示的视频图像的清晰度和连贯程度由分辨率和帧率决定。

3.2回放模块

在视频监控回放界面中,图像是已经保存好的write(fd,frame,frame_size),却只显示最早的几张图像。如果点击图像,则加载出原图像大小的单张图像log.bigimg=layero.find(‘.xubox_bigimg),可通过点击左侧箭头conf.imgprev、右侧箭头conf.imgnext和方向键keyup(function(event))对图像进行切换。

回放相册可以对图像进行幻灯片播放this.isSlideshowRunning=true,也可暂停this. isSlideshowRunning=false。整体的流程为:初始化的幻灯片是暂停状态,当点击播放幻灯片时,计时器开始计时,即设置切换图像的时间;若中间没有暂停,则一直循环播;若中间暂停幻灯片,计时器计时停止并重置。

3.3核心模块

(1)视频展示模块。该模块调用输出模块,从内存缓存区获取图像形成视频流并显示出来,同时,还能对图像进行旋转,防止图像颠倒。

(2)回放预览模块。回放界面中,鼠标放置在图片上的颜色为正常色log.imgsee.show(),其他图片的颜色要比正常的颜色暗一些log.imgsee.hide(),以此明确的显示出当前所指的图片是哪一张。当点击一张图片,图片放大显示,在图片的两端分别有向左和向右的箭头,在当前图片设置一个指标,与整体图片的长度相比较,以此来判断图片的切换。

(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 Deady. Camera Pi. The MagPi issue[J]. 2012 (6),16-17.

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

[11]desperatewife. HTML. 百度百科, 2016.(下转第165页)[12]EricA.Meyer. CSS权威指南[M]. 中国电力出版社, 2007.

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

[14]Julie C.Meloni Michael Morrison. HTML与CSS入门经典[M]. 人民邮电出版社,2011.

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

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

文章 图像 视频