视觉理解
部分大模型具有视觉理解能力,用户传入图片、视频时,大模型可以直接理解图像与视频信息。使用此类模型,不再局限于单一的文本输入模态,模型可以分析您传入的图片、视频,在理解以后进行回答,可用于OCR、图像分类、目标检测等任务中。本文档介绍了如何通过调用大模型 API 来识别传入的图片或视频里的信息。
图像理解
您可以通过两种方式将图像传入模型:图像 URL 和 Base64 编码。与文本信息相同,图像信息也需要使用用户角色进行输入,即"role": "user"
。以下是使用视觉理解模型的简单调用示例。
图像 URL 输入
说明:输入为图像 URL 时,URL 链接在UTF-8编码下长度建议不超过1024个字节,超过1024时会触发内置的短链接转换功能,增加额外时延。
1curl --location 'https://qianfan.baidubce.com/v2/chat/completions' \
2--header 'Content-Type: application/json' \
3--header 'Authorization: Bearer bce-v3/ALTAK-*********/614fb**********' \
4--data '{
5 "model": "deepseek-vl2",
6 "messages": [
7 {
8 "role": "user",
9 "content": [
10 {
11 "type": "image_url",
12 "image_url": {
13 "url": "https://testimage.bj.bcebos.com/Gfp-wisconsin-madison-the-nature-boardwalk.jpg"
14 }
15 },
16 {
17 "type": "text",
18 "text": "What is in this image?"
19 }
20 ]
21 }
22 ],
23 "max_tokens": 300
24 }'
Base 64 编码输入
如果您需要上传本地图像,可以将图像转成 Base 64 编码后输入。以下是一个兼容 OpenAI 接口规范的示例。
1import base64
2from openai import OpenAI
3
4client = OpenAI(
5 api_key="your-api_key",
6 base_url="https://qianfan.baidubce.com/v2"
7)
8
9# Function to encode the image
10def encode_image(image_path):
11 with open(image_path, "rb") as image_file:
12 return base64.b64encode(image_file.read()).decode("utf-8")
13
14
15# Path to your image
16image_path = "path_to_your_image.jpg"
17
18# Getting the Base64 string
19base64_image = encode_image(image_path)
20
21response = client.chat.completions.create(
22 model="deepseek-vl2",
23 messages=[
24 {
25 "role": "user",
26 "content": [
27 {
28 "type": "text",
29 "text": "What is in this image?",
30 },
31 {
32 "type": "image_url",
33 "image_url": {
34 "url": f"data:image/jpeg;base64,{base64_image}"
35 },
36 },
37 ],
38 }
39 ],
40)
41
42print(response.choices[0])
多图输入
API 支持接受、处理多个图像输入,其中每个图片都可以通过 URL 或 Base 64 编码输入。模型会处理每个图像,根据传入的所有图像信息进行回答。
请注意:最多支持传入10张图像。
以下示例展示了向模型输入两张图像,模型可以根据这两张图像一起回答问题,也可以分别对每张图像进行回答。
1curl --location 'https://qianfan.baidubce.com/v2/chat/completions' \
2--header 'Content-Type: application/json' \
3--header 'Authorization: Bearer bce-v3/ALTAK-*********/614fb**********' \
4--data '{
5 "model": "deepseek-vl2",
6 "messages": [
7 {
8 "role": "user",
9 "content": [
10 {
11 "type": "text",
12 "text": "What are in these images? Is there any difference between them?"
13 },
14 {
15 "type": "image_url",
16 "image_url": {
17 "url": "https://testimage.bj.bcebos.com/Gfp-wisconsin-madison-the-nature-boardwalk.jpg"
18 }
19 },
20 {
21 "type": "image_url",
22 "image_url": {
23 "url": "https://testimage.bj.bcebos.com/Gfp-wisconsin-madison-the-nature-boardwalk.jpg"
24 }
25 }
26 ]
27 }
28 ],
29 "max_tokens": 300
30 }'
图像标识符<IMAGE_TOKEN>
当传入多张图像,且content
字段中包含且仅包含一个type
为text
的元素时,您可以使用<IMAGE_TOKEN>
作为占位符标记图片在文本中的位置。第一个 image_url
的图片会被标记并放置在文本中第一个 <IMAGE_TOKEN>
的位置,第二个图片会被标记并放置在文本中第二个 <IMAGE_TOKEN>
的位置,依此类推。image_url 的数量需与 <IMAGE_TOKEN> 数量相同。
支持的模型为:
- Llama-4-Maverick-17B-128E-Instruct
- Llama-4-Scout-17B-16E-Instruct
- Qwen2.5-VL-32B-Instruct
- Qwen2.5-VL-7B-Instruct
- Qwen3-VL-30B-A3B-Instruct
- Qwen3-VL-235B-A22B-Instruct
- InternVL2_5-38B-MPO
- DeepSeek-VL2
- DeepSeek-VL2-Small
以下示例展示了向模型输入两张图像时,在Prompt中使用<IMAGE_TOKEN>
指定图片位置。
1curl --location 'https://qianfan.baidubce.com/v2/chat/completions' \
2--header 'Content-Type: application/json' \
3--header 'Authorization: Bearer bce-v3/ALTAK-*********/614fb**********' \
4--data '{
5 "messages": [
6 {
7 "role": "user",
8 "content": [
9 {
10 "type": "text",
11 "text": "图片2: <IMAGE_TOKEN>, 图片1: <IMAGE_TOKEN>, 介绍一下图片1和图片2"
12 },
13 {
14 "type": "image_url",
15 "image_url": {
16 "url": "https://testimage1*****.jpg"
17 }
18 },
19 {
20 "type": "image_url",
21 "image_url": {
22 "url": "https://testimage2*****.jpg"
23 }
24 }
25 ]
26 }
27 ],
28 "stream": false,
29 "model": "llama-4-maverick-17b-128e-instruct"
30}'
深度思考
部分视觉理解模型,支持思考能力,可以通过"enable_thinking":true
参数打开。
支持模型
- ernie-4.5-vl-28b-a3b
请求示例
1curl --location 'https://qianfan.baidubce.com/v2/chat/completions' \
2--header 'Content-Type: application/json' \
3--header 'Authorization: Bearer your-api-key' \
4--data '{
5 "model": "ernie-4.5-vl-28b-a3b",
6 "enable_thinking":true,
7 "max_tokens":8192,
8 "messages": [
9 {
10 "role": "user",
11 "content": [
12 {
13 "type": "text",
14 "text": "图片当中是哪个乐队组合"
15 },
16 {
17 "type": "image_url",
18 "image_url": {
19 "url": "https://bucket-demo-bj.bj.bcebos.com/pic/wuyuetian.png",
20 "detail": "high"
21 }
22 }
23 ]
24 }
25 ],
26 "stream": false
27}'
搜索增强
注意:只有ERNIE 4.5支持搜索增强
1curl --location 'https://qianfan.bj.baidubce.com/v2/chat/completions' \
2--header 'Content-Type: application/json' \
3--header 'Authorization: Bearer your-api-key' \
4--data '{
5 "model": "ernie-4.5-8k-preview",
6 "messages": [
7 {
8 "role": "user",
9 "content": [
10 {
11 "type": "text",
12 "text": "2024年奥运会乒乓球男单冠军是谁"
13 }
14 ]
15 }
16 ],
17 "web_search": {
18 "enable": true,
19 "enable_trace": true
20 },
21 "stream": false,
22 "max_tokens": 512
23}'
多轮对话
第一轮
请求
1curl --location 'https://qianfan.bj.baidubce.com/v2/chat/completions' \
2--header 'Content-Type: application/json' \
3--header 'Authorization: Bearer your-api-key' \
4--data '{
5 "model": "ernie-4.5-8k-preview",
6 "messages": [
7 {
8 "role": "user",
9 "content": [
10 {
11 "type": "text",
12 "text": "What are in these images? Is there any difference between them?"
13 },
14 {
15 "type": "image_url",
16 "image_url": {
17 "url": "https://testimage.bj.bcebos.com/image1.jpg"
18 }
19 },
20 {
21 "type": "image_url",
22 "image_url": {
23 "url": "https://testimage.bj.bcebos.com/image2.png"
24 }
25 }
26 ]
27 }
28 ],
29 "stream": false
30}'
返回
1{
2 "id": "as-t4ntazzewk",
3 "object": "chat.completion",
4 "created": 1742198333,
5 "model": "ernie-4.5-8k-preview",
6 "choices": [
7 {
8 "index": 0,
9 "message": {
10 "role": "assistant",
11 "content": "The first image depicts a serene natural landscape with a wooden boardwalk leading through a lush green field under a blue sky with scattered clouds. The second image shows a close-up of a hand interacting with a small, intricately designed figurine that resembles a turtle with detailed patterns and textures, surrounded by green foliage. The primary difference between the two images is that the first is a wide-angle photograph of an outdoor scene, while the second is a close-up photograph of a hand and a decorative object."
12 },
13 "finish_reason": "stop",
14 "flag": 0
15 }
16 ],
17 "usage": {
18 "prompt_tokens": 3019,
19 "completion_tokens": 102,
20 "total_tokens": 3121
21 }
22}
第二轮
请求
1curl --location 'https://qianfan.bj.baidubce.com/v2/chat/completions' \
2--header 'Content-Type: application/json' \
3--header 'Authorization: Bearer your-api-key' \
4--data '{
5 "model": "ernie-4.5-8k-preview",
6 "messages": [
7 {
8 "role": "user",
9 "content": [
10 {
11 "type": "text",
12 "text": "What are in these images? Is there any difference between them?"
13 },
14 {
15 "type": "image_url",
16 "image_url": {
17 "url": "https://testimage.bj.bcebos.com/image1.jpg"
18 }
19 },
20 {
21 "type": "image_url",
22 "image_url": {
23 "url": "https://testimage.bj.bcebos.com/image2.png"
24 }
25 }
26 ]
27 },
28 {
29 "role": "assistant",
30 "content": "The first image depicts a serene natural landscape with a wooden boardwalk leading through a lush green field under a blue sky with scattered clouds. The second image shows a close-up of a hand interacting with a small, intricately designed figurine that resembles a turtle with detailed patterns and textures, surrounded by green foliage. The primary difference between the two images is that the first is a wide-angle photograph of an outdoor scene, while the second is a close-up photograph of a hand and a decorative object."
31 },
32 {
33 "role": "user",
34 "content": "不够详细,再补充解析细节一点哇"
35 }
36 ],
37 "stream": false
38}'
返回
1{
2 "id": "as-14hvmej1ts",
3 "object": "chat.completion",
4 "created": 1742198435,
5 "model": "ernie-4.5-8k-preview",
6 "choices": [
7 {
8 "index": 0,
9 "message": {
10 "role": "assistant",
11 "content": "当然,让我们更详细地解析这两张图片的差异:\n\n1. **主题和内容**:\n - **第一张图片**:这是一张风景照片,展示了一个自然环境。照片中有一条木制栈道穿过一片绿色的草地,背景是蓝天和一些树木。整体氛围宁静,色彩鲜艳,给人一种开阔和放松的感觉。\n - **第二张图片**:这是一张特写照片,展示了一只手正在与一个装饰性物品互动。这个物品看起来像是一只带有复杂图案和纹理的乌龟,周围还有一些绿色的植物装饰。整体氛围更加细腻和手工艺感,色彩丰富且细节精致。\n\n2. **视角和构图**:\n - **第一张图片**:采用了广角视角,捕捉了大面积的自然景观。栈道从前景延伸到背景,引导观众的视线深入画面。天空和地面的比例均衡,给人一种空间感和深度感。\n - **第二张图片**:采用了特写视角,聚焦于手和乌龟的细节。手指和乌龟的纹理清晰可见,背景模糊,突出主体。构图紧凑,细节丰富,吸引观众注意手工艺品的精细制作。\n\n3. **色彩和光线**:\n - **第一张图片**:色彩以绿色和蓝色为主,光线自然,可能是拍摄于白天。阳光照射在草地和栈道上,形成明暗对比,增强了画面的立体感。\n - **第二张图片**:色彩更加多样,乌龟的绿、蓝、黄等颜色鲜艳,光线柔和,可能是室内拍摄。光线集中在手和乌龟上,突出细节和质感。\n\n4. **情感和氛围**:\n - **第一张图片**:传达出一种宁静、自然和放松的情感,适合用于展示自然风光或户外活动的场景。\n - **第二张图片**:传达出一种细腻、手工艺和专注的情感,适合用于展示手工艺品或创意作品的场景。\n\n总的来说,这两张图片在主题、视角、色彩和情感上都有显著的不同,分别展示了自然景观和手工艺品的美感。"
12 },
13 "finish_reason": "stop",
14 "flag": 0
15 }
16 ],
17 "usage": {
18 "prompt_tokens": 3130,
19 "completion_tokens": 394,
20 "total_tokens": 3524
21 }
22}
图像格式
模型支持的图像格式如下,请根据实际的图像格式,匹配输入的文件后缀。当您传入本地图像时,请将代码中的image/{format}
设置为对应的 Content Type值。
图片格式 | 文件扩展名 | Content Type |
---|---|---|
JPEG | .jpg, .jpeg | image/jpeg |
PNG | .png | image/png |
BMP | .bmp | image/bmp |
图像输入方式
您可以通过两种方式将图像传入模型:图像 URL 和 Base64 编码。对于长时间运行的对话,建议通过 URL 进行输入。
- 当您使用图像 URL 时,需要确保图像 URL 可被访问。同时,URL 链接在UTF-8编码下长度建议不超过1024个字节,超过1024时会触发内置的短链接转换功能,增加额外时延。
- 当您使用图像 Base 64 编码时,需要注意原图大小不超过10MB。
图像和文本的输入顺序建议
部分模型,文本text和图像image_url输入顺序不同,将影响输出效果。建议以下模型,先输入图像image_url,再输入文本text。
- qwen-2.5-vl 系列
- ernie-4.5-turbo-vl 系列
message输入示例:
1 "messages": [
2 {
3 "role": "user",
4 "content": [
5 {
6 "type": "image_url",
7 "image_url": {
8 "url": "https://testimage.bj.bcebos.com/Gfp-wisconsin-madison-the-nature-boardwalk.jpg"
9 }
10 },
11 {
12 "type": "text",
13 "text": "What is in this image?"
14 }
15 ]
16 }
17 ]
图像大小限制
模型在进行图像理解前会对图像进行缩放等预处理,不同模型对单张图像的像素总数量有不同的限制,详情请参考图像token计算。但请注意单个图像的大小不超过10MB。
指定图像理解的深度
部分模型支持指定图像理解的深度,如 ernie-4.5-turbo-vl-preview、ernie-4.5-turbo-vl-32k。
您可以通过设置detail
参数来指定模型在理解图像时的细节程度,支持设置low
,high
,auto
三个参数选项。请将该参数放在 image_url
后,例如:
1"image_url": {
2 "url": "https://testimage.bj.bcebos.com/Gfp-wisconsin-madison-the-nature-boardwalk.jpg",
3 "detail": "high",
4},
对于目前已支持指定深度的模型,当您不指定detail
或指定为 high
和auto
时,模型会采用 “高分辨率” 模式,而指定为 low
时会采用 “低分辨率” 模式。
"detail": "low"
:模型会采用 “低分辨率” 模式,可以节约 tokens 消耗量、提升处理速度。"detail": "high"
:模型会采用 “高分辨率” 模式,理解图像中更多的细节,同时将消耗更多的 tokens,降低处理的速度。"detail": "auto"
:当您不指定或指定为auto
时,模型会采用 “高分辨率” 模式。
图像 token 计算
与文本相同,模型会将图像输入转化为 tokens,并与文本信息一同作为模型输入的上下文信息进行计量计费。不同模型对图像 tokens 的转化方式不同,以下为千帆当前支持的视觉理解模型图像 tokens 计算规则。您也可以使用千帆 token 计算器来估算对应输入的 token 数量。
Ernie 4.5
Ernie 系列模型在处理图片时,每448*448
像素对应 64 个token。对于每张图片,模型会处理成global_view
和local_view
两部分。global_view
将原图片统一resize 成448*448
像素大小,local_view
会将图片划分成若干448*448
的切片,即(h*448) * (w * 448)
,中间会增加额外token来衔接。由于该模型支持指定图像理解的深度,
- 当未指定
detail
或指定为high
和auto
时,16 <= h*w <= 36
- 当未指定
detail
指定为low
时,4 <= h*w <= 9
缩放的长宽h * w
按如下规则选择:
h
和w
均为整数,按设定的detail
参数满足对应约束,按照(h, w)
组合遍历;- 对于每个
(h, w)
组合,计算缩放后的图像长宽比与目标长宽比的差异,选取最接近的作为最佳缩放尺寸。 token消耗按照如下公式计算:
token 总数 = (h*w + 1) * 64 + h*w + 9
DeepSeek VL2 系列
- 当传入的图片数量 >= 3 时,DeepSeek VL2 系列模型将图片resize 成
384*384
尺寸,每张图片消耗 421 tokens; - 当传入的图片数量 <= 2 时,DeepSeek VL2 系列模型将按以下规则进行切片:
对于每张图片,模型会处理成
global_view
和local_view
两部分。global_view
将原图片统一resize 成384*384
像素大小,local_view
会将图片划分成若干384*384
的切片。图片中间会根据宽度增加额外token来衔接。
a. 图片长、宽 < 384 时,模型将图片 resize 成384*384
尺寸,消耗 421 tokens
b. 图片长或宽>=384 时,根据长宽比例,将图片 resize 成长宽均为 384 的倍数, 即(h*384) * (w * 384)
, 且1 <= h*w <=9
。
-
缩放的长宽
h * w
按如下规则选择:h
和w
均为整数,在满足1 <= h*w <=9
约束下,按照(h, w)
组合遍历;- 将图片 resize 成
(h*384, w*384)
像素时,和原图片的像素比较,取新图片像素和原图片像素的最小值作为有效像素值,取原图片像素值与有效像素值之差作为无效像素值。如果有效像素值超过之前判定的有效像素值,或者当有效像素值和之前持平,但是无效像素值更小时,选择当前(h*384, w*384)
组合。
- token消耗按照如下公式计算:
token 总数 = (h*w + 1) * 196 + (w+1) * 14 + 1
通义千问 VL 系列
通义千问 VL 模型在处理图片时,每28*28
像素对应一个token,一张图最少需要4个 token,最多包含1280个 token,超出会对图像进行缩放。
模型最高支持像素是 28*28*1280 = 1003520
,最低支持像素是 28*28*4=3136
首先计算图片像素:
- 如果在最小像素和最大像素区间内,将长宽按照28的倍数四舍五入取整
(h * 28) * (w * 28)
,消耗token = h*w +2
- 如果不在最小像素和最大像素区间内,等比缩放至像素区间
(3136,1003520)
,并保证长宽均为28
整数倍得到缩放后的图片(h * 28) * (w * 28),
消耗token = h*w +2
InternVL系列
InternVL 最低处理像素为 448*448
,最高为 12*448*448
。模型根据图片的长宽比例, resize 成长宽均为448*448
像素大小,即(h * 448) * (w * 448)
,且 1 <= h * w <=12
。
-
缩放的长宽
h * w
按照如下规则选择:h
和w
均为整数,在满足1 <= h * w <= 12
约束下,按照h * w
从小到大的组合遍历;- 对于当前
(h, w)
组合,如果原始图片长宽比例更接近h / w
,那么选择该(h, w)
组合; - 对于 数值更大但是比例相同 的
(h, w)
组合,如果原始图片像素大于0.5 * h * w * 448 * 448
,那么选择数值更大的(h, w)
组合。
-
token消耗按照如下规则:
- 如果
h * w = 1
,那么消耗256 tokens
; - 如果
h * w > 1
,按448 * 448
滑动窗口,每个窗口均额外消耗256 token
,一共消耗(h * w + 1) * 256 tokens
。
- 如果
视频理解
支持模型
- ernie-4.5-turbo-vl-preview
- ernie-4.5-vl-28b-a3b
- qwen3-vl-30b-a3b-instruct
- qwen3-vl-30b-a3b-thinking
- qwen3-vl-235b-a22b-instruct
- qwen3-vl-235b-a22b-thinking
- qwen2.5-vl-7b-instruct
- qwen2.5-vl-32b-instruct
模型上下文长度请查看模型列表
视频格式支持说明
支持MP4、AVI、MOV三种类型格式视频文件。
- MP4:base64格式为
video/mp4
- AVI:base64格式为
video/avi
- MOV:base64格式为
video/quicktime
视频文件容量
单视频文件需在 64MB 以内。
音频理解能力
目前不支持对视频文件中的音频信息进行理解。
token用量与输入长度说明
- 视频理解token长度计算,参考:ERNIE-4.5(视频) token计算器
- 视频长度不超过模型最大输入token长度即可,比如
ernie-4.5-turbo-vl-preview
最大支持123k输入。如果视频过长,会导致请求失败。 - ernie-4.5-turbo-vl-preview 支持通过
fps
参数控制输入token长度,默认值为2,取值范围是[0.2, 5]
视频 URL 输入
说明:输入为视频 URL 时,URL 链接在UTF-8编码下长度建议不超过1024个字节,超过1024时会触发内置的短链接转换功能,增加额外时延。
1curl --location 'https://qianfan.bj.baidubce.com/v2/chat/completions' \
2--header 'Content-Type: application/json' \
3--header 'Authorization: Bearer your-api-key' \
4--data '{
5 "model": "ernie-4.5-turbo-vl-preview",
6 "messages": [
7 {
8 "role": "user",
9 "content": [
10 {
11 "type": "text",
12 "text": "描述这个视频"
13 },
14 {
15 "type": "video_url",
16 "video_url": {
17 "url": "https://bucket-demo-01.gz.bcebos.com/video/sea.mov",
18 "fps": 1
19 }
20 }
21 ]
22 }
23 ]
24}'
视频 base64 输入
1import base64
2from openai import OpenAI
3
4client = OpenAI(
5 api_key="your-api_key",
6 base_url="https://qianfan.baidubce.com/v2"
7)
8
9def encode_image(video_path):
10 with open(video_path, "rb") as image_file:
11 return base64.b64encode(image_file.read()).decode("utf-8")
12
13video_path = "./sea.mov"
14
15# Getting the Base64 string
16base64_video = encode_image(video_path)
17
18response = client.chat.completions.create(
19 model="ernie-4.5-turbo-vl-32k-preview",
20 messages=[
21 {
22 "role": "user",
23 "content": [
24 {
25 "type": "text",
26 "text": "描述这个视频的内容。",
27 },
28 {
29 "type": "video_url",
30 "video_url": {
31 "url": f"data:video/quicktime;base64,{base64_video}"
32 },
33 },
34 ],
35 }
36 ],
37)
38
39print(response.choices[0])
视觉定位
部分视觉理解模型拥有视觉定位(Visual Grounding)能力,可以根据用户提问,精准识别、分析、定位目标物体并输出其坐标。
支持模型
- qwen3-vl-30b-a3b-instruct
- qwen3-vl-30b-a3b-thinking
- qwen3-vl-235b-a22b-instruct
- qwen3-vl-235b-a22b-thinking
- qwen2.5-vl-7b-instruct
- qwen2.5-vl-32b-instruct
- glm-4.5v
注意:模型在进行图像理解前会对图像进行预处理,模型返回的坐标为相对于缩放后图像左上角的绝对值,单位为像素。
- 对于Qwen2.5-VL系列模型,您可以参考cookbook中的代码将坐标映射到原图中。
- 对于Qwen3-VL系列模型,返回的坐标将为相对坐标,坐标值会归一化到0-999。
- 对于GLM-4.5V,模型返回的是归一化到1000* 1000的比例坐标,即图片宽高分别等分为1000后,图片左上角为原点绘制坐标系,对应点的坐标位置,您可以使用如下公式计算绝对坐标,其中w是图片的实际宽度,x1为模型返回的坐标值。
x=x1/1000*w
使用示例
示例1

Prompt
定位见义勇为的人的位置,以JSON格式输出所有的bbox的坐标,不要输出json代码段。
输出示例
[ {"bbox_2d": [78, 56, 524, 623], "label": "见义勇为的人"} ]
示例2

Prompt
定位每一个蛋糕的位置,并描述其各自的特征,以JSON格式输出所有的bbox的坐标。
输出示例
<|begin_of_box|>{ "cupcakes": [ { "position": "左上角", "features": "巧克力蛋糕,顶部覆盖红色和白色糖屑", "bbox": [68, 392, 206, 571] }, { "position": "左上角偏下", "features": "浅棕色蛋糕,顶部覆盖白色糖霜和彩色糖屑", "bbox": [42, 552, 201, 727] }, { "position": "左下角", "features": "浅棕色蛋糕,顶部覆盖白色糖霜和两个黑色糖眼", "bbox": [133, 742, 310, 922] }, { "position": "左上角中间", "features": "巧克力蛋糕,顶部覆盖粉色糖霜和彩色糖珠", "bbox": [249, 381, 370, 538] }, { "position": "中间偏上", "features": "巧克力蛋糕,顶部覆盖粉色糖霜和彩色糖珠", "bbox": [397, 366, 516, 502] }, { "position": "中间", "features": "浅棕色蛋糕,顶部覆盖粉色糖霜、彩色糖珠和一个白色糖眼", "bbox": [433, 445, 566, 598] }, { "position": "中间偏右", "features": "浅棕色蛋糕,顶部覆盖粉色糖霜和彩色糖珠", "bbox": [528, 353, 653, 521] }, { "position": "右上角", "features": "巧克力蛋糕,顶部覆盖深棕色糖霜", "bbox": [740, 377, 865, 533] }, { "position": "中间偏下", "features": "巧克力蛋糕,顶部覆盖白色糖霜、彩色糖屑和两个黑色糖眼", "bbox": [295, 544, 444, 702] }, { "position": "中间下方", "features": "巧克力蛋糕,顶部覆盖白色糖霜和两个黑色糖眼", "bbox": [352, 652, 519, 818] }, { "position": "中间偏右下方", "features": "浅棕色蛋糕,顶部覆盖白色糖霜、彩色糖屑和两个黑色糖眼", "bbox": [511, 559, 664, 712] }, { "position": "中间偏右", "features": "浅棕色蛋糕,顶部覆盖白色糖霜和彩色糖屑", "bbox": [628, 472, 772, 638] }, { "position": "右下角", "features": "浅棕色蛋糕,顶部覆盖白色糖霜和彩色糖珠", "bbox": [798, 505, 959, 690] } ] }<|end_of_box|>