UVE · 开源工具
无人机视频融合投射到三维实景

把无人机画面直接投到三维模型上

与其在角落放个小窗让操作员心算对应关系,不如把画面按相机位姿投影到模型表面 —— 画面和地物处在同一空间,遮挡、朝向、覆盖范围全部自洽。

别名与同义词

视频融合示例无人机视频投影视频贴模型视频投射 SDK 用法video projection onto 3D modelUAV video fusion

你会遇到的问题

它怎么解决

  1. 位姿一次算对

    位置、姿态、FOV、画幅是一组强耦合参数。校验办法是在场景里放已知坐标的地面标记,让视频里的同一地物正好压上去。

  2. 单路激活

    同一时刻只开一路投射,其余仅保留位置指示。这是刻意的产品逻辑,不是没做多路。

  3. video 元素复用

    切换无人机时不重建 video,而是把它重新绑定到另一个投射对象,避免解码器反复初始化的卡顿。

  4. 连线跟相机走

    小窗到无人机的连线必须在渲染循环里更新,否则相机一动连线就脱节。

快速开始

# 本仓库为设计文档,不含可运行源码
# 复刻时的目录划分与命令约定:

npm install                                  # 前端依赖
cd stream_server && npm install && npm start # 本地流服务,8088
npm run dev                                  # 前端
本仓库只包含设计与实现要点,不含源码。视频融合真正难的不是调 API,而是位姿对齐与多路流状态管理 —— 这两件事的结论比代码更难复现,所以先写清楚。

参数

参数默认说明
ESVideoFusion—EarthSDK3 的视频投射对象
drones.js—位置/姿态/FOV/画幅/视频地址
:8088—本地 HLS 服务端口

常见问题

怎么把无人机视频投射到三维模型表面?

用 EarthSDK3 的 ESVideoFusion 对象,绑定一个 <video> 元素,按无人机的经纬高、姿态、FOV、画幅把这路视频投影到倾斜摄影模型上。

投影位置总是偏一点怎么调?

位置、姿态、FOV、画幅是一组强耦合参数,改一个就要重新核对落点。推荐做法是在场景里放几个已知坐标的地面标记(路口、楼角),让视频里的同一地物正好压上去。

为什么同时只能开一路视频投射?

这是刻意的产品逻辑。多路同时投影在视觉上互相干扰(半透明叠加),而且 WebGL 下多路视频纹理的显存开销很陡,容易掉帧。

Cesium 里视频纹理有延迟怎么办?

切片式 HLS 天然有数秒延迟。要低延迟得换 WebRTC,但浏览器端解码与 Cesium 的兼容性需要重新验证。