Базовая информация о том, как в API работает компьютеное зрение доступна здесь.

Gemini API не поддерживает передачу изображений по URL. Если изображение доступно по ссылке, сначала необходимо скачать его на своей стороне, затем закодировать в base64 и только после этого передать в запросе.

from google import genai

client = genai.Client(
    api_key="<КЛЮЧ>", 
    http_options={"base_url": "https://api.proxyapi.ru/google"}
)

# Путь к изображению
image_path = "path_to_your_image.jpg"

# Получение байтов изображения
with open(image_path, 'rb') as f:
      image_bytes = f.read()

response = client.models.generate_content(
    model="gemini-2.0-flash",
    contents=[
        genai.types.Part.from_bytes(
            data=image_bytes,
            mime_type="image/jpeg",
        ),
        "Что изображено на картинке?"
    ]
)

Максимальный общий размер запроса — 20 МБ. Он включает текст промпта, системные инструкции и все вложенные файлы.

Вы можете предоставить несколько изображений в одном запросе, включив несколько объектов изображения Part в массив contents.

from google import genai

client = genai.Client(
    api_key="<КЛЮЧ>", 
    http_options={"base_url": "https://api.proxyapi.ru/google"}
)

# Пути к изображениям
image_path1 = "path_to_first_image.jpg"
image_path2 = "path_to_second_image.jpg"

# Получение байтов изображений
with open(image_path1, 'rb') as f1:
    image_bytes1 = f1.read()
    
with open(image_path2, 'rb') as f2:
    image_bytes2 = f2.read()

response = client.models.generate_content(
    model="gemini-2.0-flash",
    contents=[
        genai.types.Part.from_bytes(data=image_bytes1, mime_type="image/jpeg"),
        genai.types.Part.from_bytes(data=image_bytes2, mime_type="image/jpeg"),
        "Сравни эти два изображения"
    ]
)

Модели Gemini обучены распознавать объекты на изображении и предоставлять координаты их рамок. Координаты возвращаются относительно размеров изображения, масштабированных в диапазон [0, 1000]. Необходимо преобразовать эти координаты обратно в размеры исходного изображения.

Запросить модель вернуть рамку объекта можно прямо через промпт.

Найди все различимые объекты на изображении. 
Параметр box_2d должен быть в формате [ymin, xmin, ymax, xmax], 
нормализованным в диапазоне от 0 до 1000.

Рамки объекта можно использовать для обнаружения и локализации объектов на изображениях и в видео. Точное определение и выделение объектов с помощью рамок позволяет реализовать широкий спектр приложений и повысить интеллектуальные возможности ваших проектов.

Основные преимущества

  • Простота: Легко интегрируйте возможности обнаружения объектов в свои приложения, независимо от вашего опыта в компьютерном зрении.
  • Управляемость: Создавайте рамки объектов на основе пользовательских инструкций (например: «Покажи рамки всех зелёных объектов на этом изображении») без необходимости обучать собственную модель.

Технические детали

  • Входные данные: Ваш текстовый запрос и связанные изображения или кадры видео.
  • Выходные данные: Рамки объектов в формате [y_min, x_min, y_max, x_max]. Начало координат — в верхнем левом углу. Ось X идёт по горизонтали, ось Y — по вертикали. Координаты нормализованы в диапазон от 0 до 1000 для каждого изображения.

Модель возвращает координаты рамок объекта в формате [y_min, x_min, y_max, x_max]. Чтобы преобразовать эти координаты в пиксельные координаты исходного изображения, нужно:

  1. Разделить каждую координату на 1000.
  2. Умножить x-координату на ширину исходного изображения.
  3. Умножить y-координату на высоту исходного изображения.

Пример сегментации изображения

Начиная с версии Gemini 2.5, модели обучены не только обнаруживать объекты, но и сегментировать их, предоставляя маску их контуров.

Модель возвращает список в формате JSON, где каждый элемент представляет собой маску сегментации. Каждый элемент содержит:

  • рамку объекта (box_2d) в формате [y0, x0, y1, x1] с нормализованными координатами от 0 до 1000,
  • метку (label), идентифицирующую объект,
  • маску сегментации внутри рамки, в виде PNG, закодированного в base64. Это карта вероятностей со значениями от 0 до 255.

Маску нужно привести к размеру рамки объекта и бинаризовать по порогу уверенности (значение 127 — середина диапазона).

Предоставь маски сегментации для деревянных и стеклянных объектов.
Верни список в формате JSON, где каждый элемент содержит:
рамку объекта "box_2d" (формат [y0, x0, y1, x1], координаты нормализованы от 0 до 1000),
маску сегментации "mask" (PNG, закодированный в base64, карта вероятностей),
текстовую метку "label" (используй метки, описывающие объекты).

Gemini поддерживает следующие форматы изображений (MIME-типы):

  • PNG — image/png
  • JPEG — image/jpeg
  • WEBP — image/webp
  • HEIC — image/heic
  • HEIF — image/heif

Gemini 2.5 Pro, 2.0 Flash, 1.5 Pro и 1.5 Flash поддерживают максимум 3600 изображений в одном запросе.

  • Gemini 1.5 Flash и 1.5 Pro: 258 токенов, если обе стороны изображения ≤ 384 пикселей. Более крупные изображения разбиваются на плитки (минимум 256px, максимум 768px, масштабируются до 768x768), каждая плитка расходует 258 токенов.
  • Gemini 2.0 Flash: 258 токенов, если обе стороны ≤ 384 пикселей. Более крупные изображения разбиваются на плитки 768x768 пикселей, каждая плитка — 258 токенов.

  • Убедиться, что изображения корректно повернуты.
  • Использовать чёткие, неразмытые изображения.
  • При использовании одного изображения с текстовым промптом, помещать текстовую часть после изображения в массиве contents.
ProxyAPI Logo

Доступ к последним разработкам мировых лидеров в области AI для вашего проекта или бизнеса в России. Без VPN и блокировок. Оплата в рублях.

Accepted payment methods