OpenBMB / MiniCPM-V

MiniCPM-Llama3-V 2.5: A GPT-4V Level Multimodal LLM on Your Phone
Apache License 2.0
7.97k stars 558 forks source link

[QUESTION] 训练推理过程中会用到坐标,请问模型的坐标数据格式是什么? #185

Closed Zmeo closed 1 month ago

Zmeo commented 1 month ago

是否已有关于该错误的issue或讨论? | Is there an existing issue / discussion for this?

该问题是否在FAQ中有解答? | Is there an existing answer for this in FAQ?

当前行为 | Current Behavior

No response

期望行为 | Expected Behavior

No response

复现方法 | Steps To Reproduce

No response

运行环境 | Environment

- OS:
- Python:
- Transformers:
- PyTorch:
- CUDA (`python -c 'import torch; print(torch.version.cuda)'`):

备注 | Anything else?

No response

Zmeo commented 1 month ago

我在组建prompt时,会携带坐标数据作为增强信息,例如:

请找到三级甲等.\n以下是图片中可参考文本的坐标: '综合排序'(177,327),'筛选'(863,327),'公立医院'(388,690),'公立医院'(390,507),'三级甲等'(246,875),'公立医院'(390,875),'三级甲等'(247,691).\n以下是图片中可参考图标的坐标: 'PEOPLE'(126,601),'ARROW_DOWN'(250,326),'ARROW_LEFT'(115,203),'ARROW_DOWN'(543,327).\nAnswer:

期待模型的返回也是坐标,例如:

(247,507),(247,691),(246,875)

请问是否有对坐标归一化,在组建prompt的时候要使用的坐标数据格式是什么?

Cuiunbo commented 1 month ago

您好,我们共使用了这几种方式表示坐标, 分别是: 一点x1 y1, 两点xmin ymin xmax ymax, 四点x1 y1 x2 y2 x3 y3 x4 y4 分别对应的训练时表示如下

1. <point>x1 y1</point>
2. <box>xmin ymin xmax ymax<box>
3. <quad>x1 y1 x2 y2 x3 y3 x4 y4<quad>

不过请注意,对于坐标能力训练,我们并没有进行大量的下游任务训练, 可能需要继在相应数据微调或者使用比较完备的prompt来提问

Zmeo commented 1 month ago

谢谢您的回复,以及我想了解坐标数据的格式,例如是根据分辨率归一化到0-1的浮点,还是0-999的整数,还是分辨率坐标?

sxlyiyiyi commented 1 month ago

同问,对于bbox是不包含[]这种符号吗,另外对图像进行处理时,是使用的resize还是pad,如果对于pad,是否会对坐标进行相应的处理,比如加上填充部分的坐标?另外minicpm-v-2.5在训练时有增加rec和reg的训练数据吗,有对应的示例模板吗,非常感谢

Cuiunbo commented 1 month ago

谢谢您的回复,以及我想了解坐标数据的格式,例如是根据分辨率归一化到0-1的浮点,还是0-999的整数,还是分辨率坐标?

啊对!忘记回复这个问题了。我们的坐标是归一化到0-1000的

Cuiunbo commented 1 month ago

同问,对于bbox是不包含[]这种符号吗,另外对图像进行处理时,是使用的resize还是pad,如果对于pad,是否会对坐标进行相应的处理,比如加上填充部分的坐标?另外minicpm-v-2.5在训练时有增加rec和reg的训练数据吗,有对应的示例模板吗,非常感谢

@sxlyiyiyi 您好,box不包含【】,图像处理不包含pad和resize。具体处理方法可见 代码

leohl1997 commented 2 weeks ago

你好,我想问下训练数据是图片的话,坐标里的xy对应的是图片的宽高吗