ARTICLE DETAIL

资讯详情

深耕网站建设与运营推广的一线实战洞察。

JiuwenSymbiosis视觉感知管线深度解析:从开放词汇检测到像素到基座坐标的三维反投影

JiuwenSymbiosis视觉感知管线深度解析:从开放词汇检测到像素到基座坐标的三维反投影 JiuwenSymbiosis视觉感知管线深度解析从开放词汇检测到像素到基座坐标的三维反投影【免费下载链接】jiuwensymbiosisJiuwen Symbiosis就是一个能懂人话、看得见物理世界、长了四肢的智能助手。用户不需要示教不需要教它怎么抓东西怎么走路就像指挥一个经验丰富的工人一样用自然语言下任务它就能自己完成感知、理解、规划、执行。项目地址: https://gitcode.com/openJiuwen/jiuwensymbiosisJiuwenSymbiosisopenJiuwen/jiuwensymbiosis是一个能懂人话、看得见物理世界、长了四肢的开源智能机器人助手你用自然语言下任务它自己完成感知、理解、规划与执行。这篇文章带你完整拆解它的视觉感知管线——从一句抓起那个黑色盒子出发经过开放词汇检测、掩膜质心、深度采样最终完成像素到基座坐标的三维反投影得到机械臂可以直接执行的抓取点。无需示教无需手写算法理解这条管线你就理解了它看得见的秘密 一、管线总览一句话任务背后的四步流水线整个视觉感知管线位于 jiuwensymbiosis/perception/由四个模块接力完成任何机器人平台Piper、SO101、CRUZR 等都可以直接复用步骤做什么核心文件① 开放词汇检测文本提示词 → 目标掩膜/框/置信度detector_client.py、grounding_dino_sam2_server.py② 像素定位掩膜质心 深度窗口中值vision.py 的detect_and_centroid③ 三维反投影(u, v, 深度) → 相机系 → 基座系 XYZgeometry.py 的pixel_and_depth_to_camera_xyz④ 修正与抓点手眼标定残差补偿、抓取/放置高度vision.py 的default_get_grasp_info_simple整体架构图可以参阅官方文档docs/zh/explanation/architecture.md。二、开放词汇检测GroundingDINO SAM2 的文字找物体传统检测器只能识别训练过的固定类别而 JiuwenSymbiosis 采用开放词汇检测Open-Vocabulary Detection你用什么词描述物体它就能找什么物体——红色马克杯那个带条码的白盒子都可以直接作为提示词。检测服务是一个独立的 FastAPI 侧车进程sidecar由 detector_sidecar.py 以子进程方式拉起GroundingDINOIDEA-ResearchApache-2.0负责文字 → 目标框的零样本检测默认使用grounding-dino-base模型SAM2MetaApache-2.0再把每个框精修成高质量像素掩膜对不规则物体也能给出贴合的轮廓客户端 detector_client.py 只需一次 HTTP 调用POST /segment传入 base64 图像 text_prompt拿回[mask, box, score, label]列表。服务不可达时返回空列表并记日志而不是抛异常——没检测到被视为可恢复状态交给上层决策。POST /segment {image_base64, text_prompt} → {results: [ {mask_base64, shape, box, score, label}, ... ]}框/文本阈值默认 0.35 / 0.25可在 YAML 中配置下游永远只取得分最高的检测结果优先保证不抓错物体。不想装 SAM2 时服务器支持--no-sam2轻量模式直接用检测框中心做质心对盒状物体完全够用。防误检彩蛋vision.py 还内置了颜色校验region_color_matches——当你说白色的桌子检测却落在一个棕色盒子上掩膜区域的 HSV 色相与提示词颜色矛盾结果会被直接剔除从源头减少抓错物体。三、从掩膜到像素质心与深度采样拿到检测掩膜后detect_and_centroidvision.py#L301-L388做三件事取中值质心对掩膜内所有像素坐标取中值而非均值个别边缘噪点无法把质心拉偏掩膜分辨率与图像不一致时自动缩放到图像坐标系保证和相机内参严格对齐深度窗口中值在质心周围取 5×5 邻域内所有有效深度的中值单像素深度孔洞不会导致失败稳定失败契约所有失败原因no_detection、empty_mask、no_valid_depth、detector_unavailable等统一取自 contracts.py 的DETECTION_REASONS调用方和上层 LLM 诊断共用同一套词汇。四、像素到基座坐标三维反投影的数学这是整条管线最核心的一步实现在 vision.py#L579-L610 的default_pixel_to_base_xyz分两小步4.1 针孔相机模型像素 深度 → 相机系 XYZ用相机内参矩阵 K焦距 fx/fy、主点 ppx/ppy把 (u, v, 深度) 反投回相机坐标系x (u − ppx) × z / fx y (v − ppy) × z / fy z 深度对应 geometry.py#L61-L74 的pixel_and_depth_to_camera_xyz。注意一个小细节深度以米读入输出直接换算成毫米与基座坐标系单位一致避免拼接变换时出现单位跳变。4.2 手眼标定两个 4×4 变换串起来腕部相机eye-in-hand相对基座的位置由手眼标定给出。管线把两个齐次变换相乘T_base_cam T_base_flange × T_flange_camT_flange_cam来自标定的 JSON 文件由 calibration.py 加载标定流程见 docs/zh/how-to/calibrate-hand-eye.mdT_base_flange来自当前法兰位姿各厂商适配器提供pose_to_tf回调——机械臂动一下相机位置就实时更新反投影结果始终跟随当前姿态。相乘后对相机系点做一次apply_transform像素点就变成了基座系下的毫米级 XYZ 坐标。五、修正与抓点让理论值变成能抓的值理论反投影永远存在残差标定误差、相机安装偏差。管线提供了两级补偿vision.py#L391-L429 的apply_xy_correctionxy_transform多点仿射/相似变换拟合能同时吸收平移和旋转/缩放残差推荐由robot calibrate --correct生成xy_correction_mm单点平移量的旧版兼容项。之后default_get_grasp_info_simplevision.py#L613-L702给出最终结果目标位置、grasp_z抓取高度受安全下限约束、place_z放置高度 顶面 夹爪厚度偏移等一整套几何参数。对于顶视抓取还有一个进阶路径把整个掩膜投影成基座系点云object_geometry.py用 MAD 鲁棒剔除深度飞点取顶面分位高度z_top再用 PCA 短轴估计yaw 角得到俯视抓取点——避免斜视相机取到的侧面中点让夹爪撞上物体顶部vision.py#L492-L548 的select_top_surface_grasp。点云还能继续喂给 scene3d.py 判断左/右/上/下等空间关系让放在黑色盒子左边这样的指令也能被理解。六、真实画面看一次运行里的感知下图是 GUI 运行视图左侧任务执行、右侧相机画面同步滚动每一步的检测结果、抓取点都会标注在画面上方便你直观核对管线的输出。仓库内置了一段真实运行样本examples/sample_trace/ 下有 31 帧腕部相机画面、时间轴 JSON 和可交互 HTML 回放说明见 examples/sample_trace/README.md是理解检测 → 反投影 → 抓取全过程的最佳教材调试时dump_grasp_debug会把每次检测的**原始帧 红色掩膜叠加图 完整数值快照像素、深度、内参、变换矩阵、修正量**写到运行目录的grasp_debug/下离线即可复现排查任何一次抓取偏差。七、快速上手跑通视觉感知管线检查清单装好 RealSense 深度相机相机由 camera.py 封装自动对齐彩色流与深度流完成手眼标定在 YAML 中配置calib_path指向标定 JSON参考 configs/piper/piper.yaml启动检测服务python -m jiuwensymbiosis.serving.grounding_dino_sam2_server --port 8114首次运行会从模型仓库下载权重请耐心等待跑一个任务用 GUI 或 CLI 下达自然语言指令在运行视图中核对掩膜、质心与反投影坐标仍有偏差执行robot calibrate --correct生成xy_transform多点修正。八、总结JiuwenSymbiosis 的视觉感知管线用一条清晰的四级流水线把人话变成了坐标开放词汇检测 → 掩膜质心 深度中值 → 针孔反投影 手眼标定 → 残差修正 抓点几何每一步都做了工程化的鲁棒设计中值统计、颜色校验、稳定失败契约、完整调试快照并且与机器人平台完全解耦——这套管线正是它能像老工人一样理解物理世界、直接上手干活的核心能力。想继续深入可以从 jiuwensymbiosis/perception/init.py 的模块说明读起配合 docs/zh/explanation/architecture.md 的架构图一图胜千行。【免费下载链接】jiuwensymbiosisJiuwen Symbiosis就是一个能懂人话、看得见物理世界、长了四肢的智能助手。用户不需要示教不需要教它怎么抓东西怎么走路就像指挥一个经验丰富的工人一样用自然语言下任务它就能自己完成感知、理解、规划、执行。项目地址: https://gitcode.com/openJiuwen/jiuwensymbiosis创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表