درک تصویر
مدلهای Gemini از ابتدا به گونهای ساخته شدهاند که چندوجهی باشند و طیف گستردهای از وظایف پردازش تصویر و بینایی کامپیوتر، از جمله (اما نه محدود به) شرح تصویر، طبقهبندی و پاسخ به سؤالات بصری را بدون نیاز به آموزش مدلهای تخصصی یادگیری ماشین، امکانپذیر سازند.
مدلهای Gemini علاوه بر قابلیتهای چندوجهی عمومی خود، از طریق آموزشهای اضافی، دقت بیشتری را برای موارد استفاده خاص مانند تشخیص و قطعهبندی اشیاء ارائه میدهند.
ارسال تصاویر به جمینی
شما میتوانید با استفاده از چندین روش، تصاویر را به عنوان ورودی به Gemini ارائه دهید:
- ارسال تصویر با استفاده از URL : ایدهآل برای تصاویر با دسترسی عمومی.
- ارسال دادههای تصویر به صورت درونخطی : برای دادههای تصویر کدگذاری شده با base64.
- آپلود تصاویر با استفاده از File API : برای فایلهای بزرگتر یا برای استفاده مجدد از تصاویر در چندین درخواست توصیه میشود.
ارسال تصویر با استفاده از URL
شما میتوانید با استفاده از Files API یک تصویر آپلود کنید و آن را در درخواست ارسال کنید:
پایتون
from google import genai
client = genai.Client()
uploaded_file = client.files.upload(file="path/to/organ.jpg")
interaction = client.interactions.create(
model="gemini-3-flash-preview",
input=[
{"type": "text", "text": "Caption this image."},
{
"type": "image",
"uri": uploaded_file.uri,
"mime_type": uploaded_file.mime_type
}
]
)
print(interaction.steps[-1].content[0].text)
جاوا اسکریپت
import { GoogleGenAI } from "@google/genai";
const client = new GoogleGenAI({});
const uploadedFile = await client.files.upload({
file: "path/to/organ.jpg",
config: { mimeType: "image/jpeg" }
});
const interaction = await client.interactions.create({
model: "gemini-3-flash-preview",
input: [
{type: "text", text: "Caption this image."},
{
type: "image",
uri: uploadedFile.uri,
mimeType: uploadedFile.mimeType
}
]
});
console.log(interaction.steps.at(-1).content[0].text);
استراحت
# First upload the file using the Files API, then use the URI:
curl -X POST "https://generativelanguage.googleapis.com/v1beta/interactions" \
-H "x-goog-api-key: $GEMINI_API_KEY" \
-H 'Content-Type: application/json' \
-d '{
"model": "gemini-3-flash-preview",
"input": [
{"type": "text", "text": "Caption this image."},
{
"type": "image",
"uri": "YOUR_FILE_URI",
"mime_type": "image/jpeg"
}
]
}'
ارسال دادههای تصویر درونخطی
شما میتوانید دادههای تصویر را به صورت رشتههای کدگذاری شده با base64 ارائه دهید:
پایتون
from google import genai
with open('path/to/small-sample.jpg', 'rb') as f:
image_bytes = f.read()
client = genai.Client()
interaction = client.interactions.create(
model="gemini-3-flash-preview",
input=[
{"type": "text", "text": "Caption this image."},
{
"type": "image",
"data": base64.b64encode(image_bytes).decode('utf-8'),
"mime_type": "image/jpeg"
}
]
)
print(interaction.steps[-1].content[0].text)
جاوا اسکریپت
import { GoogleGenAI } from "@google/genai";
import * as fs from "node:fs";
const client = new GoogleGenAI({});
const base64ImageFile = fs.readFileSync("path/to/small-sample.jpg", {
encoding: "base64",
});
const interaction = await client.interactions.create({
model: "gemini-3-flash-preview",
input: [
{type: "text", text: "Caption this image."},
{
type: "image",
data: base64ImageFile,
mime_type: "image/jpeg"
}
]
});
console.log(interaction.steps.at(-1).content[0].text);
استراحت
IMG_PATH="/path/to/your/image1.jpg"
if [[ "$(base64 --version 2>&1)" = *"FreeBSD"* ]]; then
B64FLAGS="--input"
else
B64FLAGS="-w0"
fi
curl -X POST "https://generativelanguage.googleapis.com/v1beta/interactions" \
-H "x-goog-api-key: $GEMINI_API_KEY" \
-H 'Content-Type: application/json' \
-d '{
"model": "gemini-3-flash-preview",
"input": [
{"type": "text", "text": "Caption this image."},
{
"type": "image",
"data": "'"$(base64 $B64FLAGS $IMG_PATH)"'",
"mime_type": "image/jpeg"
}
]
}'
آپلود تصاویر با استفاده از File API
برای فایلهای بزرگ یا برای اینکه بتوانید از یک فایل تصویری به طور مکرر استفاده کنید، از API فایلها استفاده کنید. به راهنمای API فایلها مراجعه کنید.
پایتون
from google import genai
client = genai.Client()
my_file = client.files.upload(file="path/to/sample.jpg")
interaction = client.interactions.create(
model="gemini-3-flash-preview",
input=[
{"type": "text", "text": "Caption this image."},
{
"type": "image",
"uri": my_file.uri,
"mime_type": my_file.mime_type
}
]
)
print(interaction.steps[-1].content[0].text)
جاوا اسکریپت
import { GoogleGenAI } from "@google/genai";
const client = new GoogleGenAI({});
const myfile = await client.files.upload({
file: "path/to/sample.jpg",
config: { mimeType: "image/jpeg" },
});
const interaction = await client.interactions.create({
model: "gemini-3-flash-preview",
input: [
{type: "text", text: "Caption this image."},
{
type: "image",
uri: myfile.uri,
mime_type: myfile.mimeType
}
]
});
console.log(interaction.steps.at(-1).content[0].text);
استراحت
# First upload the file (see Files API guide for details)
# Then use the file URI in the request:
curl -X POST "https://generativelanguage.googleapis.com/v1beta/interactions" \
-H "x-goog-api-key: $GEMINI_API_KEY" \
-H 'Content-Type: application/json' \
-d '{
"model": "gemini-3-flash-preview",
"input": [
{"type": "text", "text": "Caption this image."},
{
"type": "image",
"uri": "YOUR_FILE_URI",
"mime_type": "image/jpeg"
}
]
}'
ارسال پیام با چندین تصویر
شما میتوانید با قرار دادن چندین شیء تصویر در آرایه input چندین تصویر را در یک اعلان واحد ارائه دهید:
پایتون
from google import genai
client = genai.Client()
interaction = client.interactions.create(
model="gemini-3-flash-preview",
input=[
{"type": "text", "text": "What is different between these two images?"},
{
"type": "image",
"uri": "https://example.com/image1.jpg",
"mime_type": "image/jpeg"
},
{
"type": "image",
"uri": "https://example.com/image2.jpg",
"mime_type": "image/jpeg"
}
]
)
print(interaction.steps[-1].content[0].text)
جاوا اسکریپت
import { GoogleGenAI } from "@google/genai";
const client = new GoogleGenAI({});
const interaction = await client.interactions.create({
model: "gemini-3-flash-preview",
input: [
{type: "text", text: "What is different between these two images?"},
{
type: "image",
uri: "https://example.com/image1.jpg",
mime_type: "image/jpeg"
},
{
type: "image",
uri: "https://example.com/image2.jpg",
mime_type: "image/jpeg"
}
]
});
console.log(interaction.steps.at(-1).content[0].text);
استراحت
curl -X POST "https://generativelanguage.googleapis.com/v1beta/interactions" \
-H "x-goog-api-key: $GEMINI_API_KEY" \
-H 'Content-Type: application/json' \
-d '{
"model": "gemini-3-flash-preview",
"input": [
{"type": "text", "text": "What is different between these two images?"},
{
"type": "image",
"uri": "https://example.com/image1.jpg",
"mime_type": "image/jpeg"
},
{
"type": "image",
"uri": "https://example.com/image2.jpg",
"mime_type": "image/jpeg"
}
]
}'
تشخیص شیء
مدلها طوری آموزش داده میشوند که اشیاء موجود در یک تصویر را تشخیص داده و مختصات کادر مرزی آنها را دریافت کنند. این مختصات، نسبت به ابعاد تصویر، در مقیاس [0، 1000] قرار میگیرند. شما باید این مختصات را بر اساس اندازه تصویر اصلی خود، کوچک کنید.
پایتون
from google import genai
from PIL import Image
import json
client = genai.Client()
prompt = "Detect the all of the prominent items in the image. The box_2d should be [ymin, xmin, ymax, xmax] normalized to 0-1000."
interaction = client.interactions.create(
model="gemini-3-flash-preview",
input=[
{"type": "text", "text": prompt},
{
"type": "image",
"uri": "https://example.com/image.png",
"mime_type": "image/png"
}
],
response_format={
"type": "text",
"mime_type": "application/json"
}
)
bounding_boxes = json.loads(interaction.steps[-1].content[0].text)
print("Bounding boxes:", bounding_boxes)
برای مثالهای بیشتر، دفترچههای زیر را در کتاب آشپزی جمینی بررسی کنید:
تقسیمبندی
با شروع از Gemini 2.5، مدلها نه تنها اقلام را تشخیص میدهند، بلکه آنها را قطعهبندی کرده و ماسکهای کانتور آنها را ارائه میدهند.
این مدل یک لیست JSON را پیشبینی میکند که در آن هر آیتم نشاندهنده یک ماسک تقسیمبندی است. هر آیتم دارای یک کادر مرزی (" box_2d ") در قالب [y0, x0, y1, x1] با مختصات نرمالشده بین 0 تا 1000، یک برچسب (" label ") که شیء را مشخص میکند و در نهایت ماسک تقسیمبندی درون کادر مرزی، به صورت png کدگذاری شده با base64 است که یک نقشه احتمال با مقادیر بین 0 تا 255 است.
پایتون
from google import genai
from PIL import Image
import json
client = genai.Client()
prompt = """
Give the segmentation masks for the wooden and glass items.
Output a JSON list of segmentation masks where each entry contains the 2D
bounding box in the key "box_2d", the segmentation mask in key "mask", and
the text label in the key "label". Use descriptive labels.
"""
interaction = client.interactions.create(
model="gemini-3-flash-preview",
input=[
{"type": "text", "text": prompt},
{
"type": "image",
"uri": "https://example.com/image.png",
"mime_type": "image/png"
}
],
config={
"thinking_level": "minimal" # Minimize thinking for better detection results
}
)
items = json.loads(interaction.steps[-1].content[0].text)
print("Segmentation results:", items)

فرمتهای تصویر پشتیبانیشده
Gemini از انواع MIME فرمت تصویر زیر پشتیبانی میکند:
- PNG -
image/png - JPEG -
image/jpeg - WBP -
image/webp - HEIC -
image/heic - HEIF -
image/heif
برای آشنایی با سایر روشهای ورودی فایل، به راهنمای روشهای ورودی فایل مراجعه کنید.
قابلیتها
تمام نسخههای مدل Gemini چندوجهی هستند و میتوانند در طیف گستردهای از وظایف پردازش تصویر و بینایی کامپیوتر از جمله (اما نه محدود به) شرح تصویر، پرسش و پاسخ بصری، طبقهبندی تصویر، تشخیص شیء و قطعهبندی مورد استفاده قرار گیرند.
جمینی میتواند نیاز به استفاده از مدلهای تخصصی یادگیری ماشین را بسته به کیفیت و عملکرد مورد نیاز شما کاهش دهد.
آخرین نسخههای مدل بهطور خاص آموزش دیدهاند تا علاوه بر قابلیتهای عمومی، مانند تشخیص و تقسیمبندی اشیاء پیشرفته، دقت وظایف تخصصی را نیز بهبود بخشند.
محدودیتها و اطلاعات فنی کلیدی
محدودیت فایل
مدلهای Gemini حداکثر از ۳۶۰۰ فایل تصویری در هر درخواست پشتیبانی میکنند.
محاسبه توکن
- ۲۵۸ توکن اگر هر دو بعد <= ۳۸۴ پیکسل باشند. تصاویر بزرگتر به صورت کاشیهای ۷۶۸x۷۶۸ پیکسلی چیده میشوند که هر کدام ۲۵۸ توکن هزینه دارند.
یک فرمول تقریبی برای محاسبه تعداد کاشیها به شرح زیر است:
- اندازه واحد محصول را که تقریباً برابر است با:
floor(min(width, height)/ 1.5) محاسبه کنید. - هر بُعد را بر اندازه واحد محصول تقسیم کنید و در هم ضرب کنید تا تعداد کاشیها به دست آید.
برای مثال، برای تصویری با ابعاد ۹۶۰x۵۴۰، اندازه واحد برش ۳۶۰ خواهد بود. هر بعد را بر ۳۶۰ تقسیم کنید و تعداد کاشیها ۳ * ۲ = ۶ میشود.
وضوح رسانه
Gemini 3 با پارامتر media_resolution کنترل دقیقی بر پردازش بینایی چندوجهی ارائه میدهد. پارامتر media_resolution حداکثر تعداد توکنهای اختصاص داده شده به ازای هر تصویر یا فریم ویدیویی ورودی را تعیین میکند. رزولوشنهای بالاتر توانایی مدل را در خواندن متنهای ریز یا شناسایی جزئیات کوچک بهبود میبخشند، اما استفاده از توکن و تأخیر را افزایش میدهند.
نکات و بهترین شیوهها
- بررسی کنید که تصاویر به درستی چرخانده شده باشند.
- از تصاویر واضح و بدون تاری استفاده کنید.
- هنگام استفاده از یک تصویر واحد به همراه متن، متن ورودی را قبل از تصویر در آرایه
inputقرار دهید.
قدم بعدی چیست؟
این راهنما به شما نشان میدهد که چگونه فایلهای تصویری را آپلود کنید و از ورودیهای تصویری، خروجیهای متنی تولید کنید. برای کسب اطلاعات بیشتر، به منابع زیر مراجعه کنید:
- API فایلها : درباره آپلود و مدیریت فایلها برای استفاده با Gemini بیشتر بدانید.
- دستورالعملهای سیستم : دستورالعملهای سیستم به شما امکان میدهند رفتار مدل را بر اساس نیازها و موارد استفاده خاص خود هدایت کنید.
- استراتژیهای اعلان فایل : رابط برنامهنویسی نرمافزار Gemini از اعلان با دادههای متنی، تصویری، صوتی و ویدیویی پشتیبانی میکند که به عنوان اعلان چندوجهی نیز شناخته میشود.
- راهنمایی ایمنی : گاهی اوقات مدلهای هوش مصنوعی مولد، خروجیهای غیرمنتظرهای مانند خروجیهای نادرست، جانبدارانه یا توهینآمیز تولید میکنند. پردازش پس از پردازش و ارزیابی انسانی برای محدود کردن خطر آسیب ناشی از چنین خروجیهایی ضروری است.