监控实景化(探讨监控图像和实景三维场景的有机结合)
摘要:基于WebGL和视频图传技术,利用倾斜摄影实景三维数据,分析构建视频监控图像与仿真现实地理空间高度融合场景的技术方法完整阐述场景构建、信号接入、投影融合、图像拼接的技术路线,详述融合的数学模型和编程实现,并结合多年市场调研经验,介绍本项研究的市场应用前景,下面我们就来聊聊关于监控实景化?接下来我们就一起去了解一下吧!
监控实景化
摘要:基于WebGL和视频图传技术,利用倾斜摄影实景三维数据,分析构建视频监控图像与仿真现实地理空间高度融合场景的技术方法。完整阐述场景构建、信号接入、投影融合、图像拼接的技术路线,详述融合的数学模型和编程实现,并结合多年市场调研经验,介绍本项研究的市场应用前景。
关键词: WebGL 倾斜摄影 实景三维数据 投影融合 测绘学 视频图传
在地理信息系统(GIS)领域中,基于倾斜摄影测量技术制作的实景三维场景具有多项优势[1],不仅能完整地还原地形地貌,尤其是城市环境中的建筑物外立面、近地面广告牌等环境细节,而且具有高精度的可量测性[2],可进行全角度的三维测量。但是,实景三维场景是某一时间节点的测量成果,本质上属于静态地图[3],数据的现势性问题无法避免。为解决这个问题,实景三维GIS越来越多地接入物联网传感器,融合现实世界的动态情况,来满足各自的业务需求[4]。如接入定位信号,在实景三维场景中显示人员和车辆实时位置等。其中一项最重要的物联网传感器就是视频监控设备,负责将现实世界的实时图像信息接入由实景三维数据构建的虚拟现实场景,并得到广泛应用。然而单一视频监控图像的视域范围有限,多路视频切换或分屏播放都会导致监控目标失去焦点,影响监控效果[5]。同时,屏幕化的视频监控图像孤立于周边环境,不能通过屏幕画面直观地了解视频监控图像在现实世界中的确切位置,及其与周边环境的关系。因此,将视频监控图像以几何投影方式贴合到地面(简称视频贴地),融合到实景三维场景中,多路视频画面在空间上拼接,形成较大区域的连续画面,确立完整的视频监控环境成为GIS应用研究中一项十分必要的工作。
实现实景三维场景与视频监控图像融合的思路主要包括桌面端和浏览器端两个方面,本文将主要论述浏览器端的研究。
1、基于WebGL构建的实景三维场景
WebGL(WebGraphicsLibrary)是一种三维绘图协议,把JavaScrIPt和OpenGLES2.0结合在一起,为HTML5Canvas提供硬件三维加速渲染[6]。这样就可以在网页浏览器直接渲染实景三维场景,而不需要外置插件。目前,常用的WebGL二次开发接口有CesiumJS和three.js,它们都有完善的地理坐标系接口,可以用于开发标准的GIS应用项目。本文以CesiumJS接口库为例,构建实景三维场景,因为CesiumJS定义了适宜于网络传输的实景三维数据格式:3DTiles,这种数据是以树形结构组织起来的瓦片(tiles)集合,并且可以由实景三维建模软件ContextCapture直接生产[7]。
CesiumJS建立实景三维场景的方法十分简洁:首先,创建场景对象(Viewer);然后,创建实景三维数据对象(Cesium3DTileset);最后,向场景对象中添加(viewer.scene.primitives.add)对象即可,如图1所示。
图1CesiumJS建立实景三维的方法
但需要注意的是实景三维数据的高度,与CesiumJS默认的“地球”之间会存在空隙,因此,还要利用CesiumTerrainProvider对象引入地形数据,最终形成完整的环境效果。
2、视频监控图像信号接入
视频监控图像接入场景首先要获取到它的数据流,不同厂商和型号的数据流使用的编码标准不尽相同,为了具备更好的兼容性,需要使用通用的网络流媒体协议rtsp(Real-TimeStreamProtocol)进行应用层的数据解析[8]。各厂商设备的RTSP协议取流方法有所区别,但是基本格式相似,都主要包括了IP地址、端口和通道3个参数,以海康设备为例,格式如下:
rtsp://username:password@<address>:<port>/Streaming/Channels/<id>。
但是,目前的HTML5的video标签仍然无法直接播放RTSP直播数据流,研究中使用了开源视频播放器VLC提供的流媒体转码功能将RTSP转码为可以直接播放的OGG格式流数据。VLC的转码命令为#transcode,在命令处理工具中执行即可[9]。多路视频同时转码只需要创建VLC命令的JavaScript脚本,利用Node.js执行即可。但是,此时的OGG格式流数据存在跨域访问问题,需要在Nginx中代理,并添加头配置。经过代理的OGG格式流数据可以直接被HTML5播放,配置参数如下:add_headerAccess-Control-Allow-Origin*。
CesiumJS在实景三维场景中接入视频资源的方法是将video标签作为材质对象(Material)赋予渲染基元(Primitive),然后在场景中创建出来即可最终实现接入。总结下来,接入流程如图2所示。
3、视频监控图像投影融合
实景三维场景完美地还原了现实世界的空间关系,相机拍摄的画面本质上是镜头曝光平面沿着视锥体在地面上的投影[10]。而视频监控图像与实景三维场景融合的关键问题就是将监控图像与场景中的同名点配准,实现同名点的重合,也就是将画面逐个像素的坐标从本地坐标系转变到视锥体裁剪坐标系[11]中。依据这个思路,在实景三维场景中,同样还原相机的空间位置和安装姿态,并且模拟镜头的视锥体,如图3所示,在视平面还原视频监控图像,利用视锥体获得其在实景三维数据表面的投影范围,即可实现图像投影融合。
图2CesiumJS接入视频流程
图3镜头模拟的视椎体
还原相机所需的主要参数包括表1中几项,这些参数可以通过测量和查看设备说明书获得。
表1相机主要参数
视频贴地的渲染基元采用分类基元类(ClassificationPrimitive),其一致性映射(_uniformMap)参数控制webgl渲染的深度计算和坐标转换等映射方式,包括立方体模型视图(u_boxMV)和逆立方体模型视图(u_inverseBoxMV)两个变量,这两个变量用于执行透视除法,确定视频裁剪后在实景三维数据表面贴地范围。其计算方法参照WebGL投影变换的基本原理[12],示意图如图4所示。
图4WebGL投影变换基本原理
首先将相机视锥体原点定位到地理坐标,再利用四维矩阵的计算办法将地理坐标、朝向、俯角、旋转角4个参数共同计算组成相机类(Camera)的视图矩阵(viewMatrix)和逆视图矩阵(inverseViewMatrix)。然后,使用透视锥体类(PerspectiveFrustum)创建视锥体,包括视场角、宽高比、焦距、拍摄距离4个参数。透视锥体类的投影矩阵参数(projectionMatrix)可以获取该视锥体的透视投影矩阵,经过反转(Matrix4.inverse)并与逆视图矩阵相乘(Matrix4.multiply)得到逆视图投影矩阵,结果再反转即可得到视图投影矩阵。此时得到的视图投影矩阵可以用于完成坐标变换,利用拍摄距离和四维矩阵的创建办法(Matrix4.fromUniformScale)生成远平面标准模型矩阵,如下所示:
[拍摄距离,0.0,0.0,0.0]
[0.0,拍摄距离,0.0,0.0]
[0.0,0.0,拍摄距离,0.0]
[0.0,0.0,0.0,1.0]
再与逆视图矩阵相乘得到变换所需模型矩阵,并赋予视频贴地渲染基元的模型矩阵参数(modelMatrix),完成视频监控画面变换到世界坐标系。最后将模拟的视频监控设备的视图矩阵与逆视图投影矩阵相乘,得到立方体模型视图,同理得到逆立方体模型视图。将这两个模型视图赋予分类基元类的一致性映射参数便可以最终实现视频监控图像与实景三维场景的融合,融合效果如图5所示。
融合效果可以通过以下3点判断:第一,路口斑马线在投影后的角度符合实际的平行关系,并且位置与实际位置完全重合;第二,建筑立面牌匾宽度和文字完全重合;第三,人行道边缘完全衔接。
视频贴地的基元可以动态渲染,只需要在基元的更新方法(update)中,传入相机参数,判断视锥体是否发生变化并相应重新计算模型视图即可,更新方法(update)会在每一帧调用。如将朝向参数从155.4调整为152,视频向逆时针旋转,牌匾错开的效果如图6所示。
综上所述,视频监控图像投影融合技术路线总结如图7所示。
图5视频监控与实景三维场景的融合效果
图6视频贴地的基元动态渲染效果
图7视频监控图像投影融合技术路线
4、视频监控图像拼接
多路视频监控图像的拼接就是将多路视频同时融合到实景三维场景中,依据择优原则,裁切掉重叠部分,形成连续的监控图像。CesiumJS的材质类(Material)提供了透明通道参数(alphaImage),该参数接收灰度(黑-灰-白)图片,然后与视频监控图像进行掩码计算[13],便可实现视频监控图像的裁切。本地的灰度图片在创建和编辑的操作方面都不利于Web平台的维护,因此,需要在浏览器的画布标签(canvas)中动态绘制灰度图。canvas标签提供了完整的绘制方法,lineTo()方法绘制闭合的可见范围,fill()方法填充颜色,然后将画布转为base64编码格式的图片,与相机参数共同存储即可,如图8、图9所示。
图8视频图像裁切的灰度图
图9多路视频融合效果
图10为围绕十字路口的五路视频监控图像拼接成一幅连续画面的效果,箭头所指为监控图像边界,圈中可以看到一辆公交车从北向南行驶,连续穿越多个分视频画面。实验中视频监控设备的安装参数存在误差导致画面中物体穿越存在偏移,也证明相机参数对贴地的效果存在关键性的影响。
图10图像拼接连续画面的效果
5、结束语
视频监控目前已经成为国家公共安全、国防、防灾应急、消防、旅游工作中应用最为普遍的技术手段。天网工程、雪亮工程、综合防治工程、磐石行动、数字城管工程等重要工程都围绕或重点采用这种技术建设。
在多年的用户体验积累[9]中可以总结出,用户需求在视频监控的空间属性方面做出进一步的应用效果提升。尤其是在无人机视频图传的应用不断深入的背景下,视频与实景三维数据动态融合的应用前景将更加宽广。
各部门具体应用可大致总结如下:在公安行业,可应用于人员和车辆的连续跟踪,重点区域合屏监控等;在城管行业,可应用于早、夜市整条街的同时监控;利用无人机进行火灾、洪水、地震等自然灾害的实时监控和救援搜索;重要机关单位、厂矿、商场、监狱的室内外安保连续监控;在旅游行业,利用固定视频监控和无人机视频图传应用于景区巡查与搜救、景区宣传等。
,免责声明:本文仅代表文章作者的个人观点,与本站无关。其原创性、真实性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容文字的真实性、完整性和原创性本站不作任何保证或承诺,请读者仅作参考,并自行核实相关内容。文章投诉邮箱:anhduc.ph@yahoo.com