拓冰建站拓冰建站
首页 / 资讯中心 / 正文

FoundationStereo 零样本立体深度估计完整指南:从视差原理到你的第一份三维点云

FoundationStereo 零样本立体深度估计完整指南从视差原理到你的第一份三维点云【免费下载链接】FoundationStereo[CVPR 2025 Best Paper Nomination] FoundationStereo: Zero-Shot Stereo Matching项目地址: https://gitcode.com/gh_mirrors/fo/FoundationStereo机器人、无人机、自动驾驶汽车靠什么感知世界的远近答案常常是立体深度估计——用一对双目图像推算每个像素的深度。FoundationStereo 就是这样一款面向零样本立体深度估计的开源项目它荣获 CVPR 2025 最佳论文提名无需针对任何场景重新训练就能直接输出高精度的视差图与三维点云。这篇指南会带你从原理走到实操完整跑通一次零样本立体深度估计流程亲手得到一份可以拖拽查看的三维点云。上图是 FoundationStereo 的典型输出输入一对校正后的立体图像即可得到逐像素的视差图颜色由冷到暖表示物体由远及近。一双眼睛的魔法立体匹配是怎样工作的 先讲一个你每天都在做、却很少留意的事情为什么我们闭上一只眼睛时判断距离会变得困难因为两只眼睛之间存在一个固定间距这个间距在专业术语里叫基线baseline。你伸出一根手指放在眼前交替闭上左眼和右眼会发现手指相对背景发生了明显位移而远处的山峰无论怎么换眼几乎纹丝不动。这个位移量就是视差disparity物体越近视差越大物体越远视差越小。立体匹配算法要做的就是替计算机自动找出左右两张图像中同一个物理点的对应关系算出每个像素的视差最终拼出一张完整的视差图。你可以把它想象成一部电影在两个机位同时拍摄算法就是那位逐帧核对画面、量出镜头偏移量的剪辑师。FoundationStereo 的内部管线也遵循这条主线只是每一步都做了强化特征提取采用侧调优side-tuning的特征骨干网络把 DINOv2、Depth Anything V2 这类单目视觉基础模型习得的丰富先验嫁接进来弥补合成数据与真实世界的差距代价体构建与滤波计算左右特征之间的匹配代价再用长距离上下文推理机制对代价体做全局滤波减少歧义匹配迭代细化像 RAFT 一样通过多轮更新逐步打磨视差结果。这些设计共同决定了它的核心竞争力——零样本泛化能力。零样本从何而来百万级数据与自校准管道 你可能想问为什么传统的立体匹配模型一换场景就水土不服而 FoundationStereo 可以直接拿去做推理关键在于训练数据。研究团队构建了一个包含100 万对立体图像的大规模合成数据集FSD刻意追求场景多样性与照片级写实度——从厨房桌面到室内房间各种光照、材质和布局都被覆盖。更难能可贵的是他们设计了一套自动自校准管道自动剔除那些左右视图信息模糊、无法可靠标注的样本确保进入训练的每一对图像都干净可学。于是模型见到的是足够丰富、足够真实的世界样本库而非某一个特定数据集的偏好。这正是零样本的底气它在训练时见过足够多的世界所以在推理时敢于面对没见过的场景。实操准备一台 GPU 和一对合格的立体图像 在动手之前先确认三件事。第一硬件。项目在 NVIDIA GPU 上运行官方测试过的型号包括 RTX 3090、4090、A100、V100 以及 Jetson Orin。其他型号通常也能跑但要留意显存是否够用。如果没有 GPU也可以把它当成学习项目先在 CPU 上体会流程正式推理还是建议用 GPU。第二数据。输入的左右图像必须满足三个条件左右图像分辨率一致已经过校正与去畸变即极线水平对齐没有鱼眼镜头的桶形畸变不要搞错左右顺序左图必须来自左相机左图中的物体看起来会更靠右。如果你用的是 ZED、RealSense 这类双目标定相机它们通常已经替你完成了校正直接使用即可。项目自带的样例数据就很典型以上是项目自带的一对左右视图一张桌面场景图键盘、马克杯、纸巾盒、显示器都清晰可见两图之间存在细微的视角差异。第三格式。推荐使用无损失的 PNG 格式避免 JPEG 压缩带来的伪影。值得一提的是官方也实测过单目灰度图与红外立体图像如 RealSense D4XX 系列效果同样不错。完整实操从安装到第一份点云 下面进入正题跟着步骤走一遍完整的推理流程。第一步克隆仓库并创建环境打开终端克隆项目并进入目录git clone https://gitcode.com/gh_mirrors/fo/FoundationStereo cd FoundationStereo然后基于官方提供的配置文件创建 Conda 环境conda env create -f environment.yml conda run -n foundation_stereo pip install flash-attn conda activate foundation_stereo这里有个小细节flash-attnFlash Attention需要单独安装因为它有时会导致环境创建中途报错。如果你的 GPU 不支持 Flash Attention也可以参考社区给出的替代方案绕开它继续使用。第二步下载预训练模型项目提供两个零样本推理模型按需选择模型文件夹特点适用场景23-51-11基于 Vit-large精度最高追求极致效果11-33-40基于 Vit-small精度略低但推理更快追求速度下载后把整个文件夹例如23-51-11放到项目根目录下的./pretrained_models/里保持目录结构即可。第三步运行你的第一次推理确认一切就绪后执行下面这条命令python scripts/run_demo.py --left_file ./assets/left.png --right_file ./assets/right.png --ckpt_dir ./pretrained_models/23-51-11/model_best_bp2.pth --out_dir ./test_outputs/程序会依次完成读取图像、填充到模型所需的尺寸、推理、反填充并把结果保存到./test_outputs/目录。在推理完成后屏幕上会自动弹出一个 Open3D 窗口你看到的将是这个场景的完整三维重建这是运行 demo 后生成的点云在 Open3D 中的展示桌面、键盘、纸巾盒、马克杯都以三维形式被重建出来你可以旋转视角从任意角度观察。第四步认识输出文件推理结束后./test_outputs/目录里会出现几类结果用途各不相同vis.png把原始左图与视差可视化并排拼接的预览图depth_meter.npy以米为单位的稠密深度图NumPy 格式方便后续用 Python 处理cloud.ply三维点云文件可以用 Open3D、CloudCompare 等工具打开cloud_denoise.ply经过离群点去除后的点云通常更干净。第五步为你的数据生成点云如果想把点云用在自己的图像上需要额外提供一个内参文件告诉模型我的相机是什么参数。文件格式非常简单第一行是摊平后的 3×3 相机内参矩阵共 9 个数字第二行是左右相机之间的基线距离单位是米。项目自带的assets/K.txt就是标准示例其中基线约为 0.063 米。视差图、深度图与点云三个概念一次说清 ❓第一次接触立体视觉的人常常被这三个词绕晕。其实它们的递进关系很清晰概念是什么单位视差图每个像素的左右视差即同一个点在左右图中的水平位移像素深度图每个像素到相机的真实距离米点云深度图加相机内参反投影得到的空间坐标集合三维坐标连接视差与深度的是一道简洁的公式depth 焦距(像素) × 基线(米) / 视差(像素)这再次呼应了开头的比喻视差越大深度越小物体越近。模型输出的视差图经过这道换算再结合相机内参反投影就变成了三维点云。理解了这层关系你就明白了为什么run_demo.py的参数里既要点云裁剪距离--z_far也要读内参文件——每一步都在为从像素到米铺路。让推理更快分辨率、迭代次数与 TensorRT ⚡实际部署时速度和精度往往需要权衡。项目提供了几个非常实用的调节旋钮降低输入分辨率在命令中加入--scale 0.5把图像缩小一半再推理速度明显提升适合对精度要求不那么苛刻的场景减少细化迭代次数默认迭代 32 轮可加--valid_iters 16用少量精度换取显著提速高分辨率图像用分层推理当输入图像超过 1000 像素时加--hiera 1启用分层推理可以在全分辨率下输出结果代价是速度变慢追求极致速度TensorRT。项目支持把模型导出为 ONNX 再转成 TensorRT FP16 引擎官方实测在 RTX 3090 上约有 6 倍加速。需要说明的是ONNX/TRT 版本目前只支持 Docker 部署方式仓库的docker/目录下已备好 Dockerfile 和启动脚本按官方文档依次执行即可。常见问题排查遇到报错别慌 ️首次运行大概率会遇到一两个坎这里提前替你踩好坑。报错RuntimeError: cuDNN error: CUDNN_STATUS_NOT_SUPPORTED这通常意味着显存不足OOM。优先尝试缩小输入分辨率或者换一块显存更大的 GPU。没有生成点云或点云残缺不全检查与点云处理相关的参数--z_far最大深度裁剪、--remove_invisible剔除左右视图不可见区域、--denoise_cloud去噪都会影响点云质量按需调整即可。没有双目相机只有两台普通 RGB 相机你可以先用 OpenCV 的stereoRectify等标定函数把两幅图像校正成标准的立体图像对再送入 FoundationStereo。想更深入了解每个参数随时运行python scripts/run_demo.py --help所有选项和说明都会列出来。从桌面到旷野FoundationStereo 能去哪里 从一个摆满杂物的桌面到真实的户外街区FoundationStereo 的零样本特性让它几乎可以即插即用自动驾驶实时感知前方车辆与行人距离为决策系统提供三维环境信息机器人导航让机械臂或移动底盘理解场景结构实现精准避障与抓取增强现实把虚拟物体以正确的遮挡关系和透视效果放进真实空间遥感测绘从航空或卫星立体影像中提取地形高程信息消费级设备搭配 RealSense 等现成双目传感器快速搭建三维感知应用。值得一提的是官方还提供了面向 Jetson 平台的部署指南readme_jetson.md边缘设备上同样可以运行。回到文章开头的问题设备如何看见距离现在你已经有了完整的答案——一双经过校正的眼睛加上一个零样本立体深度估计模型就足够把二维图像还原成三维世界。这个曾属于专业实验室的领域如今只需要几行命令就能亲手体验。不妨现在就克隆仓库、跑通 demo让桌面上的杂物在你的屏幕上第一次拥有真实的深度。你的第一个立体深度估计项目就从这里开始。【免费下载链接】FoundationStereo[CVPR 2025 Best Paper Nomination] FoundationStereo: Zero-Shot Stereo Matching项目地址: https://gitcode.com/gh_mirrors/fo/FoundationStereo创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
分享:

看完干货,该让你的企业上线了

免费需求沟通 · 48 小时内出具建站方案 · 河南本地可上门