DUSt3R 从同一场景的多张照片预测三维点与相机关系,适合重建草案和视觉研究。输入来自真实不同视角,与从一张图生成不存在的背面参考不同。下面以自己拍摄的静态桌面为例,检查点云、相机位置与尺度;未运行模型。
多张照片必须看到共同结构
拍桌面三张照片 left.jpg、center.jpg、right.jpg,保持物体不动、相邻视角有重叠、避免镜面和大面积空白。不要用三张分别生成的场景图作为测量依据。仓库代码为 CC BY-NC-SA 4.0 非商业许可,检查点还要求遵守相关训练数据和基础模型许可,不能直接用于商业扫描服务。

按官方多视图全局对齐接口
from dust3r.inference import inference
from dust3r.model import AsymmetricCroCo3DStereo
from dust3r.utils.image import load_images
from dust3r.image_pairs import make_pairs
from dust3r.cloud_opt import global_aligner, GlobalAlignerMode
device="cuda"
m=AsymmetricCroCo3DStereo.from_pretrained("naver/DUSt3R_ViTLarge_BaseDecoder_512_dpt").to(device)
imgs=load_images(["left.jpg","center.jpg","right.jpg"],size=512)
pairs=make_pairs(imgs,scene_graph="complete",prefilter=None,symmetrize=True)
out=inference(pairs,m,device,batch_size=1)
scene=global_aligner(out,device=device,mode=GlobalAlignerMode.PointCloudOptimizer)
scene.compute_global_alignment(init="mst",niter=300,schedule="cosine",lr=0.01)
print(scene.get_im_poses())
points=scene.get_pts3d(); masks=scene.get_masks()
scene.show()
先按仓库递归克隆、环境和权重说明配置;GPU、CUDA 与模型分辨率需要匹配。代码不保证普通电脑可运行,也没有给出本机重建速度。
点多不等于几何准确
查看三台相机的相对位置是否符合实际左中右拍摄,桌边和杯子是否重复为两层,背景是否拉成浮点。置信度掩码可帮助隐藏低可信区域,但隐藏后画面干净并不证明剩余点正确。镜面、透明物体和运动物体应单独标记为不可靠区域。
绝对尺寸需要独立参照
未知相机条件下的重建不能凭视觉比例直接读厘米。用已知长度作独立尺度核对,测量任务还需更完整校准。若视角不连贯先增加真实重叠照片,不盲目增加优化次数。下一步保留原照片、相机估计和不可靠区域说明,作为三维草案进一步人工整理,而不是把点云当精密扫描结果。
参考资料
依据 2026-10-03 读取的官方资料整理:官方文档 1。
Ai菜鸟网。发布者:AI小管家,转载请注明出处:https://www.alyyhw.com/33157.html