多视图如何收窄三维解
当同一个表面点出现在两台位置不同的相机中,两条视线的交会关系可以估计它的三维位置。更多视图提供更多约束,原本只靠先验猜测的侧面与背面开始有直接观测。
从对应点到三维位置
传统多视图重建通常先在图像中寻找可重复识别的局部特征,再确定不同图像之间的匹配。结合相机模型,可以同时估计相机位姿和稀疏三维点,这一过程常称为 Structure from Motion(SfM)。
有了相机和稀疏结构后,多视图立体视觉(MVS)会利用更多像素一致性恢复稠密表面。COLMAP 把这两部分组织为一套可复现流程,是理解现代多视图系统的合适起点。
人物参考比静态场景更苛刻
传统方法假设不同照片观察的是同一个静态场景。人物参考图经常违反这个假设:手指角度改变、头发位置变化、裙摆重新绘制,甚至同一装饰在不同视图中数量不同。
对于生成式多视图,常见问题还包括:
- 每张图单独看都合理,但局部纹样对不上;
- 视角标签与实际透视不一致;
- 左右对称关系被误改;
- 遮挡区域在相邻视图中突然出现或消失;
- 角色身份一致,服装结构却发生变化。
输入审计比盲目增加视图更重要
本站目前把输入检查分为四层:
- 身份一致:脸型、发型、服装和附件属于同一个设计。
- 姿态一致:关节位置和手脚朝向能够跨视图对应。
- 相机可解释:视角、主体尺度和透视差异能由相机参数解释。
- 部件连续:接缝、边界和纹样在相邻视图中能延续。
只有通过这些检查,新增视图才会收窄三维解。互相冲突的视图会把误差推到几何、纹理或相机中,最终得到折中但不可编辑的表面。
多视图仍然留下什么问题
被身体完全遮挡的衣物内侧、护甲下面的身体、封闭结构内部仍不可见。多视图减少歧义,不会消除所有未知。人物资产还需要身体先验、部件语义、厚度规则和物理约束共同补全。
几何验证在验证什么
一组局部特征描述相似,不代表它们来自同一个三维点。两台针孔相机之间的对应点应满足对极约束:第一张图中的点会在第二张图中对应一条对极线,正确匹配应落在这条线附近。基础矩阵描述未标定相机的两视图关系;已知内参后,本质矩阵把约束转到归一化相机坐标。
RANSAC 常用于从候选匹配中估计几何模型并排除离群点。只有通过几何验证的匹配才适合进入三角化。随后,束调整联合优化相机内参、外参与三维点,使观测点和模型投影点之间的重投影误差下降。
如何评价一组人物多视图
重投影误差只说明点和相机的投影关系,不能发现胸甲纹样被换掉、裙摆长度改变等语义冲突。人物输入至少要同时报告四类量:
| 检查对象 | 可计算指标 | 主要用途 |
|---|---|---|
| 特征对应 | 几何验证内点数与内点率 | 判断视图间是否存在可靠对应 |
| 相机与稀疏点 | 像素重投影误差 | 检查相机和三维点能否解释观测 |
| 人物轮廓 | Silhouette IoU | 发现比例、姿态和外形冲突 |
| 语义部件 | 跨视图标签一致率 | 发现服装、附件与纹样漂移 |
这些指标需要分开阅读。较低的重投影误差可以和错误的部件结构同时出现,较高的轮廓重叠也不能证明被遮挡表面已经恢复。
继续阅读
- COLMAP 官方文档包含 SfM 与 MVS 的工作流、相机模型和输出格式。
- Multiple View Geometry给出了对极几何、三角化与相机恢复的理论基础。
完成基础阶段后,下一节进入“从图像到几何”:系统如何通过渲染结果反过来更新三维参数。
