多相机 4D 采集系统(2026~现在)

目录

多相机 4D 采集系统

自己设计、自己造、自己写软件的一套动态 4D 采集设备:8 组双目相机(16 路)由 ESP32 门控触发做到亚微秒同步,整机碳纤维、单人免工具拆装、充电宝供电,采集与标定全在浏览器里完成。采下来的数据直接进 4D 高斯重建管线,结果做成打开网页就能实时播放的 4DGS。

相机 8 组双目 / 16 路 · 1920×1200
跨相机同步抖动 ~0.4 µs(跨两台主机一致)
标定 8/8 合格 · stereo RMS ≈ 0.6px · 基线 59.35–59.83mm
便携性 单人免工具拆装 · 充电宝供电 · 阵列可跟随被摄者移动
数据集 静态阵列 23 场景 + 移动阵列 2 场景(含 IMU)· 83.4 GB
浏览器播放 400 万高斯 / 267 MB · M5 Mac 约 20 fps

采集:16 路、0.4 µs 同步

相机被配置成纯触发从机——没有脉冲就不出帧,由单个 ESP32 门控触发器并联驱动全部 8 台的触发线。软件下一条指令,ESP32 用硬件定时器精确发脉冲,8 台在同一瞬间曝光,实测跨相机抖动 ~0.4 µs,跨两台主机也是同一量级。这套逻辑后来做成了独立四路同步器,两台级联覆盖 8 组模组。

每组模组自带并排双目,模组内立体基线 ≈ 59.5mm——这条物理基线直接给整套重建提供尺度。

碳纤维四面体采集架 · 8 组双目环绕中央被摄区
碳纤维四面体采集架 · 8 组双目环绕中央被摄区

8 组双目模组 · 3D 打印外壳 + 网口
8 组双目模组 · 3D 打印外壳 + 网口

四路同步器:ESP32 门控触发做成独立硬件
四路同步器:ESP32 门控触发做成独立硬件

8 路同步立体视频合成宫格回看,每一格是一台相机的同一时刻画面,同名帧 = 同一触发瞬间:

便携:能装进后备箱,还能跟着人走

立柱、横梁、相机模组、同步器、供电全部独立,免工具、单人拆装;相机模组与横梁之间用快拆座 + 定位销,靠定位销保证重复安装的一致性,标定才能跨场次复用。供电换成充电宝方案,整套系统不再需要往外拉电线。末端相机的晃动用斜拉碳纤维管解决,斜拉件同样支持快拆。

充电宝供电 + 全可拆卸:架子摆到哪里都能开机
充电宝供电 + 全可拆卸:架子摆到哪里都能开机

加装斜拉碳纤维管后的整架 · 末端刚性显著提升,仍保持快拆
加装斜拉碳纤维管后的整架 · 末端刚性显著提升,仍保持快拆

这直接解锁了一种新的采集方式:整个相机阵列跟着被摄者一起移动。看宫格里的背景,同一段视频里从开阔区域一路换到工作台旁——人在走,架子也在走。

软件:采集、标定、导出都在浏览器里

不装客户端,手机 / 平板 / 电脑打开局域网地址就能用。设备墙汇总两台主机上的 8 台相机 + 实时预览,一键跑完「全开流 → 就绪 → ESP32 触发 → 录 → 停 → 跨主机汇总 → 对齐报告」,两台 NUC 之间 2.35 Gbps 直连汇总数据。曝光参数一键广播到 16 路并逐路回读校验。

MultiCam Studio 设备墙:8 相机 / 2 主机 + 采集控制
MultiCam Studio 设备墙:8 相机 / 2 主机 + 采集控制

标定同样在网页里完成:屏幕按真实物理尺寸显示 12×7 · 44mm · DICT_5X5_1000 标定板,手持相机逐姿态 ~1Hz 自动采集,一键产出内参。8 台全部合格,基线聚集在 59.35–59.83mm,总跨度仅 0.5mm:

相机 Cat Cow Dog Fish Mouse Pig Sheep Tiger
stereo RMS (px) 0.6154 0.5927 0.6119 0.5985 0.5993 0.6163 0.5941 0.6857
基线 (mm) 59.832 59.366 59.351 59.467 59.573 59.595 59.666 59.627

浏览器内屏幕 ChArUco 双目标定
浏览器内屏幕 ChArUco 双目标定

拍摄记录带缩略图与同步质量,导出时自动避开丢帧造成的时间断点,保证导出片段的时间轴严格均匀(相邻帧恒为一个触发周期),可直接进重建管线。

拍摄记录:缩略图、同步质量、一键导出数据集
拍摄记录:缩略图、同步质量、一键导出数据集

标定内参送进 FoundationStereo 即得逐像素度量深度,反投影得到带真彩、尺度正确的 3D 点云:

深度反投影得到的彩色 3D 点云(单台相机)
深度反投影得到的彩色 3D 点云(单台相机)

重建结果

以 FreeTimeGS 为主线(每个高斯自带速度向量 + 存活时长,快速运动用「短命高斯接力」表达),16 路全用、全分辨率 1920×1200:

指标 结果
PSNR ↑ 20.7 → 23.3
SSIM ↑ 0.74 → 0.79
LPIPS ↓ 0.534 → 0.393
人脸边缘与真值的差距 关闭 48%
快动肢体误差 −13%,首次反超基线

自由视角环绕 · 横向 ±74cm · 1918×1198 · 2× 超采样:

GT(左)vs 渲染(右)· 6 帧对照
GT(左)vs 渲染(右)· 6 帧对照

移动阵列的重建

阵列移动 + 被摄者走动,两层运动叠加。刚体内部的相对位姿不变,但阵列相对世界的位姿逐帧在变,需要额外估计每帧的 6 自由度整体位姿——好在阵列是刚体、物理基线又给了尺度,这件事可解。

与 LetCamsGo(据我所知是唯一公开做「相机采集中移动 + 动态场景」的工作)对比:

方法 逐场景 PSNR(Lunch / Blackboard / Play) 均值
我们(500K 冠军配置) — 22.11
LetCamsGo “Ours” 21.07 / 19.23 / 16.85 19.05
他们跑的 FTGS*(与我们同底座) 20.12 / 18.60 / 15.90 18.21
他们跑的 MoSca 20.40 / 18.86 / 16.08 18.45

这个 +3.06 dB 的口径尚未完全对齐,所以我没把它当成结论,正在采更多移动场景做受控验证。

浏览器端 4DGS

不装任何软件,打开链接即可播放动态高斯场景——高斯模型参数化裁剪 + WebGPU 渲染,模型经 CDN 分发,加载完成自动播放。

在线体验:https://dede-4dgs.zeabur.app/ (建议 Chrome;首次打开需下载 267–437 MB 模型)

浏览器内实时播放:400 万高斯,可自由旋转 / 平移 / 缩放
浏览器内实时播放:400 万高斯,可自由旋转 / 平移 / 缩放

帧率完全取决于设备。同一份场景的全量 655 万高斯在原生查看器 + RTX 3060 笔记本上只有 3 fps、显存占 6 GB;裁剪后的 400 万高斯版在浏览器里、M5 Mac 上约 20 fps。

数据集

每个数据集都是拆分好的左右目 + 每台相机自带标定内参,时间轴严格均匀,可直接进重建管线。静态阵列累计 23 个场景,移动阵列 + IMU 单独建库 2 个场景,共 83.4 GB。素材覆盖大幅形变织物、多人遮挡、大范围站姿活动与移动阵列几类难点。

数据集归档 · 静态阵列 23 个场景
数据集归档 · 静态阵列 23 个场景

下一步

  • 重建:采更多移动场景做受控验证,把 +3.06 dB 的口径彻底对齐;
  • Web 播放:前后景分离(静止背景用 3DGS、动态部分才用 4DGS),渲染底座换成 fastgs,目标是更快加载、更稳帧率;
  • 硬件:外场验证「拆卸—搬运—复位」后的标定复用性,这是全可拆卸方案唯一的真风险点;
  • 表达能力:转向动态外观残差——当前颜色模型每个高斯固定不变,表达不了表情变化带来的阴影与牙齿显露。