APP下载

基于计算机软硬件的视频监控系统设计

2022-02-17王祥金

电子制作 2022年3期
关键词:摄像头客户端服务器

王祥金

(山东司法警官职业学院,山东济南,250000)

0 前言

近些年来,视频监控系统已经在外贸物流、交通运输等行业领域中得到广泛应用,并表现出较为良好的应用成效。但在具体应用过程中,由于传统视频监控系统存在数据传输距离相对有限、需要实时大量布线、图像数据易受损、图像查询难度大等问题,相关问题的存在严重阻碍视频监控系统的进一步应用及发展。据此,本文将提出一种小型化视频监控系统设计方案,并充分保障此系统应用过程中的图像查询便利性和应用有效性,解决当前视频监控系统中存在的各类问题。

1 视频监控系统总体设计

为保障基于计算机软硬件的视频监控系统的通用性,在系统设计过程中引入了嵌入式技术。此系统主要由采集前端(USB摄像头)、嵌入式硬件平台、Web服务器以及客户端四部分组成[1],具体设计架构如图1所示。此外,在设计中还会引入MEJEPG算法,主要用于对摄像头所采集的视频图像进行压缩处理,以此来减少视频图像存储过程中的内存占用。在完成图像压缩后,所有图像均会上传到Web服务器,用户有需求时可以通过登录Web服务器的方式来查看存储在Web服务器中的实时监控数据。

图1 视频监控系统总体设计架构

2 系统软硬件设计

从计算机软硬件角度来看,本文所设计的视频监控系统还可以分为软件系统和硬件系统两部分。其中软件系统主要是USB摄像头驱动、V4L2信号采集、图像压缩算法、Web服务器、用户控制模块、客户端模块等[2];硬件系统则分为核心板监控摄像电路以及WiFi无线网卡三部分。具体应用过程中,客户端或者手机等终端设备可以通过浏览器访问等方式对Web服务器上的视频数据进行实时查看。

2.1 系统硬件设计

2.1.1 核心板设计

系统硬件设计过程中,其开发板将会采用核心板+底板的方式进行集成开发。基于计算机软硬件的视频监控系统中硬件系统电路如图2所示。

图2 基于计算机软硬件的视频监控系统中硬件系统电路

(1)S3C2440核心板

核心板将会采用S3C2440核心板。S3C2440核心板上集成有ARM920T内核,32位总线以及ARM指令集,其内置主处理器工作频率可达到400MHz,不仅可以实现数据的高效运算及处理,还可以为人机交互、OS支持等方式提供更为良好的支持,符合本设计的实际要求,所以在对当前市场中各类产品进行性能及经济性综合考虑后,最终选用了S3C2440核心板。

(2)底板

底板作为硬件系统的关键部分之一,其中集成了电源电路、USB监控设备电路、LCD电路等除S3C2440核心板对应电路以外其他各类硬件电路。在相关硬件电路的支持下,底板同时兼具高频电路和数字电路的特点,为能够可以有效抑制传统电路中的噪声干扰问题,设计中将会采用如电源粗导线、避免90°折线、芯片背置滤波电容等电路板抗干扰技术。

2.1.2 USB监控摄像电路设计

设计中所采用的USB监控摄像头为UVC摄像头,此摄像头内置标准USB接口,有利于后续使用。在具体设计中,USB监控摄像电路设计方案如图3所示。

图3 USB监控摄像电路设计方案

2.1.3 WiFi无线网卡模块

综合经济性、性能、便利性等多方面要求,在设计中WIFi无线网卡模块最终选择了TL-WN321G5无线网卡,此网卡内置有智能天线和USB总线接口,可以通过总线来实现无线的快速访问和读数,最大反射功率可达到20dBm,实际工作频率为2.4~2.48GHz,在理想工作环境下的最远覆盖范围可达到300m,可以满足本设计中WiFi无线网卡模块的相关功能、性能要求。

2.2 系统软件设计

软件系统中的V4L2信号采集会通过USB摄像头驱动会从采集前端获取USB摄像头所采集的视频图像数据,相关数据在经过图像压缩算法处理后,传递给Web服务器进行存储,客户端可以通过获取Web服务器中的视频数据来实现实时视频查看的效果。

2.2.1 USB摄像头驱动

设计中USB摄像头渠道将会采用spca5xx,此驱动为Linux平台下通用驱动,功能可以满足本设计要求。但由于此通用驱动不支持ZC301P芯片,所以还需要在设计中对通用驱动内核源代码进行合理修改,确保修改代码后的通用驱动可以支持设计中所采用的USB摄像头。此过程中采用了驱动模块模式,仅需要对通信驱动程序进行内核模块化修改,然后通过“insmod”命令来加载修改后的模块,便可以实现设计中USB摄像头驱动加载效果。

2.2.2 V4L2信号采集

设计中所采用的V4L2接口可以为系统上层应用提供重要接口函数支持,进而方便后续系统应用过程中的系统对USB摄像头的合理操作及使用,达成系统设计中规定的视频图像采集效果。相对传统方式来说,V4L2接口对USB摄像头的操作方式更为简便,具体设计过程中可以直接通过“Open()”等操作函数来实现USB摄像头的直接操作效果。此外,V4L2接口可以提供直接数据读取和内存映射两种视频数据采集方式,两种数据采集方式分别以“read()”和“mmap()”实现,相对来说,内存映射数据存储效率更高,所以在设计中将会采用此种方式进行V4L2接口设计[3]。

2.2.3 图像压缩算法

图像压缩算法最为常用的算法为MPEG图像压缩算法,其在应用是仅会对图像帧之间的差异数据进行存储,而对于相同数据则不会存储,以此来减少数据存储量,达成最大化视频压缩效果。但受限于本文所设计的硬件设备限制,为保障最佳远程视频监控效果,实际设计中无法采用MPEG图像压缩算法,则会采用MJPEG算法进行图像视频压缩。此算法在应用过程中动态化使用了JPEG算法,其在视频图像压缩过程中仅会实现图像帧压缩保存,可以实现进一步压缩效果,配合Web服务器和Soeket编程,可以实现视频采集后的快速压缩及上传。

2.2.4 Web服务器

Web服务器会通过HTTP协议与用户侧客户端进行数据交互,并通过控制模块接受用户所发出视频监控系统操控指令,根据操控指令为用户传递存储在Web服务器中的压缩视频内容。本设计中采用了更适用于嵌入式系统的Boa Web服务器.此服务器作为一种单任务HTTP服务器,其可以动态化支持Web技术,并且为此服务器采用开放式源代码,实际性能和性价比均相对较高,再加上服务器运行程序对于空间占用相对较小,综合来说符合本设计中视频监控系统的开发要求,进而在综合市场上多种服务器后,选用了Boa Web服务器[4]。此外,设计中还采用了CGI技术,为Web服务器提供CGI程序调用时的接口协议标准支持,为后续设计的模块化构建提供重要保障。最后,Web服务器还可以将系统所采集到的视频图像进行有效存储,其中图像拍照存储间隔时间和存储位置用户可以根据自身所需执行设置,图像拍照的命名则是系统根据当前时间依据时间顺序方式进行依次命名,以便于用户在后续图像查看时能够更加快速有效的查询到自身所需图像。此过程中,系统会首先在Web服务器中申请一块缓存,并确定缓存区能够反之一帧图像数据,之后再将获取到的视频帧放置在缓存区。

2.2.5 用户控制模块

用户控制模块可以根据用户的操控需求及控制指令,对系统中各类设备进行有效控制及管理。具体设计过程中,用户控制模块可以通过Socket来接收用户侧传递的操控指令,并由此来对USB摄像头进行有效控制及Web服务器中视频数据浏览及控制。为保障系统的安全性,用户在向Web服务器发起连接请求时,Web服务器会先对用户的权限进行检查确认,用户通过权限认证后,方可使用用户控制模块的各类功能;若是用户未通过Web服务器的权限验证,那么Web服务器将会向用户返回“操作错误”等提示[5]。

2.2.6 Qt主界面程序

Qt主界面程序在实际运行过程中会议main()函数作为起始点,并由此创建出一个主窗口,在主窗口的基础上再添加QLable进行主界面视频图像显示,其中主窗口的实现需要ProcessImage类作为支持。在具体实现过程中,不仅ProcessImage类会继承自QWidget类,其他窗口的对应类也同样会如此,QWidget类则会在应用过程中集成QObject类数据或者数据QPaintDevice类数据,相关数据信息在系统设计中均会存储在main.cpp文件中。同时,在设计中,为方便用户操作需要将主界面程序设置为支持中文显示,然后在为其定义QApplication对象,QApplication对象,作为Qt应用的代表性对象内容,其在系统设计中将会通过全局指针变量qApp来实现应用程序的中该对象的快速访问。

此外,Qt对象之间需要特有的信号与槽作为通信机制支持,此特点是Qt主界面程序与其他图形界面程序之间的典型差异特征。在信号与槽使用前,必须要对其进行合理定义,并且还需要主义仅有从QObject类所派生出的类才能够有效调用信号与槽,而本设计中所采用的QWidget类作为QObject所派生出的类,其在系统设计中将会根据用户需求及其控制指令来合理调用信号与槽,并对信号与槽进行自动定义[7]。在具体定义过程中,由于信号与槽通常不会存在函数实体,并且应用中也不会向系统返回函数值,所以在定义中需要引入“slots”,而且定义过程中还需要对相关函数实体进行详细编写,保障信号与槽在应用时能够实现定义和使用区域位于同一个类中。

2.2.7 客户端模块

用户侧客户端模块主要分为PC客户端和手机客户端两部分。其中PC客户端主要采用OpenCV计算机视觉库来实现图像处理和计算机视觉,其读写接口则会采用OpenCV中应用较为广泛的HighGUI库来实现视频图像的读写处理;手机客户端则是采用Android平台作为基础操作系统,并以此为基础开发出一款适用于手机的客户端,实现对视频监控系统的远程监控、实施录像以及视频图像在线浏览。在设计中,手机客户端的实际工作流程如图4所示。用户在通过客户端进行Web服务器视频图像资源浏览时,还可以通过用户控制模块来实现摄像头的多角度旋转,进而实现360°监控的效果。同时,在实际监控过程中,用户还可以根据自身需要,随意调整画面中的对比度、亮度等基本参数,保障画面的饱满效果。另外,本设计还支持多平台视频图像资源同时浏览效果,并且画面流畅清晰,虽然具体监控中由于网络传输速度等因素的影响,存在一定的延迟情况,但延迟速度低于1s,基本上不会影响用户的操作体验,所以可以满足视频监控的实时性要求[8]。

图4 V4L2接口运作流程图

图5 手机客户端的工作流程图

3 系统测试

系统测试可以有效检测出整体设计开发中存在的各类问题,进而便于后续系统优化及完善。实际系统测试主要包括视频监控系统启动及运行、客户端启动及运行两部分内容。其中视频监控系统启动及运行测试会先启动开发板,并通过开发板来获取USB摄像头的视频信号,并将视频信号进行压缩处理,上传到Web服务器,检验上传到Web服务器中数据的完整性[6];客户端启动及运行测试则是分别在PC客户端和手机客户端测试两种客户端对视频监视服务器的操作控制及视频图像播放效果是否能够满足原设计要求。在经过一系列测试后发现,本文所提出的基于计算机软硬件的视频监控系统基本可以达成原设计要求,说明此设计较为成功,可作为后续视频监控系统的系统设计使用。

4 结束语

综上所述,本文以Linux和核心开发板为系统核心,通过嵌入式技术构建Web服务器和视频服务器,并结合Socket来实现视频监控系统与视频监控摄像头之间的网络通信,进而将视频数据采集并上传到服务器客户端,用户可以通过客户端来实现视频显示及浏览。总体来说,此系统具有较强的可靠性,所获取的视频图像实时精准,值得后续视频监控系统设计时进行合理参考。

猜你喜欢

摄像头客户端服务器
浙江首试公路非现场执法新型摄像头
摄像头连接器可提供360°视角图像
通信控制服务器(CCS)维护终端的设计与实现
县级台在突发事件报道中如何应用手机客户端
孵化垂直频道:新闻客户端新策略
基于Vanconnect的智能家居瘦客户端的设计与实现
得形忘意的服务器标准
计算机网络安全服务器入侵与防御
奔驰360°摄像头系统介绍
客户端空间数据缓存策略