电子技术与软件工程
Electronic Technology & Software Engineering
软件开发与应用Software Development And Application
基于工业云台视频监控终端二次开发平台的设计
华壮侯杨阳陈敏杰朱浩宇钮宁宁
(江苏第二师范学院物理与电子信息工程学院江苏省南京市210000 )
摘要:本文设计了一款基于M F C+OpenCV的可二次开发的视频监控终端系统,通过串口通讯,基于Pelco-D/Pelco-P控制协议实现 了对工业变速云台360。方向控制和角度设置;并通过在云台上搭栽摄像头,实现对监控场景的实时监测。经过调试,表明本系统具有较 高的稳定性和实操性。
关键词:云台控制;串口通讯;M F C;OpenCV;视频监控
近年来,随着计算机技术和网络技术的快速发展,视频监控技 术在停车场、地跌、机场、商城、写字楼等重要公共场所得到了广 泛的运用,可以说各行各业以及人们的日常生产生活都离不开视频 监控技术[11。
随着视频监控技术的日益成熟,也越来越成为计算机 视觉研究领域中的热点。各大高校、教育机构应人才培养需求设置 了相关课程和课题设计,因此,高校大学生在校期间非常有必要接 触到此类此类项目的开发设计,通过此类项目的教学实训,不仅可 以提高学生对所学知识的理解程度,更能够充分锻炼动手实践操作 能力,很大程度上提高了专业技术竞争力,对学生的职业规划起到 了积极的作用。另外,该系统也可直接应用于企业中的工程应用或 实验测试中,具有一定的社会实用价值。
1系统设计
该系统主要分为三大模块,分别为串口通讯、云台控制模块、视频监控模块。云台控制模块是视频监控的核心,是通过串口通汛,基于Pelco-D/Pelco-P控制协议,将控制指令发送给FY-SP15丨0轻 载智能变速云台设备,设计对应控件实现对云台设备360°方向控制,并可进行云台任意角度的设置;视频监控模块主要实现对搭载相机 的图像采集捕捉与显示。
2串口通讯
本文设计用到了 M FC中的一种ActiveX控件MSComm,该控件提供了与下位机通信的接口来支持对串口的访问[2],在串口有数 据到达时,促发相应的事件响应,在事件函数里进行数据的读取。基本步骤如下:
(1)注册MSComm控件;
(2)添加MSComm控件;
(3)添加控件变量;
(4)串口信息配置及打开。
3 台控制
云台,视频监控系统的转向装置,云台的转动角度决定了视频监控的视野范围。本系统所选用的智能变速云台基本性能参数为:RS422通信接口,水平旋转角度0〜360°连续旋转,俯 仰-60〜+60°,水平0.01〜30°/S,俯仰0.01〜15°/S,通信波特率有 2400/4800/%00/19200bps可选,通讯协议支持 Pelco-D、Pelco-P。
计算机通过串口 RS422并利用RS485转换器与云台解码器相 连接,云台和云台解码器之间通过控制电缆相连,计算机通过串口 向解码器发送数据,通过解码器翻译电平指令使得云台执行相应动 作m。本系统解码器选定Pelco-D为控制云台通信协议。
3.1Pelco-D协议
数据格式为:1位起始位、8位数据位、1位停止位,无校验位。波特率:9600bps。Pelco-D采用一个数
据包的格式传输,所有数据 均采用十六进制,•般用于矩阵和其他设备之间的通信[31,内容包 括云台控制命令,摄像机控制命令、辅助控制命令、预置位设置和 调用命令。其基本命令格式如表1所示。
FF:同步字节,始终为OxFF;
Add:地址位,取值范围为0x00〜OxFF,默认地址1;
Cmdl、Cmd2:命令码;
Q N M B I*-A tm r ft
图1:系统界面
Datal、Data2:数据码;
Checksum:校验位,Checksum= add+ Cmdl + Cmd2 + Datal + Data2 〇
本云台的基本控制指令如图表2所示。
在控制指令中,Byte3决定执行的指令,DataH、DataL为指令 对应的数值的高字节和低字节。另外,还包括变倍加减控制、聚焦 远近控制、光圈开关控制以及巡航停留时间查询回传、守望时间查 询回传等
控制指令,则作为二次开发设计的预留功能。
3.2控制实现
本系统中,对云台的基本控制共分为三个模块:连续转动方向 设置模块、自由角度查询与设置模块、线扫控制模块。在MFC对 话框中设计控件按钮,添加对应的响应函数。
3.2.丨连续转动方向设置模块
在该模块中,通过上下左右以及斜反向的方向键从而控制云台 的上下左右以及左上、左下、右上、右下方向的转动,其中转动速 度的大小可在参数中设定和修改,从而实现对监控场面的全方位观看。
本云台水平速度和俯仰速度级数在取值范围内可设定1〜64级,云台上下左右方向转动的实现,都是单命令响应,也就是每个按键 都只需要执行一条指令;而对于斜方向的控制则是两个方向指令叠 加的结果。
3.2.2自由角度查询与设置模块
在视频监控过程中,为方便远程管理和观看,除了连续转动控 制之外,还需要针对特定点进行观测,这就需要监控终端具备对云 台任意角度的设置与查看功能。本模块中,从两个方向来确定云台 的位置:
俯仰角度和水平角度,分别包含设置和查询两个功能。在 处理俯仰角度-60°〜0时,需要注意一点,要将其转变为十六进制,
•基金项目:大学生创新创业训练计划项目
45
软件开发与应用
Software Development And Application
电子技术与软件工程
Electronic Technology & Software Engineering
表1: Pelco -D 协议命令格式
字节1
字节2
字节3
字节4 字节5
字节6字节7
FF Add Cmdl Cmd 2
Datal Data 2
Checksum
表2:云台控制信息
序号功能名称指令
备注
360云平台1水平向右控制FF  Addr  00 02 HSPD  00 Checksum ①2水平向左控制FF  Addr  00 04 HSPD  00 Checksum 3俯仰向上控制FF  Addr  00 08 00 VSPD  Checksum ②
4俯仰向下控制FF  Addr  00 10 00 VSPD  Checksum 5停止指令FF  Addr  00 00 00 00 Checksum 6水平角度定位FF  Addr  00 4B  DataH  DataL  Checksum ③7俯仰角度定位FF  Addr  00 4D  DataH  DataL  Checksum ④
8定位速度设置FF  Addr  00 5F  HSPD  VSPD  Checksum 9运行水平线扫FF  Addr  00 1B  00 00 Check
sum 10停止水平线扫FF  Addr  00 1D  00 00 Checksum 11水平角度查询命令FF  Addr  00 51 00 00 Checksum 12
俯仰角度查询命令
FF  Addr  00 53 00 00 Checksum
注1:①HSPD :水平速度级,取值范围0x 00〜0x 40,共64级;
② VSPD :俯仰速度级,取值范围0x 00〜0x 40,共64级;
③ DataH 、DataL 为0〜36000间的十六进制数,对应水平0-360度;④ 俯仰角度格式:0=horizontaUy ; 90=straightdown ; 270=straightup ; Range :0~9000and 27000〜35999 (实际角度范围以技术要求为准)。
其默认的数据应是反方向对应的角度。3.2.3线扫控制模块
控制云台在水平方向的一定范围内,以一定的速度来回扫描。
云台搭载相机后,则实现摄像机在左、右限位之间以设定的速度进 行水平自动往复扫描。4视频监控
本系统搭载测试用工业相机视频接口为最普遍的AV 接口,有 效像素1280(H )* 1024(V ),配合Microvision 工业高清图像采集卡 MV -800,将视频信号转换为CPU 可以接受的信号,再通过上位机 软件调用OpenCV 相应处理函数来实现对监控视频流的采集和编 辑。
利用Micmvision 图像采集卡获取视频信号,前提是要配置好 相应的编译环境:(1) 将SDK 安装目录下的Inc 和L ib 目录路径分别加入本工 程设置的 “C /〇H -Preprocressor-Additional  include  directories ” 和“ Link -Input-Additional  library  path  ” 中。(2) 将 LibVDsstream.lib  文件加入工程设置的 “Link -General - Object/library  module ” 中。(3) 将IncVDSStream.h  文件加入工程,并“#include  DSStream .h ”中。
(4) 将Exe \DSStream .d ll 文件拷入系统目录中。
根据系统需求编写代码,本模块中的难点在于从SDK 回调函
数中获取的原始图像数据的格式转换,这里获取D IB 数据后,调
用了 OpenCV 中的构造函数Mat ,将图像转换为M at 格式,并在
MFC 对话框中picture 控件上输出。
//获得d ib 数据大小DSStream _GetCurrentDib (id ,pImageMem ,&size );
//读取dib "数据plmageMem  = (BYTE *)malloc (size );
DSStream _GetCurrentDib (id ,pImageMem ,&size );pHdr =(BITMAPINFO *)pImageMem ;
int  m _width =pHdr ->bmiHeader .biWidth ;
int  m _height =pHdr ->bmiHeader .biHeight ;
BYTE *BUFFER = new  BYTE [m _w idth *m _height *3];
memcpy (BUFFER ,pImageMem +40,m _width *m _
height *3);
i m g d a t a  =M a t (S i z e (m _w i d t h ,m _
height ),CV _8UC 3);
memcpy (imgdata . data , BUFFER ,m _width*m
height *3);5界面设计
本系统的开发环境是基于Windows 平台下的visual  studio
2012,配置OpenCV 2.4.10,搭建MFC 对话框创建的监控终端控制 界面。整体控制界面如图1所示。6结语
基于M FC 对话框,本文实现了通过串口通信对智能变速云台
设备的控制,并对搭载相机通过图像采集卡,结合OpenCV 来获取 监测图像,最终实现一个完整的视频监控上位机控制终端。本系统
可以直接应用于企业中的工程应用或实验测试;因本身具备开源性, 易于进行二次开发,也非常适合作为教学实训平台用,具有较高的 教学价值和社会应用价值。
#考文献
[1] 叶斌.视频监控技术的现状与发展[门.中国传媒科技,
2012 (12): 229.[2] 聂大菊,祝忠明,杨敏.基于串口通讯系统的上位机设计[J ]. 信息通信.2015 (1): 163.[3] 魏崇毓,韩永亮.云台控制系统的研究与设计[门.科技信息 2011 (3): 503.作者简介
华壮(2000-),男,安徽省蚌埠市人•大学本科学历,电子信息 工程专业.
侯杨阳(1989-),女,山东省菏泽市人。硕士学位.研究方向为图 像处理算法分析与研究。
陈敏杰( 1999-),女,四川省绵阳市人•大学本科学历,电子信 息工程专业。朱浩宇(2000-),男,上海市川沙人,大学本科学历,电子信息 工程专业。
钮宁宁( 1999-),女,安徽省滁州市人。大学本科学历,电子信 息工程专业。46