百度360必应搜狗淘宝本站头条
当前位置:网站首页 > IT知识 > 正文

视频监控在高速路作业调度系统上的应用

liuian 2025-03-04 13:06 61 浏览

摘 要: 高速作业的管理是高速管理的重要方面。首先介绍了高速公路的发展现状和高速作业管理上面临的问题和挑战,从远程管理的角度出发,构建了高速作业调度系统。该文简单介绍了系统总体设计框架并详细阐述了客户端上视频模块的设计与实现方法。最后对该客户端进行测试,验证其实际的效果,证明该设计在监控和调度领域有良好的应用和发展前景。

0 引言

近年来,我国的高速公路建设日新月异,建成通车里程逐年上升,路网更加稠密[1],在经济社会发展总体格局中的地位越来越重要。然而,随着路网密集度的提高,高速公路上出现事故/故障的概率也越来越大,给事故/故障的快速反应和及时处理工作提出了更高的要求。同时,随着道路承载量的剧增,道路设施的日常维护工作也变得越来越重要。传统的高速路作业模式具有反应速度慢、统一管理调度能力弱等缺点。随着计算机的普及和信息技术的发展,计算机化、网络化和智能化日益成为人们生产生活的主要方式,同时随着多媒体计算机性能的提高和网络带宽的增大,视频监控也在各行各业得到了广泛的应用。因此,为了提高高速路作业的管理调度能力,本文将视频监控应用于高速路作业的管理调度中,实现在户内对远程高速路上的排障和养护工作的监控、调度和管理。

1 系统总体架构

高速作业调度系统由户外作业设备端、服务器平台和客户端3部分组成。整个系统设计框架如图1所示。

本系统设计中,服务器平台由SIP[2]信令服务器、媒体转发服务器和FTP服务器组成,信令服务器负责客户端与终端、客户端与服务器之间的信息交互,媒体转发服务器负责H.264视频流的转发,FTP服务器负责图像资料的管理、存储和下载工作。户外作业设备端由手机设备组成,在手机上装一个协助高速作业完成的APP,其主要功能是实现户外作业人员的登录管理,对调度中心派发的任务的查看和完成情况的汇报,同时在执行任务时传送实时视频画面到调度中心,让调度中心随时掌控户外作业情况并做出及时的调度响应。此外还可以上传图像和数据资料到FTP服务器进行存档。客户端紧紧围绕高速公路排障与养护工作进行设计,主要实现对远程高速作业的实时监控和调度管理,以及对数据资料的统一管理和统计分析等。

2 客户端功能模块的设计

高速作业调度系统客户端主要包括用户管理、视频监控、双向语音、任务管理、轨迹查询、视图管理和报表管理等几个模块,如图2所示。各模块之间相互协调工作,实现对高速作业的远程监控与调度。

用户管理模块由用户登录和密码修改两个子模块组成,主要负责用户的登录验证和密码修改工作;任务管理模块分为任务派发和任务查询两个子模块,主要实现向远程设备终端派发高速作业任务并对高速任务的详细情况进行查询显示;视频监控模块包括设备列表获取、视频播放、本地录像、图像抓取、云台控制、参数设置等功能,主要实现对事故/故障现场的具体情况进行动态了解,从而可以做出及时调度响应;双向语音功能利用SIP电话机实现,客户端可以呼叫终端设备,终端设备也可以呼叫客户端,实现调度中心人员与户外作业人员的通话,完成指挥调度;轨迹查询模块包括实时轨迹跟踪和历史轨迹查询,主要实现对养护人员的巡逻情况进行实时跟踪和养护的历史轨迹记录的查询;视图管理模块主要实现对排障和养护作业中设备端上传的图像和视频数据进行统一管理和保存;报表管理模块主要实现对排障和养护的数据信息分时间段进行查询预览、统计分析和报表导出的工作。

3 视频监控模块的设计与实现

将视频监控技术应用于高速作业调度管理中,可以实现在户内对远程高速路上的排障和养护作业进行实时监控管理。尤其在处理重大交通事故时,清障作业人员利用手机捕获实时视频画面发送到调度中心,各级相关负责人不需亲临现场就可动态掌控事故现场的情况,做出正确的决策,完成灵活调度。

视频监控模块中视频数据采用H264格式,打包成RTP/UDP包在网络中传输。客户端先进行实时视频的请求,在请求成功后,开启线程接收流媒体服务器转发的RTP包,并对接收到的视频RTP包进行处理,获取H264数据,再利用DirectShow视频处理机制[3]设计视频播放链路来实现实时视频数据的解码和播放,整个流程如图3所示。

3.1 实时视频请求

实时视频请求采用SIP信令完成客户端与设备端的通信。客户端先发送INVITE消息到SIP信令服务器,SIP信令服务器查询被请求的设备的地址,将INVITE消息转发给终端手机设备,手机设备接到请求后试图开启视频,在完成视频开启后发送确认信息和媒体信息到SIP信令服务器,SIP信令服务器转发确认信息和媒体信息给客户端,客户端再对信息进行确认,完成视频请求的过程,整个流程如图4所示。

3.2 RTP包的处理

视频请求成功后,客户端开启RTP接收线程进行RTP包的接收。其中收到的RTP包的结构如图5所示,RTP包由RTP包头和RTP负载组成,其中RTP负载为NALU数据,而NALU数据又由一个字节的NALU数据头和一个较长的NALU数据域组成[4]。

客户端调用JRTPLIB库对RTP包进行处理。首先对接收到的RTP包进行解包,取出RTP的负载数据。由于本系统的RTP包是基于UDP传输的,UDP是无连接的传输,客户端上接收到的RTP包可能存在乱序等问题,故将取出的负载数据按其序列号进行重新排序存入一级缓存中。其关键代码如下:

pack=GetNextPacket//获取RTP包

packetoder=pack->GetSequenceNumber;

//获取接收到的RTP包的序列号

StreamBufNode*pRtpFrameNode=new StreamBufNode

((char*)pack->GetPayloadData,

pack->GetPayloadLength,(int)packetoder,0);

//利用获取的RTP包信息组装数据节点

m_pVFragmentBuffer->AddToBufBySeq(pRtpFrameNode);

//按序列号排序,暂存一级缓存中

ProcessNalu;

//对一级缓存中的数据进行重组,推送到二级缓存中

在一级缓存中将不断对RTP数据包进行存储和移除操作,为了提高运行效率,一级缓存采用链式存储结构。

当缓存到一定量后,将一级缓存中的数据取出进行进一步的处理。由于RTP包有一个MTU值,当NALU数据长度过大时需要对其进行分片传输,因此接收到的RTP包中的负载数据可能是一个NALU帧,也有可能是一个NALU分片数据,利用第一个字节的TYPE值来判断负载数据是一个完整的NALU数据帧还是一个NALU分片。若为完整的NALU数据帧,则直接将其存入二级缓存中,为后续的视频播放提供数据源;若为NALU分片,则利用FU头中的S、E、R值来判定NALU分片是头分片还是尾分片还是中间分片,对NALU分片进行重组,还原为一个NALU数据帧后存入二级缓存等待后续播放。关键代码如下:

pPayloadData=(unsigned char*)pStreamBufNode->GetData;//获取一级缓存中的RTP负载

//利用分片FU指示字节和FU头区分不同的NALU数据

if(m_pH264RTPReceive->ProcessHeader(pPayloadData,length,nFragment)==true){

//完整的NALU帧

if(nFragment==FRAGMENT_NO){加上00 00 00 01分隔符直接推向二级缓存;}

//NALU分片帧的头分片

else if(nFragment==FRAGMENT_START){加上00 00 00 01分隔符;}

//NALU分片帧的中间分片

else if(nFragment==FRAGMENT_MIDDLE){将中间分片加在头分片后面;}

//NALU分片帧的尾分片

else if(nFragment==FRAGMENT_END){加入尾分片,将重组的NALU帧推向二级缓存}

}

一级缓存和二级缓存的大小设置也很重要,若将缓存设置得过大,会造成很大的实时视频播放时延;若将缓存设得过小,由于没有对足够的RTP负载数据进行排序,会造成视频画面回退的现象。考虑到网络坏境和帧率等综合因素的影响,本软件将一级缓存大小设置为帧率的0.7倍,二级缓存的大小设置为帧率的0.8倍。

3.3 实时视频播放链路的搭建

本系统的实时视频播放链路采用DirectShow机制进行搭建,链路由Source Filter、Transform Filter和Render Filter组成,如图6所示。该链路的Source Filter继承自CSource类,内部包含一个处理RTP包的类和一个PIN接口类,主要完成RTP包的处理以及将获取的H264数据帧推送到Transform Filter中。Transform Filter调用ffdshow解码器[5]控件,它能帮助实现H264视频数据的解码工作,并将解码后的源数据传递到Render Filter。Render Filter调用系统默认的播放设备进行实时视频播放。

4 客户端测试

本文设计的高速作业调度系统如图7所示。在网络情况正常条件下,对系统进行性能测试,软件各模块运行正常。对视频模块进行测试,测试结果如表1所示。

5 结束语

综上所述,该高速作业调度系统的设计可以有效提高对户外高速作业的监管和调度力度。此外,对该系统进行进一步改进,也可以将其应用到其他领域的监控和指挥调度上,具有广阔的市场空间和良好的发展前景。

参考文献

[1] 李廷.基于移动网络技术的高速公路智能管理系统[D].北京:北京邮电大学,2008.

[2] 司端锋,韩心慧,龙勤,等.SIP标准中的核心技术与研究进展[J].北京大学软件学报,2005,16(2):239-250.

[3] 陆其明.DirectShow开发指南[M].北京:清华大学出版社,2003.

[4] 许宁.基于RTP协议的移动视频监控系统的设计[J].通信技术,2014,47(4):455-458.

[5] 刘祎玮.Visual C++视频/音频开发实用工程案例精选[M].北京:人民邮电出版社,2004.

相关推荐

Python tkinter学习笔记(七):Notebook和Treeview

‘Pythontkinter’是Python自带的GUI工具包,非常适合开发小型的GUI应用。最近使用‘tkinter’开发了一些自己日常使用的小工具,效果不错,于是把开发过程中学习到的一些tkin...

如何用 Python实现简单的表格界面

Excel有表格编辑功能,为什么我还要弄一个,不是多此一举么。道理是对的,但是很多会员功能才更加强大,不是吗?我们学语言,一来可以练习编码熟练的,巩固知识点,更重要的是你熟悉开发,以后如果你想实现一...

土地增值税清算中的施工合同进行判断是否有重复施工的情况

对土地增值税清算中的施工合同进行判断是否有重复施工的情况,使用Python中的Pandas库对施工合同的相关数据进行处理,基于文本相似度进行判断。1.读取施工内容数据:将施工内容数据存储在一个...

大模型时代必备技能:Embedding与向量数据库开发完全指南

本文较长,建议点赞收藏,以免遗失。更多AI大模型应用开发学习视频及资料,尽在官网-聚客AI学院大模型应用开发微调项目实践课程学习平台一.Embeddings与向量数据库1.1Embeddings的...

分布式实时搜索和分析引擎——Elasticsearch

一、概述Elasticsearch是一个基于Lucene的搜索引擎。它提供了具有HTTPWeb界面和无架构JSON文档的分布式,多租户能力的全文搜索引擎。Elasticsearch是用Java开发的...

elasticsearch v9.0.0重磅发布!解锁最新核心特性与性能飞跃!

时隔3年,Elasticsearch迎来重大版本更新!基于Lucene10.1.0构建,9.0.0版本在AI搜索、安全分析、向量计算、集群管理等多个领域实现突破性升级版本亮点o新...

Java中间件-Elasticsearch(java中间件技术及其应用开发)

Elasticsearch是一个非常强大的搜索引擎。它目前被广泛地使用于各个IT公司。Elasticsearch是由Elastic公司创建。它的代码位于GitHub-elastic/...

知名互联网公司和程序员都看好的数据库是什么?

2017年数据库领域的最大趋势是什么?什么是最热的数据处理技术?学什么数据库最有前途?程序员们普遍不喜欢的数据库是什么?本文都会一一揭秘。大数据时代,数据库的选择备受关注,此前本号就曾揭秘国内知名互联...

快速了解Elasticsearch(快速了解词语浑话的读音、释义等知识点)

Elasticsearch是一款基于Lucene的开源分布式全文搜索引擎,它支持实时搜索,具有优秀的可扩展性和可靠性。作为一款搜索引擎,Elasticsearch提供了丰富的API,使得开发人员可以通...

面试官:Kafka和ES选主有什么区别?

Kafka和ES都是用来处理大数据的中间件,一个是消息中间件的代表(Kafka),另一个是大数据搜索引擎的代表(ES)。它们在Java领域的使用非常广泛,在大数据方面就更不用说了,但它们的选...

ElasticSearch 23 种映射参数详解

ElasticSearch系列教程我们前面已经连着发了四篇了,今天第五篇,我们来聊一聊Es中的23种常见的映射参数。针对这23种常见的映射参数,松哥专门录制了一个视频教程:视频链接:...

还不会Elasticsearch?看这些知识入门刚刚好

作者:MacroZheng链接:https://juejin.im/post/5e8c7d65518825736512d097记得刚接触Elasticsearch的时候,没找啥资料,直接看了遍Ela...

Elasticsearch学习,请先看这一篇!

题记:Elasticsearch研究有一段时间了,现特将Elasticsearch相关核心知识、原理从初学者认知、学习的角度,从以下9个方面进行详细梳理。欢迎讨论……0.带着问题上路——ES是如何产...

Elasticsearch企业级应用全景图:原理/场景/优化/避坑四重奏

一、核心概念与架构原理1.基本定义Elasticsearch是基于ApacheLucene构建的分布式实时搜索与分析引擎,具有以下核心特性:分布式架构:支持PB级数据水平扩展近实时(NRT):数据...

ELK Stack系列之基础篇(八) - Elasticsearch原理总结(图示)

前言通过前面的知识,我们已经了解到了ELk到底是什么、以及他们的工作原理、ES集群架构、专有名词的一些解释。在进入下一阶段ES实操学习环节前,那么今天我将以图解的方式将ELK重点以及ES的相关逻辑进行...