使用GLM-4.7V的多模态定位能力检测并定位图像中的物体/文本。当用户要求查找、定位、检测或接地图像内容时激活。
Grounding - 多模态目标定位是一项面向实际任务的技能,主要用于利用 GLM-4.7V 的 grounding 能力,在图片中定位目标对象或文字,输出带标注框的结果图;Step 1: 调用模型获取坐标;
parse_bboxes_from_。它将相关步骤、工具调用和结果整理方式集中到统一流程中,帮助使用者更快完成目标并减少重复操作。从功能定位来看,该技能强调把分散的操作要求整理成清晰、可复用的处理流程,使用户能够围绕既定目标快速准备输入、选择执行方式并获得结构化结果。实际使用前应先确认任务范围、数据来源、运行环境、必要权限和关键参数,再依据技能说明逐步执行;
若输入条件不完整,应先补齐信息或采用保守配置,避免因错误假设导致结果偏离需求。执行过程中需要关注工具调用是否成功、接口或依赖是否可用、输出格式是否符合预期,并对异常提示、缺失字段和边界情况进行处理;涉及批量任务时,还应保存进度,避免中断后重复操作。该技能适合用于一次性任务,也可以接入自动化工作流,与其他技能或上层代理配合完成更完整的业务链路;在组合使用时,应明确每一步的输入输出关系,并避免不同步骤之间出现参数冲突。
利用 GLM-4.7V 的 grounding 能力,在图片中定位目标对象或文字,输出带标注框的结果图。
用户输入(图片 + prompt)
│
▼
HttpInterface() → 调用模型 API → 得到 response 文本
│
▼
parse_bboxes_from_response() → 从回复中解析出坐标框列表
│
▼
visualize_boxes(renormalize=True) → 反归一化 + 画框 → 保存结果图
使用 HttpInterface 调用模型 API:
import os os.environ['NO_PROXY'] = '' # 跳过代理 os.environ['no_proxy'] = ' ' from interface_http import HttpInterface url = 'http:// : /v1/chat/completions' prompt = '''请在这张图中找到所有"{target}",并以 [xmin, ymin, xmax, ymax] 格式输出每个目标的边界框坐标,坐标值为 0-1000 的归一化整数。每个目标一行,格式如下: 目标名称: [xmin, ymin, xmax, ymax]''' response = HttpInterface(url, prompt, images=[image_path], no_think=True) # 返回: "目标名称: [xmin, ymin, xmax, ymax]"
注意: 调用前需设置 NO_PROXY 环境变量跳过代理,否则内网请求会被代理拦截。
from utils_boxes import parse_bboxes_from_response boxes = parse_bboxes_from_response(response) # 返回: [[x1, y1, x2, y2], ...] (0-1000 归一化)
parse_bboxes_from_response 会自动:
[], {}, (), <>, )提取坐标from utils_boxes import visualize_boxes
visualize_boxes(
img_path=image_path,
boxes=boxes, # parse_bboxes_from_response 的输出
labels=['label1', 'label2'], # 每个框的标签
renormalize=True, # 自动将 0-1000 归一化转为像素坐标
save_path='output.jpg',
colors=['red', 'blue'], # 可选
thickness=[2, 3], # 可选
)
renormalize=True 时,内部自动调用 reverse_normalize_box:pixel = coord * img_dimension / 1000
import os
os.environ['NO_PROXY'] = '172.20.112.202'
os.environ['no_proxy'] = '172.20.112.202'
from interface_http import HttpInterface
from utils_boxes import parse_bboxes_from_response, visualize_boxes
url = 'http://172.20.112.202:5002/v1/chat/completions'
img = '/path/to/image.jpg'
# 1. 调用模型
response = HttpInterface(
url,
'请在这张图中找到"红色圣诞帽",以 [xmin, ymin, xmax, ymax] 格式输出坐标(0-1000归一化)',
images=[img],
no_think=True,
)
# 2. 解析坐标
boxes = parse_bboxes_from_response(response)
# 3. 画框
visualize_boxes(img_path=img, boxes=boxes, labels=['圣诞帽'], renormalize=True, save_path='out.jpg')
| 函数 | 作用 |
|---|---|
HttpInterface(url, prompt, images, no_think) |
调用模型 API,返回文本回复 |
parse_bboxes_from_response(text) |
从模型回复中提取所有坐标框列表 |
find_boxes_all(text, flat=True) |
提取文本中所有括号风格的坐标框 |
reverse_normalize_box(box, w, h) |
0-1000 归一化 → 像素坐标 |
visualize_boxes(..., renormalize=True) |
画框 + 自动反归一化 |
/root/.openclaw/agents/main/agent/models.jsonNO_PROXY 环境变量no_think=True 可关闭模型思考模式,加快响应相关专题
热门下载
相关下载
精品课程
共6课时 | 54.7万人学习
共89课时 | 134.1万人学习
共49课时 | 82.6万人学习
最新文章