项目一句话
发布一个手机 APP:用户拍摄室内视频并同步采集全部传感器数据,一键上传;后台自动完成 3D 重建(SfM + 3DGS),重建结果在项目网站上直接查看。
系统链路
📱 APP 拍摄→
传感器同步采集→
☁️ 上传→
抽帧+SfM+3DGS→
🌐 网页查看 3D
三端分工:APP 只做采集终端(拍+传+队列管理);云端管线全自动(收包即处理);网站承载成果展示与任务管理。
P1 · 手机 APP(拍摄上传终端)改造中
| 需求 | 说明 | 状态 |
| 视频拍摄 | 1080p+,扫描页现有能力保留 | 已有 |
| 传感器全量采集 | 陀螺仪+加速度计+磁力计(+气压计如有),与视频时间戳严格对齐(已有双钟锚定方案) | IMU 已进 v0.1.19 |
| 我的视频列表 | 拍摄历史:时长/大小/时间/是否含传感器 | 已有 v0.1.21 |
| 上传队列 | 待传/传输中(实时进度)/已完成/失败重试;断点续传+后台可靠重试(5 分钟视频 300-500MB) | 部分已有,需强化 |
| 极简化 | 移除:3D 模型预览、地图列表、下载缓存、定位页 —— APP 不再看 3D,查看全部去网页 | 待执行 |
| 收尾 | 版本号/应用内更新/项目网页挂接(发布三件套) | 机制已有 |
P2 · 云端处理(自动重建服务)✅ 已跑通待服务化
| 需求 | 说明 | 状态 |
| 管线核心 | 抽帧→hloc SfM(用 IMU 重力对齐)→undistort→3DGS 训练(-r 1 全分辨率)→质量验收(PSNR) | 全链路已跑熟(R1-R6) |
| 服务化 | 收包自动触发、任务队列、状态机(排队/处理中/成功/失败)、结果落盘到网站目录 | 2026-09-09 全自动上线: 收包→队列→GPU管线→结果页, 首单69MB全程57分钟(PSNR 29.66dB) |
| 传感器融合 | IMU→重力对齐根治坐标歪;旋转先验提升 SfM 稳定性;气压计辅助楼层 | 数据已采集,融合待实现 |
| 算力 | 8G vGPU 现机继续用;VGGT 对比实验可按需租 4090(~¥2/h) | 够用 |
P3 · 项目网站本页即起点
| 需求 | 说明 | 状态 |
| 项目主页 | 任务书(本页)+ 进度 + 成果索引 | 上线 |
| 重建结果页 | 每个上传视频一个 3D 查看页(WebGL 点云/模型,可旋转缩放、机位可点击回看照片) | 技术已验证(见下方成果) |
| 结果自动发布 | P2 管线完成后自动生成结果页并挂到本站 | 待服务化联动 |
里程碑
| # | 目标 | 验收 | 状态 |
| M1 | APP v2.0:极简拍摄上传版 | 拍→传→队列状态全程可见,传感器全量 | 待开始 |
| M2 | 云端自动重建服务 | 上传后全自动出 3D 结果页,无人工介入 | 待开始 |
| M3 | 首个用户全流程闭环 | 用户(自己)按采集要点重扫→上传→网页看高质量重建 | 等重扫 |
已有成果(v1.x 阶段沉淀)
- SfM 点云查看 —— 36,696 点 + 572 机位,机位可点击回看当时照片(重力对齐版)
- VGGT 对比实验 —— 16 帧端到端 Transformer 重建,2 分钟出结构
- home1 模型 WebGL 预览 —— R5(165万高斯) 在线查看
- 原生 3DGS 渲染器(Android)+ 崩溃诊断体系 + 截图反馈 —— 代码资产保留在 git,网页查看方案落地后退役
技术结论备忘
- 重建质量瓶颈=采集覆盖(单路径往返→环视盲区),算法侧水分已挤干(降采样修复+全分辨率重训 +0.5dB)
- VGGT 正确用法:≤100 帧甜点区或"VGGT 初值 + 传统管线精化",572 帧全量受显存平方限制不可行
- IMU 价值:重力对齐(根治坐标歪)/旋转先验/米制尺度,已进 APP(v0.1.19+)
- 采集要点 v2:走一遍、转三圈(房间 1/3、1/2、2/3 处各站定环视)、贴两墙、扫两端;慢速+锁曝光+统一光源
版本历史(APP)
| 版本 | 要点 |
| v0.1.21 | 修启动 crash(6-tab 超 Material 上限);数据管理入口移至设置页 |
| v0.1.19-20 | IMU 同步采集;数据管理页 |
| v0.1.16-18 | meta 版本化显示;相机室内约束;修重复下载 |
| v0.1.13-14 | 截图反馈 PixelCopy;渲染坐标系错配修复(错误状态根因) |
| v0.1.9-12 | 流式解析修 OOM;缓存三层防御;radix 深度排序 |
完整历史见 git;v2.0 起 APP 只保留 拍摄/传感器/上传/列表 能力。