• 基于易智瑞(ArcGIS)JavaScript API的视频融合探索


    1、背景介绍

    传统的GIS+视频监控应用虽然将摄像机的视频图像统一接入到地图大屏,但视频图像之间缺乏空间位置关联弱,监控画面孤立,视频呈现不直观,需要花大量的时间及人力去看监控。视频融合成为智慧城市中视频治理的必然趋势。

    作者于2021年末探索了基于易智瑞(ArcGIS)系列产品实现了将视频投放至三维场景,实现了视频与三维场景融合展示。

    2、效果

    视频融合

    视频融合

    3、功能特色

    3.1、投放视频能够贴于建筑物表面

    本解决方案能够将待投放的视频分解,将视频中建筑物部分贴于建筑物表面,带来更好的用户体验。

    3.2、为视频投放提供交互工具

    本解决方案为视频投放提供交互工具,大大减轻视频投放工作量

    解决方案允许用户按既定步骤交互生成视频投射参数,封装了了大量技术算法,降低了视频投放技术的门槛,提高了项目中视频投放生产效率。

    步骤一:视频中选取控制点

    步骤二:三维场景中选取控制点

    步骤三:投射视频

    步骤四:导出视频投射参数,以备项目中使用

    4、解决方案介绍

     解决方案基于ArcGIS API for JavaScript实现,方案提供两部分内容,第一部分是“视频融合计算器”、第二部分是“视频融合类库”。“视频融合计算器”用于交互计算视频投放参数;“视频融合类库”是一个实现了易智瑞三维场景扩展接口的类库,此类库能够集成进入各开发项目,根据“视频融合计算器”提供的参数,实现视频融合功能。

    视频融合计算器如何使用,请见另一篇博文

    5、技术路线

    ArcGIS API for JavaScript采用WebGL技术渲染二维地图和三维场景,ArcGIS API for JavaScript 提供了一个低级接口(externalRenderer)来访问 SceneView 的 WebGL 上下文,因此可以创建自定义可视化,以与内置图层相同的方式与场景交互。开发人员可以直接编写 WebGL 代码,也可以与第三方 WebGL 库集成。

    本解决方案使用ArcGIS API for JavaScript的externalRenderer接口,使用Three.js技术进行视频融合研究,并解决了研究过程中遇到的一系列问题,包括且不限于以下技术:

     1、ArcGIS API for JavaScript提供的externalRenderer接口

    2、three.js视频纹理技术

    3、蒂洛尼三角网生成算法

    4、交互视频投射技术

    具体的不想解释了,代码我附在后面,感兴趣的自己研究啦。

    链接:https://pan.baidu.com/s/179CwKgwtUchlNR_Nl3Iqiw 
    提取码:y25s

    链接永久有效

    6、存在的问题

    这是个视频融合的探索,后期发现问题也有很多

    1、多视频融合的时候速度卡

    2、超过两个建筑物需要贴视频时,计算机计算的结果有问题。(逻辑分支多,不想写了)

    7、抛砖引玉

    大家有好的方法,也可留言讨论。

  • 相关阅读:
    SnakeYaml反序列化分析
    二进制部署1.23.4版本k8s集群-5-部署Master节点服务
    java 每日一练 (5)
    数据代理-Object.defineProperty -Vue中的数据代理
    ArcGIS如何处理并加载Excel中坐标数据?
    异形双柱体阵列纳米粒:针状/花状纳米粒子/纳米金星/金笼/金壳/三角形纳米金
    如何粗略计算adg或ogg所需要使用的带宽
    软考 系统架构设计师系列知识点之设计模式(9)
    [附源码]计算机毕业设计springboot考试系统
    【React】编程式路由,push 与 replace,withRouter,BrowserRouter 和 HashRouter 的区别
  • 原文地址:https://blog.csdn.net/A__Ant/article/details/125619472