APP下载

基于嵌入式视频的实验室管理系统设计

2015-04-02祝玲��王晓龙��张盼盼

软件导刊 2015年2期
关键词:开放实验室视频监控嵌入式系统

祝玲��王晓龙��张盼盼

摘要:设计开发一种基于嵌入式视频的实验室管理系统。该系统综合运用了嵌入式技术、图像处理技术、网络通信等技术,可对实验室进行实时监控及特殊状况报警提示,同时可通过网络同步实现远程视频监控。该系统有助于提高实验室设备利用率及管理效率,为学生创新及实践能力培养提供良好的实验环境。

关键词关键词:视频监控;开放实验室;嵌入式系统;管理系统

DOIDOI:10.11907/rjdk.1431085

中图分类号:TP319

文献标识码:A文章编号文章编号:16727800(2015)002009103

基金项目基金项目:北方民族大学校级项目(2010Y030)

作者简介作者简介:祝玲 (1975—),女,吉林磐石人,硕士,北方民族大学电气信息工程学院讲师,研究方向为嵌入式系统和智能设备;王晓龙 (1988—),男,河北张家口人,北方民族大学电气信息工程学院硕士研究生,研究方向为嵌入式系统控制和功能安全;张盼盼 (1988—),女,河北石家庄人,北方民族大学计算机科学与工程学院硕士研究生,研究方向为图像处理与机器人视觉。

0引言

随着高校教学改革的不断深入, 各高校逐步开放实验室,为学生提供更多实践锻炼的空间,最大限度地提高仪器设备的利用率,解决实验设备配置不足和实验课时较少的问题。目前高校开放型实验室一般采用人工管理或者“ID+密码”的管理模式,其中,“ID+密码”模式需使用者记忆密码、 账号, 不仅增加了记忆负担, 也容易被冒名顶替\[1\]。此外,也有高校采用控制机柜来控制实验设备供电, 这种方式不但增加了实验室布线的难度, 不利于实验室的改建\[2\]。

本文提出一种基于视频与校园一卡通的实验室管理系统。本系统以CortexA9为核心,通过USB摄像头获取视频,可实现以下功能:①将视频显示在高清电视上;②通过网络可同时将视频传输到服务器,对实验室实现远程监控;③利用OpenCV对采集到的视频进行处理,对实验室特殊状况作出报警提示或控制相关设备工作。该系统有助于提高实验室的安全性和管理效率,实现实验室高智能、高效、全天候开放。

1系统总体框架

本文设计的实验室管理系统总体结构如图1所示,主要由报警提示模块和视频处理模块构成,包括视频的获取、显示、处理和传输等。以CortexA9作为内核的4核Exynos 4412处理器是本系统的核心。功能实现如下:通过USB接口驱动4个摄像头同时工作,捕获视频流;通过高清晰度多媒体接口HDMI将4个摄像头捕获的视频经处理后显示在高清电视上;通过Exynos 4412强大的硬件编解码功能,支持MPEG1/2/4,H.263,H.264等格式视频的编解码\[3\],并对所捕获的视频进行H.264编码,然后通过网口将视频传输到PC机,实现远程监控;利用OpenCV库函数对所捕获视频流中的帧频第1帧图像进行处理,获得当前实验室信息,为报警提示和电源控制提供依据。此外,报警提示模块中的GPRS通信模块用于特殊情况下紧急通知试验管理员,如发生偷盗事件等。

图1系统总体结构框架

2视频模块软件设计

视频模块应用程序在ARMlinux操作系统上运行,其涉及linux底层驱动、第三方应用库OpenCV的移植和图像处理程序设计等。

2.1HDHL驱动

HDMI是首个支持单线缆传输、未经压缩的全数字高清晰度多声道音频和控制命令数据的数字接口,它采用技术最小化传输差分信号TMDS(Transition Minimized Differential Signaling)技术传输信号\[4\]。此外,在Exynos 4412处理器上HDMI模块是为1.4版,在linux 3.0.8内核中HDMI作为TV_OUT的一部分,驱动框架如图2所示。

图2HDMI驱动框架

由图2可知, HDMI作为TV_OUT的一部分,TV_OUT驱动在内核注册时,HDMI作为TV_OUT的一个子系统被初始化。当执行TV_OUT的探针函数static int __devinit s5p_tv_probe(struct platform_device *pdev)时,会调用HDMI相关初始化函数s5p_hdmi_probe(pdev,3, 4)。同时会注册一个符合V4L2标准的设备,因此用户空间对HDMI设备(video14)的基本操作(如设置分辨、显示频率等)符合V4L2标准。而实现CEC、HDCP、DDC、HPD作为HDMI组件的驱动,即为HDMI驱动提供函数接口(HDCP、DDC、HPD这3个组件的驱动会互相暴露函数调用),也为用户空间提供了操作组件的方法。此外,linux内核将帧缓冲内存直接映射到HDMI显示缓冲区中,实现HDMI显示数据的不断更新,因此在应用程序中,只需在帧缓冲区Framebuffer中写入图像数据就可通过HDMI输出到显示设备上。

2.2OpenCV移植

OpenCV由Intel公司发起并参与开发的一款计算机视觉研究工具,近年来普及迅速,也是一个跨平台的计算机视觉库\[5\]。其源代码开放、轻量且高效,并提供了非常丰富的帧提取函数和视觉处理算法,开发者可以在其视频开发或图像处理中通过直接调用进行算法移植并添加自己编写的程序,达到事半功倍的效果\[6\]。移植过程为:首先从官网下载源码包,然后根据嵌入式ARM系统安装步骤安装交叉编译器、参数配置和编译,通过最后进行测试。在实际应用中,发现较高版本如OpenCV2.3.1等在此本平台运行不够稳定,所以本文最终使用的版本为OpenCV2.2。

2.3视频获取传输显示

本设计中视频流通过4个USB摄像头获取,要在同一个高清显示器上分块显示,需要分别对4个通道的视频进行H.264编码传输和处理。因此为满足实时性,本设计采用了多线程方案,具体框架如图3所示。

图3 应用程序多线程架构

首先通过int open(const char *pathname, int oflag, ... )函数打开摄像头和HDMI设备,再通过int ioctl(int fd, ind cmd, …)设置参数(如分别率、数据模式等),完成视频系统中各模块的初始化。摄像头采集线程通过“VIDIOC_DQBUF” 命令从缓存中读取数据并存入v4l2_buffer结构体,同时对采集到的数据按时间顺序编号,然后将数据复制,分别传输到图像融合线程、H.264线程和图像处理线程。图像融合线程将每一帧图像的像素缩放到480×270,然后将所得到的数据重新融合为新数据,并将数据传输到视频显示线程,视频显示线程则将所得到的新图像写入Framebuffer中,实现数据一帧一帧显示。H.264压缩线程分别对4个视频流进行压缩,然后将数据传输到网络传输线程,网络传输线程对数据打包,并通过socket()等函数将数据发送到PC机。图像处理线程只对帧频中的第一帧进行处理,为报警提示线程提供依据。

2.4视频图像处理

视频流将实时拍摄的图像衔接起来,变成一段流畅的图像显示出来,因此对视频的处理就是对图像的处理。此外,考虑到图像处理涉及大量的矩阵操作和Exynos 4412的性能,本设计中只对帧频中的第一帧进行处理。图像处理流程如图4所示。

首先提取YUYV数据帧中的Y分量,生成图像的亮度矩阵(灰度),然后使用OpenCV的库函数对图像进行去噪和增强等预处理,最后对图像人体进行检测。人体检测使用OpenCV的HOG算法,首先定义类,cv::HOGDescriptor Lib_People_Hogg,再使用函数Lib_People_Hog.setSVMDetector ( cv:: HOGDescriptor:: getDefaultPeopleDetector ())得到OpenCV默认的已经训练好了的SVM系数,并作为此次检测的模型,再调用函数Lib_People_Hog.detectMultiScale()完成图像人体检测。最后根据条件从图像中提取信息,如果在非实验室开放时段有人进出实验室,系统可报警以提示管理员;如在做实验期间某试验台电源长期开启并无人操控,也可进行提示或自动关闭电源,以节约用电。

图4图像处理流程

3系统运行调试

系统运行调试结果如下:

(1) 通过编写的测试程序对video、HDMI和串口等进行驱动测试,结果都能正常工作,没有出现异常和错误。

(2) 4个USB摄像头采集到的视频流可通过HMDI接口在高清电视上流畅显示,效果如图5所示,通过网络传输的视频数据正常显示。

(3) 在非实验室开放时段,如有人进入实验室,报警正确率98%。

图5HMDI显示效果

4结语

本文设计实现了一种基于嵌入式视频的实验室管理系统。该系统基于以CortexA9为内核的Exynos 4412嵌入式平台,融合了当前成熟的图像处理技术及网络传输技术,实现了对实验室远程监控。实验过程中发现,本系统在节能提示或控制以及报警方面存在一定不足,出现误判的情况,但通过多源信息融合技术予以解决。经投入使用,该系统提高了仪器设备的利用率,实现了安全、高效的实验室开放性管理。

参考文献参考文献:

\[1\]丁晓玲,徐伟平,胡敏.网络化分布式国家重点实验室管理信息系统\[J\],实验技术与管理,2001,18(2):114118.

\[2\]左富强,贾丹丹,李宏.基于嵌入式指纹识别的开放型实验室管理系统设计\[J\].实验室研究与探索,2006,26(11):1922.

\[3\]Exynos 4412数据手册

\[4\]廖梦云,赵利. HDMI接口在嵌入式视频监控系统中的应用\[J\].嵌入式系统应用,2009,23:4647.

\[5\]梁艳. 基于OpenCV的ARM嵌入式网络视频监控系统\[J\].微型机与应用,2013,09:2931.

\[6\]刘瑞帧,于士琪.OpenCV教程基础篇\[M\].北京:北京航空航天大学出版社,2007.

责任编辑(责任编辑:陈福时)

猜你喜欢

开放实验室视频监控嵌入式系统
开放实验室的思考与实践
开放实验室与学生创新能力的培养
嵌入式系统课程“中断、异常与事件”教学实践及启示
面向实践创新人才培养的嵌入式系统教学研究