APP下载

基于工业云台视频监控终端二次开发平台的设计

2021-04-20华壮侯杨阳陈敏杰朱浩宇钮宁宁

电子技术与软件工程 2021年3期
关键词:解码器云台控件

华壮 侯杨阳 陈敏杰 朱浩宇 钮宁宁

(江苏第二师范学院物理与电子信息工程学院 江苏省南京市 210000)

近年来,随着计算机技术和网络技术的快速发展,视频监控技术在停车场、地跌、机场、商城、写字楼等重要公共场所得到了广泛的运用,可以说各行各业以及人们的日常生产生活都离不开视频监控技术[1]。随着视频监控技术的日益成熟,也越来越成为计算机视觉研究领域中的热点。各大高校、教育机构应人才培养需求设置了相关课程和课题设计,因此,高校大学生在校期间非常有必要接触到此类此类项目的开发设计,通过此类项目的教学实训,不仅可以提高学生对所学知识的理解程度,更能够充分锻炼动手实践操作能力,很大程度上提高了专业技术竞争力,对学生的职业规划起到了积极的作用。另外,该系统也可直接应用于企业中的工程应用或实验测试中,具有一定的社会实用价值。

1 系统设计

该系统主要分为三大模块,分别为串口通讯、云台控制模块、视频监控模块。云台控制模块是视频监控的核心,是通过串口通讯,基于Pelco-D/Pelco-P 控制协议,将控制指令发送给FY-SP1510 轻载智能变速云台设备,设计对应控件实现对云台设备360°方向控制,并可进行云台任意角度的设置;视频监控模块主要实现对搭载相机的图像采集捕捉与显示。

2 串口通讯

本文设计用到了MFC 中的一种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/9600/19200 bps 可选,通讯协议支持Pelco-D、Pelco-P。

计算机通过串口RS422 并利用RS485 转换器与云台解码器相连接,云台和云台解码器之间通过控制电缆相连,计算机通过串口向解码器发送数据,通过解码器翻译电平指令使得云台执行相应动作[3]。本系统解码器选定Pelco-D 为控制云台通信协议。

3.1 Pelco-D协议

数据格式为:1 位起始位、8 位数据位、1 位停止位,无校验位。波特率:9600bps。Pelco-D 采用一个数据包的格式传输,所有数据均采用十六进制,一般用于矩阵和其他设备之间的通信[3],内容包括云台控制命令,摄像机控制命令、辅助控制命令、预置位设置和调用命令。其基本命令格式如表1 所示。

FF:同步字节,始终为0xFF;

Add:地址位,取值范围为0x00~0xFF,默认地址1;

Cmd1、Cmd2:命令码;

Data1、Data2:数据码;

Checksum:校验位,Checksum=add + Cmd1 + Cmd2 + Data1 +Data2。

本云台的基本控制指令如图表2 所示。

在控制指令中,Byte3 决定执行的指令,DataH、DataL 为指令对应的数值的高字节和低字节。另外,还包括变倍加减控制、聚焦远近控制、光圈开关控制以及巡航停留时间查询回传、守望时间查询回传等控制指令,则作为二次开发设计的预留功能。

3.2 控制实现

本系统中,对云台的基本控制共分为三个模块:连续转动方向设置模块、自由角度查询与设置模块、线扫控制模块。在MFC 对话框中设计控件按钮,添加对应的响应函数。

3.2.1 连续转动方向设置模块

在该模块中,通过上下左右以及斜反向的方向键从而控制云台的上下左右以及左上、左下、右上、右下方向的转动,其中转动速度的大小可在参数中设定和修改,从而实现对监控场面的全方位观看。

本云台水平速度和俯仰速度级数在取值范围内可设定1~64级,云台上下左右方向转动的实现,都是单命令响应,也就是每个按键都只需要执行一条指令;而对于斜方向的控制则是两个方向指令叠加的结果。

3.2.2 自由角度查询与设置模块

在视频监控过程中,为方便远程管理和观看,除了连续转动控制之外,还需要针对特定点进行观测,这就需要监控终端具备对云台任意角度的设置与查看功能。本模块中,从两个方向来确定云台的位置:俯仰角度和水平角度,分别包含设置和查询两个功能。在处理俯仰角度-60°~0 时,需要注意一点,要将其转变为十六进制,其默认的数据应是反方向对应的角度。

表1:Pelco-D 协议命令格式

表2:云台控制信息

3.2.3 线扫控制模块

控制云台在水平方向的一定范围内,以一定的速度来回扫描。云台搭载相机后,则实现摄像机在左、右限位之间以设定的速度进行水平自动往复扫描。

4 视频监控

本系统搭载测试用工业相机视频接口为最普遍的AV 接口,有效像素1280(H)*1024(V),配合Microvision 工业高清图像采集卡MV-800,将视频信号转换为CPU 可以接受的信号,再通过上位机软件调用OpenCV 相应处理函数来实现对监控视频流的采集和编辑。

利用Microvision 图像采集卡获取视频信号,前提是要配置好相应的编译环境:

(1)将SDK 安装目录下的Inc 和Lib 目录路径分别加入本工程设置的“C/C++-Preprocressor-Additional include directories”和“Link-Input-Additional library path”中。

(2)将LibDsstream.lib 文件加入工程设置的“Link-General-Object/library module”中。

(3)将IncDSStream.h 文件加入工程,并“#include DSStream.h”中。

(4)将ExeDSStream.dll 文件拷入系统目录中。

根据系统需求编写代码,本模块中的难点在于从SDK 回调函数中获取的原始图像数据的格式转换,这里获取DIB 数据后,调用了OpenCV 中的构造函数Mat,将图像转换为Mat 格式,并在MFC 对话框中picture 控件上输出。

5 界面设计

本系统的开发环境是基于Windows 平台下的visual studio 2012,配置OpenCV2.4.10,搭建MFC 对话框创建的监控终端控制界面。整体控制界面如图1 所示。

图1:系统界面

6 结语

基于MFC 对话框,本文实现了通过串口通信对智能变速云台设备的控制,并对搭载相机通过图像采集卡,结合OpenCV 来获取监测图像,最终实现一个完整的视频监控上位机控制终端。本系统可以直接应用于企业中的工程应用或实验测试;因本身具备开源性,易于进行二次开发,也非常适合作为教学实训平台用,具有较高的教学价值和社会应用价值。

猜你喜欢

解码器云台控件
云上之家——万科·郡西云台
龙门山·卧云台
科学解码器(一)
科学解码器(二)
科学解码器(三)
帮我买云台
线圣AudioQuest 发布第三代Dragonfly Cobalt蓝蜻蜓解码器
基于STM32的无线FPV云台设计
ASP.NET服务器端验证控件的使用
Spreadsheet控件在Delphi数据库系统中的编程与应用