面向实景三维模型和实时视频图像融合的纹理映射

2023-11-01 12:50陈崇成
测绘通报 2023年10期
关键词:视频流顶点纹理

杨 松,陈崇成

(1. 福州大学空间数据挖掘与信息共享教育部重点实验室,福建 福州 350108; 2. 福州大学地理空间信息技术国家地方联合工程研究中心,福建 福州 350108)

实时视频融合三维场景以低成本方式实现地图数据的自动、持续更新[1],提高视频信息获取的效率和空间关联性,也被称为增强虚拟环境(augmented virtual environment,AVE)。AVE最早由文献[2]针对静态虚拟环境现势性差的局限性而提出的,在此前文献[3]提出的一种在相机视点下纹理融合方法可被视为早期AVE的雏形。

根据视频图像与三维场景的匹配原理可将构建AVE的方法分为特征匹配法与直接投影法[4],特征匹配法通过特征匹配获取一定数量的匹配点建立图像与场景间的变换联系,进而为模型顶点指定纹理坐标。如文献[5]通过ASIFT特征匹配实现了移动视频与地理场景配准,且误差维持在2 m以内。得益于文献[6]提出的动态二维图像到几何体的任意投影方法,透视投影法得到广泛应用。文献[7]利用透视成像与摄影测量一致性原理解算出视频与地理场景中目标点X、Y、Z方向上的匹配误差在0.3 m以内。文献[8]基于WebGL构建了实景虚实融合系统实现多路视频流的流畅浏览,但视频延迟维持在10 s以上,且视频与建筑物模型分界线较为明显。文献[9] 针对三维场景对象遮挡等因素提出考虑场景深度的投影算法。文献[10]通过生成接受视频纹理的网格针对三维场景对象遮挡等因素提出考虑场景深度的矩阵的方式实现视频映射到三维场景,观察者只能从特定视角观看,无法满足多种情形下的实时视频映射需求,且目前已有研究针对场景中物体遮挡造成纹理撕裂的畸变问题均未有解决方法。文献[11]针对高空拍摄的需求场景提出针对卫星平面模型场景的映射,但场景三维立体性无法体现。而文献[12]从三维场景构建入手提出基于视频图片重建的虚实融合方法,结合图像三维重建技术提高视频图像与场景的融合效果,但单相片建模技术存在局限性,无法满足重建三维场景的完整性要求。文献[13]构建隧道数字孪生BIM模型融合多路监控实现对隧道交通的实时流量监控。实景三维模型是对人类生产、生活和生态空间进行真实、立体、时序化反映和表达的数字虚拟空间[14],拥有较好的场景完整性。而随着数字孪生城市与元宇宙概念等概念的兴起,实景三维模型与实时数据结合用于描述物理世界的实际状况也被认为是最基础的数字孪生模型[15],当下构建城市级动态模型与模型的实时更新还存在巨大挑战,实时视频融合实景三维场景具有重要意义。

综上,本文提出一种基于B/S架构的实时视频融合到实景三维场景的实现方法,通过倾斜摄影测量技术构建高精度实景三维场景,面向实时性需求设计实时视频数据流推流方法,基于WebGL透视投影原理解算视频图像像素与场景片元顶点的映射关系,针对不同视点下视频纹理存在扭曲与撕裂的畸变和视频图像与场景视觉接缝处视觉差异大等现象,以改进实时视频纹理融合方法。

1 基本框架

首先经过无人机测绘、空中三角测量、多视密集匹配、三角网格生成、自动纹理映射生成实景三维模型;其次基于地球引擎CesiumJS,采用3Dtile流式传输进行场景绘制,获取视频探头实时数据流并搭建流媒体,将之解码、转码成实时视频流;然后在场景中构建与现实在统一空间参考下形成数字孪生的虚拟相机,通过透视投影原理确定视景体内模型顶点片元在像素空间下的投影纹理坐标;最后针对视频投影过程中场景物体遮挡问题,分情况讨论映射策略,借助纹理混合的方式预设单通道掩膜图消除接缝处的纹理差异。技术路线如图1所示。

图1 技术路线

2 实时视频传输

摄像探头实时传输的数据流记录着视频纹理,其主流使用的RTSP无法直接在Web客户端实现映射,需借助编码器推流至媒体中心,再将原生视频流转码成统一RTMP协议流进行推流。视频流的实时性受编码器、流媒体服务器性能、视频流协议、网络带宽、播放器缓存等因素的影响。HLS和FLV协议及WebRTC协议可以使视频流兼容HTML5中的video标签作为缓存容器,本文通过推流编码器拉取相机的RTSP协议数据流,将媒体流解码编码成RTMP协议流推送至拉流媒体中心,再利用媒体中心建立浏览器与服务器间的Web Socket通道,通过浏览器端video标签接收Web Socket协议流URL地址,并将video标签绑定Cesium.Texture类后传入Cesium.PostProcessStage函数实现视频流向三维场景实时传输。

3 融合原理与方法

3.1 透视投影法

相机内参包含相机镜头焦距、像主点坐标及镜头畸变等,外参包括相机空间位置,三维角元素如航偏角、倾斜角、横滚角等,内外参数已知时将视频图像序列进行透视投影变换可获得单帧视频图像像素与场景片元顶点的互映射关系。基本路线如下:

(1)局部空间到世界空间。CesiumJS中进行空间变换要统一到ECEF世界坐标系进行,因此首先需将三维对象进行坐标变换。设三维对象图元顶点在O-ENU坐标系中坐标为XO,在ECEF坐标系中为XW,旋转平移变换矩阵分别设为RO和TO,则顶点的世界坐标XW为

XW=ROTOXO

(1)

(2)世界空间到相机空间。设顶点对应相机坐标系下的齐次坐标XC为(XC,YC,ZC,1),则有如下转换关系

(2)

式中,Rw为由相机外参数组成的旋转矩阵;Tw为平移向量,一起组成外参矩阵E。

(3)相机空间到图像空间。设有效相机的焦距为f,在相机空间中顶点映射到相机图像空间中坐标为(xi,yi,1),可得

(3)

式中,P为投影变换矩阵。

(4)图像空间至像素空间。将图像坐标归一化到坐标范围为[0,1]的像素空间坐标中,设最终的纹理坐标为(u,v,1),图像宽度和高度分别为w和h,则有下式关系

(4)

NP组成内参矩阵,综上最终模型片元顶点对应相机视频图像中的纹理坐标xt为

xt=NPEXW

(5)

3.2 载入映射策略

倾斜摄影测量建模后场景中存在障碍物遮挡,视频纹理直接映射其上所导致的突兀感、割裂感十分突出,对此可将场景中的三维物体作划分,如对于会造成在不同视角下场景纹理割裂感的汽车、树木等遮挡对象,可将之进行展平投影,而对于可反映正常场景纹理的墙体等建筑物对象,则采用顾及深度的投影方法。

由于摄像探头视频流本质上是多帧缺乏深度信息的二维图像,未考量场景深度对映射的影响会发生纹理穿透的现象,因此,当视景体中物体不影响纹理正常显示且能表达视频信息时,需要进行深度筛查,剔除无须混合视频纹理的模型图元。深度筛查重点是要预先获取虚拟相机视景体中图元、片元相对于虚拟相机的距离,并将其作为深度值Z,若各片元有遮挡关系则只保留最近片元的深度值,流程如图2所示。

图2 顾及场景深度算法流程

(1)在场景中确定一个光源位置作为孪生相机,且内外参数等与现实相机保持一致,片元着色器语言(GLSL)内定义纹理图像储存片元顶点深度值。

(2)光源预先向场景发送光束,通过射线求交获得视景体内相机纹理像素对应模型片元的深度,比较纹理像素对应片元的所有深度值,将距离视点最近片元的深度阈值Zthreshold绑定在纹理图像中。

(3)利用一致性变量将纹理图像与场景纹理坐标的传入片元着色器,射线求交获取纹理像素对应片元深度值Zcurrent,通过step函数计算以片元为中心的3×3 矩形邻域实时深度平均值Zacurrent。

(4)遍历视景体内顶点纹理,以纹理坐标为索引查询纹理图像中的深度阈值Zthreshold,考虑到WebGL储存在纹理图像Z值与实时计算出的片元Z值精度不一致所导致的偏移误差,需纠正Δd偏移量,Δd取值为0.005。若Zacurrent>Zthreshold+Δd,显示模型原有纹理;反之,赋予该片元对应视频图像纹理。

针对从不同视点看场景出现的视频画面割裂、纹理错位等问题,通过预设展平区的映射策略使视频纹理更好地贴合场景,消除画面割裂感。预先划定目标障碍物区域,在顶点着色器中利用深度纹理图像获取模型片元顶点高度,将障碍物区域预储存在深度纹理图像内。设置障碍物区域纹理的α分量为1,区域外为α分量为0;判断模型片元顶点坐标是否落在α分量为1的预设纹理区域内,将落在预设纹理区域范围内顶点Z分量修改至地面高度。

3.3 基于边界距离掩膜

针对视频影像与模型场景融合边缘存在色彩差异较大的情况,在场景片元赋予视频图像纹理时引入透明分量混合[12]的思想,基于图像像素到融合边界处距离对边界处进行掩膜。将边界处片元的alpha值与片元对应图像像素p到融合区域边界的距离建立如下联系

(6)

式中,d为混合区域的宽度;x为像素p到图像融合区域边界的垂直像素距离。在顶点着色器中额外储存一张单通道的灰度图像作为alpha掩膜图,单通道的灰度图分辨率应与视频纹理分辨率一致,其像素值指明了动态纹理每一单图像序列对应的alpha值,关联流程如图3所示。

图3 基于距离掩膜处理

用计算得到的图像每一像素对应的alpha值将图像与实景三维场景片元横向加权融合,即

c=αcv+(1-α)co

(7)

式中,α为视频图像像素对应的alpha分量;cv为视频纹理像素的颜色值;co为视频纹理像素对应位置的三维场景模型顶点片元颜色值;c为顶点片元最终呈现在屏幕上的像素颜色值。

4 试验结果与分析

4.1 试验说明

本文选择某科技园区作为试验区域。依托大疆M600 Pro无人机进行倾斜摄影影像采集,利用DJI GS Pro规划无人机航线。为了减少阳光照射造成的阴影影响,选择中午12:00前后进行航拍作业。飞行高度为50 m,航向重叠度为80%,旁向重叠度为75%,相机角度为55°,空间分辨率为0.01 m,共获得4个倾斜视角和1个垂直视角的345张影像。

采用的硬件设备为Windows 10操作系统;处理器为AMD Ryzen 7 5800H,内存为16 GB;显卡为NVIDIA GeForce RTX 3060,显存6 GB,编译环境为node.js和CesiumJS,采用Chrome作为显示浏览器。采用HIKVISION摄像头,视频编码为H.264,原始流采用RTSP协议。相机坐标为(119.198 763,26.054 996,54),视场角为59°,偏航角为216.3°,倾斜角为-71.7°,横滚角为0°。

4.2 实时性验证

利用流媒体服务器在局域网环境下通过流媒体将视频流转换为FLV/HLS/WebRTC协议并进行实时性测试,使用本文方法与文献[8]和文献[11]所涉及方法的测试结果作对比,结果见表 1。

表1 流媒体实时性对比

文献[8]将实时视频流处理成视频分片和配置文件的HLS流传输至客户端,但是映射延迟较大;通过文献[11]所用的FFmpeg转码推流至媒体中心再转换成FLV协议流可达到4 s的延迟;而本文结合文献[8]所用HLS协议流分片储存视频的优点将视频流缓存至本地文件以获取回放,使用的WebRTC协议流实现延迟200 ms的实时传输,实时性最好。

4.3融合效果验证

图4展示了一般投影法与本文改进后不同视角的视频融合纹理效果,拍摄时间为正午,视频分辨率为4096×2160像素。可以看出,在融合场景存在树木、车辆等遮挡时,从不同视点看场景出现了画面割裂、纹理错位等问题,通过顾及深度与展平映射后可以使视频纹理更好地贴合场景,消除画面中的割裂感。图5为下午拍摄,视频分辨率为1024×768像素,图5(a)展示的视频场景连接处未处理时有很明显的色彩差异情况,通过边界掩膜处理后(如图5(b)所示),视频画面与场景的分界线过渡更加平滑,差异感得到了较好的改善。而比较图4与图5可知,融合画面效果仍受不同拍摄时间的光照、阴影、天气和拍摄分辨率差异等因素的影响。

图4 展平策略视频映射前后对比

图5 融合边界掩膜前后对比

4.4 稳健性验证

为了验证浏览器使用本文方法渲染的承载能力,通过预设场景漫游路径,记录场景在融入0~10路视频的场景实时渲染帧率变化情况时所反映的本文方法的稳健性,一般投影映射对比本文引入映射策略的场景帧率变化结果如图6所示。一般页面帧率是否大于20帧/s是检验页面渲染稳定性优劣的重要指标[10],试验结果反映了视频流数量与场景漫游平均帧率的关系。结果显示场景平均帧率会随着引入视频流的数量增加而降低,这是由于随着融入视频路数的增多导致系统GPU的资源占用率提高的原因,但载入映射策略不会造成场景漫游情形下画面帧率大幅波动,且载入10路视频后帧率为50帧/s,稳健性良好,仍能满足人眼流畅浏览场景的需要。

图6 多路视频系统稳健性试验结果

5 结 语

本文面向实景三维模型和实时视频图像融合,根据透视投影原理结合相机内外参数解算视频像素与对应实景三维模型顶点的映射关系,搭建了流媒体实时推流视频,提出了结合深度筛查和局部展平的映射策略,消除场景障碍物对映射纹理的遮挡,并通过掩膜算法对视频图像与场景接缝处进行优化,实现了现实空间向数字空间的实时无缝映射。试验结果表明,本文方法能极大地改善实时视频图像与实景三维模型融合时视频纹理扭曲和撕裂等现象,在10路视频流通量的情况下场景平均渲染帧率保持在50帧/s以上,仍然满足场景浏览需求,且实时性较为良好,可应用于数字孪生、监控安防等领域。

猜你喜欢
视频流顶点纹理
边缘实时视频流分析系统配置动态调整算法研究
过非等腰锐角三角形顶点和垂心的圆的性质及应用(下)
基于视频流传输中的拥塞控制研究
基于BM3D的复杂纹理区域图像去噪
使用纹理叠加添加艺术画特效
关于顶点染色的一个猜想
TEXTURE ON TEXTURE质地上的纹理
铁路货场智能大门集装箱全景图像采集方法研究
美国视频流市场首现饱和征兆
消除凹凸纹理有妙招!