当前位置:首页 > 物联网 > 《物联网技术》杂志
[导读]摘 要 :视频监控系统是计算机应用中的重要领域之一。数字化摄像头网络化之后,监控系统正在不断引入新的功能,为使现有监控系统能更好地应对复杂环境,满足不同监控要求,就需要追加新功能,在系统架构与设计上进行调整。因此,如何将多个第三方软件与现有监控系统进行衔接就成为需要解决的重要问题。论文以多个第三方算法库整合为案例,分析、改进并拓展其思路,提出一种通用的第三方软件与现有监控系统进行衔接的接口设计方案。该方案中,多个第三方软件按照系统功能,采用分层、分模块的方式整合入系统,接口按照数据类型的不同分类,功能相对独立、标准统一。该方案经实践检测,具有简单、快速、高效、易于二次开发等优点。

0 引 言

现有物联网监控系统的功能正在日益多元化。例如后台服务器算法与深度学习相结合,使得监控的智能水平取得了长足进步 [1] ;主从 -PTZ 摄像头的引入形成了多个摄像头组,能够完成之前单个摄像头无法完成的工作 [2] ;具有深度信息的摄像头能够从三维立体的角度重新进行监控 [3]。同 时,与视频监控系统有关的其他技术也在迅猛的发展之中,例如基于 FPGA,DSP 芯片,每个摄像头能够完成若干前端处理,从而降低对通信带宽的要求 [4] ;基于 USB 2.0 数据传输技术,可使视频数据传输的速度成倍提高 ;基于云存储技术使得视频数据的存储、访问与相关运算能够并行、远程处理,同时实现了海量视频数据以及相关若干技术 ;基于 GPU芯片性能的提升,视频、图像的处理速度较之前有了很大提高 [5-6]。

对现有监控系统而言,新的功能、应用领域正在形成,而这些新应用解决方案的实现既需要新的硬件,又需要新的软件 ;既可以选择自行开发,也可以直接集成第三方软硬件包。自行开发与集成第三方软件包相比,各有优劣。

以计算机视觉应用中的第三方软件包为例,现有第三方算法库较多,能够支持的应用也较多,如目标识别、行为检测、深度学习、深度信息等。如果均采用自行研发的方式进行实现,应用程序的稳定性与处理速度将完全取决于开发者自身的能力与水平 ;如果开发者水平高,不仅能够在功能的选择上拥有绝对的自主权,还可以通过优化与功能裁剪实现更高的系统稳定性与运行速度 ;但如果研发者水平受限,则程序的表现将无法预测。

系统集成直接使用第三方软件包,其程序代码的编写水平完全取决于第三方软件包,在搭设系统的同时,其应用服务的质量是同质化的,难分伯仲 ;对用户的服务支持则完全取决于第三方软件包,无过多自主权。

至于涉及的第三方硬件的软件开发包无需多言,绝大多数研发者都无力进行新硬件的设计、制造与相应软件开发,均以使用第三方硬件为主。

1 深度相机

以深度算法的应用作为案例进行现有视频系统接口的案例解析。

在原有视频监控系统中添加深度信息,需要进行相关功能的研发,首先需要硬件的支持,而新的硬件往往自带第三方开发包,可供开发者二次开发。

深度相机(又名 3D 相机)是指可通过距离信息获取物体之间的位置关系,能够区分前景与后景 ;使用相机获取的深度信息对目标图像的分割、标记、识别、跟踪等传统应用仍然有效,而且可以根据深度信息进行改进与提高 ;借助深度信息与 2D 相机无法获取数据与信息,但进行算法的设计与改进后便能够快速完成对目标的识别与追踪,进行复杂目标的状态行为判读 [7-8]。


目前深度相机包括 TOF(Time of Fligh,TOF)、结构光、激光扫描等,主要用于机器人、互动游戏等。其中较多指 TOF 相机 [9-10],微软第二代 Kinect v2 采用的就是 TOF 技 术,在 30 fps 条件下能够实现 1 920×1 080 的颜色分辨率、512×424 的深度分辨率,最多支持 6 人的姿态识别,每人25 个关节点,检测范围最远可达 4 m,水平有效角度最大为70°,垂直有效角度最大为 60°。

以激光散斑图像深度信息获取方法为例,深度相机实现这些功能的工作原理 :经过图像预处理后的输入散斑图和参考散斑图写入多条行形成输入散斑窗、参考散斑窗,在输入散斑窗中提取中心相同、窗口大小不同的图像块,对应参考散斑窗的匹配散斑窗,以搜索策略并且求最小 SAD 方法,搜索最佳匹配块,得到最佳偏移量,再通过参考阈值进行筛选,自适应选择某一图像块对应的最佳偏移量作为当前图像块中心点的最佳偏移量,然后通过深度计算公式得到其深度信息 [11-12]。

由上可见,该方法涉及的数学公式较多,运算量较大,同时,类似 30 fps 条件的视频参数对相关计算的实时性提出了较高要求。现在一般的解决方案为依靠 FPGA,DSP 进行相关运算,这就涉及到了与硬件相关的第三方开发包。以第三方 OpenCV 软件包与硬件相关的 HLS 算法库进行接口设计层次化、模块化说明。

2 接口的层次化、模块化设计

现有视频监控系统在进行接口层次化、模块化设计时可以参考 HLS 算法库与 OpenCV 软件包进行集成的案例。在该案例应用中,支持深度相机的系统被设计用来实现深度相关算法。

Vivado 高层次综合(Vivado High-Level Synthesis,HLS)在所有 HLx 版本中可直接使用 C,C++ 以及 System C 语言规范对 Xilinx 可编程器件进行编程,HLS 使系统和设计架构师支持 ISE® 和 Vivado 设计环境,无需手动创建 RTL 便能够快速创建 IP,包含 HLS 流库,HLS Math,HLS 视频,HLS IP,HLS 线性代数,HLS DSP 库等内容。HLS 在该案例中的主要功能是利用硬件加速相应的 OpenCV 应用。

OpenCV(Open Source Computer Vision Library,OpenCV)是一个基于 BSD 许可(开源)发行的跨平台计算机视觉库,可运行在 Linux,Windows,Android 和 Mac OS 操作系统上。OpenCV 轻量级且高效—由一系列 C 函数和少量 C++ 类构成, 同时提供 Python,Ruby,Matlab等语言接口,实现了图像处理和计算机视觉方面的诸多通用算法。OpenCV 在该案例中的主要功能是进行深度信息相关算法设计与应用。系统层结构与模块接口示意如图 1所示。


混合第三方库视频系统接口设计与实现

由图 1 可知,不同第三方库进行集成时,彼此之间的业务流按照数据类型的不同需要选择不同的接口 —在OpenCV 与 HLS 之间进行图像处理时需要 Axivideo2Mat 与Mat2Axivideo 接口。而在 OpenCV 与 HLS 之间进行视频处理时,仅需 Mat2Axivideo 接口。其接口类型根据数据类型的不同而变化。OpenCV 与 HLS 部分接口函数示意如图 2所示。


混合第三方库视频系统接口设计与实现

从图 2 中可以看出,在视频与图像分析的应用中,为能够充分利用深度相机的深度信息,需要 OpenCV 与 HLS 各自按照数据类型的不同采用不同的接口函数进行处理,并根据需要进行不同数据类型之间的转换,例如从 Mat 到video, 从 Mat 到 hlsMat, 或者从 video 到 Mat, 从 hlsMat到 Mat。


由此可见,接口就是进行的一系列数据类型转换,转换的最终目的是为不同算法提供符合其输入要求的数据。

3 数据接口的标准化

接口(Interface)是一系列操作的集合,在软件架构中,强调模块之间的数据交换操作。为拓展模块应用范围、进行二次开发、与其他系统集成,尤其要适应未来的技术趋势,就需要进行数据接口的标准化 [8]。

数据接口的标准化首先需要明确数据的类型。在视频监控系统中,有效数据类型主要包括图像、视频以及其他数据、状态数据四大类。作为数据接口的标准化内容之一,首先需要统一的内容较多,如图像大小、图像类型、视频帧数、色彩模型、数据格式、数据长度、数据实时性等,数据类型与业务流程相同,是进行划分的两大要素。

对不同型号、不同设备、不同参数的视频,需根据效果以及实验进行对比,降高升低。高参数设备采集的视频信息需进行预处理,以达到同一标准 ;同样,对达不到参数要求的设备,可结合金字塔法等进行预处理,使之达到同一标准。标准统一后,对数据的通信速度、数据的后期处理速度、处理精确度、存储速度、读取速度等多项指标都有明显改进。

统一视频处理输出后的数据格式是标准化的重点。视频监控系统采集视频信息,然后交由后台服务器进行视频信息的处理,其处理结果(系统输出)是应用层其他系统需要的输入,因此需进一步规范视频监控系统处理后的数据格式。

对视频监控系统处理后的数据,可采用视频、图像、与文本 /XML 等结合的方式。其中,对视频而言,需要规范每秒多少帧、每一帧的宽高、色彩模型、ROI 位置及长宽等 ;对图像而言,需要规范宽高、色彩模型、ROI 位置及长宽等,这里的参数应该与视频参数完全吻合,只是视频的参数多于图像参数而已 ;对于文本 /XML 而言,需要对视频、图像进行编号,对应编号保留所有视频、图像处理后的相关信息。

为最大限度保持算法设计上的灵活性,可对同一视频 /图像利用算法库进行多种不同数据格式的转换,通过不同的算法得到不同的输出 ;与不同参数需求的新设备进行数据通信 ;集成不同的第三方库,从而较好地解决系统的二次开发问题。图 3 所示为一种混合第三方库支持的车牌定位算法及其得到的车牌定位效果。对于成功定位的车牌,使用了文献 [13] 中提到的车牌字符分割算法并将字符以二值化方式显示。

混合第三方库视频系统接口设计与实现

第三方视频处理库为 OpenCV2.4.9,在 Windows 7 操作系统上借助 Qt5.0 实现,其中部分功能函数使用了 GPU 加速实现。主要硬件环境为 ThinkPad x230 笔记本电脑,Core i3(2.4 GHz)四核 CPU,8G 内存。实验数据集包含 800 幅含车牌的图像以及 400 幅不含车牌的图像。

实验测试对象中包含了大部分复杂环境,如颜色干扰(“湘 BY2054”和“粤 JPG999”的车身均为蓝色),倾斜的车牌(“粤 CFL980”“辽 ANB082”“粤 B0PA09”),复杂的背景和光照条件(“辽 M66B66”和“浙 BY1V13”)等。从结果可以看出 :混合第三方库支持的车牌定位算法在复杂条件下均能够准确定位车牌,并能够从车牌上准确读取车牌字符 [13]。

4 结 语

不同第三方库进行集成时,彼此之间的业务流需按照数据类型的不同来选择接口。在软件架构中,强调模块之间的数据交换操作。为拓展模块应用范围、进行二次开发、与其他系统集成,就需要进行数据接口的标准化。数据接口的标准化首先需要明确数据类型,然后尽量统一模块之间处理输出的数据格式。

在系统设计与实现中采用论文中提到的解决方案,在一定程度上解决了原有系统架构适应性差、调整困难的缺陷,能够借助分层次与模块化手段来提高系统稳定性,并借助第三方库提高系统核心运算的速度,易于二次开发。在工程应用中,该方法可作为一种快速软件原型开发的辅助手段,具有较为广泛的应用场景。



本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
换一批
延伸阅读

随着科技的飞速发展,电子设备间的连接与数据传输变得越来越重要。Type-C转接头作为连接各种设备的桥梁,其性能与标准也不断升级。本文将详细探讨Type-C转接头2.0与3.1之间的区别,帮助读者更好地理解和选择适合自己的...

关键字: 电子设备 数据传输 Type-C

随着科技的不断进步,移动通信技术也迎来了飞速的发展。从最初的2G时代到如今的5G时代,每一次技术的升级都为我们带来了更快捷、更便利的通信体验。作为最新一代的移动通信技术,5G以其超高速率、低时延和大连接数的特点,正逐步改...

关键字: 移动通信 数据传输 5G

随着信息技术的飞速发展,数据通信作为连接世界的桥梁,其重要性日益凸显。为了确保数据通信的高效、稳定和可靠,我们需要关注一系列关键的技术指标。本文将深入解析数据通信的主要技术指标,并探讨其前沿发展。

关键字: 数据通信 数据传输

Micro热插拔技术作为现代电子设备中常见的一种接口设计,其便捷性和灵活性得到了广泛应用。然而,关于Micro热插拔是否需要断电的问题,一直存在争议。本文将详细探讨Micro热插拔的原理、优缺点,以及在不同情况下是否需要...

关键字: Micro热插拔技术 现代电子设备 接口设计

船载通信系统是现代船舶中不可或缺的重要组成部分,它为船舶提供了与外界通信和数据传输的渠道。船载通信系统行业设计方案涵盖了多个方面,包括系统架构、硬件设备、软件系统、通信协议等。本文将详细介绍船载通信系统的行业设计方案。

关键字: 船载通信 数据传输 通信协议

12月22日,由广州日报主办的2023年高质量发展年度峰会在广州举行。OPPO凭借持续创新和技术积累,入选2023年广东创新TOP100榜10强,展现出在科技创新领域的领先实力。

关键字: 智能手机 数据传输

短距离无线通信技术是一种利用无线电波进行数据传输的技术,适用于距离较短、对传输速率要求不高的场景。近年来,随着物联网、智能家居等技术的不断发展,短距离无线通信技术也得到了广泛应用。本文将对常见的短距离无线通信技术进行介绍...

关键字: 无线通信 数据传输 物联网

数字通信是指以数字信号作为载体来传输消息,或用数字信号对载波进行数字调制后再传输的通信方式。它可传输电报、数字数据等数字信号,也可传输经过数字化处理的语声和图像等模拟信号。在数字通信中,信号通常是经过抽样、量化和编码后形...

关键字: 数字通信 数据传输

通信模块的作用是实现数据传输和通信。通信模块可以将数据从一台设备传输到另一台设备,或者在一个设备内部的不同部件之间进行传输。通信模块的应用非常广泛,包括工业自动化、电力系统、安防监控、智能家居、医疗设备、交通工具等领域。

关键字: 通信模块 数据传输

串口通信,也称为串行通信,是一种数据传输方式,它按照二进制位(bit)顺序进行数据传输。在串口通信中,数据从一个设备(发送器)的串口发送到另一个设备(接收器)的串口,这两个设备通过共享的通信通道进行通信。

关键字: 串口通信 数据传输
关闭
关闭