一句话定义
用户拿着 Android 手机扫描室内空间(拍视频)→ 云端重建 3D 模型(≤1 小时);之后拍一小段视频或一张照片(秒级)→ 在这个 3D 地图上定位出自己的位置和朝向(亚米级)。
一次建图,两个能力:空间数字化(给人看)+ 空间内定位(给机器用)。对标 Polycam/Luma 的重建体验 + AR Cloud 的定位能力,二者共享同一张地图。
1 · 任务与产品定义
产品形态:Android APP(用户已定)。两个核心功能 + 一个隐含的第三能力(地图管理),构成完整闭环:
| 模块 | 用户旅程 | 技术本质 |
| F1 扫描建图 | 打开 APP → 对准室内按引导拍摄视频(覆盖走道/角落/天花板)→ 上传云端 → 进度提示 → 预览/分享 3D 模型 | SfM/前馈重建 + 3D Gaussian Splatting |
| F2 图上定位 | 选择已建好的空间 → 拍一张照片(或几秒短视频)→ 等几秒 → 在 3D 模型上看到自己的位置标记(点+朝向箭头) | VPR 检索 + 局部特征几何验证 + PnP 6DoF 求解 |
| F3 地图管理 | 我的空间列表(住宅/店铺/商场)→ 模型在线预览、删除、分享链接 | 地图资产存储与版本管理 |
核心架构思想:一张地图,两种消费。建图管线在产出高斯模型(渲染给人看)的同时,必须产出定位资产(关键帧+位姿、稀疏点云、全局/局部描述子库)。定位功能不重新建图,直接消费建图副产物——这是本产品技术架构的第一原则,建图管线的接口设计从第一天就要为定位服务。
2 · 需求指标(用户拍板,2026-09-05)
| 维度 | 指标 | 含义与推论 |
| 平台 | Android only | 开发栈锁定 Kotlin + Android SDK;主流厂商机型适配(华为/小米/OV);无 iOS 分心 |
| 场景规模 | 几十㎡住宅 → 几千㎡商场 | 跨度 2 个数量级:地图组织必须支持分割/分层/多会话;商场场景单次扫描可能不够(续航/存储),需支持增量续扫 |
| 建图时长 | ≤ 1 小时(云端处理) | 几千㎡ ≈ 数千帧:SfM 是瓶颈(COLMAP 全局式可能超时)→ 必须考虑增量式 SfM / VGGT 前馈加速 / 分块并行;住宅级应分钟级 |
| 定位精度 | 亚米级(<1m,公制尺度下的绝对轨迹误差) | 全局检索(VPR,米级)不够 → 必须叠加局部特征几何验证 + PnP 精定位层(hloc 式管线)。⚠️ 尺度锚定(必答前置):单目 SfM/VGGT 均为 up-to-scale,无公制尺度则"亚米级"无从定义——建图必须附加尺度锚定:候选 (a) ARCore IMU+深度(Android 平台天然可白拿,优先评估)(b) 已知相机运动基线 (c) 场地先验尺寸(门宽/货架间距)+ Sim3 对齐 |
| 定位时延 | 拍一小段视频或一张照片,几秒内出结果 | 云端管线完全够(上传+检索+PnP <3s 可达);短视频为默认模式(对称场景下单张照片本质受限,见 §5);不要求 AR 级连续实时(端侧跟踪为远期牌) |
| 建图质量 | 可交互预览的 3D 模型 | 3DGS 渲染(端侧 WebGL/原生 splat 渲染器);mesh 可选导出为远期 |
3 · 技术方案总览
3.1 建图管线(F1)
视频采集(端)→
抽帧+质检(云)→
位姿求解 SfM/VGGT→
稠密化 3DGS 训练→
地图资产打包→
端侧预览渲染
| 环节 | 候选方案 | 评估 |
| 位姿求解 | A. 全局式 SfM(GLOMAP) | 大场景分钟级(全局式正是为提速而生);⚠️ colmap/glomap 上游仓库已标注 DEPRECATED 归档,采用需评估维护风险或锁定版本 |
| B. 增量式 SfM(COLMAP mapper)+ 检索引导匹配对 | 质量金标准但大场景慢(增量式才是超时来源);用 hloc pairs_from_retrieval(官方支持 SuperPoint/DISK/D2-Net/SIFT/R2D2,无 ASIFT)控制匹配规模 |
| C. VGGT 前馈(一次前向出位姿+深度+点云) | ⚠️ 显存随帧数二次增长(社区实测 24GB 卡约 ≤8 帧,20+ 帧即 OOM/掉精度)——住宅级也须分块前向+块间 Sim3 对齐,非一次直出;位姿精度弱于 SfM |
| 稠密重建 | 3D Gaussian Splatting(gsplat 等开源实现) | 渲染质量/速度兼顾;商场级需分块训练+合并 |
| 推荐主线 | 统一资产规格:VGGT/SfM 均只作位姿来源 → 轻量 BA 统一优化 → 3DGS | 两档(住宅快车道/商场分块)共用下游管线,保证定位资产质量一致;住宅快车道 = VGGT 分块前向+Sim3 对齐(分钟级可期,非直出),商场 = GLOMAP/增量 SfM 分块(1h 级) |
3.2 定位管线(F2)
拍照(端)→
全局检索 VPR→
候选帧 top-K→
局部特征匹配 SP+LG→
PnP+RANSAC→
6DoF 位姿→
地图打点(端)
| 层级 | 技术 | 作用与依据 |
| 检索层 | AnyLoc-VLAD-DINOv2(全局描述子) | 免训练、跨域泛化强(DINOv2 语义特征+域内 VLAD),室内空间级图库检索的开箱即用基线;同类可选 SelaVPR/CricaVPR,M0 中横向对比后定 |
| 几何验证 | SuperPoint + LightGlue | 过滤误检索(相似货架/重复走廊);单靠全局检索在重复纹理商场是已知失败模式,几何验证是亚米级的必要条件 |
| 精定位 | PnP + RANSAC(对稀疏点云) | 亚米级的来源:2D-3D 对应求解相机位姿;hloc 的 localize_sfm 管线成熟可抄 |
| 置信度 | margin 阈值 + inlier 数 | 拒识("你不在这个空间里")与低置信提示;阈值由 M0 实测分数分布标定 |
3.3 地图数据模型(共享底座)
map_id/
├── splat_model.spz|qply # 3DGS 高斯模型(渲染,压缩格式:spz/量化PLY,非原始PLY)
├── keyframes/ # 关键帧图像 + 内参 + 位姿 (T_wc)
├── points3d.bin # 稀疏点云(PnP 的 3D 锚点)
├── global_descs/ # 全局描述子库(VPR 检索)
├── local_feats/ # 局部特征库(SP 描述子+keypoints)
├── manifest.json # 版本/配置/覆盖度统计/各文件 md5
└── meta/ # 空间名称、楼层、创建时间、缩略图
设计原则:build 一次,检索/定位/渲染三种消费;接口从一开始就参数化(图像目录+坐标输入 → 地图资产包),不与任何特定数据集耦合。
4 · 系统架构(端云分工)
| 层 | 组件 | 技术选型(初判) |
| 端(Android) | 采集模块:相机视频 + 实时质量引导(光照/运动模糊/覆盖提示) | CameraX;Media3 录制;引导逻辑端侧规则 |
| 上传模块:断点续传 + 后台无感 | WorkManager + okhttp 分片(后台上传不驻留高优先通知,用户无感) |
| 预览模块:3DGS 模型渲染 + 定位结果可视化 | 真实候选(已核实存在与维护状态):antimatter15/splat(WebGL,可嵌 WebView)/ mkkellogg/GaussianSplats3D(Three.js 2.9k★)/ 自研 Vulkan;模型格式用压缩格式(Niantic 开源的 spz(比 PLY 小约 10 倍)或量化 PLY/SOG)——数千㎡原始 PLY 端侧下载+内存扛不住;渲染选型验证并入 M1(原排在 M3 太晚) |
| 定位模块:拍照 → 上传 → 展示位姿标记 | CameraX 拍照;结果在 splat 场景上叠加锚点箭头 |
| 云(服务器) | 重建服务:任务队列 + GPU worker | FastAPI + 任务队列(task 持久化+状态轮询+全程日志,重建任务长时间运行的可靠性保障) |
| 定位服务:检索+PnP 推理 API | FastAPI;DINOv2/SP+LG 推理(GPU 按需);单请求 <3s 目标 |
| 存储:地图资产 + 用户数据 | 对象存储(本机/新加坡文件站扩容);Postgres/SQLite 元数据 |
工程纪律:后台任务用户无感(通知仅 IMPORTANCE_MIN)、上传断点续传+分片校验、每阶段留诊断日志、版本号与 CHANGELOG 严格管理、先文档后开发。
5 · 关键风险与对策
| 风险 | 等级 | 对策 |
| 几千㎡ SfM 超时(1h 硬约束) | 高 | 分块增量 SfM(按楼层/走道切块)+ 并行;VGGT 快车道兜底;抽帧策略控制帧数(目标 ≤3000 帧/千㎡) |
| 商场重复纹理(货架/地砖)→ 检索误匹配 | 中 | 几何验证层就是为它设计的;但完全对称/同构场景(相同走廊/货架列)中 PnP+RANSAC 会给出 inlier 充足的高置信错误位姿,margin+inlier 阈值拦不住——产品层默认短视频模式(几秒连拍+时序投票+连续帧解算位姿间平移自洽性校验),单张照片降级为少干扰环境的快捷模式 |
| 端侧 3DGS 渲染性能(中低端机) | 中 | 模型压缩(量化/剪枝致密化);分级 LOD;预览降采样渲染 |
| 动态场景(人流动)污染重建 | 中 | 抽帧时运动物体掩码过滤(SAM/背景差分);多帧一致性检查 |
| 续航/存储(长扫描会话) | 中 | 增量续扫(分段上传分段建图再合并);采集端码率控制 |
| 定位层 GPU 成本(按次推理) | 低 | 描述子库小(单空间级);检索层 CPU 推理可行;GPU 仅特征提取需要,批量 amortize |
| 地图时效:商场陈列/装修/光照漂移 → 定位资产静默失效 | 中 | 地图版本化 + 重访更新:利用新定位请求的查询图自动做地图维护(AR Cloud 成熟做法);manifest 落地"资产新旧度"统计 |
| 多楼层:跨层分块/楼梯衔接/层间尺度统一/垂直定位呈现 | 中 | 地图组织支持楼层分组+层间 Sim3 对齐;呈现载体(纯 3D splat vs 叠加 2D 平面图)待拍板——后者用户可读性高,涉及对齐标定流程,宜早定(见 §7) |
| 隐私与场地合规:商场扫描大量摄入人脸人流 | 高 | 能直接叫停 M2 的前置条件:云端抽帧后重建前批量人脸模糊化 + 物业授权;住宅分享链接需权限模型 |
6 · 里程碑(提案)
| 阶段 | 目标 | 验收 |
| M0 可行性 | 桌面级验证(无 APP,纯管线脚本):①录一段室内视频 → 云端 SfM+3DGS 出模型 → 另拍定位 ②公开大场景室内数据集上实测全管线耗时(1h 硬约束的首次真实检验,同时回答 GPU 规格问题),给出耗时分解预算表:约 3k 帧的 SP+LG 特征提取与匹配是耗时大头,需明确抽帧率、检索引导匹配对上限等预算参数 | 自有数据端到端跑通 + 公开集耗时达标 + 定位误差实测报告(含判据,见下) |
| M1 MVP | 住宅级(<200㎡)全流程 APP:扫描→建图(≤15min)→短视频定位(<3s,短视频为默认模式)+ 端侧渲染选型落地验证 | 自家住宅实测:定位成功率 ≥80% |
| M2 规模化 | 商场级(几千㎡):分块建图 ≤1h + 增量续扫 + 人脸模糊化与物业授权(前置条件) | 真实商场试点:建图达标 + 定位成功率 ≥70% |
| M3 打磨 | 渲染优化/置信度与拒识/分享权限/地图重访更新 | 中端机 30fps 渲染;误定位率 <2% |
| 验收协议(各级适用,v0.3 补):GT 来源=ARCore 位姿回放 / 步量测距 / 激光卷尺控制点(住宅无现成 GT,必须建);误差统计口径=水平误差(含高度另报)中位数 + P90;"成功率"判据=单次定位水平误差 <1m 且通过置信度检查;样本量下限=M1 每空间 ≥100 次定位、M2 ≥300 次。 |
M0 是纯云端管线验证(不带 APP),是所有后续阶段的地基,也是第一个外部/内部 Agent 任务书候选。
7 · 待任务方拍板
| # | 问题 | 影响 |
| 1 | 是否引入 ARCore 作为尺度/IMU/深度来源?(直接决定尺度锚定解法与采集端复杂度——评审认定的第一优先问题) | 尺度、M0 设计、采集端 |
| 2 | 建图统一管线(VGGT/SfM 均只作位姿初值→轻量 BA→3DGS,两档共用下游)是否接受? | 云 worker 复杂度、资产质量一致性 |
| 3 | "图上定位"的呈现载体:纯 3D splat 场景,还是叠加 2D 平面图(后者可读性高但需对齐标定)? | UI/标定流程/采集引导 |
| 4 | 定位精度验收协议(GT 来源=ARCore 回放/步量/控制点)用哪种组合? | 可验收性 |
| 5 | M0 数据:两者都用(公开集 InLoc 验证管线上限 + 自拍住宅/商场验证真实性)是否同意? | M0 启动 |
| 6 | 算力:重建 GPU 租用 vs 已有资源?规格由 M0 耗时实测后定 | 成本模型 |
| 7 | APP 命名与包名(当前代号 IndoorMapper)? | 工程初始化 |
📅 项目时间线
2026-09-05
v0.1 方案稿立项
子域 indoor.sunearthl2.cn 开通;需求拍板(Android/亚米/1h 建图/秒级定位/几十㎡~几千㎡);总体方案成文。待拍板 §7 五问后,M0 可行性任务书起草。
2026-09-05
v0.2 独立化修订
按任务方要求本项目彻底独立:删除全部跨项目引用,技术依据改为自含表述(候选方案+M0 验证定位),删除项目关系章节。领域专家评审启动。
2026-09-05
v0.3 领域专家评审修订
室内 3D 重建+视觉定位领域专家评审 11 条全部采纳(均联网核实事实):①尺度锚定入指标——单目重建 up-to-scale,"亚米级"定义为公制绝对轨迹误差,锚定候选 ARCore IMU/运动基线/场地先验+Sim3 ②建图选型事实修正——全局式 GLOMAP 才是快的(增量式才是超时来源);hloc 无 ASIFT(支持 SP/DISK/D2-Net/SIFT/R2D2);colmap/glomap 仓库已 DEPRECATED ③VGGT 显存二次增长(24GB≈8帧),住宅也须分块前向+Sim3 对齐;两档统一为"位姿初值→轻量 BA→3DGS"保资产质量一致 ④端侧渲染选型改真实候选(antimatter15/splat、GaussianSplats3D),模型格式 spz/量化 PLY,验证并入 M1 ⑤M0 增公开大场景耗时实测+预算表(1h 风险首次检验前移)⑥对称场景 PnP 高置信错误→短视频为默认定位模式 ⑦地图时效:版本化+查询图自动重访更新 ⑧多楼层组织+呈现载体待拍板 ⑨隐私合规升为高风险(人脸模糊化+物业授权为 M2 前置)⑩里程碑验收协议(GT 来源/误差口径/样本量)⑪待拍板重排为 7 问(ARCore 尺度决策升为 Q1)。
💬 留言板(任务方与执行方交互区)
无需注册。单条最多 10000 字,仅保留最新 1000 条。
还没有留言,来抢沙发 🛋️
IndoorMapper · indoor.sunearthl2.cn · 2026-09-05