
UI-TARS点击老是错位三步搞懂坐标换算让点击稳稳落在目标上【免费下载链接】UI-TARSPioneering Automated GUI Interaction with Native Agents项目地址: https://gitcode.com/GitHub_Trending/ui/UI-TARSUI-TARS 是字节跳动开源的 GUI 智能体看一张截图就能替你操作电脑。用户最常踩的坑就是点击错位而根因几乎都在同一处坐标换算。搞懂下面这一条换算链路错位基本就消失了。红点打偏的那一刻假设你让 UI-TARS 打开 GIMP 的系统资源设置项截图是 1920×1080模型输出了Action: click(start_box(197,525))如果你直接拿 (197, 525) 去点真实屏幕大概率点不中。因为模型根本没看过 1920×1080 的图——它看的是按自己规则缩放过的图直接复用原始坐标等于拿着不同比例的地图去找路。原理模型坐标必须过一道缩放换算整条坐标链路只有一句话模型在缩放后的图空间里报坐标你要把它换算回原屏幕才能用。三个关键角色smart_resize模型看屏幕的规矩。它把截图缩放成宽高都能被 28 整除、且总像素落在 [100×28×28, 16384×28×28] 区间内的尺寸。1920×1080 的截图进去出来是 1932×1092。parse_action_to_structure_output把模型带 Thought/Action 的原始文本解析成结构化字典并把坐标归一化成 0~1 的相对值。parsing_response_to_pyautogui_code用相对坐标乘以真实屏幕尺寸生成pyautogui.click(...)代码。核心逻辑都在 codes/ui_tars/action_parser.py配套的可视化教程在 README_coordinates.md。实操三步完成一次坐标换算第一步算出模型实际看到的缩放分辨率from ui_tars.action_parser import smart_resize h, w smart_resize(1080, 1920) # - (1092, 1932)这一步得到的 (h, w) 是模型坐标系的分母后面所有换算都以它为准。第二步把模型坐标放大回原屏幕x int(197 / w * 1920) # - 195 y int(525 / h * 1080) # - 519公式就是模型坐标 ÷ 缩放边长 × 原始边长整篇文章唯一的核心运算错位问题九成出在这一步的输入上。第三步把解析和生成交给框架想让框架直接执行时把原始输出和缩放分辨率交给解析函数即可actions parse_action_to_structure_output( response, factor1000, origin_resized_heighth, origin_resized_widthw, model_typeqwen25vl)注意origin_resized_*两个参数传的是缩放后的分辨率不是截图原始分辨率——这是最高频的坑。效果验证怎么判断你做对了三个可观察的信号红点落在目标上。仓库自带可视化流程把换算后的坐标打成一个红点画回原截图并保存。红点稳稳压在系统资源上换算就是对的。相对坐标在范围内。parse_action_to_structure_output输出的start_box应该是 0~1 的相对值出现大于 1 的数基本就是传错了缩放分辨率。单测全绿。跑一下 codes/tests/action_parser_test.py覆盖了动作解析、坐标换算和 pyautogui 代码生成三个环节。避坑指南三种最常见的错位成因现象偏移方向稳定总是差一截原因origin_resized_height/width传了截图原始分辨率。模型坐标基于缩放图两套比例不一致偏差是成比例的系统性误差方向看起来很规律。解法用smart_resize的返回值别手算缩放。现象坐标越界或整片区域点歪原因model_type选错。qwen25vl 系列输出的是绝对像素坐标而 qwen2vl 输出千分位相对坐标除以 factor1000两种坐标系完全不同。解法按实际部署的模型选model_typeqwen2vl 时factor保持 1000。现象换算无误实际鼠标位置仍偏原因系统显示缩放Windows/macOS 的 125%/150%。截图工具拿到的是一套分辨率pyautogui 操作的又是另一套。解法截图与操作统一到同一坐标系要么显示缩放调回 100% 用原始分辨率要么全程按逻辑像素换算二选一别混用。进阶方向想再深入一步可以看智能体的完整循环截图 → 模型 → 动作 → 反思修正如何调用这套解析层以及 UI-TARS-2 在坐标表达上的演进解析层本身短期不会变入口始终是 codes/ui_tars/ 这个目录。下次 UI-TARS 点击落空先做两件事把红点画出来、核对缩放分辨率和 model_type 这两个数。通常到这一步就结束了不用怀疑模型本身。【免费下载链接】UI-TARSPioneering Automated GUI Interaction with Native Agents项目地址: https://gitcode.com/GitHub_Trending/ui/UI-TARS创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考