QwenLM / Qwen2-VL

Qwen2-VL is the multimodal large language model series developed by Qwen team, Alibaba Cloud.
Apache License 2.0
2.58k stars 145 forks source link

请问 qwen2vl可以准确获取某个信息的位置吗? #189

Open bank010 opened 1 month ago

jasonliu91 commented 1 month ago

你是指图像位置吗,可以做OCR,https://huggingface.co/spaces/maxiw/Qwen2-VL-Detection

bank010 commented 1 month ago

你是指图像位置吗,可以做OCR,https://huggingface.co/spaces/maxiw/Qwen2-VL-Detection

不,我看示例中有个可以获取到小女孩和小狗击掌的区域,我这边测试别的发现并不行

BIT-AQH commented 2 weeks ago

你是要标出物体的2d bouding box吗,qwen-vl和qwen2-vl输出的coordinate是normalize到[0, 1000)的范围内,你需要做一个变换映射的原始图像的pixel坐标,这里是一个简单的转换代码:

image = Image.open(image_path)
W,H = image.size
Norm = 1000
fig, ax = plt.subplots(1,dpi=150)
ax.imshow(image)

# qwen_bboxes
if qwen_bboxes is not None:
    for bbox in qwen_bboxes:
        x_min, y_min, x_max, y_max = bbox
        x_min, x_max = x_min*W/Norm, x_max*W/Norm
        y_min, y_max = y_min*H/Norm, y_max*H/Norm
BIT-AQH commented 2 weeks ago

你是指图像位置吗,可以做OCR,https://huggingface.co/spaces/maxiw/Qwen2-VL-Detection

不,我看示例中有个可以获取到小女孩和小狗击掌的区域,我这边测试别的发现并不行

你是说的qwen_vl仓库主页的例子吗

# <ref>击掌</ref><box>(536,509),(588,602)</box>
image = tokenizer.draw_bbox_on_latest_picture(response, history)

qwen_vl的tokenizer.draw_bbox_on_latest_picture应该是做了坐标转换和可视化的功能,但是在qwen2_vl的tokenizer中没有该方法的使用示例,也许还可以直接使用

bank010 commented 2 weeks ago

你是要标出物体的2d bouding box吗,qwen-vl和qwen2-vl输出的coordinate是normalize到[0, 1000)的范围内,你需要做一个变换映射的原始图像的pixel坐标,这里是一个简单的转换代码:

image = Image.open(image_path)
W,H = image.size
Norm = 1000
fig, ax = plt.subplots(1,dpi=150)
ax.imshow(image)

# qwen_bboxes
if qwen_bboxes is not None:
    for bbox in qwen_bboxes:
        x_min, y_min, x_max, y_max = bbox
        x_min, x_max = x_min*W/Norm, x_max*W/Norm
        y_min, y_max = y_min*H/Norm, y_max*H/Norm

谢谢你