Mendapatkan deskripsi gambar menggunakan teks visual

Teks visual memungkinkan Anda membuat deskripsi yang relevan untuk suatu gambar. Anda dapat menggunakan informasi ini untuk berbagai penggunaan:

  • Dapatkan metadata yang lebih mendetail tentang gambar untuk disimpan dan ditelusuri.
  • Buat teks otomatis untuk mendukung kasus penggunaan aksesibilitas.
  • Dapatkan deskripsi singkat produk dan aset visual.
Contoh gambar dengan teks

Sumber gambar: Santhosh Kumar di Unsplash (terpangkas)

Teks (format pendek): kemeja biru dengan polka dot putih digantung di pengait

Bahasa yang didukung

Teks visual tersedia dalam bahasa berikut:

  • Inggris (en)
  • Prancis (fr)
  • Jerman (de)
  • Italia (it)
  • Spanyol (es)

Performa dan batasan

Batas berikut berlaku saat Anda menggunakan model ini:

Batas Nilai
Jumlah maksimum permintaan API (format pendek) per menit per project 500
Jumlah maksimum token yang ditampilkan sebagai respons (format pendek) 64 token
Jumlah maksimum token yang diterima dalam permintaan (khusus video pendek VQA) 80 token
Jumlah maksimum token yang ditampilkan sebagai respons (format panjang) 512 token

Estimasi latensi layanan berikut berlaku saat Anda menggunakan model ini. Nilai ini dimaksudkan sebagai ilustrasi dan bukan merupakan jaminan layanan:

Latensi Nilai
Permintaan API (format pendek) 1,5 detik
Permintaan API (berdurasi panjang) 4,5 detik

Lokasi

Lokasi adalah region yang dapat Anda tentukan dalam permintaan untuk mengontrol tempat data disimpan dalam penyimpanan. Untuk mengetahui daftar region yang tersedia, lihat AI Generatif di lokasi Vertex AI.

Mendapatkan teks gambar pendek

Gunakan contoh berikut untuk membuat teks pendek untuk gambar.

Konsol

  1. Di konsol Google Cloud, buka tab Vertex AI Studio > Vision di dasbor Vertex AI.

    Buka tab Vertex AI Studio

  2. Di menu bawah, klik Teks.

  3. Klik Upload gambar untuk memilih gambar lokal Anda untuk diberi teks.

  4. Di panel Parameters, pilih Jumlah teks dan Language.

  5. Klik Buat teks.

REST

Untuk mengetahui informasi selengkapnya tentang permintaan model imagetext, lihat referensi API model imagetext.

Sebelum menggunakan salah satu data permintaan, lakukan penggantian berikut:

  • PROJECT_ID: ID project Google Cloud Anda.
  • LOCATION: Region project Anda. Misalnya, us-central1, europe-west2, atau asia-northeast3. Untuk mengetahui daftar region yang tersedia, lihat Generative AI di lokasi Vertex AI.
  • B64_IMAGE: Gambar yang akan diberi teks. Gambar harus ditentukan sebagai string byte berenkode base64. Batas ukuran: 10 MB.
  • RESPONSE_COUNT: Jumlah teks gambar yang ingin Anda buat. Nilai bilangan bulat yang diterima: 1-3.
  • LANGUAGE_CODE: Salah satu kode bahasa yang didukung. Bahasa yang didukung:
    • Inggris (en)
    • Prancis (fr)
    • Jerman (de)
    • Italia (it)
    • Spanyol (es)

Metode HTTP dan URL:

POST https://LOCATION-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/publishers/google/models/imagetext:predict

Isi JSON permintaan:

{
  "instances": [
    {
      "image": {
          "bytesBase64Encoded": "B64_IMAGE"
      }
    }
  ],
  "parameters": {
    "sampleCount": RESPONSE_COUNT,
    "language": "LANGUAGE_CODE"
  }
}

Untuk mengirim permintaan Anda, pilih salah satu opsi berikut:

curl

Simpan isi permintaan dalam file bernama request.json, dan jalankan perintah berikut:

curl -X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json; charset=utf-8" \
-d @request.json \
"https://LOCATION-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/publishers/google/models/imagetext:predict"

PowerShell

Simpan isi permintaan dalam file bernama request.json, dan jalankan perintah berikut:

$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }

Invoke-WebRequest `
-Method POST `
-Headers $headers `
-ContentType: "application/json; charset=utf-8" `
-InFile request.json `
-Uri "https://LOCATION-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/publishers/google/models/imagetext:predict" | Select-Object -Expand Content
Contoh respons berikut adalah untuk permintaan dengan "sampleCount": 2. Respons akan menampilkan dua string prediksi.

Inggris (en):

{
  "predictions": [
    "a yellow mug with a sheep on it sits next to a slice of cake",
    "a cup of coffee with a heart shaped latte art next to a slice of cake"
  ],
  "deployedModelId": "DEPLOYED_MODEL_ID",
  "model": "projects/PROJECT_ID/locations/LOCATION/models/MODEL_ID",
  "modelDisplayName": "MODEL_DISPLAYNAME",
  "modelVersionId": "1"
}

Spanyol (es):

{
  "predictions": [
    "una taza de café junto a un plato de pastel de chocolate",
    "una taza de café con una forma de corazón en la espuma"
  ]
}

Python

Sebelum mencoba contoh ini, ikuti petunjuk penyiapan Python di panduan memulai Vertex AI menggunakan library klien. Untuk mengetahui informasi selengkapnya, lihat Dokumentasi referensi API Python Vertex AI.

Untuk melakukan autentikasi ke Vertex AI, siapkan Kredensial Default Aplikasi. Untuk mengetahui informasi selengkapnya, baca Menyiapkan autentikasi untuk lingkungan pengembangan lokal.

Dalam contoh ini, Anda menggunakan metode load_from_file untuk mereferensikan file lokal sebagai Image dasar untuk mendapatkan teks. Setelah menentukan image dasar, Anda dapat menggunakan metode get_captions pada ImageTextModel dan mencetak output.


import argparse

import vertexai
from vertexai.preview.vision_models import Image, ImageTextModel

def get_short_form_image_captions(
    project_id: str, location: str, input_file: str
) -> list:
    """Get short-form captions for a local image.
    Args:
      project_id: Google Cloud project ID, used to initialize Vertex AI.
      location: Google Cloud region, used to initialize Vertex AI.
      input_file: Local path to the input image file."""

    vertexai.init(project=project_id, location=location)

    model = ImageTextModel.from_pretrained("imagetext@001")
    source_img = Image.load_from_file(location=input_file)

    captions = model.get_captions(
        image=source_img,
        # Optional parameters
        language="en",
        number_of_results=1,
    )

    print(captions)

    return captions

Menggunakan parameter untuk keterangan gambar

Saat mendapatkan teks gambar, ada beberapa parameter yang dapat Anda setel bergantung pada kasus penggunaan Anda.

Jumlah hasil

Gunakan parameter jumlah hasil untuk membatasi jumlah teks yang ditampilkan untuk setiap permintaan yang Anda kirim. Untuk informasi selengkapnya, lihat referensi API model imagetext (pemberian teks gambar).

Nomor seed

Angka yang Anda tambahkan ke permintaan untuk membuat deskripsi yang dibuat bersifat deterministik. Menambahkan nomor seed dengan permintaan Anda adalah cara untuk memastikan bahwa Anda mendapatkan prediksi (deskripsi) yang sama setiap saat. Namun, keterangan gambar tidak selalu ditampilkan dalam urutan yang sama. Untuk informasi selengkapnya, lihat referensi API model imagetext (pemberian teks gambar).

Langkah selanjutnya