当前位置: 首页 > article >正文

VLM-Grounder实战:零样本3D视觉定位从原理到部署

1. 项目概述当大语言模型“看见”三维世界在机器人、增强现实和智能家居领域一个核心的挑战是如何让机器理解人类的自然语言指令并在复杂的三维环境中精准地找到并操作指定的物体。比如你对家庭服务机器人说“请把沙发左边那个红色的马克杯拿给我”它需要先“听懂”你的话然后在客厅的三维场景中从一堆杂物里识别出“红色的马克杯”并判断它相对于“沙发”的“左边”位置。这个过程在学术上被称为“3D视觉定位”。传统的3D视觉定位方法通常严重依赖精确的三维点云数据、预先标注好的物体模型库或者需要针对特定场景进行大量训练。这就像给机器人一本厚厚的、但只针对某个房间的“物品图鉴”一旦换到新环境或者遇到图鉴里没有的新奇物体机器人就“抓瞎”了。近年来视觉-语言大模型的崛起带来了新的曙光。像GPT-4V这样的模型展现了令人惊叹的图文理解和推理能力。一个很自然的想法是能否直接利用这些强大的二维图像理解模型去解决三维空间的问题VLM-Grounder正是对这个问题的精彩回答。它提出了一种全新的框架仅依靠普通的二维图像序列比如机器人或AR设备拍摄的多角度照片无需任何三维几何先验或物体模型库就能实现零样本的3D视觉定位。简单来说它让大语言模型学会了从多张2D照片中“脑补”出物体的三维位置是连接强大的2D视觉理解与3D空间感知的一座桥梁。2. 核心思路拆解如何让2D模型理解3D空间VLM-Grounder的核心创新在于它没有试图去改造或训练一个全新的3D模型而是巧妙地设计了一个智能“代理”将现成的、强大的2D视觉-语言模型组织起来协同完成3D任务。其整体流程可以概括为“分析-搜索-定位”三步走策略。2.1 动态图像拼接与智能搜索想象一下你要在一个陌生的仓库里找一个特定的箱子但你手里只有这个仓库不同角落的一些照片。你会怎么做你可能会先看看照片里有没有类似的箱子然后根据照片拍摄的位置在脑海里把这些照片“拼”起来形成一个大概的空间地图再推断箱子可能在哪。VLM-Grounder的动态图像拼接模块就在做类似的事情。首先系统会获得一个三维场景如一个房间从多个视角拍摄的图片序列。它并不需要知道这些图片精确的相机位姿虽然知道会更好而是通过一个图像匹配算法论文中使用了PATS来建立图片之间的关联形成一个“视图图”。这个图的节点是每一张图片边代表图片之间有足够的视觉重叠。当接到一个语言查询如“床头柜上的台灯”时系统不会盲目地处理所有图片而是启动一个由VLM驱动的搜索代理。这个代理的工作方式是迭代式的“ grounding and feedback ”初步定位代理随机或启发式地选择场景中的一张图片让VLM如GPT-4o分析这张图并尝试根据描述找出可能的目标区域。反馈与导航如果VLM在当前图片中找到了候选区域代理会询问VLM“基于你看到的目标物体更可能出现在相邻的哪张图片里”VLM会根据图片内容如看到了一部分床头柜和空间常识台灯通常在床头柜上方给出指导。迭代搜索代理根据VLM的反馈沿着“视图图”跳转到最相关的下一张图片重复步骤1和2。这个过程反复进行就像在迷宫中根据线索寻宝直到VLM在某一视图中以高置信度确定了目标物体。为什么选择动态拼接而非处理所有视图计算效率和精度平衡。一个场景可能有成百上千张图片让VLM逐一分析每一张的成本极高无论是时间还是API调用费用。动态拼接模仿了人类的高效视觉搜索策略只关注最相关的路径极大地减少了需要处理的视图数量。我们的实测经验是对于中等复杂度的室内场景通常只需迭代3-5个视图就能锁定目标相比处理全部视图效率提升了一个数量级。2.2 多视图融合与3D边界框估计当智能代理通过上述搜索流程在多个相关视图中都定位到了目标物体后我们就获得了目标在多个2D图片上的位置表现为边界框或分割掩码。接下来的关键一步是如何将这些2D观测融合成一个精确的3D边界框这是VLM-Grounder最具工程巧思的部分。它采用了多视图集成投影方法。其基本原理是利用相机的内参焦距、主点和外参位置和姿态可从场景重建数据中获得将每个2D检测框反投影到三维空间。反投影生成锥体对于一个2D边界框我们可以将其四条边反向投射在三维空间中形成一个视锥体。目标物体必然位于这个锥体内部。锥体求交将从不同视角得到的多个视锥体在三维空间中进行求交运算。理论上目标物体的真实3D位置应该位于所有锥体的交集区域内。鲁棒性集成在实际操作中由于2D检测的偏差、相机标定的误差这些锥体可能没有完美的交集。因此VLM-Grounder采用了一种投票或聚类机制。它将所有锥体离散化为空间中的点云然后寻找点云最密集的区域这个区域的中心和外接立方体就被估计为最终的3D边界框。实操心得处理投影不一致性。我们发现在实际运行中不同视图反投影的锥体经常无法严格相交。这时直接求交会导致失败。我们的解决方案是引入一个“软交”策略计算每个3D空间网格被多少个锥体覆盖将覆盖率超过阈值如50%的区域视为有效区域再计算其最小外接立方体。这大大提升了系统在嘈杂观测下的鲁棒性。2.3 零样本能力的源泉VLM-Grounder的“零样本”能力体现在两个层面对未知物体的零样本它不依赖任何预定义的3D物体类别模型库。只要描述中的物体能在2D图像中被VLM识别例如“一个印有卡通图案的蓝色保温杯”无论这个物体多罕见系统都有机会找到它。这得益于VLM强大的开放词汇识别能力。对未知场景的零样本整个流程无需在任何3D视觉定位数据上进行训练。其核心组件——VLM、2D检测器、图像匹配器——都是在通用数据上预训练好的。系统像一个即插即用的工具箱拿到新的场景图片和描述就能直接工作。这种设计使得VLM-Grounder具有极高的灵活性和泛化能力为机器人快速适应新环境提供了可能。3. 环境搭建与数据准备实战理论很美妙但把代码跑起来才是硬道理。下面我将结合自己的踩坑经验带你一步步部署VLM-Grounder并准备好ScanNet数据集。3.1 依赖环境配置详解项目的环境依赖管理比较清晰但有些细节容易出错。第一步克隆与子模块初始化git clone --recurse-submodules https://github.com/OpenRobotLab/VLM-Grounder.git cd VLM-Grounder这里务必使用--recurse-submodules参数因为项目依赖了Grounding-DINO-1.5-API和PATS两个外部工具它们作为子模块存放。如果忘记此参数后续编译会因缺少文件而失败。第二步创建并激活Conda环境conda create -n vlm_grounder python3.10.11 -y conda activate vlm_grounderPython 3.10.11是经过测试的版本强烈建议保持一致避免因版本差异导致的不兼容问题。第三步安装PyTorch与CUDA# 以CUDA 11.7为例请根据你的显卡驱动选择对应版本 conda install pytorch2.0.1 torchvision0.15.2 torchaudio2.0.2 pytorch-cuda11.7 -c pytorch -c nvidia安装后务必在Python中验证CUDA是否可用import torch print(torch.__version__) print(torch.cuda.is_available()) # 应返回True第四步安装其他核心依赖pip install -r requirements.txt pip install githttps://github.com/facebookresearch/pytorch3d.gitrequirements.txt包含了OpenAI库、numpy、opencv等基础包。安装PyTorch3D时可能会因为系统依赖如libgl1-mesa-glx而报错。如果在Ubuntu上可以提前运行sudo apt-get update sudo apt-get install libgl1-mesa-glx。第五步模型权重准备这是最容易出错的环节需要手动下载两个关键的权重文件。SAM-Huge权重从 官方链接 下载后放置于VLM-Grounder/checkpoints/SAM/目录下。如果没有SAM目录请手动创建。PATS权重从提供的Google Drive链接下载全部6个权重文件indoor/outdoor的coarse, fine, third。在VLM-Grounder/3rdparty/pats/下创建weights文件夹并将下载的.pt文件放入。最终结构必须严格如下3rdparty/pats/ ├── data/ └── weights/ ├── indoor_coarse.pt ├── indoor_fine.pt ├── indoor_third.pt ├── outdoor_coarse.pt ├── outdoor_fine.pt └── outdoor_third.pt第六步编译PATS的Tensor-Resize模块cd 3rdparty/pats/setup python setup.py install cd ../../..这个步骤编译一个自定义的PyTorch算子用于高效图像缩放。如果失败请检查你的PyTorch版本是否与CUDA版本匹配。3.2 API密钥配置VLM-Grounder需要调用外部服务的API主要是OpenAI的GPT-4o和DeepDataSpace的Grounding-DINO-1.5。OpenAI API配置 打开vlm_grounder/utils/my_openai.py文件找到api_key变量替换成你自己的OpenAI API密钥格式为sk-...。确保你的账户有GPT-4o模型的调用权限。Grounding-DINO-1.5-API配置 首先安装这个子模块cd 3rdparty/Grounding-DINO-1.5-API pip install -v -e . cd ../..然后你需要去 DeepDataSpace平台 申请一个API Key。申请通常需要等待审核。获得Key后编辑vlm_grounder/utils/my_gdino.py文件填入你的Key。成本控制提醒GPT-4o和GDINO-1.5的API调用都是按次或按token计费的。在调试和运行大规模实验前强烈建议先用我们提供的缓存数据见下文进行测试或者用小规模样本如10条数据跑通全流程以预估成本。我们曾因一个脚本配置错误循环调用API产生了不必要的费用。3.3 ScanNet数据集准备指南ScanNet是一个大型的室内3D场景数据集包含丰富的RGB-D视频序列和3D标注。准备过程较为耗时但步骤明确。第一步下载与目录组织从ScanNet官方网站申请并下载数据。你需要下载“*.sens”格式的原始数据文件。在项目根目录下按照以下结构组织文件夹VLM-Grounder/ └── data/ └── scannet/ ├── grounding/ # (项目自带存放任务定义文件) ├── meta_data/ # (项目自带) ├── scans/ # 将ScanNet数据解压到这里 │ ├── scene0000_00/ │ ├── scene0000_01/ │ └── ... └── tools/ # (项目自带数据处理脚本)第二步提取带位姿的图像ScanNet的.sens文件包含了压缩的视频流和传感器位姿。我们需要将其解压为图像。cd data/scannet/ python tools/extract_posed_images.py --frame_skip 20 --nproc 8--frame_skip 20每20帧抽取一帧这能在保证视图覆盖度的前提下大幅减少数据量。对于大多数场景这足够了。--nproc 8使用8个进程并行处理加快速度。请根据你的CPU核心数调整。 这个过程会产生posed_images文件夹里面按场景存储了JPEG图像和对应的相机位姿文本文件。第三步生成数据集信息文件运行以下脚本它会读取ScanNet的官方标注并生成一个包含所有实例信息的.pkl文件。python tools/batch_load_scannet_data.py接着将上一步提取的图像信息整合到这个数据文件中python tools/update_info_file_with_images.py完成以上步骤后你的data/scannet/目录下应该会新增scannet_instance_data文件夹和更新后的.pkl信息文件数据准备工作就基本完成了。4. 核心模块运行与参数解析环境就绪数据在手现在可以启动VLM-Grounder的核心流程了。官方提供了完整的脚本但理解每个步骤的作用和关键参数对于调试和应用于自己的数据至关重要。4.1 使用缓存数据快速验证为了节省大家的时间和API成本作者提供了在ScanRefer和Nr3D测试集上250个样本的完整缓存数据。我强烈建议新手先用这部分数据跑通流程。下载缓存数据按照README中的链接下载“Exhaustive matching data”、“GDINO detect results”和“Global cache folder”三个压缩包。放置到正确路径解压后严格按照以下目录结构放置exhaustive_matching.pkl-data/scannet/scannet_match_data/Grounding-DINO-1_scanrefer_test_top250_pred_target_classes/等 -outputs/image_instance_detector/global_cache/-outputs/准备测试CSV文件项目在outputs/query_analysis/下已经自带了scanrefer_250.csv和nr3d_250.csv。这两个文件定义了要处理的250个语言查询任务。完成以上步骤后你可以直接跳到4.5 VLM视觉定位步骤使用这些缓存数据运行最终模块这能让你在几分钟内看到可视化结果而不需要经历前面耗时的数据处理和API调用。4.2 从零开始的数据处理流水线如果你想处理自己的数据或完整的验证集则需要走完以下完整流程。步骤一准备任务定义文件假设你要在ScanRefer验证集上测试需要先将其格式转换为项目内部使用的Referit3D格式。python data/scannet/tools/convert_scanrefer_to_referit3d.py \ --input_json_path data/scannet/grounding/scanrefer/ScanRefer_filtered_val.json \ --output_csv_path data/scannet/grounding/referit3d/scanrefer_val.csv生成的CSV文件包含了场景ID、目标物体ID、语言描述等信息。步骤二场景内全景图像匹配这是最耗时的步骤之一使用PATS算法计算场景内所有图像对之间的匹配关系。python vlm_grounder/tools/exhaustive_matching.py \ --vg_file data/scannet/grounding/referit3d/scanrefer_val.csv作用生成“视图图”为后续的动态视图拼接提供导航基础。耗时警告对于一个有1000张图片的场景此步骤可能需要20-30分钟。如果处理整个数据集建议在服务器上分批运行。这也是为什么使用缓存数据能节省大量时间。步骤三查询分析与目标类别预测这个模块调用大语言模型GPT-4o来分析自然语言描述解析出目标物体的类别和附加属性。python vlm_grounder/tools/query_analysis.py \ --vg_file data/scannet/grounding/referit3d/scanrefer_val_relations.csv原理它向GPT-4o发送精心设计的Prompt例如“给定描述‘沙发左侧的茶几’主要的物体类别是什么描述中包含了哪些空间关系或属性”。VLM会返回如“类别茶几关系在沙发左侧”。输出在outputs/query_analysis/下生成新的CSV文件其中增加了pred_target_class和conditions两列。根据论文这个模块的类别预测准确率超过98%是后续流程可靠的基础。步骤四图像实例检测在场景的所有或采样后的图像中检测查询分析模块预测出的目标类别。# 使用YOLOv8-World免费离线 python vlm_grounder/tools/image_instance_detector.py \ --vg_file outputs/query_analysis/scanrefer_val_relations.csv \ --detector yolo # 或使用Grounding-DINO-1.5-Pro需API精度可能更高 python vlm_grounder/tools/image_instance_detector.py \ --vg_file outputs/query_analysis/scanrefer_val_relations.csv \ --detector gdino选择建议对于学术研究或测试YOLOv8-World完全够用且没有额外成本。如果追求在复杂场景下的最高检测召回率可以考虑GDINO-1.5但需密切关注API配额。输出一个.pkl文件存储了每张图片中所有检测到的边界框、置信度和类别。步骤五视图预选择基于上一步的检测结果快速筛选出最有可能包含目标物体的图像子集为后续精细化的VLM搜索做准备。python vlm_grounder/tools/view_pre_selection.py \ --vg_file outputs/query_analysis/scanrefer_val_relations.csv \ --det_file outputs/image_instance_detector/[detector_name]/detection.pkl这个步骤很快它利用检测框的置信度和空间分布进行启发式筛选输出一个新的CSV文件其中包含了为每个查询任务推荐的候选图像列表。4.3 VLM视觉定位核心模块详解这是整个系统的“大脑”集成了动态拼接、VLM交互和3D框估计。我们通过修改run.sh脚本来运行。#!/bin/bash # run.sh export PYTHONPATH$PYTHONPATH:$(pwd) # 设置Python路径 VG_FILEoutputs/query_analysis/scanrefer_val_relations_with_images_selected_diffconf_and_pkl.csv DET_INFOoutputs/image_instance_detector/Grounding-DINO-1_scanrefer_val/detection.pkl MATCH_INFOdata/scannet/scannet_match_data/exhaustive_matching.pkl DATE20240901 EXP_NAMEfull_validation_run GPT_TYPEgpt-4o-2024-05-13 PROMPT_VERSION3 python ./vlm_grounder/grounder/visual_grounder.py \ --from_scratch \ # 重新开始不读取中间缓存 --post_process_component \ # 启用后处理组件如去噪 --post_process_erosion \ # 对分割掩码进行腐蚀操作去除边缘噪声 --use_sam_huge \ # 使用SAM-Huge模型进行实例分割 --use_bbox_prompt \ # 使用边界框作为SAM的提示 --vg_file_path ${VG_FILE} \ --exp_name ${DATE}_${EXP_NAME} \ # 实验名称用于创建输出文件夹 --prompt_version ${PROMPT_VERSION} \ # 使用的Prompt模板版本 --openaigpt_type ${GPT_TYPE} \ --skip_bbox_selection_when1 \ # 当只有1个候选框时跳过选择步骤 --det_info_path ${DET_INFO} \ --matching_info_path ${MATCH_INFO} \ --use_new_detections \ # 使用上一步生成的检测结果 --dynamic_stitching \ # 启用动态图像拼接算法 --online_detector gdino # 在线检测器类型与上一步保持一致关键参数解析与调优经验--dynamic_stitching这是核心算法开关。关闭后系统会尝试处理所有预选视图而不是智能搜索通常会更慢且不一定更好。--prompt_versionPrompt的设计对VLM的表现影响巨大。版本3是论文中经过优化的版本通常能获得最佳效果。如果你有新的想法可以研究vlm_grounder/prompts/下的文件并创建新版本。--use_sam_huge和--use_bbox_promptSAM用于从VLM选定的粗略区域中分割出精确的物体掩码。bbox_prompt模式比point_prompt通常更稳定。--post_process_erosion对于纹理复杂或边界模糊的物体SAM分割的边缘可能会有毛刺。轻微的腐蚀操作可以使掩码更紧凑提升反投影的稳定性。运行后所有结果和丰富的可视化图表会保存在outputs/visual_grounding/{DATE}_{EXP_NAME}/目录下。你可以找到每个查询任务的*_result.pkl包含预测的3D边界框、使用的视图、VLM对话历史等所有原始数据。*_vis_2d.png展示2D视图上的搜索过程、检测框和VLM选择。*_vis_3d.png展示预测的3D边界框在场景点云中的位置。4.4 评估与结果分析运行结束后需要评估预测的3D框与真实标注Ground Truth的匹配精度。对于不同的数据集评估策略略有不同。对于Nr3D数据集 Nr3D的标注可能包含同一类别的多个实例因此需要先进行预测框与真实框的匹配。# 方法1使用预测框与真实框中心的3D距离进行匹配论文采用的方法 python vlm_grounder/eval/accuracy_evaluator.py \ --method gtbbox_dist \ --exp_dir outputs/visual_grounding/20240901_full_validation_run # 方法2使用3D IoU进行匹配 python vlm_grounder/eval/accuracy_evaluator.py \ --method gtbbox_iou \ --exp_dir ... # 方法3使用2D投影掩码的IoU进行匹配需要额外数据 python vlm_grounder/eval/accuracy_evaluator.py \ --method 2d_iou \ --exp_dir ...选择建议gtbbox_dist是最直接和常用的评估方式它计算预测框中心与每个真实框中心的距离选择最近的作为匹配然后判断距离是否小于阈值如Acc0.25表示中心距离小于0.25米即为正确。对于ScanRefer数据集 ScanRefer每个描述通常对应一个唯一的真实物体ID评估脚本会直接计算预测框与该真实物体标注框的3D IoU。评估脚本会输出在各类别Overall, Unique, Multiple等上的Acc0.25和Acc0.5指标。你可以对照论文中的结果ScanRefer上51.6% Acc0.25来验证你的复现是否成功。5. 常见问题排查与性能调优指南在实际部署和运行中你几乎一定会遇到各种问题。下面是我在复现过程中遇到的一些典型问题及解决方案。5.1 环境与依赖问题问题1安装PyTorch3D失败提示缺少Ninja或C编译工具。原因PyTorch3D需要从源码编译部分C/CUDA扩展。解决确保系统已安装完整的编译工具链。# Ubuntu sudo apt-get update sudo apt-get install build-essential cmake ninja-build # Conda环境中也可安装 conda install ninja如果仍失败可以尝试安装预编译的较旧版本但可能与PyTorch 2.0.1不兼容或者参考PyTorch3D官方GitHub的Issue页面。问题2运行PATS图像匹配时速度异常缓慢或内存溢出。原因PATS在处理高分辨率图像或大型场景时计算量很大。解决调整图像尺寸检查vlm_grounder/tools/exhaustive_matching.py中读取图像时是否有resize操作。可以尝试将图像缩放到更小的尺寸如480p虽然会损失一些匹配精度但能极大提升速度。分批处理如果场景图片过多500张可以考虑修改脚本将图片分成多个批次进行匹配再合并结果。使用缓存对于固定场景匹配结果只需计算一次。务必保存好生成的.pkl文件后续实验直接复用。5.2 API调用与网络问题问题3OpenAI或GDINO API调用超时或报错。原因网络连接不稳定或API服务临时故障。解决增加重试机制项目代码中可能已有简单的重试逻辑。如果没有可以在调用API的代码处如vlm_grounder/utils/my_openai.py封装一个带指数退避的重试函数。设置超时明确设置请求的超时时间如30秒避免程序长时间挂起。检查配额与账单确保API Key有效且有余量。GPT-4o的成本不低长时间运行大量数据前务必做好预算。问题4使用GDINO-1.5-API时返回的检测框为空或质量很差。原因Prompt描述不够精确或API服务端模型版本有差异。解决优化Prompt查看image_instance_detector.py中构造GDINO请求的部分。确保发送的文本提示清晰无歧义。例如将“chair”改为“a photo of a chair”有时会有奇效。置信度阈值检查代码中过滤低置信度检测框的阈值如conf_threshold0.2。对于复杂场景可以适当降低阈值以提高召回率但会增加后续处理的计算量。降级方案如果GDINO持续不稳定切换回YOLOv8-World是更稳妥的选择。在我们的对比中YOLOv8-World在常见物体上的表现非常可靠。5.3 算法流程与精度问题问题5VLM在动态搜索中陷入循环总是在几个视图间跳转找不到目标。原因这可能是因为“视图图”不够连通或者VLM对空间关系的理解出现偏差。解决检查匹配图可视化exhaustive_matching.pkl生成的图看是否存在孤立的节点图片或稀疏的连接。如果图片间重叠太少PATS可能无法建立有效连接。考虑在数据提取时减小frame_skip参数获取更密集的视图。修改搜索策略在visual_grounder.py的动态拼接逻辑中有一个“已访问视图”的列表防止循环。可以检查这个机制是否正常工作。也可以尝试增加随机探索的概率让代理有一定几率跳出当前局部区域。增强空间Prompt在询问VLM导航方向时可以提供更丰富的上下文例如“你现在看到的是房间的东南角目标物体描述为‘窗户下的书桌’。根据常识书桌通常靠墙放置且窗户也在墙上。请从当前视图的相邻视图中选择一个更可能看到完整书桌的视角。”问题6最终预测的3D框漂移严重或者尺寸明显不准。原因2D检测/分割不准、相机位姿误差、或多视图融合策略失效。解决2D精度提升这是根本。确保SAM分割的质量。可以尝试--use_bbox_prompt和--post_process_erosion的组合。也可以考虑使用更强大的分割模型如HQ-SAM。视图筛选在融合前剔除那些2D检测置信度过低或分割面积过小的视图观测。在multi_view_ensemble.py相关的代码中可以加入基于置信度的加权融合而不是简单投票。相机标定检查虽然ScanNet提供了位姿但它们并非完全精确。如果条件允许可以使用COLMAP等工具对提取的图像进行重新重建可能获得更准确的相机参数。后处理优化预测的3D框可以进一步用简单的启发式规则修正例如让框的底部紧贴地平面对于室内家具物体或者将框的长宽高与常见物体的先验尺寸进行软约束对齐。问题7处理速度太慢无法满足实时或准实时应用。原因VLM的API调用延迟是主要瓶颈其次是大规模图像匹配和检测。优化方向缓存一切对固定的场景查询分析、图像匹配、实例检测的结果都可以缓存。对于新的语言查询只有VLM搜索和融合步骤需要实时运行。本地轻量VLM考虑使用开源的、可本地部署的VLM如LLaVA-NeXT、Qwen-VL替代GPT-4o进行搜索决策。虽然能力可能有差距但延迟和成本会大幅下降。并行化不同的查询任务之间是完全独立的。可以很容易地将任务列表分配到多个进程或机器上并行执行。更激进的视图预选在视图预选择阶段使用更严格的阈值只为每个查询保留3-5张最可能的图像能极大减少后续VLM交互的次数。这个项目为我们展示了一条通向通用3D场景理解的实用路径。它没有执着于端到端的训练而是通过精巧的设计将多个强大的现成模型组合成一个智能体。这种“集成智能”的思路在当今基础模型快速发展的时代或许比从头训练一个单一模型更具灵活性和生命力。我在实验中发现其性能对2D基础模型的精度非常敏感任何一步的误差都会被传递和放大。因此未来随着2D检测、分割和VLM模型的持续进步VLM-Grounder这类框架的性能天花板还会被不断推高。对于想要快速在机器人或AR应用中尝试3D视觉定位的研究者和开发者来说这是一个非常值得深入研究和打磨的起点。

相关文章:

VLM-Grounder实战:零样本3D视觉定位从原理到部署

1. 项目概述:当大语言模型“看见”三维世界 在机器人、增强现实和智能家居领域,一个核心的挑战是如何让机器理解人类的自然语言指令,并在复杂的三维环境中精准地找到并操作指定的物体。比如,你对家庭服务机器人说“请把沙发左边那…...

HSTracker:macOS炉石传说卡组追踪器的终极免费助手

HSTracker:macOS炉石传说卡组追踪器的终极免费助手 【免费下载链接】HSTracker A deck tracker and deck manager for Hearthstone on macOS 项目地址: https://gitcode.com/gh_mirrors/hs/HSTracker 如果你是一名macOS平台的炉石传说玩家,想要提…...

USB 速查表:各版本速率、命名规则、线缆及充电速率全解析!

USB 速查表诞生缘由2022 年 5 月 5 日,有人因误解 USB 术语,花时间排查不存在的 bug,于是给自己做了一份 USB 速查表,希望能帮别人节省时间。USB 各版本参数对比以下是不同市场名称的 USB 相关参数:市场名称别名信号传…...

折叠屏市场迎来转折,OPPO 靠硬核产品力实现逆势突围!

4 月 24 日,IDC 正式公布 2026 年第一季度国内手机行业数据,整体市场表现平淡,行业增长乏力已经成为常态。就在这样的大环境下,OPPO 稳住节奏,拿下 16% 的市场份额稳居行业前三。其中最亮眼的突破,无疑是折…...

GRETNA 2.0.0脑网络分析终极指南:从入门到精通

GRETNA 2.0.0脑网络分析终极指南:从入门到精通 【免费下载链接】GRETNA A Graph-theoretical Network Analysis Toolkit in MATLAB 项目地址: https://gitcode.com/gh_mirrors/gr/GRETNA 你是否曾为分析fMRI数据而头疼?面对复杂的脑网络分析需求&…...

终极抢票神器:大麦助手DamaiHelper完整使用指南

终极抢票神器:大麦助手DamaiHelper完整使用指南 【免费下载链接】damaihelper 支持大麦网,淘票票、缤玩岛等多个平台,演唱会演出抢票脚本 项目地址: https://gitcode.com/gh_mirrors/dam/damaihelper 还在为抢不到演唱会门票而烦恼吗&…...

2025届学术党必备的降重复率方案解析与推荐

Ai论文网站排名(开题报告、文献综述、降aigc率、降重综合对比) TOP1. 千笔AI TOP2. aipasspaper TOP3. 清北论文 TOP4. 豆包 TOP5. kimi TOP6. deepseek 当下学术环境之中,AI论文网站身为辅助研究的工具,主要具备文献检索、…...

【Docker沙箱AI隔离实战手册】:20年SRE亲授5大避坑法则与零信任部署框架

更多请点击: https://intelliparadigm.com 第一章:Docker沙箱AI隔离的核心价值与演进脉络 在AI模型快速迭代与多租户协同开发的背景下,Docker沙箱已成为保障模型推理安全、资源可控与环境可复现的关键基础设施。其核心价值不仅在于进程级隔离…...

抖音内容下载全攻略:douyin-downloader如何帮你高效保存优质素材

抖音内容下载全攻略:douyin-downloader如何帮你高效保存优质素材 【免费下载链接】douyin-downloader A practical Douyin downloader for both single-item and profile batch downloads, with progress display, retries, SQLite deduplication, and browser fall…...

8051单片机实战:用TX8T3260芯片实现RF-315/433MHz遥控器信号的学习与重放功能

8051单片机实战:TX8T3260芯片实现RF-315/433MHz遥控信号学习与重放 在智能家居和物联网设备开发中,遥控信号的兼容性一直是工程师面临的挑战。传统方案需要为每个被控设备配备专用遥控器,而学习型遥控技术通过捕获、存储和重放原始信号&#…...

别再只懂MD5了!聊聊变色龙哈希(Chameleon Hash)在区块链和数字签名里的‘后门’妙用

变色龙哈希:区块链可编辑性与数字签名撤销的密码学密钥 想象一下,你正在设计一个医疗区块链系统,突然发现某家医院误上传了患者隐私数据。在传统区块链中,这种错误将永远无法修正——这就是为什么我们需要重新思考哈希函数的"…...

Fedora Media Writer完整指南:一键制作Fedora启动盘的终极神器

Fedora Media Writer完整指南:一键制作Fedora启动盘的终极神器 【免费下载链接】MediaWriter Fedora Media Writer - Write Fedora Images to Portable Media 项目地址: https://gitcode.com/gh_mirrors/me/MediaWriter Fedora Media Writer是一款专为Fedora…...

iOS开发实战:用AV Foundation从零封装一个可复用的视频播放器组件(Swift版)

iOS开发实战:用AV Foundation从零封装可复用的视频播放器组件(Swift版) 在移动应用开发中,视频播放功能已成为许多App的标配需求。无论是社交平台的短视频浏览、教育类App的课程回放,还是电商平台的产品展示&#xff…...

突破光谱限制:YOLOv11多光谱目标检测的架构革新与实战部署

突破光谱限制:YOLOv11多光谱目标检测的架构革新与实战部署 【免费下载链接】ultralytics Ultralytics YOLO 🚀 项目地址: https://gitcode.com/GitHub_Trending/ul/ultralytics 在传统计算机视觉领域,RGB三通道图像已无法满足农业监测…...

为什么选择GRETNA:MATLAB脑网络分析的首选工具包?

为什么选择GRETNA:MATLAB脑网络分析的首选工具包? 【免费下载链接】GRETNA A Graph-theoretical Network Analysis Toolkit in MATLAB 项目地址: https://gitcode.com/gh_mirrors/gr/GRETNA 你是否在神经科学研究中需要分析fMRI数据,但…...

从Robinson到Chernozhukov:Double ML的‘正交化’思想如何革新了经济学与生物统计?

从Robinson到Chernozhukov:Double ML如何重塑高维因果推断 1988年,计量经济学家Peter Robinson在《Econometrica》发表了一篇看似普通的半参数回归论文,却无意间埋下了一颗改变机器学习因果推断范式的种子。三十年后,当MIT的Cher…...

5分钟掌握:WebToEpub将网页小说转为电子书的终极指南

5分钟掌握:WebToEpub将网页小说转为电子书的终极指南 【免费下载链接】WebToEpub A simple Chrome (and Firefox) Extension that converts Web Novels (and other web pages) into an EPUB. 项目地址: https://gitcode.com/gh_mirrors/we/WebToEpub 你是否曾…...

Linux 删除文件 8 种方法

在 Linux 系统日常运维和开发工作中,删除文件是基础却至关重要的操作。很多人只知道图形界面拖拽到回收站或简单敲 rm 命令,但实际上 Linux 提供了从用户友好到底层系统调用、再到安全擦除的多种方式。每种方法都有独特的适用场景:新手追求简单恢复,运维人员需要批量高效处…...

Windows风扇控制完全指南:Fan Control从入门到精通

Windows风扇控制完全指南:Fan Control从入门到精通 【免费下载链接】FanControl.Releases This is the release repository for Fan Control, a highly customizable fan controlling software for Windows. 项目地址: https://gitcode.com/GitHub_Trending/fa/Fa…...

概率思维训练:从认知偏差到实践应用

1. 概率直觉培养的核心价值概率思维是现代人必备的基础认知能力。从天气预报的降水概率到医疗检查的准确率,从投资决策的风险评估到人工智能算法的置信度,概率无处不在。但大多数人在面对概率问题时,第一反应往往是困惑甚至抗拒——这源于我们…...

Divinity Mod Manager终极指南:神界原罪2模组管理5步精通

Divinity Mod Manager终极指南:神界原罪2模组管理5步精通 【免费下载链接】DivinityModManager A mod manager for Divinity: Original Sin - Definitive Edition. 项目地址: https://gitcode.com/gh_mirrors/di/DivinityModManager 还在为《神界原罪2》的模…...

CyberChef终极指南:网络安全分析师的瑞士军刀

CyberChef终极指南:网络安全分析师的瑞士军刀 【免费下载链接】CyberChef The Cyber Swiss Army Knife - a web app for encryption, encoding, compression and data analysis 项目地址: https://gitcode.com/GitHub_Trending/cy/CyberChef CyberChef是一个…...

告别手动复制!OpenDataLab MinerU智能文档理解快速提取PDF文字

告别手动复制!OpenDataLab MinerU智能文档理解快速提取PDF文字 1. 为什么需要智能文档理解? 在日常办公和学术研究中,PDF文档是最常见的文件格式之一。然而,从PDF中提取文字和结构化数据一直是个令人头疼的问题。传统方法通常面…...

5步永久备份你的QQ空间回忆:GetQzonehistory完整指南

5步永久备份你的QQ空间回忆:GetQzonehistory完整指南 【免费下载链接】GetQzonehistory 获取QQ空间发布的历史说说 项目地址: https://gitcode.com/GitHub_Trending/ge/GetQzonehistory 你是否曾担心那些记录青春岁月的QQ空间说说会随着时间消失?…...

AI编码助手工作流引擎:提升开发效率的自动化思维框架

1. 项目概述:为AI编码助手注入“灵魂”的工作流引擎 如果你和我一样,每天都在和Claude、Cursor、GitHub Copilot这类AI编码助手打交道,那你肯定也经历过这种时刻:你满怀期待地输入“帮我创建一个React登录组件”,结果…...

LSTM网络记忆能力解析与Python实现

1. 项目概述:用LSTM网络演示记忆能力在自然语言处理和时间序列预测领域,长短期记忆网络(LSTM)因其独特的记忆机制而广受关注。这个项目将用Python构建一个能够展示记忆能力的LSTM模型,通过字符级文本生成任务直观演示神…...

基于LLM的聊天机器人开发框架:架构设计与工程实践

1. 项目概述与核心价值最近在GitHub上看到一个挺有意思的项目,叫zhaoyingjun/chatbot。乍一看名字,你可能会觉得这又是一个基于某个大语言模型API的简单封装,或者是一个玩具级别的对话应用。但当我真正点进去,把代码拉下来跑了一遍…...

分治算法之基于分治的快速排序

基于分治的快速排序下面我们针对数组 [4, 1, 6, 9, 8, 5, 2, 3, 0, 7] 进行排序来讲解示例:首先第一步我们需要将大问题分解为小问题。假设我们要将数组分为两个更小的子问题,我们可以有以下的分解方式:[4] [1, 6, 9, 8, 5, 2, 3, 0, 7] [4, …...

如何彻底解决Mac滚动方向混乱:Scroll Reverser终极配置指南 [特殊字符]

如何彻底解决Mac滚动方向混乱:Scroll Reverser终极配置指南 🚀 【免费下载链接】Scroll-Reverser Per-device scrolling prefs on macOS. 项目地址: https://gitcode.com/gh_mirrors/sc/Scroll-Reverser 如果你经常在Mac上同时使用触控板和鼠标&a…...

CREST分子构象空间探索工具:基于iMTD-GC算法的多尺度构象采样技术深度解析

CREST分子构象空间探索工具:基于iMTD-GC算法的多尺度构象采样技术深度解析 【免费下载链接】crest CREST - A program for the automated exploration of low-energy molecular chemical space. 项目地址: https://gitcode.com/gh_mirrors/crest/crest CREST…...