基于SDK的实验室视频监控系统开发

2016-10-10 07:52谭红春孙大勇车梦晴
赤峰学院学报·自然科学版 2016年7期
关键词:采集卡预览面向对象

汪 庆,谭红春,孙大勇,车梦晴

(安徽中医药大学 医药信息工程学院,安徽 合肥 230012)

基于SDK的实验室视频监控系统开发

汪庆,谭红春,孙大勇,车梦晴

(安徽中医药大学医药信息工程学院,安徽合肥230012)

为实现高校开放式实验室安全管理,设计了一个基于HIKVISION SDK的视频监控系统.该系统利用海康威视视频采集卡,使用面向对象程序设计思想实现,具有用户管理模块、实时预览模块、录像回放模块等功能,在实验室安全管理方面具有一定的应用价值.

开放式实验室;HIKVISION SDK;视频采集卡;视频监控系统

1 引言

随着高校创新实践型教育模式的提出,实验教学对于提高大学生实践应用能力显得尤为重要,传统的管理方式已经很难以满足要求,开放式实验室管理[1]还在不断地探索之中.视频监控技术[2]可以实现实时图像监控、突发时间现场重现,是实现智能化实验室管理的关键.

本系统采用HIKVISION公司开发的视频采集卡,使用板卡自带的软件开发包SDK[3],利用面向对象软件设计方法,实现了一种成本低、易实现的实验室视频监控系统.

2 视频采集卡及SDK

视频采集卡是安防行业目前应用广泛的视频采集设备,主要是从摄像头获取视频信号并转换为数字信号进行实时预览录像.系统使用的硬件设备为DS-4004HC视频采集卡,该板卡采用了先进的H.264视频压缩编码,可以实现4路的DCIF/2CIF/CIF/QCIF实时编码压缩,可单独调整每个通道设置参数,性能十分稳定.

SDK是向软件开发者提供特定的硬件平台、操作系统下开发工具集合,开发者通过调用DLL文件中的接口函数实现相关的功能,SDK开发已应用于许多各种领域[4][5].本系统使用DS-4004HC板卡SDK,通过面向对象程序设计的思路进行二次开发.板卡SDK提供的文件主要有:动态链接库DS40xxSDK.dll,库文件DS40xxSDK.lib,头文件HikVisionS-dk.h等,通过调用SDK提供的API函数,依次完成系统各个模块的功能.

3 监控平台软件设计与实现

3.1系统功能需求分析

基于成本的考虑,本系统的硬件部分利用机房现有微机,利用主板的扩展PCI插槽安装4004HC卡,利用该板卡完成视频采集功能,使用同轴电缆分别连接视频采集卡和摄像头.机房视频监控拓扑图如图1所示.

图1 

通过对实验室监控的实际需求进行分析,该监控软件应该能够实现以下几个基本功能:(1)能够实现不同用户的权限管理;(2)能够实现实时多路视频图像的预览;(3)能够根据录像计划或者手动地进行录像存储;(4)能够对存储的视频内容进行查询和回放.因此,根据以上需求将监控系统功能分为相关功能模块,如图2所示.

图2 

本系统程序启动运行的过程是:首先进行用户验证,然后进行板卡初始化获取DSP信息、获取到系统设置的默认参数,最后进入主监控画面,进行实时监控,或进行计划录像等操作.软件主要功能实现的流程如图3所示.

3.2系统模块详细设计

按照面向对象程序设计的方法,分别对不同的功能模块分别创建功能类,使用SDK提供的库函数和MFC函数完成软件的相关功能.软件主要模块包括:

图3 

用户管理模块CUserDlg类:将使用系统的用户分为系统管理员admin和一般用户user;

监控主界面模块CMoniterDlg类:初始化视频监控画面区域,参数设置按钮区域,显示监控状态区域.

图像参数设置模块CSetDlg类:设置录像画面参数:DCIF,2CIF,4CIF,D1,监控点名称时间OSD,录像文件打包长度等.

录像计划模块CPlanDlg类:设置每个监控场所的计划录像的时间段.

录像回放模块CReplyDlg类:根据事件发生的需求,以时间段和监控点为条件检索系统中的录像片段,进行回放查看.

系统软件主要类图及函数接口如图4所示:

图4 

3.3系统关键功能的函数实现

监控主界面初始化:

BOOLCMoniterDlg:OnInitDialog()

GetRecordPlan();//获取系统录像参数;

GetCameraParam();//获取摄像机的设置相关参数;

GetTimeInfo();//获取当前系统时间信息;

GetSpaceInfo();//获取当前可用录像磁盘信息;

ShowWindow();//显示监控主画面;

OnInitDialog();//初始化视频监控主窗口;

视频窗口初始化:

InitDSPs();//初始化DSP,返回可用编码通道数;

ChannelOpen();//打开通道,返回句柄,并读入摄像机参数;

StartVideoPreview();//开启视频预览;

SetOsdDisplayMode();//设置视频叠加信息:如时间,监控点名称;

录像功能:

SetDefaultQuant();//设置图像量化系数,量化系数越大图形质量就会越低,码率也就越低;

CreateThread();//启动录像线程;

StartVideoCapture();和StopVideoCapture();//对通道数据流进行获取,将视频文件按固定时间间隔进行打包,对生成视频文件按照时分秒的格式进行命名,这样有利于录像文件的检索.

3.4用户界面设计

本系统使用C++面向对象语言,以VC++6.0为开发工具,利用海康威视板卡SDK,基于MFC对话框进行程序设计.为使监控主界面满足简单直观的设计,采用了基于对话框的程序设计,需要把主要功能按钮显示集中于软件主界面上,故将界面划分为:视频显示区:显示当前监控区域预览;参数设置区:设置监控点名称,录像质量,回放查询等;系统状态区域:显示实时时间,可用录像磁盘信息;录像状态区:显示当前正在录像的通道情况.如图5所示.

图5 

系统测试的硬件环境是XP系统,内存2G,CPU双核2.5GHZ,DS-4004HC视频采集卡,四路分布于实验室的监控摄像头,经过不间断录像,系统稳定正常.

4 结束语

本文利用面向对象技术和HIKVISION SDK提供的API实现了实验室视频监控系统.该系统硬件扩展较为简单,软件设计模块功能分类清晰,界面简洁易用,可以实现实时监控、录像检索、回放等基本功能,能够满足实验室开放式管理的基本公共安全需求,具有一定的实用性.

〔1〕张艳芬,等.新形势下高校实验室开放管理与运行机制的研究[J].实验技术与管理,2013,30(3):180-183.

〔2〕黄凯奇,等.智能视频监控技术综述[J].计算机学报,2015,38(6):1093-1118.

〔3〕海康威视.DS-40xx系列板卡SDK_V4.31(for Windows)[EB/OL].http://www.hikvision.com/cn/download _more_404.html#prettyPhoto.

〔4〕陈景帅,等.基于Speech SDK的机器人语音交互系统设计[J].北京联合大学学报(自然科学版),2010,24(1):25-29.

〔5〕李梅,等.基于Virtools SDK的虚拟实验室BB模块开发方法研究[J].计算机与现代化,2013(1):67-70.

TP391

A

1673-260X(2016)04-0044-02

2016-03-26

安徽省质量工程项目(2015sysx011);安徽中医药大学青年科研基金项目(2015qn007);2015安徽省大学生创新创业项目(201510369185)

猜你喜欢
采集卡预览面向对象
高精度AD采集卡性能测试及评价方法研究
新品预览
面向数控机床的多通道传感数据采集卡设计
并行高速采样在地震物理模拟采集中的应用
11月在拍电视剧预览表
面向对象Web开发编程语言的的评估方法
PCI-e高速数据采集卡的驱动与上位机软件设计
峰丛洼地农作物面向对象信息提取规则集
基于面向对象的车辆管理软件的研制与开发
面向对象的SoS体系结构建模方法及应用