零样本立体匹配与深度估计实践:FoundationStereo 让 AI 直接看懂三维场景
零样本立体匹配与深度估计实践FoundationStereo 让 AI 直接看懂三维场景【免费下载链接】FoundationStereo[CVPR 2025 Best Paper Nomination] FoundationStereo: Zero-Shot Stereo Matching项目地址: https://gitcode.com/gh_mirrors/fo/FoundationStereoFoundationStereo 是 NVIDIA 开源、获 CVPR 2025 最佳论文提名的零样本立体匹配模型只需输入一对已经校正的左右相机图像它不经过任何场景微调就能直接输出稠密视差图进而换算成带真实物理尺度的深度图和三维点云。对于做机器人、自动驾驶、三维重建的开发者来说这相当于拿到了一双天生会测距的眼睛。下面我就从原理到实战带你把这条链路完整跑通。图1 左右立体图像对输入后模型输出的稠密视差图颜色越暖代表物体越近来自项目自带示例数据一个反复发生的尴尬换了个场景算法就不灵了如果你接触过传统的立体匹配大概率经历过这样的循环在公开数据集上训练指标刷得很漂亮一旦把模型部署到自己的相机、自己的环境误差立刻变大。于是你只能一个场景微调一次标数据、训一轮、再验证周而复始。问题出在哪里传统的深度学习方法本质上在拟合训练集的样子——场景布局、光照条件、相机参数都长在模型的记忆里。可真实世界千变万化这种应试型模型天然脆弱。这也正是 FoundationStereo 想解决的问题它要把立体匹配做成基础模型——像大语言模型那样见过足够多、足够多样的世界之后面对从未见过的场景也能直接泛化。官方论文称之为 zero-shot stereo matching零样本立体匹配这也是它拿下 CVPR 2025 Oral 并获最佳论文提名的原因。零样本立体匹配是怎么做到的从人眼测距说起先建立心智模型。人有两只眼睛因为左右眼位置不同同一个物点在左右视网膜上的位置会有细微差异这个差异就叫视差disparity。大脑正是利用视差来感知远近——这就是最朴素的立体视觉原理。电脑做立体匹配本质就是把这一过程数字化同时拍下左右两张图像把两幅图逐像素对上号找到左图中的每个点在右图中对应在哪里同一个物点在左右图中的水平偏移量就是视差视差越大物体越近视差越小物体越远。FoundationStereo 的输入输出都非常朴素输入一对校正后的左右图像输出一张和原图同尺寸的稠密视差图。但让它零样本可用的关键是训练阶段的三步棋够大的数据底座官方构建了 FSD 数据集包含约 100 万对高度仿真、场景多样化的合成立体图像对。合成数据的优势是能拿到逐像素的精确真值这是真实采集很难做到的。自动清洗管线100 万对数据里混着大量说不清对错的模糊样本比如纹理缺失、遮挡严重、反光区域盲目训练只会让模型学歪。论文设计了一套自动自校准self-curation管线把这些模糊样本剔掉留下真正能教模型的干净数据。借力单目视觉大模型合成数据再逼真和真实照片之间也有模拟到现实的鸿沟。模型采用侧调优side-tuning结构把 DINOv2、Depth Anything 这类视觉基础模型学到的丰富单目先验移植过来同时保留立体匹配特有的几何推理能力。打个比方单目大模型像一位见多识广的老顾问告诉模型这种情况一般是近还是远而立体匹配部分负责精算到底差多少个像素。此外架构里的长距离上下文推理模块让模型在做代价体cost volume过滤时能参考整个图像范围的信息而不是只看局部窗口——这对无纹理墙面、玻璃等老大难区域尤其有效。从安装到跑通第一个三维点云完整四步实操环节我建议你准备一台带 NVIDIA 显卡的 Linux 机器官方在 3090、4090、A100、V100 及 Jetson Orin 上验证过显存越大越从容。第一步克隆仓库并创建环境git clone https://gitcode.com/gh_mirrors/fo/FoundationStereo cd FoundationStereo conda env create -f environment.yml conda run -n foundation_stereo pip install flash-attn conda activate foundation_stereo注意一个官方特别标注的坑flash-attn必须单独安装否则环境创建过程容易报错别图省事把它写进同一个命令。第二步下载预训练权重官方提供两个通用模型把下载到的整个文件夹比如23-51-11原样放进./pretrained_models/目录下23-51-11基于 ViT-Large 的最强模型精度最高适合追求效果的场景11-33-40基于 ViT-Small精度略低但推理更快适合算力紧张或对延迟敏感的场景。第三步跑通第一个示例仓库自带了样例图像assets/left.png和assets/right.png直接执行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/运行结束你会得到视差可视化图vis.png、以米为单位的深度图depth_meter.npy以及可交互查看的三维点云cloud.plyOpen3D 窗口会弹出按 ESC 退出。图2 使用 Open3D 查看点云输出从左到右依次是纸巾盒、马克杯、键盘、显示器等桌面物体模型直接从二维图像对重建出三维结构第四步用自己的数据换成你自己的图像时除了准备一对左右图还要提供一个内参文件比如参考assets/K.txt的格式第一行是展开成一维的 3x3 相机内参矩阵9 个数第二行是左右相机之间的基线距离单位是米754.67 0.0 489.38 0.0 754.67 265.16 0.0 0.0 1.0 0.063内参和基线是视差换算成真实深度的钥匙缺了它模型照样输出视差图但你无法得到有物理单位的深度和点云。三个容易混淆的概念一次讲清视差图和深度图到底什么关系它们是同一个信息的不同表达通过一个公式换算深度 焦距 × 基线 ÷ 视差。注意二者是反比关系视差大的物体近深度值小视差小的物体远深度值大。FoundationStereo 直接输出的是视差图有了内参和基线它会在脚本里自动帮你转成米制深度图和点云。单目深度估计和双目立体匹配为什么不能互相替代单目方法只靠一张图猜深度靠的是场景先验——它能给出合理的相对远近但物体的绝对尺寸和距离往往是模糊的且存在尺度漂移。立体匹配靠的是两台相机之间的几何视差只要标定正确就能得到真实物理尺度的深度。代价是你需要两台相机、需要标定和校正。二者适用场景不同单目胜在简单便宜双目胜在精确且带尺度。FoundationStereo 属于后者但通过引入单目大模型先验把两者的优势结合了起来。零样本和传统微调范式差在哪传统做法是每个数据集训一个模型换个场景精度就崩。零样本则是一个模型打天下——从虚拟合成数据学到的几何与视觉规律直接迁移到真实世界。这正是它和 DINOv2、GPT 这些基础模型理念一脉相承的地方。它在榜单上拿了什么成绩怎么再提速零样本不是嘴上说说官方在业界最严格的两个榜单上都拿到了全球第一Middlebury 立体匹配榜单和 ETH3D 双视角低分辨率榜单。这意味着在未参与训练的真实场景上它的综合精度已经超过绝大多数专训专调的方法。至于推理速度官方给出几条明确的优化路径按性价比排序降低分辨率加--scale 0.5把输入图缩小一半再推理速度大幅提升适合精度要求不高的场合减少迭代次数加--valid_iters 16默认 32牺牲少量精度换取更快的收敛TensorRT FP16 部署官方实测在同样的 3090 上可拿到约 6 倍加速。需要说明ONNX/TRT 版本官方只提供 Docker 部署方式仓库的docker/目录下已有现成的构建脚本。如果输入是高分辨率图像超过 1000 像素可以开启--hiera 1分层推理拿回全分辨率深度代价是更慢。高频问题自检清单环境创建一直失败大概率是flash-attn没单独装按上文顺序先创建环境再单独安装它。另外确认 GPU 驱动和 CUDA 版本与environment.yml里声明的版本匹配。跑起来后没有点云或者点云不完整先检查三个开关--z_far点云的最大深度截断默认 10 米场景太深时调大、--remove_invisible是否去掉左右图不可重叠区域、--denoise_cloud是否做离群点剔除。它们都是可以组合的逐个开关排查最快。报错 cuDNN / CUDNN_STATUS_NOT_SUPPORTED大概率是显存不够OOM。降低分辨率、减小--valid_iters或者换更大显存的 GPU。我没有双目相机只有两台普通 RGB 相机能用吗可以。先用 OpenCV 的标定与校正接口把两路图像做成极线对齐的立体图像对相当于把两台相机掰正再喂给模型。但要注意左右图绝不能交换——左图必须是真正来自左侧相机的图像否则物体在画面中的相对位置会反推理结果完全错误。输入图像有什么讲究官方建议用无损压缩的 PNG图像需要校正且无鱼眼畸变。像 ZED、RealSense 这类立体相机出厂的 SDK 通常已经帮你做好了校正开箱即用RealSense 的灰度/红外模式官方也验证过效果不错。从桌面到道路下一步你可以做什么跑通 demo 只是起点。一个真正零样本、能输出米制深度的模型天然适合这些方向机器人与机械臂抓取用真实尺度的点云做碰撞检测、抓取位姿估计自动驾驶与无人车感知稠密深度为障碍物测距、道路重建提供底层输入增强现实把虚拟物体按真实深度锚进场景里遮挡关系自然成立移动端与嵌入式官方已支持 Jetson 平台配合 TensorRT 可以在边缘设备上实时推理。下一步建议你带着自己的数据试一遍先跑通仓库自带的示例再换成你自己的立体图像对然后从--scale 0.5、--valid_iters 16开始调参观察精度和速度的平衡点。想看代码细节可以从 核心推理模块 和 示例脚本 入手这两个文件都不长适合作为阅读入口。总之零样本立体匹配的地基已经打好接下来能盖多高的楼就看你怎么用了。【免费下载链接】FoundationStereo[CVPR 2025 Best Paper Nomination] FoundationStereo: Zero-Shot Stereo Matching项目地址: https://gitcode.com/gh_mirrors/fo/FoundationStereo创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

相关新闻

RQ-VAE Recommender进阶技巧:如何调优Gumbel-Softmax与KMeans初始化参数

RQ-VAE Recommender进阶技巧:如何调优Gumbel-Softmax与KMeans初始化参数

RQ-VAE Recommender进阶技巧:如何调优Gumbel-Softmax与KMeans初始化参数 【免费下载链接】RQ-VAE-Recommender [Pytorch] Generative retrieval model using semantic IDs from "Recommender Systems with Generative Retrieval" 项目地址: https://git…

2026/10/19 16:10:08 阅读更多 →
Windows系统文件TransportDSA.dll丢失找不到问题解决

Windows系统文件TransportDSA.dll丢失找不到问题解决

在使用电脑系统时经常会出现丢失找不到某些文件的情况,由于很多常用软件都是采用 Microsoft Visual Studio 编写的,所以这类软件的运行需要依赖微软Visual C运行库,比如像 QQ、迅雷、Adobe 软件等等,如果没有安装VC运行库或者安装…

2026/10/19 23:01:07 阅读更多 →
10分钟零成本接入 Tesseract.js:浏览器端 OCR 识别完整实战

10分钟零成本接入 Tesseract.js:浏览器端 OCR 识别完整实战

10分钟零成本接入 Tesseract.js:浏览器端 OCR 识别完整实战 【免费下载链接】tesseract.js Pure Javascript OCR for more than 100 Languages 📖🎉🖥 项目地址: https://gitcode.com/GitHub_Trending/te/tesseract.js 做电…

2026/10/17 10:31:14 阅读更多 →

最新新闻

ComfyUI分镜生成实战:漫画第一格提示词调整+IPAdapter角色锁定,国漫雨巷第1格

ComfyUI分镜生成实战:漫画第一格提示词调整+IPAdapter角色锁定,国漫雨巷第1格

你是不是已经把规格书写好了、Seed 锁定了、IPAdapter 也装好了,但一打开分镜脚本 JSON,看到第 1 格那串长长的提示词,却不知道从哪里下手调? 别慌,我第一次跑第 1 格的时候,连出 8 张废图,不是构图偏了就是角色不像。 这篇就干一件事:带你用前面 27 篇积累的所有工具,…

2026/10/21 2:21:51 阅读更多 →
OpenMontage BFL FLUX 图像生成回调:Webhook 与轮询完整避坑指南

OpenMontage BFL FLUX 图像生成回调:Webhook 与轮询完整避坑指南

OpenMontage BFL FLUX 图像生成回调:Webhook 与轮询完整避坑指南 【免费下载链接】OpenMontage Worlds first open-source, agentic video production system. 12 production pipelines, 100 tools, 700 agent skill and production-knowledge files. Turn your AI …

2026/10/21 2:21:51 阅读更多 →
分享如何使用AI工具来释放C盘空间

分享如何使用AI工具来释放C盘空间

目录把问题丢给 AI顺着往下清理先查 C盘下的 ProgramData再查用户目录1. 更新器缓存2. 包管理器缓存3. 遗漏的部分差点误删npm 全局安装目录AI 工具的运行时目录AI 工具的数据目录先看报告,再下命令最后清了多少几点建议让AI给出了一个落地的提示词如果你想清理C盘&…

2026/10/21 2:21:51 阅读更多 →
栈溢出检测:不只是填充魔数 0xDEADBEEF,基于 MPU 的硬件级栈保护实现

栈溢出检测:不只是填充魔数 0xDEADBEEF,基于 MPU 的硬件级栈保护实现

摘要: 栈溢出是嵌入式领域最危险的 Bug 之一——它不立即崩溃,而是静默地踩踏相邻内存,等到别处出错时才暴露,导致调试方向完全跑偏。常见的 0xDEADBEEF 魔数填充检测只能在任务切换时发现,存在明显的漏检窗口&#xf…

2026/10/21 2:21:51 阅读更多 →
Jasna 片段编辑器:GPU 扫描约 2000 FPS,只修复视频里的打码片段

Jasna 片段编辑器:GPU 扫描约 2000 FPS,只修复视频里的打码片段

Jasna 片段编辑器:GPU 扫描约 2000 FPS,只修复视频里的打码片段 【免费下载链接】jasna Video restoration tool 项目地址: https://gitcode.com/GitHub_Trending/ja/jasna Jasna 是 JAV 视频马赛克修复工具,片段编辑器让你只挑打码的…

2026/10/21 2:21:51 阅读更多 →
机器人竞赛硬件入门:电源、电机、通信与调试避坑指南

机器人竞赛硬件入门:电源、电机、通信与调试避坑指南

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/21 2:20:51 阅读更多 →

日新闻

统一内存+量化:锐龙AI Max PRO 400如何本地跑320B大模型

统一内存+量化:锐龙AI Max PRO 400如何本地跑320B大模型

这段时间硬件圈和AI圈都在传一个事:AMD锐龙AI Max PRO 400系列把最高192GB统一内存搬进了PC形态的产品里,按宣传口径,本地跑320B参数的大家伙不再是纸面概念。我第一反应倒不是“内存真大”,而是这话背后的含金量——它把过去只能…

2026/10/21 0:00:11 阅读更多 →
AI助手深度使用体验:对话质量、长文本处理与指令遵循如何留住用户

AI助手深度使用体验:对话质量、长文本处理与指令遵循如何留住用户

1. 从“封号重开”这个行为说起:用户到底在追求什么“封号重开”这四个字,放在任何产品语境里都带着一股决绝的味道。一个账号从零开始积累使用记录、调教偏好、沉淀工作流,背后是大量的时间和精力成本。正常情况下,没有人愿意主动…

2026/10/21 0:00:11 阅读更多 →
ROS中YOLOv3工程落地:通信同步、坐标变换与性能调优

ROS中YOLOv3工程落地:通信同步、坐标变换与性能调优

1. 为什么在ROS里硬刚YOLOv3不是“炫技”,而是工程落地的必经之路我第一次在某高校机器人实验室看到那台搭载Jetson TX2的移动底盘原地打转、反复识别错垃圾桶时,就意识到:单纯跑通darknet_ros demo和真正让YOLOv3在ROS里“干活”&#xff0c…

2026/10/21 0:00:11 阅读更多 →

周新闻

基于GMM的语音识别系统原理与MATLAB实现详解

基于GMM的语音识别系统原理与MATLAB实现详解

说到基于高斯混合模型(GMM)的语音识别系统,很多人第一反应就是一堆数学公式,觉得门槛很高。但如果你真的在MATLAB里把它落地跑通,会发现核心其实就是三件事:把声音变成特征向量,用GMM给每个类别…

2026/10/20 10:02:13 阅读更多 →
数字图像处理入门:反白、灰度化、调色板修改与导出txt实践

数字图像处理入门:反白、灰度化、调色板修改与导出txt实践

数字图像处理这四个字听起来挺唬人,但落到具体操作上,无非就是让计算机按你的想法“摆弄”像素。我在一个模拟项目X里用了一套特别经典的基础处理流程:对图像做反白、改调色板、彩色转灰度,最后把像素数据导出成txt文件。单看每一…

2026/10/20 20:43:59 阅读更多 →
机器人大脑技术盘点:具身智能的感知、决策与数据闭环

机器人大脑技术盘点:具身智能的感知、决策与数据闭环

如果你的信息流最近也天天刷到“机器人大脑”这个词,你会发现一个很有意思的现象:每个人说的“大脑”根本不是同一个东西。有人指的是大语言模型,有人指的是运动控制系统,还有人指的是能理解物理世界的端到端模型。在2026年这个时…

2026/10/20 2:50:50 阅读更多 →

月新闻

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/20 10:02:08 阅读更多 →
Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/20 9:50:17 阅读更多 →
黑夜航拍船只数据集训练YOLOV5模型全流程解析

黑夜航拍船只数据集训练YOLOV5模型全流程解析

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/20 9:50:45 阅读更多 →