第12章 - 空间智能技术路线与展望
前十章解决「怎么用、怎么采、怎么算、怎么部署、怎么评测、怎么交付」,这一章只谈判断:同一套需求,为什么有的团队半年上线、有的团队一年半还在做演示?差别多半不是算法水平,而是把四条主线(感知、重建、智能体、部署)的成熟度时钟读错了。下面先摊开四条主线在 2026 年的真实状态,标清哪些能进生产、哪些要带护栏、哪些只能算试点;再给 2027–2028 年的八条趋势判断,每条附触发条件与反例;然后是可直接抄的选型矩阵、两档预算算例、风险清单和分角色的 90 天行动建议,最后把十二章收回成三条学习路线。
学习目标:能说清四条主线各自的技术边界与不可交付项;能对 2027–2028 年的趋势判断逐条给出证据与证伪信号;能按场景抄出技术栈并说出不推荐的理由;能按项目规模估出人力、工期与 GPU 预算;能把风险拆成技术、工程、组织三类并配上触发信号;能为自己的岗位排出未来 90 天的三件事。 前置知识:读完第 01–11 章中与你方向相关的至少五章;参与过至少一个真实项目(哪怕是试点);能读懂 Python 与 TypeScript 片段;对 YOLO 系列、3DGS、MCP 中的两项有基本概念。
12.1 四条主线的 2026 现状
12.1.1 为什么用四条主线切分
空间智能的交付物不是一个模型,而是一条从像素到决策的链路。链路上四段的技术时钟完全不同:感知几年一换代,重建正在从研究品变成商品,智能体的接口标准今年才定形,部署则被硬件节奏推着走。用四条线切分不是为了分类好看,而是为了让滞后可定位——项目延期时,你能指认出到底是「模型换代导致重训」「重建精度不达标」还是「工具契约写不清导致 agent 调错参数」。
┌─────────────┐ ┌─────────────┐ ┌─────────────┐ ┌─────────────┐
│ 感知 │ │ 重建 │ │ 智能体 │ │ 部署 │
│ 像素 → 目标 │───▶│ 影像 → 三维 │───▶│ 意图 → 动作 │───▶│ 模型 → 现场 │
└─────────────┘ └─────────────┘ └─────────────┘ └─────────────┘
换代 2–3 年 商品化 1–2 年 标准刚定形 随硬件走
判断一条主线在你们团队里是否成熟,问三个问题就够:
| 问题 | 回答「是」意味着 | 回答「否」时缺的是什么 |
|---|---|---|
| 能不能被定量验收? | 指标口径、数据集、阈值都已经写进验收单 | 先把验收指标定义清楚,再谈选型 |
| 换一次模型版本,下游要不要重写? | 模型只是可替换组件,接口层与它解耦 | 在感知与业务之间补一层结果归一化 |
| 出了错,责任落在哪一段? | 能定位到感知、重建、工具契约或现场环境 | 补链路 trace 与逐段留证,否则永远扯皮 |
这三问的答案决定预算往哪投。一条经验数据:四条线里只要有一条停在试点级,整条链路都进不了生产——感知漏检会导致重建漏拍,重建缺尺度会让智能体的空间查询算出错误结果,部署没做好运维则把前面所有努力变成每周一次的现场救火。所以本章的现状描述一律带「成熟度」和「可交付边界」两列,而不是只写「支持什么能力」。
12.1.2 感知:端到端检测与概念分割同时到位
2026 年的感知侧发生了两件互不相关、但会同时影响选型的事:检测器把后处理做进了模型(YOLO26 的 NMS-free 端到端推理),分割器把「类」从固定列表换成了自然语言概念(SAM 3 / SAM 3.1 的 Promptable Concept Segmentation,下称 PCS)。前者改的是延迟与部署形态,后者改的是需求变更的成本——客户加一类目标的报价方式完全变了。
旧链路:模型 → NMS → 阈值筛选 → 业务规则 (三段可分别调参,也可分别甩锅)
新链路:模型 → 结果 (端到端,调参集中到一处,可解释性下降)
| 技术(2026 状态) | 关键指标 | 对交付的影响 |
|---|---|---|
| YOLO26(Ultralytics,2026 年发布) | 五个检测尺度 COCO mAP 40.9–57.5;T4 上 TensorRT 延迟 1.7–11.8 ms;YOLO26n 在 Xeon 上的 ONNX 推理比 YOLO11n 快最多约 43% | 推理链里不再需要 NMS;batch 大于 1 才真正有意义 |
| YOLO26 统一任务头 | 检测、实例分割、语义分割、姿态、OBB 五头,另有分类与深度估计 | 同一套权重库覆盖多任务,少维护几条导出流水线 |
| YOLOE-26 | 开放词表变体,可换词表不必重训 | 适合「类别随客户变」的巡检,但要接受精度低于闭集 |
| SAM 3 / SAM 3.1 | 3.1 于 2026-03-27 发布;文本概念或图像 exemplar 一次提示,分割并跟踪图像/视频中该类全部实例;Object Multiplex 在单台 H100、128 目标下相对 2025-11 版本约 7× 加速 | 从「标注工具」升级为「在线分割服务」,视频侧也能用 |
| YOLO27 | 仍是预览,权重未发布 | 2026 年内不要写进交付方案,等权重与部署格式稳定 |
选型规则可以写死成三条:
- 类别固定、延迟死线在 20 ms 以内:用 YOLO26n/s 闭集,配 TensorRT 11.x 的 FP16 引擎,不要引入任何在线大模型。
- 类别随客户改、但又要求实时:两段式——YOLO26 闭集跑主干类别,SAM 3.1 只在触发帧上做兜底分割。用触发帧把大模型调用量压到 1%–5%,成本才可控。
- 离线抽帧做标注或质检:SAM 3.1 加文本提示打伪标签,人工只做复核。这一步能把标注成本压掉一半以上,前提是复核比例不低于 10%。
延迟这件事必须自己量,不能引用论文表格。同一份权重换一次 TensorRT 版本、换一档 batch,数值就能差出 30%:
# 1) 导出 TensorRT 引擎:NMS-free 模型不要手工再加 NMS 插件
yolo export model=yolo26s.pt format=engine half=True imgsz=640 batch=1
# 2) 用 trtexec 量 p50 / p95,不要用 Python 里的 time.time() 循环
trtexec --loadEngine=yolo26s.engine --shapes=images:1x3x640x640 \
--warmUp=500 --duration=10 --avgRuns=200 --percentile=95
# 3) CPU 侧退路用同一份 ONNX 对照,边缘盒子降级时才有的选
trtexec --onnx=yolo26s.onnx --shapes=images:1x3x640x640 --avgRuns=50
命令里的参数名以当前版本的 yolo export --help 与 trtexec --help 为准,TensorRT 11.x 相比 10.x 在动态 shape 与插件注册上有迁移项,照抄旧脚本大概率报错。
12.1.3 重建:3DGS 进可交付,前馈进采集闸门
2026 年的三维重建有两条腿:一条是显式表示 3DGS 的工程化成熟——训练、编辑、发布都有现成工具;另一条是前馈式几何(VGGT 系)把「看到结果」的时间压到分钟级。两条腿踩的地方不一样:3DGS 负责好看和可编辑,前馈负责快和判断采集质量。把两者混为一谈,就会出现「用 VGGT 的位姿直接出量测成果」这种交付事故。
| 环节 | 2026 可选方案 | 成熟度 | 可交付边界 |
|---|---|---|---|
| 稀疏位姿 | COLMAP(稳);VGGT 前馈(快) | 分场景 | 无纹理或重复纹理(玻璃幕墙、整片稻田)时 COLMAP 注册率可能掉到 60% 以下 |
| 训练 | gsplat v1.6.0;brush;原版 INRIA 实现 | 生产可用 | 单场景 3–5 分钟视频、8–16 GB 显存起步 |
| 编辑 | SuperSplat(浏览器内,免费开源) | 可交接 | 去浮点、补洞、裁剪、压缩导出都能做,但要有人懂「该删哪些高斯」 |
| 发布 | Cesium 3D Tiles + 层次 LOD 的 splat tileset;brush 自带 Web 查看器 | 2026 年刚成型 | 城市级必须做 LOD 切分;单文件 ply 超过 1 GB,浏览器基本打不开 |
| 量测 | 需外部控制点加七参数对齐 | 必须带护栏 | 3DGS 本身没有绝对尺度,不能直接当量测成果交付 |
VGGT(Visual Geometry Grounded Transformer)的价值要说准:它前馈一次就输出相机参数、深度图和点图,2026-05-15 修过显存问题后同等显存能跑约 2–3 倍帧数,2026-05-18 又发布了后继 VGGT-Omega;商用 checkpoint(VGGT-1B-Commercial)从 2025-07-29 起需要申请许可。这三条合起来指向一个判断:VGGT 在 2026 年的正确位置是采集质量闸门,不是最终成果。前馈位姿的绝对精度还不足以通过控制点检核,但足够回答「这段视频糊没糊、有没有断、重叠够不够」。
# 采集质量闸门:几分钟内判断这段素材能不能进正式重建
vggt --images frames/ --output vggt_out/ # 输出相机、深度、点图
python tools/check_poses.py vggt_out/ \
--min-overlap 0.6 --max-jitter 0.02 # 自己写的小脚本,阈值按机型标定
# 通过后才进正式链路:COLMAP 出位姿,brush 训 splat
colmap feature_extractor --database_path db.db --image_path frames/ \
--ImageReader.single_camera 1 --SiftExtraction.use_gpu 1
colmap exhaustive_matcher --database_path db.db --SiftMatching.use_gpu 1
colmap mapper --database_path db.db --image_path frames/ --output_path sparse/
brush frames/ --output splat/ --total-steps 30000
这条链路里最容易被跳过、但代价最大的一步是 check_poses.py 那道闸门。跳过它的后果是:你在 GPU 上跑完两小时训练,导出的场景才发现有两段轨道没接上,重拍的成本远高于那几分钟的检查。
splat 的「可交付」在 2026 年还有一个新前提:Cesium 在 2026-04 发布了 3D Tiles 加层次 LOD 的 3D Gaussian Splats 方案,CesiumJS 1.147(2026-11)能加载带 LOD 的 splat tileset。这让 splat 从「单文件浏览」变成「可瓦片化加载」,是它进入城市级底座的门槛性变化。但工具链还没统一:ply 到 tileset 的切分、坐标系对齐、属性挂接都要自己验证,别指望一条开源命令全包。
给重建定一条硬线,交付形态就清楚了:能不能量测,决定交付物是「视觉参考」还是「测绘成果」。不能量测的,交付时写清「视觉参考,量测需另配控制点网络」;能量测的,必须附控制点残差报告(中误差指标按项目约定,常见是 3–5 cm),并把控制点坐标文件写进验收单——否则三个月后没人能复现你的精度结论。
12.1.4 智能体:MCP 定形之后,瓶颈是工具描述
2026 年智能体侧最重要的变化不是模型变强,而是接口定形:MCP(Model Context Protocol)按 2026-07-28 规范收敛为 stateless 核心加 Streamable HTTP 传输,用协议版本头协商能力,能力面是 tools / resources / prompts,另有一条 MCP Apps 方向;旧的 HTTP+SSE 传输属于过渡形态。协议层解决的是「怎么发现能力、怎么传参、怎么回错误」,不解决「这个工具到底该长什么样」。
GIS 场景里,agent 调错工具的原因九成不是模型笨,而是工具描述不合格。四条合格线:
| 要求 | 不合格的写法 | 合格的写法 |
|---|---|---|
| 参数无歧义 | queryLayer(name) 只说图层名 |
同时要求 bbox、CRS、时间窗,缺一即报错 |
| 返回值稳定 | 直接返回整张要素表 | 返回要素数、几何摘要、分页游标、单位与 CRS |
| 读写分离 | 一个工具既能查又能改 | 查询只读;写操作单独工具并加确认参数 |
| 错误可解释 | 抛出堆栈 | 返回机器可读的错误码加人类可读的一句话原因 |
# 探一个 MCP 服务的工具面:initialize 之后先 tools/list,再决定接哪几个工具
curl -s http://127.0.0.1:8000/mcp \
-H 'Content-Type: application/json' \
-H 'Accept: application/json, text/event-stream' \
-H 'MCP-Protocol-Version: 2026-07-28' \
-d '{"jsonrpc":"2.0","id":1,"method":"initialize","params":{"capabilities":{},"clientInfo":{"name":"kjzn-probe","version":"0.1.0"}}}'
curl -s http://127.0.0.1:8000/mcp \
-H 'Content-Type: application/json' \
-H 'Accept: application/json, text/event-stream' \
-H 'MCP-Protocol-Version: 2026-07-28' \
-d '{"jsonrpc":"2.0","id":2,"method":"tools/list","params":{}}'
这段 curl 是排查时的第一道工具:能把 initialize 与 tools/list 跑通,说明传输与版本协商没问题,剩下的就是工具设计问题。注意 Accept 头要同时带 application/json 和 text/event-stream,只带其一会返回 406;协议版本头缺失或与服务器不一致时,服务方应回明确的错误而不是静默降级——这条也是验收项。
12.1.5 部署:端上算力上台阶,瓶颈移到运维
2026 年的边缘侧有一个反直觉现象:算力涨得比模型涨得快。NVIDIA Jetson Thor 配 JetPack 7.x(7.2.x)成为高端档,取代 Orin 家族;Orin Nano / NX / AGX 仍在售、且是存量项目的主力。TensorRT 11.x 在 Jetson 侧有明确的 10.x → 11.x 迁移指南,ONNX → engine、FP16 / INT8、动态 shape 仍是标准流程;服务侧的 vLLM 支持多模态模型与 OpenAI 兼容接口,量化(AWQ / GPTQ / INT4)加批处理已是常态。结论是:「模型跑不跑得动」不再是主要矛盾,「模型换了现场能不能自愈」才是。
| 部署档位 | 典型硬件 | 负载 | 真正的约束 |
|---|---|---|---|
| 端上实时 | Orin NX / AGX(存量)、Thor(新增) | 1–4 路 1080p 闭集检测,端到端 15–40 ms | 散热与功耗预算先于算力成为瓶颈;INT8 校准集要覆盖现场光照 |
| 边缘汇聚 | 带 GPU 的工控机或边缘服务器 | 多路重跑、伪标签、splat 预训练 | 上行带宽决定回传策略,别假设 4G 私有化图传能扛原始视频 |
| 云端 | 训练与批量推理 | 训练、批量重建、评测回归 | 成本按卡时算,评测集反复跑往往是最大开销 |
DJI 上云 API 2(2026,免费 License、不限设备台数)之所以值得单列,不是因为它的协议更先进,而是它把运维面做成了可编程接口:设备模拟器、远程调试与操控、日志、媒体管理、模型重建、4G 私有化增强图传都在 PaaS 里,还给了 AI Plugin 与 AI Coding 脚手架。相比之下,v1.x(含 v1.10.0)仍是大量存量项目的协议基线——MQTT 加 HTTPS 混合,主题形如 thing/product/{gateway_sn}/osd|state|events|services/…。新项目优先上云 API 2,存量项目按 v1.x 维护,这个判断在 2027 年之前不会变。
# 边缘侧的最小自愈:健康检查失败就回滚到上一版引擎
set -euo pipefail
MODEL_DIR=/opt/models
CUR=$(cat "$MODEL_DIR/current")
if ! docker exec infer python /app/healthcheck.py; then
PREV=$(cat "$MODEL_DIR/previous")
echo "rollback: $CUR -> $PREV"
cp "$MODEL_DIR/$PREV.engine" "$MODEL_DIR/active.engine"
systemctl restart infer
fi
这段脚本只有十几行,却比换一块更贵的板子更能提升可用性。边缘项目最常见的故障不是模型精度掉了,而是某次远程升级后服务没起来、而现场没人会回滚——等到第二天运维爬塔,损失已经发生。
12.1.6 四条主线的技术 → 成熟度 → 可交付边界
把四节内容压成一张表。成熟度分四级:L4 生产默认(换版本不必重写下游)、L3 生产可用需护栏(要监控、要回滚预案)、L2 试点(有成功案例但失败率高)、L1 观察(论文与 demo 阶段)。
| 主线 | 代表技术(2026) | 成熟度 | 可交付 | 不可交付,或必须写进前置条件 |
|---|---|---|---|---|
| 感知 | YOLO26 端到端;YOLOE-26;SAM 3.1 | L4(闭集)/ L3(开放词表) | 固定类别实时检测、概念分割打伪标签、视频侧多目标跟踪 | 无标注冷启动的开放词表高精度检测;跨域零样本直接上线 |
| 重建 | COLMAP 加 gsplat / brush;VGGT 做闸门;Cesium splat LOD | L3(单场景)/ L2(城市级) | 带控制点的视觉三维、可编辑场景、LOD 瓦片发布 | 无控制点的量测成果;大范围自动 LOD 切分 |
| 智能体 | MCP 2026-07-28;工具化 GIS | L3 | 查询、统计、报表、多步分析(写操作带人工确认) | 无确认的写操作;跨库事务;开放性选址决策 |
| 部署 | Jetson Thor / JetPack 7.x;TensorRT 11.x;vLLM | L4(端上推理)/ L3(端云协同) | 端上实时推理、云上重跑与评测、批量重建 | 全自动无人值守运维;纯离线多模态大模型 |
这张表里最有用的是最后一列。投标时把「不可交付」改写成「交付前置条件」——比如「量测成果需甲方提供不少于 6 个控制点,残差中误差按 5 cm 验收」——后面能省掉八成扯皮。反过来,如果方案里只写第一列的技术名,评标时看不出差别,交付时却要按最后一列的边界买单。
12.1.7 这一节的四个坑
- 拿榜单指标当现场指标:YOLO26 的 COCO mAP 40.9–57.5 是在通用数据集上测的;巡检小目标要先切图,切图后的 mAP 与现场查全率是两套数,验收必须用现场抽检集。
- 用旧版导出经验套 NMS-free 模型:阈值语义、batch 行为、INT8 校准集全变了,照抄 YOLOv8 时代的脚本,精度掉 5 个点都算轻的。
- 把 3DGS 当量测成果:无尺度、无绝对精度,必须配控制点与残差报告;只交付 ply 文件的项目,验收阶段一定要出事。
- 以为接了 MCP 就「打通了」:协议只解决传输与能力发现,工具描述、失败重试、写操作确认仍要自己设计,这部分工作量通常占整个智能体项目的一半。
12.2 趋势判断(2027–2028)
趋势判断有个标准写法:结论 + 证据 + 触发条件 + 反例。缺了后两条就退化成口号,而口号在立项会上最容易通过、在验收时最容易翻车。下面八条判断我都给出会在什么信号出现时承认判错,这样读者可以拿未来 18 个月的事实来对我们的判断记账。
这里不做时间点承诺。凡是写「2027 年一定如何」的,多数是在卖东西;本节只写方向、触发条件与可观测的先行指标。
12.2.1 判断一:端到端推理成为默认,后处理退到配置层
结论:到 2028 年,主流视觉推理链的默认形态是「模型直接出结果」,NMS、阈值筛选、规则后处理不再是代码的一部分,而是配置文件里的一组参数。
证据:YOLO26 把 NMS 从推理链里去掉,同时用统一头覆盖检测、实例分割、语义分割、姿态、OBB 五种任务;TensorRT 11.x 在动态 shape 与插件注册上的改进,让「一份 ONNX 导出多档引擎」比过去省事。这两件事叠起来,后处理从「必须写的代码」变成了「可以关掉的开关」。
触发条件:主流检测框架的下一版继续以「NMS-free + 多任务头」为默认;量化工具把边缘侧 INT8 的精度损失吸收进校准流程,不再需要手工补偿后处理。
反例:如果垂直场景的验收指标仍依赖可解释的后处理(例如电力金具巡检要求能按框级 NMS 参数回溯每一次误检,作为质量追溯的一部分),后处理会留在合规链路里,端到端只做预筛。判断在这种情况下只对一半。
含义:现在就该把阈值与后处理参数从代码搬进配置文件,并按数据集版本做版本管理。等趋势兑现时,这项改造成本已经变成历史包袱。
12.2.2 判断二:概念分割吃掉一部分闭集检测的活,但不是全部
结论:2028 年之前,「加一类目标」的标准做法会从「采数据 + 重训 + 重新验收」变成「改一句提示 + 抽样复核」,但闭集检测不会被取代,只是退回它擅长的位置。
证据:SAM 3 / SAM 3.1 的 PCS 用文本概念或图像 exemplar 一次提示,就分割并跟踪该类全部实例;3.1 的 Object Multiplex 把多目标视频处理压到单台 H100、128 目标相对 2025-11 版约 7× 加速。成本结构一变,需求变更的报价模型就得跟着变。
触发条件:客户对新增类别的容忍周期从「按季度」压到「按周」,或者类别长尾超过 30 类、其中一半是低频类。
反例:要求 20 ms 内出结果、或者类别定义本身就是有国标编号的闭集(按标准图式分类的地物)时,闭集检测仍是主路径;几十像素的极小子目标也是,PCS 的召回还不稳,切图加闭集更靠谱。这两类场景在低空巡检与基础测绘里占比不低。
含义:报价模型要改。以前「加一类」报重训成本,之后报「提示工程 + 抽样复核」成本,后者毛利更高但更难写进验收单——因为甲方看不见交付物的变化。
12.2.3 判断三:splat 成为三维底座的一等公民
结论:3DGS 系表示会从「炫技成果」变成三维底座的默认背景层,与矢量层、实体模型层并列,并具备瓦片化加载能力。
证据:Cesium 在 2026-04 发布了 3D Tiles 加层次 LOD 的 3D Gaussian Splats 方案,CesiumJS 1.147(2026-11)可加载带 LOD 的 splat tileset;3D Tiles 1.1 的 metadata 与隐式瓦片提供了挂接属性与按需加载的机制;brush(Rust + WebGPU / Burn,跨平台单二进制)与 SuperSplat(浏览器内免费开源编辑器)把训练与编辑的门槛压到「会用浏览器」。
触发条件:splat 瓦片的生产工具链出现事实标准——谁做切分、属性怎么挂、坐标怎么对齐都有约定,且至少两家主流三维平台能直接消费而不需要自己写转换器。
反例:验收要求「可量测的实体模型」(BIM 级别的属性与拓扑)时,splat 只能当背景,主体仍是 Mesh;强反射、透明、大面积镜面的场景,splat 的视觉优势在量测需求面前没有意义。这两类反例在建筑与工业场景里很常见。
含义:现在设计三维底座,就按「splat 层 + 矢量层 + 模型层」三层来留结构,别把 splat 当成唯一的三维表达。这条在 12.3 的选型矩阵里会展开成具体的技术栈。
12.2.4 判断四:MCP 成为工具接口事实标准,GIS 服务被「工具化」重写
结论:到 2028 年,GIS 平台对外暴露能力的主要形态会是「一组 MCP 工具」,而不是「一套 REST 文档 + 一份 SDK」。REST 不会消失,但会被压到工具层下面,用户(包括 agent)看到的是工具契约。
证据:MCP 2026-07-28 规范把核心收敛为 stateless 加 Streamable HTTP 传输,用协议版本头协商,能力面固定为 tools / resources / prompts,同时给出 MCP Apps 方向;旧版 HTTP+SSE 被明确为过渡形态。规范一旦稳定,服务端实现成本就从「研究怎么接」变成「照规范写」。GIS 侧的需求端也已经成熟:一张图类项目的自然语言入口,本质就是把空间查询、统计、出图包装成工具。
触发条件:至少两家主流 GIS 或云厂商提供官方 MCP server,且工具描述出现约定俗成的字段(bbox、CRS、时间窗、分页游标),甲方开始把「是否支持 MCP」写进需求清单。
反例:强事务类操作——多要素编辑、拓扑校验、版本化提交——在 agent 里做不稳,仍要留在传统客户端或人工审核工作台上。内网环境里,stdio 方式启动的本地 server 往往比远程 HTTP 更现实,这会削弱「MCP 即服务」的形态,但不影响协议本身。
含义:平台团队今年该做的不是重写服务,而是把现有 REST 接口改造成合格工具:补全参数、补全错误码、把写操作拆出去并加确认参数。工作量集中在「契约设计」,不在「协议接入」。
12.2.5 判断五:评测与合规成为采购硬门槛
结论:2027 年起,空间智能项目的招标文件里会普遍出现两条硬要求:模型版本可冻结、评测集随合同交付。没有可复现评测的供应商,会先被技术标刷掉,再谈价格。
证据:实景三维中国已进入「十五五」提质增效阶段,国省市县协同建设,全国 DEM 在东部与西部重点区域优于 2 m 格网、其余优于 5 m 格网,重要地理实体年度增量更新——这套质量口径一旦落到项目验收,就会顺着传导到 AI 环节。低空侧也一样:国家电网 2026 年首批无人机巡检框架采购 18.3 亿元(大疆行业应用中标的公开披露口径),这种体量的框架采购必然配套统一的数据与评测规范。
触发条件:出现「验收时按同一评测集重跑、结果须与交付报告一致」的条款,或者甲方要求提供推理链路的版本快照(权重、引擎、预处理参数三者哈希)。
反例:预算低于五十万的小项目仍会沿用「功能演示 + 人工抽检」的老办法,因为构建评测集的成本高于项目毛利。这类项目不会消失,但会越来越集中在标准化程度高的轻量场景。
含义:把评测集当交付物管理——版本号、标注规范、判据、复现脚本四件套齐备。第 10 章的评测方法、第 11 章的验收流程在这里合并成一条产品线能力,而不是两次性的项目动作。
12.2.6 判断六:边缘从「够用」转向「多模态常驻」
结论:边缘设备的负载会从「跑一个检测模型」变成「常驻一个多模态小模型 + 若干专用模型」,端云分工从「端上推理、云上训练」变成「端上预筛、云上复核」。
证据:Jetson Thor 配 JetPack 7.x(7.2.x)把高端档算力抬了一档,Orin 家族仍在存量项目里服役;TensorRT 11.x 有明确的 10.x → 11.x 迁移路径;服务侧 vLLM 支持多模态模型与 OpenAI 兼容接口,量化方案(AWQ / GPTQ / INT4)成熟。硬件与推理栈两边同时到位,多模态才有资格「常驻」。
触发条件:现场需求从「框出缺陷」升级为「用一句话解释这是什么缺陷、按规程该定几级」,且网络条件不允许把视频流稳定回传。
反例:功耗与载荷受限的机载场景(几百克载荷、电池供电)仍然只能跑闭集小模型,散热与供电决定上限,多模态要等下一代平台。判断在这种场景下会晚 1–2 年兑现。
含义:端云接口要按「预筛结果 + 关键帧 + 置信度」设计,而不是按「原始视频流」设计。按 token 计费思维估成本——把「每帧都问一次大模型」改成「只问触发帧」,成本差两个数量级。
12.2.7 判断七:微调从「训模型」转向「训适配层」
结论:2028 年之前,多数项目里的「微调」会变成「冻结主干 + 训适配层」(LoRA、prompt、decoder),全参微调收缩到两类场景:领域先验差异极大,或基座不再更新。
证据:SAM 3 的官方微调路线本身就是「冻结视觉编码器 + 训 prompt / decoder」或 LoRA;Qwen3-VL 的 2B / 4B 小模型可单卡部署,社区框架(ms-swift、LLaMA-Factory)把这条路径做成了流水线;VGGT 的商用 checkpoint(VGGT-1B-Commercial,2025-07-29 起)需要申请,许可约束反过来推动团队只训适配层、不动主干。
触发条件:基座模型的迭代周期短于项目交付周期(半年一换),并且换基座后适配层能在两周内重训完成。
反例:专业符号识别、遥感波段组合、特殊几何先验这类任务,冻结主干的表达能力不够,全参微调反而更省事——少一层抽象就少一处 bug。判断在这类任务上会偏保守。
含义:项目预算里要单列一条「基座升级重适配」,按初版微调成本的 20%–30% 预留。没留这条预算的团队,会在第二年发现自己的模型锁死在一个过期基座上。
12.2.8 判断八:数据资产比模型更稀缺
结论:未来两年,决定项目天花板的不是「有没有用上最新的模型」,而是「有没有可持续的采集与标注资产」。模型会商品化,数据集不会。
证据:实景三维中国的年度增量更新说明基础测绘数据在变成持续供给,而不是一次性成果;3DGS 的成品质量几乎完全由采集质量决定(第 06 章的采集规则比训练参数更影响结果);SAM 3.1 打伪标签能降标注成本,但复核环节仍然需要懂业务的人。
触发条件:同一个模型换到新区域后掉点超过 15%(域偏移),而补一批本地数据的效果好于再训一版模型。
反例:通用能力已经外溢到目标场景、零样本可用时,数据资产的价值下降——这在文本类任务上已经发生,空间任务上还没发生,因为空间任务对几何与坐标的精确性要求更高。
含义:把标注规范、采集规范、控制点库当资产经营:有版本、有负责人、有复用记录。这三样东西比权重更保值,也是团队换人时唯一能留下来的东西。
12.2.9 八条判断的先行指标与证伪信号
判断要能被记账,就得提前写下「看到什么就承认错了」。下表可直接抄进项目周报的技术雷达页:
| 判断 | 2027 年内可观测的先行指标 | 证伪信号(看到就改判断) |
|---|---|---|
| 端到端成为默认 | 主流框架新版本默认关闭后处理;量化工具吸收后处理补偿 | 头部项目仍为可解释性保留 NMS,且写进合规条款 |
| 概念分割吃掉部分闭集 | 「加一类」的报价周期从季度压到周 | 长尾类别上 PCS 的召回仍低于闭集 10 个点以上 |
| splat 成为底座一等公民 | 两家以上平台直接消费 splat tileset 不需转换器 | 瓦片生产工具链仍各家一套,甲方只接受 Mesh |
| MCP 成为工具标准 | 主流 GIS 平台发布官方 MCP server | 大厂各自推私有工具协议,且互不兼容 |
| 评测成为采购门槛 | 招标文件出现模型版本冻结条款 | 评测集仍由供应商自定、甲方不复跑 |
| 边缘多模态常驻 | 单台边缘设备同时跑检测与视觉问答的量产案例出现 | 机载场景仍受功耗限制,端上只跑闭集 |
| 微调转向适配层 | 适配层重训周期进入两周以内 | 新基座仍需全参微调才能达标 |
| 数据资产更稀缺 | 数据采购与标注预算占比超过模型预算 | 通用模型零样本在新区域已达标 |
记账方式建议落到一个文件里,别放在脑子里:
# judgment-ledger.yaml —— 每季度复核一次,改判断要写明理由
- id: T1
claim: 端到端推理成为默认
signal: 主流框架新版本默认关闭 NMS 后处理
falsifier: 头部项目为合规保留 NMS 并写入验收条款
check_by: 2027-06
- id: T4
claim: MCP 成为 GIS 工具接口事实标准
signal: 两家以上主流 GIS 平台发布官方 MCP server
falsifier: 各平台私有工具协议互不兼容
check_by: 2027-12
12.2.10 这一节的四个坑
- 把趋势当排期:趋势只说明方向,不说明你所在项目的交付窗口。用趋势去说服甲方接受一个还没成熟的方案,是把判断力变成风险。
- 只写结论不写反例:没有证伪信号的判断无法复盘,团队会陷入「我说过会这样」的事后解释。每条判断都要预先写下「看到什么我认错」。
- 用单一指标代表趋势:只看某篇论文的指标就断言「闭集检测要死了」,忽略了工程约束(延迟、功耗、可解释性)。趋势判断至少要两个独立信号同向。
- 忽略存量:判断新项目该用什么,不等于存量项目要立刻迁移。存量迁移的成本常常高于收益,尤其是边缘设备的现场运维成本。
12.3 选型矩阵
选型这件事的失败方式高度雷同:先选了一个「先进」的技术,再倒推需求去适配它。正确的顺序反过来——先写清交付物与验收方式,再倒推技术栈,最后用「不推荐清单」砍掉看着诱人但不合场景的选项。
12.3.1 选型原则:四条否决线
在进入具体场景之前,先过四条否决线。任何一条不通过,后面的技术比较都没有意义:
| 否决线 | 判据 | 不通过时的典型症状 |
|---|---|---|
| 许可可用 | 权重与代码许可允许商用,且不要求开源你的下游 | 上线三个月后收到律师函,或被迫重训 |
| 数据可得 | 训练与评测数据能合法获取,且能持续更新 | 试点效果很好,扩区域时无数据可用 |
| 运维可行 | 现场有人能重启、回滚、换模型,或能远程做到 | 一次升级失败导致整条产线停摆 |
| 验收可写 | 指标能写进合同,且双方对口径无歧义 | 验收会上反复争论「这个算不算检出」 |
四条线里最容易被跳过的是「运维可行」。算法团队评估时默认「有问题远程连上去看」,而现场的真实约束是「塔上设备两个月才有人上去一次」。
12.3.2 五类场景的总表
| 场景 | 推荐技术栈 | 明确不推荐 | 不推荐的理由 |
|---|---|---|---|
| 低空巡检 | YOLO26 闭集 + 切图小目标;SAM 3.1 兜底;上云 API 2 编排 | 端上直接跑多模态大模型 | 机载功耗与载荷不允许,且延迟不可控 |
| 一张图智能体 | MCP 工具层 + 意图路由 + 只读优先 | 让模型直接生成 SQL 打库 | 越权、慢查询、无法解释,事故成本极高 |
| 三维重建 | COLMAP / VGGT 闸门 + gsplat / brush + Cesium splat LOD | 单文件 ply 直传浏览器 | 体积超 1 GB 就打不开,城市级更是无解 |
| 自动驾驶仿真 | CARLA(UE5 版本)+ 合成数据闭环 + YOLO 导航线 | 纯真实数据堆规模 | 长尾场景采不到,仿真才是长尾的来源 |
| 多模态微调 | Qwen3-VL 2B/4B + LoRA;SAM 3.1 冻结主干训 decoder | 从零预训练 | 数据量与算力都不在同一个量级 |
12.3.3 低空巡检:先保实时,再谈智能
巡检项目的硬约束是「同一段航线要重复飞几百次」,所以技术栈的第一目标是稳定与可复现,不是精度上限。
推荐组合:机上或机场侧跑 YOLO26 闭集(类别固定、指标明确),对疑似目标做二次抓拍并回传关键帧;云端用 SAM 3.1 对关键帧做概念分割复核,把「疑似」升级为「确认」。编排走上云 API 2(新项目)或 v1.x(存量),直播与远程调试用它自带的通道,别自己造。
不推荐在机载端跑多模态大模型,理由不是「跑不动」,而是「不可控」:一次推理 300 ms 会让航线速度必须降下来,而巡检的架次成本主要由飞行时间决定。要上多模态,放在机场侧或地面站。
航线规划 ─▶ 机上闭集检测(≤20 ms) ─▶ 触发抓拍 ─▶ 回传关键帧
│
报告生成 ◀─ 缺陷定级(规则表) ◀─ 云端复核(SAM 3.1)◀┘
12.3.4 一张图智能体:先把只读做到稳,再开放写操作
一张图类项目的用户不是算法工程师,是坐窗口的业务人员。这决定了选型的第一原则:宁可少一个功能,不可多一次胡说。所有查询必须能落回「哪个图层、什么范围、什么时间」这三个要素,回答里带不出来,就不算可用。
| 层 | 职责 | 推荐选型 | 理由 |
|---|---|---|---|
| 入口 | 自然语言与快捷指令 | 意图路由(规则加小模型分类) | 纯大模型路由在长尾问法上不稳定,规则能兜住高频 20% |
| 工具层 | 空间查询、统计、出图、定位 | MCP tools(2026-07-28 规范) | 接口标准化,换模型不动工具 |
| 数据层 | 矢量、栅格、瓦片 | PostGIS 3.7.0 + GeoServer 3.0.x + 瓦片缓存 | 成熟、可审计、权限能落到库级 |
| 渲染层 | 图层联动、图例、标注 | MapLibre GL JS 或 OpenLayers 10.x | 开源无 token 依赖,便于内网部署 |
| 审计 | 每次问答留证 | 请求、工具调用、SQL、返回要素 ID 全量落库 | 出问题能复现,是政务项目验收的隐性要求 |
不推荐的一条:让模型直接生成 SQL 打库。理由有三层——越权(模型不知道行级权限)、慢查询(一次全表扫描就能拖垮共享库)、不可解释(出了错无法定位是模型还是数据)。正确的做法是模型只选工具与填参数,SQL 由工具内部用参数化查询拼装,参数范围在工具层校验。
工具描述写成这样才算合格:
{
"name": "query_features_in_bbox",
"description": "按经纬度范围查询指定图层的要素。只读。返回要素数与分页游标,不返回完整几何。",
"inputSchema": {
"type": "object",
"required": ["layer", "bbox", "crs"],
"properties": {
"layer": { "type": "string", "description": "图层编码,取值见图层清单" },
"bbox": { "type": "array", "items": { "type": "number" }, "minItems": 4, "maxItems": 4,
"description": "minX,minY,maxX,maxY,顺序不可颠倒" },
"crs": { "type": "string", "enum": ["EPSG:4326", "EPSG:4490"], "description": "bbox 的坐标系" },
"timeWindow": { "type": "string", "description": "可选,ISO 8601 区间;不传表示不过滤时间" },
"cursor": { "type": "string", "description": "分页游标,首次调用不传" }
}
}
}
三个细节值得单说。第一,required 里包含 crs——不写坐标系,模型就会默认 WGS84,而政务数据常用 CGCS2000(EPSG:4490),差出几百米。第二,bbox 顺序写死在描述里,不要指望模型记住「经度在前」这类隐含约定。第三,返回分页游标,别一次吐一万个要素——那会撑爆上下文,也会让响应时间不可控。
响应时间预算提前定好,否则验收时没法谈:意图路由 ≤ 300 ms,工具执行 ≤ 3 s,模型生成 ≤ 5 s,端到端目标 8 s 内首屏可用。超过这条线的功能,先砍功能再谈优化。
12.3.5 三维重建:先回答「要不要量测」
三维重建的选型只有一个分叉口:交付物要不要量测。要,就走控制点 + Mesh / 点云的测绘路线;不要,就走 splat 的视觉路线。两条路线的工具、精度口径、验收方式完全不同,混着做必然返工。
┌── 要量测 ──▶ 控制点 + 7 参数对齐 ──▶ Mesh / 点云 + 残差报告
交付物是什么? ────┤
└── 不量测 ──▶ splat(算视觉底座) ──▶ 3D Tiles + LOD 瓦片
| 规模 | 推荐方案 | 单机资源 | 交付格式 |
|---|---|---|---|
| 单体建筑 / 设备(1–3 分钟视频) | brush 训练 + SuperSplat 清理 | 8–16 GB 显存,分钟级 | ply / compressed.ply + 网页查看器 |
| 园区 / 街区(10–30 分钟素材) | COLMAP 位姿 + gsplat 多卡 + splat LOD 切分 | 24 GB 显存,小时级 | 3D Tiles splat tileset |
| 城市级(数十平方公里) | 分块采集 + 逐块重建 + 统一坐标拼接 | 多机并行,天级 | 3D Tiles 1.1(含隐式瓦片与 metadata) |
城市级最容易犯的错是「一次训练出全城」。显存与训练时间都会爆,而且单点误差会污染整块。正确做法是分块:按 500 m × 500 m 或按航线架次切,块内独立重建,再用控制点把每块拉到统一坐标系,最后按 3D Tiles 的瓦片结构组织。目录约定如下,越早定越好:
tileset/
├── tileset.json # 根瓦片,含 boundingVolume 与 geometricError
├── block_000_000/
│ ├── tileset.json # 块级 LOD 链
│ ├── L0.ply # 低精度(远景)
│ └── L2.ply # 高精度(近景)
└── block_000_001/
└── ...
一个必须写进合同的参数是 geometricError:它决定每级 LOD 在什么距离切换。设得太小,浏览器会疯狂请求高精度瓦片;设得太大,近景会糊成一片。经验起点是块尺度的 1/20,再按实测的加载耗时调。
12.3.6 自动驾驶仿真:仿真不是奢侈品,是长尾的唯一来源
自动驾驶与低速无人车的项目里,真实数据永远覆盖不到长尾:突然横穿的行人、逆光下的施工围挡、被雪盖住的车道线。仿真的价值就在这里——不是替代实车,而是定向生成实车采不到的样本。
| 需求 | 推荐 | 不推荐 | 理由 |
|---|---|---|---|
| 场景与天气生成 | CARLA(UE5 版本,版本以官方 CHANGELOG 为准) | 纯真实数据堆规模 | 长尾场景采不到,规模再大也覆盖不了 |
| 地理环境底图 | Cesium 加实景三维 / 倾斜摄影 | 手搭贴图 | 地理坐标与坡度不对,导航线训练的迁移性会很差 |
| 导航线生成 | YOLO 系列分割出可行驶区域再拟合 | 传统边缘检测 | 光照与阴影一变化就崩,维护成本高 |
| 场景重建 | 3DGS 重建真实路口后导入仿真 | 逐个手工建模 | 手工建模的视觉域差太大,合成数据迁移效果打折 |
| 数据闭环 | 仿真生成 + 实车抽检 + 难例回流 | 只做仿真不回归 | 仿真过拟合,实车必掉点 |
一条判断:仿真里程与实车里程的比例,按 10:1 到 50:1 配置比较健康。低于 10:1,长尾覆盖不足;高于 50:1,团队会陷入「仿真刷分、实车翻车」的循环。这个比例不是行业标准,是从第 05 章那套导航线任务里试出来的经验值,换任务要重标。
12.3.7 多模态微调:小模型 + 适配层是默认答案
微调项目的选型可以按三步走:先问「基座能不能直接提示出来」,能就别微调;再问「能不能只训适配层」,能就别全参;最后才问「要不要换基座或从零训」。
| 选项 | 数据量级 | 算力 | 适用条件 |
|---|---|---|---|
| 提示工程 | 0–50 条示例 | 无 | 任务边界清晰、输出格式稳定 |
| LoRA / 适配层 | 2k–10k 条高质量样本 | 单卡 24–80 GB | 领域术语、固定输出格式、需要稳定风格 |
| 全参微调 | 50k 条以上 | 多卡 | 领域先验与基座差异极大 |
| 从零预训练 | 百万级 | 集群 | 几乎不适用于项目交付 |
对 GIS 场景,推荐 Qwen3-VL 的 2B / 4B 这一档:单卡可部署、显存友好、社区框架(ms-swift、LLaMA-Factory)支持完善。分割侧的微调走 SAM 3 的官方路线——冻结视觉编码器,只训 prompt / decoder,或用 LoRA。训练配置留个可复现的骨架:
# lora-sft.yaml —— 数值是起点,不是最优;按验证集曲线调
model: Qwen3-VL-4B
method: lora
lora_rank: 16
lora_alpha: 32
target_modules: [q_proj, k_proj, v_proj, o_proj]
learning_rate: 1.0e-4
num_epochs: 3
batch_size: 4
grad_accum: 4
max_length: 2048
dataloader: 领域样本 8k 条,按 8:1:1 切分训练/验证/留出
两个经验数字:2k 条高质量样本的效果通常好于 20k 条噪声样本;留出集必须包含至少 15% 的「现场难例」,否则微调后的模型在真实场景里会掉点。这两个数字来自第 07 章的实验记录,换任务要重新标定,别当常数用。
12.3.8 场景选型的抄作业清单
把五类场景压成一张可以贴在工位上的检查表。评审方案时按行打勾,任何一行打不了勾就退回改:
[ ] 交付物是什么?视觉参考 / 可量测成果 / 决策建议 / 自动化动作
[ ] 验收指标是什么?口径、数据集、阈值、抽检比例四项是否写死
[ ] 基座与权重许可允许商用吗?下游要开源吗?
[ ] 数据从哪来、能不能持续更新、标注规范谁维护
[ ] 现场有人能回滚吗?升级失败的平均恢复时间是多少
[ ] 端到端延迟预算是多少?哪一段超了就砍功能
[ ] 写操作有确认与审计吗?出事后能不能复现
[ ] 评测集是不是交付物的一部分?复现脚本在哪
12.3.9 一次选型评审会怎么开
选型的结果通常不是一个人定的,但评审会常常开成技术分享会:讲了四十分钟的模型对比,最后没人说清「选哪个、为什么、什么时候会反悔」。下面这套议程是压缩版,40 分钟出决议。
| 时间 | 环节 | 产出 | 主讲 |
|---|---|---|---|
| 0–5 分钟 | 交付物与验收口径 | 一句话说清交付什么、怎么算验收通过 | 需求方 |
| 5–15 分钟 | 候选栈与不推荐项 | 两个候选、各一条不推荐理由 | 技术负责人 |
| 15–25 分钟 | 四条否决线过检 | 许可、数据、运维、验收四行结论 | 各归口 |
| 25–35 分钟 | 预算与风险兜底 | 预算量级、三条主要风险与兜底动作 | 项目经理 |
| 35–40 分钟 | 决议 | 做 / 不做 / 换方案,加一个复核日期 | 全体 |
三条会议纪律,比议程本身更重要:
- 不在评审会上比精度。精度是评测集的事,评审会比的是「约束是否满足」。要比精度,提前一周把评测报告发出来。
- 不接受「再看看」当决议。要么定方案加复核日期,要么明确否决并写下否决理由。
- 记录反对意见与条件。「在有进口替代要求时改用国产模型」这类条件,比一句「大家同意」有用得多。
一页纸的模板可以直接抄:
【交付物】____________________________________________
【验收】指标 / 数据集 / 阈值 / 抽检比例 = ____________
【技术栈】候选 A = ______ 候选 B = ______
【不推荐】______,理由(延迟/许可/运维/精度):______
【否决线】许可 __ 数据 __ 运维 __ 验收 __(打勾或不通过)
【预算】人力 __ 人周 / GPU __ 卡时 / 外采 __ 元,合计 ____
【三大风险】1.____ 兜底 ____ 2.____ 兜底 ____ 3.____ 兜底 ____
【决议】做 / 不做 / 换方案 复核日期:________
填不满这一页,说明还没到能决策的阶段。此时最该做的不是继续调研,而是回去把交付物与验收口径问清楚——这两行空着,后面的所有比较都没有基准。
12.3.10 这一节的四个坑
- 按「最先进」选型:选型的因变量是交付物与验收方式,不是论文新鲜度。用没定形的技术写进合同,等于把研发风险转成违约风险。
- 忽略许可:VGGT 的商用 checkpoint 需要申请,部分 3DGS 相关权重与数据集许可仅限研究。签约前把权重、代码、数据集三份许可都过一遍。
- 只评估精度不评估恢复时间:现场一次升级失败,停摆一天的损失往往超过全年 GPU 预算。把「回滚到上一版」做成一条命令,比多两个点的 mAP 更值钱。
- 把城市级当单场景放大:分块、统一坐标、LOD 三件事不做,规模一上来质量与加载速度同时崩,且后期返工成本极高。
12.4 团队与成本
选型之后就是算账。这一节的数字都是估算口径:人力按 2026 年国内的混合成本、GPU 按公开按需报价的常见区间。真实报价随区域、行业、甲方流程浮动,写方案时用自己公司的单价替换,别直接抄数字——但估算方法可以抄。
12.4.1 角色配置:五个角色,两个不能省
空间智能项目的最小可行团队是五个角色。少了「三维」和「交付」,项目不会立刻崩,但会在验收阶段集中爆发。
| 角色 | 核心职责 | 峰值投入 | 常见错配 | 什么时候可以不设 |
|---|---|---|---|---|
| 算法工程师 | 数据、训练、评测、模型迭代 | 全程 1–2 人 | 被拉去做平台集成,模型迭代停滞 | 纯采购模型时只留 1 人做评测 |
| 后端与平台 | 服务、接口、权限、任务编排 | 中后期 1–2 人 | 把 GIS 服务当普通 CRUD 写,不懂坐标系 | 极轻量项目可与算法合一 |
| 前端与可视化 | 地图交互、结果呈现、性能优化 | 中期 1 人 | 只会做页面不会调瓦片与渲染性能 | 用成熟产品外壳时可减半 |
| 三维与摄影测量 | 采集规范、位姿、重建、精度检核 | 全程 1 人 | 用算法工程师兼职,结果无人对坐标负责 | 不做三维重建时不需要 |
| 交付与项目 | 需求、验收、现场、文档 | 全程 1 人(可兼) | 由研发兼任,导致交付与研发边界模糊 | 几乎不能省 |
五个角色里,「三维」之所以容易被省掉,是因为它的产出看起来像「数据」而不是「功能」——直到验收时甲方要求残差报告。能对坐标负责的人,必须在项目里有明确的名字,这不是岗位设置问题,是责任归属问题。
12.4.2 工期与预算的估算方法
别用「拍脑袋 + 20% buffer」估工期。空间智能项目的成本可以拆成三条互不干扰的式子:
人力(人周) = Σ 阶段功能点 × 复杂度系数 ÷ 单人周产出
复杂度系数:成熟场景 1.0,新场景 1.8,跨域迁移 2.5
GPU(卡时) = 实验轮数 × 单轮卡时 × 1.6(预留返工)
实验轮数经验值:闭集检测 8–15 轮,splat 重建 3–6 轮,微调 10–20 轮
标注(条) = 目标类别数 × 每类样本数 × 2.2(含复核与返工)
三条式子各自独立,所以超支能定位:是人力系数估低了(新场景按 1.0 算),还是卡时估算忽略了返工(没乘 1.6),还是标注量不够导致反复补采。定位不到超支来源的项目,下一轮一定还会超。
单价假设(2026 年 11 月口径,用自己公司的数替换):
| 项 | 假设值 | 说明 |
|---|---|---|
| 人力 | 0.8 万元/人周 | 含社保与管理的混合成本,一线城市取上限 |
| 云 GPU | 20 元/卡时 | A100 级按需实例的常见区间,包月能压到 1/3 |
| 采集合规无人机作业 | 0.6–1.2 万元/架次·天 | 含飞手、设备折旧、空域协调 |
| 标注 | 0.6–2 元/框 | 小目标与复杂场景取上限 |
12.4.3 算例 A:低空巡检,12 周
场景假设:2 条固定航线、3 类固定缺陷、端上实时推理、云端复核与报告。这类项目的功能边界清楚,成本主要落在数据与集成上。
| 阶段 | 周 | 人力(人周) | 卡时 | 主要产出 |
|---|---|---|---|---|
| 需求与方案 | 2 | 6 | — | 验收指标、数据规范、航线清单 |
| 采集与标注 | 3 | 6 | — | 3 类缺陷各 2k 框,抽检 10% |
| 训练与调优 | 4 | 8 | 300 | 端上闭集模型、TensorRT 引擎 |
| 平台与集成 | 4(并行) | 12 | 60 | 上云 API 编排、报告模板 |
| 试点与验收 | 2 | 6 | — | 现场抽检报告、回滚预案 |
合计约 38 人周、360 卡时。按上表单价:人力 30.4 万、GPU 0.72 万、标注外采约 4 万,总成本 35 万左右,12 周可交付。这个量级的项目如果报价低于 25 万,基本是靠「不标注、不评测、不写回滚」省出来的,交付后会以维护费的形式还回去。
12.4.4 算例 B:城市级三维重建,24 周
场景假设:12 平方公里园区级实景,要求可量测(控制点检核),交付 3D Tiles 加 splat 背景层。难度不在算法,在采集组织与精度控制。
| 阶段 | 周 | 人力(人周) | 卡时 | 主要产出 |
|---|---|---|---|---|
| 采集与空域 | 6 | 12 | — | 分区航线、控制点布设、原始影像 |
| 位姿与重建 | 8 | 16 | 1200 | 分块位姿、splat 分块模型 |
| 编辑与 LOD | 8(并行) | 14 | 300 | 清理后的分块、LOD 瓦片 |
| 平台与发布 | 6 | 10 | — | 3D Tiles 服务、浏览与量测功能 |
| 精度检核与验收 | 2 | 8 | — | 控制点残差报告、验收单 |
合计约 60 人周、1500 卡时。按单价:人力 48 万、GPU 3 万、外业与存储约 12 万,总成本 65–80 万,24 周。比算例 A 高的不是算法复杂度,而是外业组织与精度返工——控制点少布两个,后期整块重做的代价是周级别的。
两个算例放在一起能看出一条规律:巡检类项目的成本重心在数据与集成,重建类项目的成本重心在外业与精度。用同一套报价模型去套两类项目,必然一类亏一类贵。
12.4.5 外采与自研的边界
不是所有能力都值得自研,也不是所有能力都能外采。判据只有三条:是否构成差异化、是否随规模线性增长、是否有人能长期维护。
| 能力 | 判据 | 建议 | 备注 |
|---|---|---|---|
| 检测 / 分割模型 | 构成差异化,数据在自己手里 | 自研(基于开源权重微调) | 别从零训,微调成本差一个量级 |
| 三维重建流水线 | 半差异化,工具链不稳定 | 自研编排 + 外采核心(gsplat / brush) | 编排层是自己能控的部分 |
| 地图引擎与渲染 | 不构成差异化 | 外采开源(MapLibre / CesiumJS / OpenLayers) | 二次开发的工作量可控 |
| 数据底座 | 不构成差异化,但迁移成本高 | 外采成熟产品 + 自建规范 | 规范比产品更值钱 |
| 标注 | 随规模线性增长 | 外采,保留 10%–15% 内部复核 | 复核能力是质量闸门,不能外包 |
| 大模型 API | 不构成差异化 | 外采 | 但要留本地化替代路径 |
「外采开源 + 自研编排」是最常见也最健康的组合:核心能力自己掌握,通用能力用成熟件,中间用编排层黏合。反过来「外采闭源 + 自研接口」的组合看着省钱,实际上把升级节奏交给了供应商,两年后想换要多付一次迁移成本。
12.4.6 报价时最容易漏算的五项
算例给的是「看得见」的成本。真实项目里还有五项常年被漏算,五项合计通常占直接成本的 25%–40%,漏哪一项都足以让项目从盈利变亏损。
| 漏算项 | 常见漏算法 | 量级参考 | 怎么估 |
|---|---|---|---|
| 评测与回归 | 按一次性验证算 | 项目人力 10%–15% | 迭代轮数 × 每轮评测人天,含评测集维护 |
| 环境与镜像 | 完全忽略 | 2–4 人周 | 一次搭好,每季度维护一次,按年摊销 |
| 外业协同 | 只算飞行或测绘天数 | 外业成本 15%–25% | 加空域审批、改期、往返与设备损耗 |
| 存储与搬迁 | 只算磁盘容量 | 原始数据的 1.5–2 倍 | 中间产物与多版本备份同时存在 |
| 运维交接与培训 | 不报价 | 3–5 人天加文档 | 交付后三个月陪跑,按次计 |
五项里最容易被低估的是「评测与回归」。团队在做算例时通常按「训一次、验一次」估,而真实项目里模型要迭代 10 轮以上,每轮都要跑同一套评测集,这项工作量会线性累积。把它按人力比例(10%–15%)硬性计入,比逐轮估更可靠。
第二容易被低估的是「运维交接与培训」。交付时没做培训的项目,三个月后甲方会以「不会用」为由要求驻场,驻场的成本远高于那 5 个人天。培训不是赠品,是交付物的一部分,写进合同反而能减少后期的无形成本。
12.4.7 这一节的四个坑
- 不标单价就报价:用别人的单价报自己的项目,结果人力成本算成一半。单价要写进内部模板,每季度更新。
- 卡时不乘返工系数:一次训练成功是小概率事件,按 1.6 倍预留返工,比事后追加预算容易得多。
- 标注按「条」估不按「类」估:类别越多,单类的边界样本越难找,成本非线性上升。按类别数乘样本数估,误差小一半。
- 把交付当研发的附属:交付与研发的边界不清,会导致「研发在做交付的活、交付在猜研发的排期」。两条线各有负责人,比合并成一个更能保工期。
12.5 风险清单
项目翻车的方式就那么几种,但每次翻车都有人惊讶。这一节把风险分三类,每类给触发信号——风险管理的本质不是列清单,是把「什么时候该警觉」写下来。
12.5.1 技术风险
版本兼容。这是空间智能项目最高频的技术风险:CUDA、驱动、TensorRT、PyTorch、GDAL、PROJ、GEOS 七层依赖,任意一层升版都可能让昨天能跑的流水线今天报错。2026 年的情况更糟,因为 Jetson 侧要从 TensorRT 10.x 迁到 11.x,而桌面侧新卡默认装的是新驱动。
对策不是「不升级」,而是把升级变成可回退的动作:
# 把「环境版本」当交付物:锁文件 + 镜像 + 一条重建命令
python -m pip freeze > requirements.lock
docker build -t kjzn/infer:2026.11.13 -f Dockerfile.infer .
docker run --rm kjzn/infer:2026.11.13 python -c "import torch, tensorrt; print(torch.__version__)"
# 升级前后各跑一次同一份评测集,结果记进版本台账
python tools/eval.py --suite smoke --engine active.engine --out reports/2026-11-13.json
模型许可。SAM 3 系列、VGGT、以及各类三维数据集的许可差别很大:有的允许商用但要求署名,有的仅限研究,有的商用 checkpoint 要单独申请(VGGT-1B-Commercial 从 2025-07-29 起需要申请就是例子)。签约前把「权重、代码、数据集」三份许可分别过一遍,别只看代码仓库首页的 license 徽章。
数据合规。影像是否涉密、控制点坐标是否属涉密测绘成果、数据能否出境,这三件事要在项目启动时就有书面判断,而不是等安全审查。具体判定以现行法规与主管部门要求为准,本节只给流程建议:采集前定密级、入库前脱敏、交付前留痕。
12.5.2 工程风险
边缘运维。塔上设备、机载设备、无人值守站点,共同点是「出事时没人能立刻到现场」。这里的风险不是设备坏,而是坏了没人知道、或者知道了没人会修。对策是把可观测性做成标配:心跳、推理延迟、GPU 温度、磁盘余量四项指标,缺一项就不许上线。
长尾场景。试点的 100 个样本里表现很好,扩到 10 个站点的 10 万帧就掉点。长尾风险的特点是「采样越多越暴露」,所以对策不是「再多训一点」,而是建立难例回流机制:现场误检误漏的帧自动回流、按周聚类、按月补训。
带宽与存储。原始影像与点云的体积常被低估。12 平方公里、0.05 m 分辨率的影像加中间产物,2 TB 只是起步。回传策略要在方案阶段定死:哪些数据必须回传、哪些在边缘侧处理后只回传结果、哪些只留抽样。
12.5.3 组织风险
交付与研发的边界。研发追求「通用、可复用」,交付追求「这次能验收」。两者不设边界,结果是研发被项目拖死、交付拿不到能用的版本。常见做法是切出 20% 的研发带宽做平台化,其余按项目排期,且平台需求必须由交付方提出、有明确的复用次数预估。
验收口径漂移。需求阶段说「检出率达到 95%」,验收阶段变成「每个缺陷都要检出」。漂移的根源是口径没写死:哪类缺陷、什么条件下、按帧还是按目标、谁来做仲裁。把评测集随合同交付,是防漂移最有效的一招。
关键人依赖。空间智能项目里「懂坐标与精度」的人往往只有一个。这个人离职,项目直接停摆。对策不是留人,而是把判断依据写成文档与脚本——控制点检核脚本、评测脚本、回滚脚本三件套,谁都能跑。
12.5.4 风险 → 触发信号 → 缓解措施
三类风险压成一张可执行表。使用时按「触发信号」那一列做监控,别按风险名称做监控——名称不会自己报警,信号会。
| 风险 | 触发信号(可观测) | 缓解措施 | 兜底方案 |
|---|---|---|---|
| 依赖版本不兼容 | CI 隔夜构建开始失败;现场升级后服务起不来 | 锁文件 + 固定镜像 + 升级前后跑同一评测集 | 保留上一个可用镜像与引擎,一条命令回滚 |
| 模型许可不覆盖商用 | 法务在合同中要求出具许可说明 | 签约前审三份许可(权重/代码/数据集),留书面结论 | 换可商用替代权重,预留 2–4 周迁移窗口 |
| 数据涉密或出境受限 | 数据集包含敏感区域、或甲方要求境外协作 | 采集前定密级、入库前脱敏、交付前留痕 | 本地化处理,禁止跨境传输 |
| 边缘设备失联 | 心跳中断超过 10 分钟;延迟 p95 翻倍 | 四项可观测指标(心跳/延迟/温度/磁盘)纳入监控 | 远程重启,失败则排工单上塔 |
| 长尾场景掉点 | 新区域抽检召回比试点低 15% 以上 | 难例回流 + 按周聚类 + 按月补训 | 降级为「疑似」输出,转人工复核 |
| 带宽/存储不足 | 回传队列积压;边缘磁盘使用率超 85% | 分档回传策略 + 边缘侧预处理 | 只传结果与抽样帧,原始数据在边缘滚动清理 |
| 验收口径漂移 | 验收会反复讨论「这个算不算检出」 | 评测集随合同交付,口径写死到指标定义 | 引入第三方仲裁或按抽检比例折算 |
| 关键人离职 | 代码里出现只有一个人能改的模块 | 三件套脚本(检核/评测/回滚)+ 文档化判据 | 外部顾问短期支持,成本按人天计 |
| 基座模型停更 | 官方仓库半年无提交;权重下载链接失效 | 镜像权重到私有存储;适配层与基座解耦 | 用冻结版本的权重长期维护,不再追新 |
这张表里最值得抄的是最后一列。「兜底方案」不是给风险管理的体面,是给项目经理的止损按钮——没有兜底方案的风险,等于没识别。
12.5.5 一个能跑的许可与依赖体检脚本
技术风险里最容易被漏掉的是「许可」,因为没人愿意读法务条文。至少可以做一件低成本的事:把依赖树里的许可类型扫出来,人工过一遍红旗项。
#!/usr/bin/env bash
# license-scan.sh —— 扫 Python 与 Node 依赖的许可类型,输出需要人工确认的清单
set -euo pipefail
OUT=reports/license-$(date +%Y%m%d)
mkdir -p "$OUT"
# Python 侧:pip-licenses 列出每个包的许可
python -m pip install -q pip-licenses
pip-licenses --format=csv --with-urls > "$OUT/python.csv"
awk -F',' 'NR>1 && $2 !~ /MIT|BSD|Apache|ISC|Python/ {print "CHECK: "$1" -> "$2}' "$OUT/python.csv" > "$OUT/python-check.txt"
# Node 侧:license-checker 只输出非宽松许可
npx --yes license-checker --summary --onlyAllow 'MIT;ISC;BSD-2-Clause;BSD-3-Clause;Apache-2.0' \
> "$OUT/node-allow.txt" 2>&1 || true
echo "---- 需要人工确认的项 ----"
cat "$OUT/python-check.txt"
echo "报告目录:$OUT"
这个脚本只能发现「显式标注的许可」,发现不了「权重文件另有限制条款」——比如代码是 Apache-2.0,但 checkpoint 需要申请商用许可。所以脚本要做,人工审也要做:脚本负责不漏,人负责看懂。权重许可必须回到模型卡(model card)上逐个确认,这一条没有自动化捷径。
12.5.6 三个延期项目的复盘
风险表看多了会麻木,讲三个脱敏的真实类型更有用。三个项目的类型分别是低空巡检、城市三维、政务一张图;延期的直接原因各不相同,但都命中了 12.5.4 表里的某一行。
案例一:低空巡检,延期 10 周。 表象是「模型精度不达标」,实际是标注口径错了——需求写的是「绝缘子破损检出」,标注时把「污秽」也标成了破损,模型学到的是错误的类别边界,现场抽检误检率超过 30%。回炉重标 3 周、重训 2 周、重新试点 4 周。复盘结论:验收口径必须在标注之前写死,且标注规范要与甲方共同签字确认一次。
案例二:城市三维,延期 12 周。 表象是「重建质量不满足」,实际是控制点布设不足——12 平方公里只布了 9 个控制点,且集中在主干道两侧,边缘街区的高程误差超限,整块返工。复盘结论:控制点密度要按「每平方公里不少于 4 个、均匀覆盖」布设,这条要写进采集方案,不能留给外业临时决定。
案例三:政务一张图,延期 6 周。 表象是「智能体答不准」,实际是工具描述含糊——早期版本让模型自己决定坐标系,同一个「范围统计」问题在 CGCS2000 和 WGS84 下差了 400 多米,回答时对时错,排查了两周才定位到参数缺失。复盘结论:空间参数一律必填,宁可让调用失败,也不要让模型猜默认值。
三个案例的共同点是:延期的直接原因都在技术之外,但修复手段落在工程规范上。把口径、控制点密度、必填参数写进方案模板,比在事故后加人手更有效——这也是 12.5.4 那张表最右一列「兜底方案」存在的理由。
12.5.7 这一节的四个坑
- 风险表做成摆设:列了二十项风险却没有一项挂在看板上。风险管理的产出不是表,是每周更新的「当前活跃风险前三名」。
- 只识别人力与工期风险:技术风险(版本、许可、合规)往往一次就能让项目停摆,却常常被排除在风险清单之外,因为它不属于项目管理的传统分类。
- 兜底方案写成「加强沟通」:兜底必须是动作加时间,例如「心跳中断 10 分钟自动重启,失败则 4 小时内派人到现场」。
- 不做复盘就进入下一个项目:同一个团队连续三次栽在标注口径上,说明缺的不是运气,是模板。复盘结论要沉淀进方案模板,否则下一轮原样重演。
12.6 给不同角色的行动建议
这一节写给「明天要上班」的人。每条建议都设成 90 天内可完成、可检查的动作,不写「加强学习」「提升能力」这类没法验收的话。
12.6.1 技术负责人
- 把四条主线的现状做成一张内部表,每格填上「我们用的技术 + 成熟度 + 不可交付项」。填不出来的格子就是风险点,90 天内补齐事实依据(跑一次评测、问一次供应商、读一次许可)。
- 砍掉一个「看起来先进但不构成差异化」的自研项。空间智能团队最常见的浪费是自研地图引擎或自研标注平台,这两件事的投入产出比通常很差。
- 定一条升级纪律:任何依赖升版必须先跑评测集,结果记进版本台账。这条纪律的执行成本很低,能避免 80% 的现场事故。
- 给关键人配一份备份文档:控制点检核、评测、回滚三件事,至少两人能独立操作。
12.6.2 算法工程师
- 建立现场抽检集,规模不用大,200–500 个目标就够,但必须来自真实航线、真实光照、真实季节。这一份数据决定你所有模型讨论的可信度。
- 把后处理参数外置成配置,按数据集版本管理。这既是为 12.2.1 的趋势做准备,也让复现变简单。
- 量一次真实的端到端延迟,用
trtexec而不是 Python 计时循环,记下 p50 与 p95。这两个数字会改变你对模型规模的判断。 - 给模型留一档降级路径:精度高但慢的大模型 + 精度低但快的小模型,用同一套接口切换。现场网络或算力变化时,这条路径能救场。
12.6.3 后端与平台工程师
- 把现有 GIS 接口改造成合格工具:补 bbox、CRS、时间窗、分页游标,补机器可读的错误码。先改 5 个高频接口,比一次性重构整个服务有效。
- 读写分离:把写操作拆成独立工具,加确认参数与审计日志。这件事在 12.2.4 的趋势兑现后会变成刚需,现在做成本最低。
- 把任务编排做成可重放的:给定输入与版本号,能一键重跑整条流水线。空间智能项目的排错有 70% 靠「能不能重放」。
- 给瓦片服务加缓存与限流:三维场景的加载请求量比二维高一个量级,没做缓存的瓦片服务在演示现场就会崩。
12.6.4 交付与售前
- 把「不可交付」写进方案:视觉参考不等于量测成果、开放词表不等于零样本、端到端不等于无人值守。提前写清边界,后面省掉八成扯皮。
- 用算例报价:抄 12.4 的三条式子,按自己公司的单价重算一遍,标出「不含」项(标注、外业、存储、运维)。
- 准备一份 15 分钟的现场演示,内容不是「模型多准」,而是「从输入到报告的全流程」。甲方对流程的信任度远高于对指标的信任度。
- 推动评测集随合同交付,把它写成「共同确认的验收基准」而不是「供应商自证」。这是 12.2.5 那条趋势下最有利于交付方的条款设计——有了共同基准,验收争议会大幅下降。
12.6.5 一个 90 天的时间盒
把上面 16 条压进 13 周,每周只做一件事的节奏最稳:
第 1–2 周 四条主线现状表 + 现场抽检集建档
第 3–4 周 端到端延迟实测 + 后处理参数外置
第 5–6 周 5 个高频接口工具化改造 + 读写分离设计
第 7–8 周 许可与依赖体检 + 版本台账 + 升级纪律
第 9–10 周 流水线可重放改造 + 瓦片缓存与限流
第 11–12 周 不可交付清单 + 算例报价模板 + 演示脚本
第 13 周 复盘:哪条趋势的先行指标出现了,判断要不要改
时间盒的意义在于「每周只有一件事」,而不是「13 周要做 16 件事」。前者能完成六成,后者通常完成两成还在开会。
12.6.6 这一节的三个坑
- 把行动建议写成学习计划:「学习 3DGS」「研究 MCP 规范」不是行动,因为它们没有产出物。行动建议必须带交付物与验收条件。
- 四个人做同一件事:技术负责人与算法工程师都去改模型、交付与后端都去接接口,结果是责任重叠但不重叠负责。先把边界写清,再谈协作。
- 90 天排 16 件事:时间盒的容量是固定的,排得越满完成率越低。宁可写 6 件必做、10 件可选,也别写 16 件必做。
12.7 全书回顾与学习路线
十二章写完,回到最初那个问题:空间智能到底难在哪。回顾下来,难点不在单点技术,而在四件事必须同时成立——数据在坐标上是对的、模型在现场是够用的、接口在 agent 手里是可用的、交付在合同里是可验收的。任何一环缺失,其余三环的价值都会打折。
12.7.1 十二章的一句话价值
| 章 | 一句话价值 | 解决的核心问题 |
|---|---|---|
| 第 01 章 | 用 DSH 把「描述任务」变成「可运行的闭环」 | 开发方式:从复制粘贴到工具化 |
| 第 02 章 | 打通视频到目标的低空巡检链路 | 感知落地:采集、模型、推理形态 |
| 第 03 章 | 把航迹、视频、地图融到同一时空基准 | 时空融合:坐标与时间对齐 |
| 第 04 章 | 让自然语言驱动一张图的查询与分析 | 智能体:工具层与意图路由 |
| 第 05 章 | 覆盖感知、导航与仿真的自动驾驶闭环 | 端到端任务:从数据到控制 |
| 第 06 章 | 把一段视频变成可交付的三维场景 | 重建:位姿、训练、编辑、发布 |
| 第 07 章 | 用冻结主干加适配层训出专用模型 | 微调:小数据、小算力的路径 |
| 第 08 章 | 建起坐标、时间、精度都可信的数据底座 | 底座:CRS、时空索引、数据格式 |
| 第 09 章 | 在 Jetson 与云端之间做对分工 | 部署:边缘推理与端云协同 |
| 第 10 章 | 用评测集与线上监控守住质量底线 | 评测:指标、回归、上线门禁 |
| 第 11 章 | 把技术成果变成可验收的交付物 | 交付:范围、文档、验收流程 |
| 第 12 章 | 在不确定的技术里做出可反驳的判断 | 判断:选型、预算、风险、路线 |
这张表建议按「你正在做的工作」重排一次。排完会发现:真正卡住项目的往往不是你以为的那一章。
12.7.2 三条学习路线
不同的人读同一本教程,应该读出不同的路径。下面三条路线按目标切分,每条给出推荐顺序、时间投入与产出物。
路线 A 快速上手(4 周,约 20 小时)
01 ──▶ 08 ──▶ 02 ──▶ 11
产出:一个能跑的 DSH 工作区、一份坐标正确的小数据集、
一条能跑通的巡检 demo、一份可交付的验收清单
路线 B 工程交付(10 周,约 60 小时)
08 ──▶ 02 ──▶ 03 ──▶ 04 ──▶ 09 ──▶ 10 ──▶ 11
产出:一条从采集到上线的完整链路、一套评测集与门禁、
一份可复现的交付文档包
路线 C 技术深耕(16 周,约 120 小时)
05 ──▶ 07 ──▶ 06 ──▶ 10 ──▶ 12
产出:一个自训的专用模型、一个可发布的 splat 场景、
一套评测与回归脚本、一份技术判断台账
路线 A 的设计逻辑是「先让东西跑起来」。选 01(开发方式)、08(坐标不出错)、02(有真实场景)、11(知道交付标准),四章覆盖了一个人从零到能干活的最小闭环。这条路线的产出物都要求「能演示」,不要求「能生产」。
路线 B 的设计逻辑是「按交付顺序排」。08 先立地基,02 和 03 拿真实场景练手,04 加智能层,09 解部署,10 和 11 收口验收。这条路线适合已在项目里、需要补齐链路认知的人。注意它跳过了 05、06、07 —— 交付型项目里三维重建与微调往往是外采或专项,不必人人都懂。
路线 C 的设计逻辑是「按技术深度排」。05 练端到端任务,07 练微调,06 练重建,10 练评测,12 练判断。这条路线的产出物全部是可复用的技术资产,适合想往算法或架构方向走的人。它最花时间,也最容易半途而废——所以每次只做一章,做完再决定下一章。
12.7.3 十二章之间的依赖关系
不是所有章都能随便跳。下面这张图画出「读某章之前最好先读什么」,实线是硬依赖,虚线是建议但不强制:
01 ──────────────▶ 02 ──▶ 03 ──┐
│ │ │
│ ▼ ▼
└──────────────▶ 08 ──▶ 04 ──▶ 09 ──▶ 10 ──▶ 11 ──▶ 12
│ ▲
▼ │
06 ──▶ 07 ──┘
▲
└── 05(合成数据与仿真反过来喂 05)
三条硬依赖值得单独说。08 在 02、04 之前:坐标系与时空基准不讲清,后面的空间查询与融合全是错的,而且错得很难发现。06 在 09 之前:splat 的训练与发布要占用边缘与云端资源,不讲重建就说不清部署的显存与带宽从哪来。10 在 11 之前:没有评测集与回归门禁,验收时只能靠嘴说服甲方。
12.7.4 学完之后,怎么判断自己真的会了
一个可自测的标准:给你一个陌生的空间智能需求,你能在半天内产出一页纸,写清交付物、验收指标、技术栈、不推荐项、预算量级与三条主要风险。写得出来,说明十二章的知识被串成了判断力;写不出来,说明还停在「会用工具」的阶段,回去补 12.3 与 12.5 两节。
这个标准不好糊弄,因为它要求同时具备四件事:知道边界(12.1)、知道方向(12.2)、知道取舍(12.3)、知道代价(12.4–12.5)。四件事缺一件,那一页纸就会写空。
12.7.5 三条路线各自的典型走偏
三条路线都有人走完,也都有各自的走偏方式。提前把症状写出来,遇到时能早两周发现。
| 路线 | 走偏症状 | 原因 | 纠正动作 |
|---|---|---|---|
| 快速上手 | 四周读完四章,仍然做不出可演示的东西 | 只读了代码,没在自己的数据上跑一遍 | 挑一个真实小场景,用四章的方法各做一步,串成 demo |
| 快速上手 | 一路跳到 11、12 章,跳过 08 | 觉得坐标系是老生常谈 | 拿自己的数据做一次投影变换与面积计算,用结果说服自己 |
| 工程交付 | 按路线读完,但项目里还是照旧做 | 读的是方法,没改成流程 | 把评测集与验收清单落成文件,进项目模板 |
| 工程交付 | 在 04 章陷进去,试图自己做一套智能体框架 | 工具层与业务耦合太深 | 先用现成协议与工具层跑通,再考虑替换其中一段 |
| 技术深耕 | 05 章做完就去追新论文,07、06 停在半路 | 端到端任务反馈快,重建与微调反馈慢 | 给每章设一个可交付产出物,做完再开下一章 |
| 技术深耕 | 12 章的判断读了但没建台账 | 判断不用交付,容易被跳过 | 把台账放进季度复盘议程,有人对复核负责 |
三条路线的共同走偏方式是「读完了」。阅读的完成度很容易自我确认,工程的完成度不行——所以每条路线都要有产出物,产出物才是进度条。
12.7.6 这一节的三个坑
- 按章号顺序硬读:从 01 读到 12 需要约 130 小时,多数人会在第 04 章停下。按路线读,先拿到产出物再回来补。
- 跳过第 08 章:坐标系、投影、精度是空间智能的「静默错误源」,跳过它省下的两小时,后面要用两周还。
- 把回顾当复习:回顾的价值是重排知识结构,不是重读一遍。按 12.7.1 的表按自己的工作重排,比重读有效得多。
12.8 本章小结
这一章没有教任何新工具,只做了一件事:把前十章的技术细节压成可以拿去做决策的判断。小结部分按四层收口——现状、趋势、选型、代价,每层留一张表,方便下次开会时直接调出来用。
12.8.1 四条主线的结论
| 主线 | 2026 年的结论 | 2027–2028 年的看点 | 你的动作 |
|---|---|---|---|
| 感知 | 端到端检测与概念分割同时可用,闭集仍是延迟敏感场景的首选 | 后处理退到配置层;「加一类」的成本结构改变 | 阈值外置、按版本管理,准备两段式兜底 |
| 重建 | 3DGS 已可交付,前馈几何适合做采集闸门,城市级 LOD 刚成型 | splat 瓦片工具链出现事实标准 | 按三层结构设计三维底座,先做分块与坐标统一 |
| 智能体 | MCP 2026-07-28 定形,瓶颈从协议转到工具描述 | 官方 MCP server 普及,招标开始写这一条 | 把 5 个高频接口改成合格工具,读写分离 |
| 部署 | 边缘算力不再是主要矛盾,运维才是 | 边缘多模态常驻,端上预筛、云上复核 | 四项可观测指标 + 一条回滚命令 |
四行结论里,唯一「现在不做、以后会很贵」的是感知那一行的「阈值外置」。它今天只是整理代码,等端到端成为默认,它就变成了迁移的前置条件。
12.8.2 八条判断的浓缩版
| 判断 | 我的兑现概率估计 | 对项目的直接影响 |
|---|---|---|
| 端到端成为默认 | 高 | 后处理代码要能关掉,别写死在推理链里 |
| 概念分割吃掉部分闭集 | 中高 | 报价模型从「重训」改成「提示 + 复核」 |
| splat 成为底座一等公民 | 中高 | 三维底座要预留 splat 层的结构与瓦片化路径 |
| MCP 成为工具标准 | 中高 | 接口按工具契约重写,REST 下沉 |
| 评测成为采购门槛 | 高 | 评测集当交付物管理,四件套齐备 |
| 边缘多模态常驻 | 中 | 端云接口按「预筛 + 关键帧」设计 |
| 微调转向适配层 | 高 | 预算单列「基座升级重适配」20%–30% |
| 数据资产更稀缺 | 高 | 标注与采集规范资产化,有版本有负责人 |
「兑现概率估计」这一列是我自己的判断,不是共识。更重要的不是这八个字,而是每行背后那张证伪清单——概率估计错了不要紧,看不到证伪信号才要紧。
12.8.3 选型的六条铁律
- 先写交付物,再选技术。选型的输入是交付物与验收方式,不是论文新鲜度。
- 许可先过,再谈精度。权重、代码、数据集三份许可分别过一遍,别只看代码仓库的 license。
- 能外采的绝不自研。地图引擎、渲染、标注平台这三样,自研的投入产出比通常很差。
- 能降级的先做降级。大小模型双档、本地与云端双档,现场条件一变,降级路径就是救命路径。
- 先保实时,再谈智能。巡检、无人车这类任务,延迟超预算的功能等于没有功能。
- 验收口径写死到指标定义。哪类目标、什么条件、按帧还是按目标、谁仲裁,四项缺一不可。
六条里第 3 条最容易引起争论,因为「自研」在技术团队里有天然的道德优势。判断依据很简单:这项能力是否构成差异化、是否随规模线性增长、是否有人能长期维护。三条里两条答「否」,就该外采。
12.8.4 成本与风险的三条经验
第一条,预算的重心由场景决定,不是由技术决定。巡检类项目重心在数据与集成,重建类项目重心在外业与精度。用同一套报价模型套所有项目,必然一类亏一类贵。
第二条,返工系数要比你想的高。GPU 卡时按 1.6 倍预留,人力的新场景复杂度按 1.8 倍估。按理想情况报价的项目,最后都靠加班补。
第三条,兜底方案比风险识别更重要。识别出十项风险但一项兜底都没有,等于没做风险管理。风险表最右一列必须是「出事了按哪个按钮」。
12.8.5 一段收口
空间智能这个方向,过去三年最大的变化不是模型变强,而是整条链路的每一段都开始有可交付的工程答案:感知有端到端,重建有 splat 与 LOD,智能体有 MCP,部署有 Jetson 与 TensorRT,评测与交付也各自成了方法。这意味着一件事——胜负从「谁能做出 demo」转向「谁能把 demo 变成可验收、可运维、可复制的产品」。
这个转变对个人的要求也变了。会调模型只是入场券;能把模型放进一条有坐标、有延迟预算、有回滚、有评测的链路里,才是稀缺能力。前十章练的是这条链路的每一段,这一章练的是把链路看成一体的判断力。
最后留一句可执行的话:任何技术判断,如果写不出「在什么条件下我会认错」,它就还不是判断,只是立场。全书的技术观点都按这个标准写,也希望读者用同一个标准来检验它们。
12.9 动手练习
这一节的练习全部是「判断类」任务,不需要 GPU,但都需要你手上有真实项目或真实数据。每个练习给出输入、要求与验收三条,验收标准写成可打勾的形式,做完自己勾一遍就知道过没过。
练习之间没有依赖,可以挑着做。如果你只有两小时,做练习 1 和练习 4;如果你要为下一次技术评审做准备,做练习 2、3、5。
12.9.1 练习一:给一个真实需求写选型一页纸
输入:找一个你手上的真实需求(在做的、或投标文件里的),一页纸描述它的交付物与验收条件。
要求:
- 按 12.3.1 的四条否决线逐条判断,写明通过或不通过,以及不通过时的替代方案。
- 从 12.3.2 的总表里挑出最接近的场景,抄它的推荐栈,然后改三处——说明为什么这三处要按你的场景调整。
- 写出至少两个「明确不推荐」的选项,每个给一条基于约束的理由(延迟、许可、运维、精度任选)。
- 给出预算量级,用 12.4.2 的三条式子算,标出单价来源与「不含」项。
验收:
[ ] 一页纸内写完,没有超出一页
[ ] 四条否决线都有明确结论,不是「待定」
[ ] 两个不推荐选项各有一条约束类理由,不是「效果不好」
[ ] 预算有式子、有单价、有「不含」项
[ ] 全文没有出现「先进」「领先」「强大」这类无法验收的词
常见错误:把「不推荐」写成「暂不推荐」——这是回避判断。真不推荐就写不推荐,并给出什么条件下可以推荐。
12.9.2 练习二:建一份八条判断的台账
输入:12.2 的八条判断,以及你自己所在行业的两三条公开信号。
要求:
- 按 12.2.9 的 yaml 结构建一个
judgment-ledger.yaml,八条判断全部录入,每条写清signal(先行指标)、falsifier(证伪信号)、check_by(复核时间)。 - 给你的行业补两条本章没写的判断,同样按「结论 + 证据 + 触发条件 + 反例」四段式写。
- 为每条判断标注一个「兑现概率」与判断依据(一句话即可)。
- 设一个季度复核的提醒,把「改判断要写理由」这条规矩写进文件头注释。
验收:
[ ] yaml 能被解析(用 python -c "import yaml,sys; yaml.safe_load(open('judgment-ledger.yaml'))" 验证)
[ ] 十条判断都有 falsifier,且 falsifier 是可观测的事件而不是感受
[ ] 至少两条判断的 check_by 落在未来 12 个月内
[ ] 文件头注释写明了复核周期与修改规则
常见错误:证伪信号写成「效果不如预期」——这不是信号,是结论。信号必须是「看到某件具体的事发生」,例如「两家以上平台发布官方 MCP server」。
12.9.3 练习三:把三个 GIS 接口改造成合格工具
输入:你项目里的三个高频 GIS 接口(图层查询、范围统计、要素定位之类)。
要求:
- 按 12.1.4 的四条合格线重写工具描述:参数无歧义(bbox、CRS、时间窗)、返回值稳定(要素数、几何摘要、分页游标)、读写分离、错误可解释。
- 用 JSON Schema 写出
inputSchema,required里必须有crs。 - 写一个
tools/list的样例响应,确认描述长度不超过 200 字——太长的描述会挤占上下文,模型反而容易忽略关键约束。 - 故意传一个缺
crs的请求,确认返回的是可读错误而不是堆栈。
验收:
[ ] 三个工具都能通过 JSON Schema 校验(可用 jsonschema 库验证样例请求)
[ ] 每个工具的 required 里都有 crs 与 bbox(或等价的必填空间参数)
[ ] 查询类工具只读,写操作被拆到独立工具并带 confirm 参数
[ ] 错误响应含机器可读错误码与一句人话原因
[ ] 工具描述单条不超过 200 字
常见错误:把 description 写成接口文档的复制粘贴。agent 需要的是「什么时候该用这个工具、什么参数容易错」,不是「这个接口返回什么字段」。
12.9.4 练习四:算一次自家项目的真实成本
输入:一个已完成或正在做的项目,以及它能拿到的真实单价(人力、GPU、标注、外业)。
要求:
- 用 12.4.2 的三条式子把成本重算一遍,与项目实际发生的成本对比,算出偏差率。
- 定位偏差来源:是复杂度系数估低了、返工系数漏乘了、还是标注量不够导致补采。
- 按 12.4.6 的四个坑逐条自查,写下命中哪几条。
- 给出下一次同类项目的三个改进动作,每个动作要能在下一轮报价里体现。
验收:
[ ] 有实际成本与估算成本的对照,偏差率有具体数字
[ ] 偏差来源定位到三条式子中的某一条,不是「估不准」
[ ] 四个坑逐条给出「命中/未命中」结论
[ ] 三个改进动作都能落到报价表的具体行
常见错误:只算 GPU 不算人力,或者只算人力不算外业。空间智能项目的成本大头往往在「不写代码的部分」,漏掉就永远算不准。
12.9.5 练习五:写一份 90 天行动清单并做一次复盘
输入:你所在岗位的职责描述(或你实际在做的事)。
要求:
- 从 12.6 里挑出属于你角色的 3–5 条建议,改写成带交付物与验收条件的动作。
- 按 12.6.5 的时间盒排进 13 周,每周只允许排一件事。
- 写出三件「必做」与两件「可选」,并说明可选项在什么条件下升级为必做。
- 90 天后做一次复盘:完成了哪些、卡在哪、下一轮要不要改判断(对应 12.2.9 的台账)。
验收:
[ ] 每条动作都有交付物与验收条件,没有「学习」「研究」这类无法验收的动词
[ ] 13 周的排期里每周只有一件事
[ ] 必做与可选分开,且有升级条件
[ ] 复盘模板里有「判断是否要改」这一栏
常见错误:把行动清单写成愿望清单。判断标准很简单:列出的一条动作,明天上午能不能立刻开始做第一步?不能,就说明它还不够具体。
12.9.6 练习的评分表
五个练习可以自评,也可以当作团队内部的技术评审清单。评分不看写得多漂亮,只看判断是否可反驳:
| 维度 | 1 分 | 3 分 | 5 分 |
|---|---|---|---|
| 判断的可反驳性 | 只有结论 | 有结论与理由 | 有结论、理由与证伪信号 |
| 证据的具体性 | 全是形容词 | 有数字但无来源 | 有数字、来源与时间口径 |
| 取舍的明确性 | 都想要 | 有优先顺序 | 有优先顺序与放弃项 |
| 与约束的对应 | 不提约束 | 提到部分约束 | 每条判断都对应到延迟、许可、运维或精度 |
| 可执行性 | 无法开始 | 需要再讨论 | 明天就能开始第一步 |
总分 25 分。低于 15 分的方案不要拿去评审——不是写得不好,是还没想清楚。
12.10 延伸阅读
下面这些链接是本章判断的证据来源。读的时候注意两点:技术版本以官方文档为准(清单里的版本口径截至 2026 年 11 月);政策与市场数字要看出处年份,跨年引用时要复核。
官方文档与权重
- DeepSeek Harness 文档 —— 本系列统一使用的 agent harness,CLI 为
dsh;仍是 developer preview,升级前先读变更说明。 - Ultralytics 文档 —— YOLO26 的训练、导出与部署参数以这里为准;
yolo export的参数名随版本变化,别照抄旧博客。 - SAM 3 代码库 —— 概念分割的参考实现,微调路线与权重许可以仓库说明与模型卡为准。
- VGGT 代码库 —— 前馈式多视图几何的官方实现,做采集质量闸门时先读它的输入格式与显存说明。
- Qwen3-VL 代码库 —— 多模态微调的基座选择,2B/4B 档适合单卡部署;权重位置、许可与微调配置以仓库与模型卡为准。
三维与发布
- gsplat —— 稀疏 3DGS 光栅化与多 GPU 训练,构建环境对 CUDA 与 PyTorch 版本有硬要求。
- Cesium 3D Tiles —— 瓦片化与 LOD 的规范来源,splat 进入城市级底座要靠它。
接口与部署
- Model Context Protocol —— 以 2026-07-28 规范为准,stateless 核心加 Streamable HTTP 传输;写工具前先读 tools 能力的约束。
正文里还引用了若干官方文档但没有单列,包括 TensorRT 与 Jetson 的版本矩阵、brush 与 SuperSplat 的工具说明、DJI 上云 API 2、PostGIS、DuckDB、GeoParquet、CARLA,以及自然资源部的实景三维政策文件。这些一律以官方站点为准,引用前核对版本与年份。
读完这些不等于会判断。真正的练习在 12.9:把证据变成台账,把台账变成季度复核的习惯,判断力才会随时间累积。