李卫 曹顺 周永 尹晨旭
摘 要:为了让全景视频技术得到推广应用到更多的工程领域,在隧道施工领域达到智能化,更方便快捷全面的回看隧道施工过程,也为了通过全景视频技术更好的对隧道施工实施监控监测,文章阐述了在隧道施工过程中全景视频如何采集、传输、播放的过程,以及全景视频应用所涉及的相关设备及技术。
关键词:隧道施工;全景视频;采集;呈现
中图分类号:TP391.41 文献标志码:A 文章编号:2095-2945(2020)01-0015-04
Abstract: In order to promote and apply panoramic video technology to more engineering fields, to achieve intelligence in the field of tunnel construction, to look back at the tunnel construction process more conveniently and comprehensively, and to better monitor the tunnel construction through panoramic video technology, this paper expounds the process of how to collect, transmit and play panoramic video in the process of tunnel construction, as well as the related equipment and technologies involved in the application of panoramic video.
Keywords: tunnel construction; panoramic video; acquisition; presentation
引言
進入21世纪以来,我国不论在经济、科技、国防等等方面都快速发展。这几年我国在高铁发展方面进入世界一流,高铁、铁路、公路的建设规模和数量持续增长,高铁、铁路、公路的快速发展给隧道工程的发展带来了不可多得的机遇,尤其我国在云南、贵州、重庆等多山地带,有的隧道工程长达十几公里,隧道工程的修建缩短了总路程,节约时间,因此隧道工程的开发对我国的交通起着至关重要的作用。
传统隧道监控检测的方法就是使用普通摄像头,普通摄像头的拍摄角度不大于60°,拍摄范围有局限性,存在盲区,本文通过unity 3D把三维全景视频和隧道施工监控检测整合在一块,形成一个全新的隧道施工全景视频,同时满足监控无死角,第三方检测人员也可以通过全景视频观看施工情况,营造出身在施工现场的场景,达到身临其境的效果。
1 全景视频的概念及相关技术相关设备
1.1 全景视频的概念
全景[1]用英文表达是PANORAMIC,主要是符合人的双眼所能达到的最大视角,即左右180度,垂直90度。全景主要就是360度全范围所拍摄出来的照片或视频。全景一般通过图片和视频来表示也就是我们常见的全景图片和全景视频。还有一个概念vr[2],我们经常把它和全景概念混肴,全景视频和全景图片体现的是观赏性能,我们不需要用任何设备直接用双眼观赏;vr主要体现在互动方面,vr必须通过vr设备让用户通过htc[3]等设备沉浸在视频图片或游戏里面才能达到身临其境的效果。
全景视频简单来说,就是比普通的视频多了一些角度。正常的视频只能看一个角度,无法左右上下转动看其他场景,全景视频能随时上下左右转动360度观看各个场景。全景视频技术很早就已经产生,目前来说运用的范围不是太广泛,主要在旅游、卖车、卖房、医疗观赏等方面运用比较多,2019年10月1日我国大阅兵就采用了全景视频的播放技术,使人民能从更多角度的观看国庆大阅兵,不过全景视频技术在隧道施工方面运用的还寥寥无几。
1.2 全景视频涉及的相关技术
全景视频之所以发展的缓慢主要是因为全景视频占用的内存太大相对于普通的视频来说,如果使用普通的网络传输全景视频直接会卡死,目前5G网络还没开始运营,最好的办法就是采用流媒体传输[4],通俗来讲就是把全景摄像机拍摄的内容直接转化成asf格式,asf(asf即advanced streaming format)也是一个标准,支持多种网络环境多种协议下的数据传输,全景视频的传送是一个连续数据流,支持实时播放。全景视频采用流媒体传输既能实时播放也能上下90度、左右180度旋转,实现过程入图1所示:通过全景摄像机拍摄的全景视频通过H.264编码技术进行编码,然后通过流媒体技术传输到Mysql实时数据库,再通过H.264编码技术进行编码,使用unity 3d播放,如有需要也可以通过unity 3d加入文本、图片等工程信息,通过unity 3d展现出来。或者接入vr设备,用三维全景视频的方式展现出来。
2 全景视频的获取
全景视频的获取主要有三种途径,第一种最早出现的是CG[5]制作,也就是计算机动画(Computer Animation),通过3d max、maya等三维建模软件,通过建造模型,贴图渲染,添加摄像机等制动动画来获取全景视频;第二种就是实拍图像和计算机动画结合,中间需要注意的问题是图片拼接,处理不好会出现图片或视频错位的情况;第三种通过一体式全景摄像机,拍摄出来的视频直接就是我们需要的全景视频,不需要考虑拼接的问题,一体式全景摄像机现在已经开始慢慢普及。 本应用通过一体式全景摄像机来获取全集视频,安装在隧道中的刚模台车上,虽然在拍摄的过程中钢模台车的立柱会影响全景摄像机的拍摄,不过对于掌子面的开挖过程,隧道初期支护,二衬等关键施工工序还是能完整拍摄下来的,期间需要注意的是拉土的货车会影响到掌子面开挖的拍摄,我们需要尽量减少影响,让货车快速通过都可以,全景摄像机的安装具体如图2所示。
3 全景视频的处理
全景视频目前来说在很多领域已经涉及,旅游、卖车、卖房、医疗观赏包括今年的70周年国庆大典,我们都可以在网上观看全景视频,在YouTube等一些网站直接可以搜索观看全景视频,总体来说全景视频在国内已经比较成熟,我们所使用的一体式全景摄像机本身就包括全景视频的录制,全景视频的编码,有线网络或者无线网络的传输,我们可以直接通过电脑把全景视频摄像机所拍摄的视频传输到Mysql实时数据库,我们需要播放的时候可以直接通过unity 3d进行播放,如果我们想要进行工程信息的叠加,比如:拍摄的全景视频时间,具体隧道的桩号,拱顶沉降的变化量,初期支护和二衬的厚度等工程信息,我们可以通过unity 3d处理一下然后在播放出来。
4 隧道施工全景视频的播放
全景视频在unity 3d[6]里面的播放是通过在unity 3d建立一个三维全景模型,三维全景模型则是一种将图片或者视频通过相关算法架构一个立体空间展示周围图片或是视频的呈现模式,常见的模型有立体全景模型和柱状全景模型还有球面全景模型,具体如图3。
(1)球面全景模型
球面全景模型如图4所示,球面模型和人的双眼最为接近,当像素点分布在球面模型表面时,我们观看起来更容易有种逼真的感觉,因为球面是一个曲面属于非均匀采样方式,空间坐标不容易控制,容易出现扭曲错位的情况,不过这个缺点可以用增加像素点来控制,所以本次应用我们采用的是球面全景模型。
(2)柱狀全景模型
柱面全景模型如图5所示,柱面和球面比较相似,它和球面全景模型的区别是柱面的上面和下面可以竖向无线延伸,不过顶面和底面的视觉效果不是太好,不过柱面的侧面展开是个矩形,像素点可以规律排列,解决了球面模型容易出现视频错位的情况,也不需要过多的像素点,占用内存比较小。
(3)立方体全景模型
立方体全景模型如图6所示,立方体全景模型的提出完全是为了解决柱面全景模型和球形全景模型的像素点非线性排列的问题,立方体都是垂直角度,便于像素点的排列和储存,不过因为立方体都是标准垂直,拍摄的图片和视频很难做到垂直对应,在实际应用中存在着大量问题,目前来说全景视频的拼接一般都不采用立方体全景模型。
隧道施工视频的播放,我们采用球面全景模型,通过unity 3d 我们只需要建立一个球体模型然后添加纹理材质,纹理材质可以是全景图片也可以是全景视频,我们添加的是一段施工视频纹理。在unity3d 有个MovieTexture组件,我们可以通过MovieTexture播放添加在模型上的全景视频,以下是开发细节:
(1)在unity 3d中建一个场景,并随意命名,我们只需要在场景中建立一个球体模型并调节摄像机放在一个合理位置,球体模型和摄像机的位置坐标都设置为(0,0,0)。
(2)建立Resouces文件夹,把全景视频存入Resouces文件夹,并把全景视频转化为MovieTexture类型的视频纹理,具体代码如下:
MovieTexture mt= Resources.Load
调用unity 3d的Renderer组件,mt为获取到的是视频纹理,我们把mt赋值给Renderer的material.mainTexture属性,具体操作如下:
Sphere.GetComponent
//为球体模型赋值全景视频纹理
mt.loop = true;
//设置全景视频的播放模式
(3)第一步和第二步已经能播放全景视频,不过播放的视频没有声音,我们需要利用unity 3d的Audio Source组件(实际还需要Audio Listener组件,只是Audio Listener组件已经存在摄像机上所以不需要再做添加),和第二步一样我们只需要调用Audio Listener组件然后为其赋值,代码如下:
AudioSource as=Camera.main.GetComponent(typeof(AudioSource))as AudioSource;
as.clip = mt.audioClip;
(4)最后我们只需要同时播放音频和全景视频都可以,具体如下:
mt.Play()开始播放视频
mt.Pause()暂停播放视频
mt.Stop()停止播放视频
as.Play()开始播放音频
as.Pause()暂停播放音频
as.Stop()停止播放音频
具体如图7隧道施工全景视频的播放,屏幕下面有个进度条,播放和暂停控制播放进度,右上面是叠加得工程信息。
5 结束语
随着计算机技术的发展,全景视频被越来越多的应用到生活的各个方面,这里我们把全景视频应用到工程领域隧道施工方面,我希望全景视频以后在各种工程领域都能成熟运用,房建施工、地铁施工、深基坑开挖等等,主要是能叠加各种施工信息,推动工程领域信息化的发展。本文主要讲述了全景摄像机如何在隧道施工中获取全景视频,以及如何处理全景视频在unity 3d中播放出来,叠加信息也是在unity3d中处理,提出了一种全景视频的播放方式,我相信以后在工程领域之中全景视摄像机会慢慢的取代普通摄像机,更好的监控监测施工数据,成功的为工程项目做好的服务。
参考文献:
[1]张伟.全景视频技术及应用研究综述[J].影视制作,2019,25(04):36-39.
[2]陈雨霞.VR技术在教学中的应用[J].计算机产品与流通,2019(09):220.
[3]李玉胜,董保香,穆洁尘,等.基于Unity与HTC Vive的Delta机器人虚拟仿真实验[J].教育现代化,2019,6(58):291-292.
[4]曹嘉旺.基于HTTP2.0的流媒体服务器优化策略的研究与设计[D].北京邮电大学,2019.
[5]吴哲.影视制作中的CG技术应用[J].数字通信世界,2019(05):216.
[6]尹大伟,张熙若,李欢欢,等.基于Unity3D的虚拟校园漫游系统及其关键技术研究[J].软件工程,2019,22(09):17-19.