UI-TARS 点击总是偏一点:坐标定位链路排查与验证方法
UI-TARS 点击总是偏一点坐标定位链路排查与验证方法【免费下载链接】UI-TARSPioneering Automated GUI Interaction with Native Agents项目地址: https://gitcode.com/GitHub_Trending/ui/UI-TARSUI-TARS 是字节跳动开源的多模态 GUI 智能体适合桌面与移动端界面自动化。模型说点击哪里通常不难难的是把模型给的坐标准确落到真实屏幕上。本文以一次点击任务为主线讲清 UI-TARS 坐标从模型输出到屏幕像素的转换链路并给出可逐项核对的检查项和验证办法。一次没点中的操作说明了什么先设想一个常见场景让 UI-TARS 在 GIMP 里打开系统资源面板模型输出了click(start_box(197,525))指令也执行了但鼠标落在了旁边。问题往往不在模型看错了而在坐标的参照系模型看到的截图在送入前被smart_resize按 28 的因子调整过尺寸它输出的数字对应的是调整后的图而执行点击时用的是原始屏幕尺寸。两套坐标之间隔了一次缩放再叠加系统显示缩放、宽高参数传错点位自然偏移。所以排查顺序应该是先确认坐标在哪一层被转换再逐层核对参数最后画点验证而不是反复调模型。从截图到鼠标动作的完整链路UI-TARS 的交互闭环用户指令经模型产生 Thought 与 Action由 PyAutoGUI 执行后回到 Observation形成循环一次点击要经过四步每步都发生在 codes/ui_tars/action_parser.py 中截图缩放smart_resize把原始截图如 1920×1080缩放到宽高都能被 28 整除、总像素落在 [min_pixels, max_pixels] 区间内的尺寸且尽量保持宽高比。模型输出坐标Qwen2.5VL 系列输出的是调整后图像上的绝对坐标Qwen2VL 系列输出的是按 factor1000 归一化的相对坐标。两者走不同的换算分支。解析为归一化框parse_action_to_structure_output把模型文本里的point/start_box统一解析成 0~1 之间的 [x1, y1, x2, y2]。还原为像素parsing_response_to_pyautogui_code用归一化值乘以截图的image_width/image_height生成最终的 pyautogui 调用。理解这四点后点偏了就能定位到具体环节偏移方向固定多半出在第 1、2 步的尺寸或模型类型上偏移忽大忽小多半出在第 3 步的解析上。5 个可直接执行的检查项检查 1model_type 与真实模型是否一致parse_action_to_structure_output的model_type决定走哪条换算分支qwen25vl走绝对坐标除以 smart_resize 尺寸其他走除以 factor。用 7B 的 2.5VL 模型却传了别的类型换算分母会差一个量级。确认方式打印解析结果里的start_box若数值明显小于 1 且远小于真实位置比例基本就是分支用错了。检查 2origin_resized 宽高是否等于真实截图尺寸调用解析函数时parsed parse_action_to_structure_output( response, factor1000, origin_resized_height1080, origin_resized_width1920, model_typeqwen25vl)其中两个 origin 参数必须来自实际截屏文件的img.size而不是显示器的显示分辨率。确认方式在截屏后打印一次尺寸与传参逐项比对。检查 3系统显示缩放是否吃掉了坐标Windows 125%/150% 或 macOS 缩放下截图的像素尺寸与逻辑分辨率不一致点击 API 又按逻辑坐标计算会造成整体偏移。处理办法以截图文件的像素尺寸为准参与换算并让执行端使用同一坐标系。检查 4提示模板是否与运行平台匹配codes/ui_tars/prompt.py 提供三套模板COMPUTER_USE面向桌面MOBILE_USE面向手机与安卓模拟器多了长按、返回、打开应用等动作GROUNDING只输出动作、不带思考。桌面任务用了移动端模板动作空间不一致会导致输出格式漂移。确认方式检查模板名与目标环境一一对应。检查 5用仓库自带测试锁住解析行为codes/tests/action_parser_test.py 里有对click(pointpoint200 300/point)这类输出的解析断言。本地改动过解析相关代码后跑一遍python -m unittest确认action_type与start_box的断言仍然通过可以把解析逻辑被意外改坏这类问题提前拦住。如何验证把预测点画回截图上最直接的验证是可视化。README_coordinates.md 里给出了完整示例对data/coordinate_process_image.png1920×1080 的 GIMP 界面模型输出坐标 (197, 525)先算出模型实际看到的尺寸再按比例映射回原图new_h, new_w smart_resize(1080, 1920) # 模型看到的尺寸 x 197 / new_w * 1920 # 映射回原始宽度 y 525 / new_h * 1080 # 映射回原始高度映射结果标回截图原始截图模型需要将系统资源选项定位到红点附近换算后画回截图的点击点红点即最终落点若红点落在目标元素上链路正确落在附近但系统性偏一点重点复查检查 2、3落点完全跑偏重点复查检查 1。常见偏差速查整体平移一个固定比例多为显示缩放检查 3换算与执行不在同一坐标系。偏移量与坐标位置成正比越靠边缘偏越多smart_resize触发了 max_pixels 上限模型看到的图比预期更小核对 min/max pixels 参数是否与推理端一致。横竖方向只偏其一宽高参数互换origin_resized_height传成了宽度这类错误测试用例很难覆盖打印一次实际值最快。动作类型解析成功但坐标为空模型输出的动作写法point与start_box与预期模板不符先对照提示模板再定位解析逻辑。 建议下一步先按检查 2 打印一次截图真实尺寸 vs 传参尺寸再跑一遍可视化画点。这两步花不了十分钟却能覆盖绝大多数点击偏移问题确认链路无误后再考虑模型层面的优化。【免费下载链接】UI-TARSPioneering Automated GUI Interaction with Native Agents项目地址: https://gitcode.com/GitHub_Trending/ui/UI-TARS创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

相关新闻

claude-skills Intake Phase 实战:为现有代码库建立基线理解的一次性准入流程

claude-skills Intake Phase 实战:为现有代码库建立基线理解的一次性准入流程

claude-skills Intake Phase 实战:为现有代码库建立基线理解的一次性准入流程 【免费下载链接】claude-skills 67 Specialized Skills for Full-Stack Developers. Transform Claude Code into your expert pair programmer. 项目地址: https://gitcode.com/GitHu…

2026/11/13 11:30:08 阅读更多 →
Semantica 跨会话记忆完整教程:如何让 AI Agent 重启后接着干

Semantica 跨会话记忆完整教程:如何让 AI Agent 重启后接着干

Semantica 跨会话记忆完整教程:如何让 AI Agent 重启后接着干 【免费下载链接】semantica Graph-Native Infrastructure for Context and Accountable AI Systems 项目地址: https://gitcode.com/GitHub_Trending/sema/semantica Semantica 的跨会话记忆解决…

2026/10/21 11:05:44 阅读更多 →
PTP精确时间协议深度解析:原理、角色分工与部署实践

PTP精确时间协议深度解析:原理、角色分工与部署实践

上个月帮一个朋友排查数据库集群故障,现象很诡异:主库和备库网络完全正常,但系统每隔几个小时就会自动触发一次主从切换。查到最后才发现,两个节点的时间偏差已经跑到了几十毫秒——从库误判主库心跳超时,主动接管了服…

2026/10/21 3:20:06 阅读更多 →

最新新闻

Electron桌面应用开发实战:从环境搭建到打包发布全流程

Electron桌面应用开发实战:从环境搭建到打包发布全流程

做前端这些年,我大部分时间都在跟浏览器标签页打交道,直到第一次把桌面应用跑起来,才发现原来自己一直被限制在地址栏和刷新按钮围起来的框框里。Electron这个词,最开始是在某段时间频繁出现在同事的讨论里,一个用HTML…

2026/11/13 5:13:25 阅读更多 →
滑盖智能锁T109深度解析:结构原理、安装调试与故障排查

滑盖智能锁T109深度解析:结构原理、安装调试与故障排查

简介:亚太天能T109滑盖智能锁产品说明书是一份PDF格式的官方技术文档,主要面向智能锁安装人员、终端用户及售后维护者,帮助快速掌握产品安装、配置与常见故障处理。全包仅1个PDF文件,大小4.37MB,内容结构清晰&#xff…

2026/11/13 5:13:25 阅读更多 →
PMSM弱磁控制原理与Simulink建模:高速AGV驱动系统设计指南

PMSM弱磁控制原理与Simulink建模:高速AGV驱动系统设计指南

上个月我在调试一台高速AGV的驱动系统,整车要求空载跑到8m/s,电机转速已经拉到额定点,驱动器的输出电压也顶到了母线电压极限附近。再往上踩速度指令,转速纹丝不动,三相电流反而开始震荡。那会儿我的第一反应就是&…

2026/11/13 5:13:25 阅读更多 →
C++核心知识点:从内存管理到STL的实战指南

C++核心知识点:从内存管理到STL的实战指南

C 这门语言我前前后后折腾了十几年,用它写过嵌入式驱动、做过游戏服务端,也搭过基础组件库。每次看到新人一头扎进"C 核心知识点"这个搜索词,我其实挺感慨的——这门语言的难点从来不是语法多,而是知识点之间的耦合太深…

2026/11/12 18:22:26 阅读更多 →
T109滑盖智能锁怎么装?安装调试与故障排查全攻略

T109滑盖智能锁怎么装?安装调试与故障排查全攻略

简介:亚太天能T109滑盖智能锁产品说明书以PDF格式发布,适合智能锁用户、安装人员与售后维修人员阅读。内容围绕T109系列指纹密码刷卡锁展开,先介绍前面板、后面板、锁体、机械钥匙、电池盒盖等部件名称与功能,再给出完整安装步骤&…

2026/11/12 18:22:25 阅读更多 →
LLM知识降熵:从信息垄断到理解权下放

LLM知识降熵:从信息垄断到理解权下放

你有没有过这种经历:翻开源码注释、论文摘要或者一份专业报告,每个字都认识,连在一起却像天书。想找人聊聊,身边要么没人懂,要么懂的懒得跟你解释。后来我试着把同一段内容丢给一个大语言模型,几秒钟之后&a…

2026/11/13 5:13:25 阅读更多 →

日新闻

周新闻

月新闻