Vision API dapat mendeteksi dan mentranskripsikan teks dari file PDF dan TIFF yang disimpan di Cloud Storage.
Deteksi teks dokumen dari PDF dan TIFF harus diminta menggunakan
fungsi files:asyncBatchAnnotate
, yang melakukan permintaan offline (asinkron)
dan memberikan statusnya menggunakan resource operations
.
Output dari permintaan PDF/TIFF ditulis ke file JSON yang dibuat dalam bucket Cloud Storage yang ditentukan.
Batasan
Vision API menerima file PDF/TIFF hingga 2000 halaman. File yang lebih besar akan menghasilkan error.
Autentikasi
Kunci API tidak didukung untuk permintaan files:asyncBatchAnnotate
. Baca
Menggunakan akun layanan untuk
mendapatkan petunjuk tentang cara mengautentikasi menggunakan akun layanan.
Akun yang digunakan untuk autentikasi harus memiliki akses ke bucket Cloud Storage
yang Anda tentukan untuk output (roles/editor
atau
roles/storage.objectCreator
atau lebih tinggi).
Anda dapat menggunakan kunci API untuk membuat kueri status operasi; lihat bagian Menggunakan kunci API untuk mendapatkan petunjuk.
Permintaan deteksi teks dokumen
Saat ini deteksi dokumen PDF/TIFF hanya tersedia untuk file yang disimpan di bucket Cloud Storage. File JSON respons disimpan secara serupa ke bucket Cloud Storage.
REST
Sebelum menggunakan salah satu data permintaan, buat penggantian berikut:
- CLOUD_STORAGE_BUCKET: Bucket/direktori Cloud Storage
tempat file output disimpan, yang dinyatakan dalam bentuk berikut:
gs://bucket/directory/
- CLOUD_STORAGE_FILE_URI: jalur ke file
yang valid (PDF/TIFF) di bucket Cloud Storage. Anda setidaknya harus memiliki hak istimewa baca ke
file tersebut.
Contoh:
gs://cloud-samples-data/vision/pdf_tiff/census2010.pdf
- FEATURE_TYPE: Jenis fitur yang valid.
Untuk permintaan
files:asyncBatchAnnotate
, Anda dapat menggunakan jenis fitur berikut:DOCUMENT_TEXT_DETECTION
TEXT_DETECTION
- PROJECT_ID: ID project Google Cloud Anda.
Pertimbangkan khusus kolom:
inputConfig
- menggantikan kolomimage
yang digunakan dalam permintaan Vision API lainnya. Pesan ini berisi dua kolom turunan:gcsSource.uri
- URI Google Cloud Storage file PDF atau TIFF (dapat diakses oleh pengguna atau akun layanan yang membuat permintaan).mimeType
- salah satu jenis file yang diterima:application/pdf
atauimage/tiff
.
outputConfig
- menentukan detail output. Pesan ini berisi dua kolom turunan:gcsDestination.uri
- URI Google Cloud Storage yang valid. Bucket harus dapat ditulis oleh pengguna atau akun layanan yang membuat permintaan. Nama filenya adalahoutput-x-to-y
, denganx
dany
mewakili nomor halaman PDF/TIFF yang disertakan dalam file output tersebut. Jika file tersebut ada, isinya akan ditimpa.batchSize
- menentukan jumlah halaman output yang harus disertakan di setiap file JSON output.
Metode HTTP dan URL:
POST https://vision.googleapis.com/v1/files:asyncBatchAnnotate
Isi JSON permintaan:
{ "requests":[ { "inputConfig": { "gcsSource": { "uri": "CLOUD_STORAGE_FILE_URI" }, "mimeType": "application/pdf" }, "features": [ { "type": "FEATURE_TYPE" } ], "outputConfig": { "gcsDestination": { "uri": "CLOUD_STORAGE_BUCKET" }, "batchSize": 1 } } ] }
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 "x-goog-user-project: PROJECT_ID" \
-H "Content-Type: application/json; charset=utf-8" \
-d @request.json \
"https://vision.googleapis.com/v1/files:asyncBatchAnnotate"
PowerShell
Simpan isi permintaan dalam file bernama request.json
,
dan jalankan perintah berikut:
$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred"; "x-goog-user-project" = "PROJECT_ID" }
Invoke-WebRequest `
-Method POST `
-Headers $headers `
-ContentType: "application/json; charset=utf-8" `
-InFile request.json `
-Uri "https://vision.googleapis.com/v1/files:asyncBatchAnnotate" | Select-Object -Expand Content
Permintaan asyncBatchAnnotate
yang berhasil akan menampilkan respons dengan satu kolom
nama:
{ "name": "projects/usable-auth-library/operations/1efec2285bd442df" }
Nama ini mewakili operasi yang berjalan lama dengan ID
terkait (misalnya, 1efec2285bd442df
), yang dapat dikueri menggunakan
v1.operations
API.
Untuk mengambil respons anotasi Vision, kirim permintaan GET ke
endpoint v1.operations
, dengan meneruskan ID operasi di URL:
GET https://vision.googleapis.com/v1/operations/operation-id
Contoh:
curl -X GET -H "Authorization: Bearer $(gcloud auth application-default print-access-token)" \ -H "Content-Type: application/json" \ https://vision.googleapis.com/v1/projects/project-id/locations/location-id/operations/1efec2285bd442df
Jika operasi sedang berlangsung:
{ "name": "operations/1efec2285bd442df", "metadata": { "@type": "type.googleapis.com/google.cloud.vision.v1.OperationMetadata", "state": "RUNNING", "createTime": "2019-05-15T21:10:08.401917049Z", "updateTime": "2019-05-15T21:10:33.700763554Z" } }
Setelah operasi selesai, state
akan ditampilkan sebagai DONE
dan
hasilnya ditulis ke file Google Cloud Storage yang Anda tentukan:
{ "name": "operations/1efec2285bd442df", "metadata": { "@type": "type.googleapis.com/google.cloud.vision.v1.OperationMetadata", "state": "DONE", "createTime": "2019-05-15T20:56:30.622473785Z", "updateTime": "2019-05-15T20:56:41.666379749Z" }, "done": true, "response": { "@type": "type.googleapis.com/google.cloud.vision.v1.AsyncBatchAnnotateFilesResponse", "responses": [ { "outputConfig": { "gcsDestination": { "uri": "gs://your-bucket-name/folder/" }, "batchSize": 1 } } ] } }
JSON dalam file output Anda mirip dengan
[permintaan deteksi teks dokumen](/vision/docs/ocr) gambar, dengan penambahan kolom
context
yang menunjukkan lokasi PDF atau TIFF yang ditentukan dan
jumlah halaman dalam file:
output-1-to-1.json
Go
Sebelum mencoba contoh ini, ikuti petunjuk penyiapan Go di Panduan memulai Vision menggunakan library klien. Untuk mengetahui informasi selengkapnya, lihat dokumentasi referensi Vision Go API.
Untuk melakukan autentikasi ke Vision, siapkan Kredensial Default Aplikasi. Untuk mengetahui informasi selengkapnya, lihat Menyiapkan autentikasi untuk lingkungan pengembangan lokal.
Java
Sebelum mencoba contoh ini, ikuti petunjuk penyiapan Java di Panduan Memulai Vision API Menggunakan Library Klien. Untuk mengetahui informasi selengkapnya, lihat dokumentasi referensi Java Vision API.
Node.js
Sebelum mencoba contoh ini, ikuti petunjuk penyiapan Node.js di Panduan memulai Vision menggunakan library klien. Untuk mengetahui informasi selengkapnya, lihat dokumentasi referensi Vision Node.js API.
Untuk melakukan autentikasi ke Vision, siapkan Kredensial Default Aplikasi. Untuk mengetahui informasi selengkapnya, lihat Menyiapkan autentikasi untuk lingkungan pengembangan lokal.
Python
Sebelum mencoba contoh ini, ikuti petunjuk penyiapan Python di Panduan memulai Vision menggunakan library klien. Untuk mengetahui informasi selengkapnya, lihat dokumentasi referensi Vision Python API.
Untuk melakukan autentikasi ke Vision, siapkan Kredensial Default Aplikasi. Untuk mengetahui informasi selengkapnya, lihat Menyiapkan autentikasi untuk lingkungan pengembangan lokal.
gcloud
Perintah gcloud
yang Anda gunakan bergantung pada jenis file.
Untuk melakukan deteksi teks PDF, gunakan perintah
gcloud ml vision detect-text-pdf
seperti yang ditunjukkan dalam contoh berikut:gcloud ml vision detect-text-pdf gs://my_bucket/input_file gs://my_bucket/out_put_prefix
Untuk melakukan deteksi teks TIFF, gunakan perintah
gcloud ml vision detect-text-tiff
seperti yang ditunjukkan dalam contoh berikut:gcloud ml vision detect-text-tiff gs://my_bucket/input_file gs://my_bucket/out_put_prefix
Bahasa tambahan
C#: Ikuti Petunjuk penyiapan C# di halaman library klien, lalu kunjungi Dokumentasi referensi Vision untuk .NET.
PHP: Ikuti Petunjuk penyiapan PHP di halaman library klien, lalu buka Dokumentasi referensi Vision untuk PHP.
Ruby: Ikuti Petunjuk penyiapan Ruby di halaman library klien, lalu kunjungi Dokumentasi referensi Vision untuk Ruby.
Dukungan multi-regional
Sekarang Anda dapat menentukan penyimpanan data tingkat benua dan pemrosesan OCR. Wilayah berikut saat ini didukung:
us
: Khusus negara ASeu
: Uni Eropa
Lokasi
Cloud Vision menawarkan Anda beberapa kontrol terkait lokasi penyimpanan dan pemrosesan resource untuk project Anda. Secara khusus, Anda dapat mengonfigurasi Cloud Vision untuk menyimpan dan memproses data hanya di Uni Eropa.
Secara default, Cloud Vision menyimpan dan memproses resource di lokasi Global, yang berarti bahwa Cloud Vision tidak menjamin resource Anda akan tetap berada dalam lokasi atau region tertentu. Jika Anda memilih lokasi Uni Eropa, Google akan menyimpan data Anda dan memprosesnya hanya di Uni Eropa. Anda dan pengguna Anda dapat mengakses data dari lokasi mana pun.
Menetapkan lokasi menggunakan API
Vision API mendukung endpoint API global (vision.googleapis.com
) dan juga
dua endpoint berbasis region: endpoint Uni Eropa
(eu-vision.googleapis.com
) dan endpoint Amerika Serikat
(us-vision.googleapis.com
). Gunakan endpoint ini untuk pemrosesan khusus
per region. Misalnya, untuk menyimpan dan memproses data Anda hanya di Uni Eropa, gunakan
URI eu-vision.googleapis.com
sebagai pengganti vision.googleapis.com
untuk panggilan REST API Anda:
- https://eu-vision.googleapis.com/v1/projects/PROJECT_ID/locations/eu/images:annotate
- https://eu-vision.googleapis.com/v1/projects/PROJECT_ID/locations/eu/images:asyncBatchAnnotate
- https://eu-vision.googleapis.com/v1/projects/PROJECT_ID/locations/eu/files:annotate
- https://eu-vision.googleapis.com/v1/projects/PROJECT_ID/locations/eu/files:asyncBatchAnnotate
Untuk menyimpan dan memproses data Anda hanya di Amerika Serikat, gunakan endpoint AS
(us-vision.googleapis.com
) dengan metode sebelumnya.
Menetapkan lokasi menggunakan library klien
Library klien Vision API mengakses endpoint API global
(vision.googleapis.com
) secara default. Untuk menyimpan dan memproses data hanya di
Uni Eropa, Anda perlu menetapkan endpoint
(eu-vision.googleapis.com
). secara eksplisit. Contoh kode berikut menunjukkan cara mengonfigurasi
setelan ini.
REST
Sebelum menggunakan salah satu data permintaan, lakukan penggantian berikut:
- REGION_ID: Salah satu ID lokasi
regional yang valid:
us
: Khusus negara ASeu
: Uni Eropa
- CLOUD_STORAGE_IMAGE_URI: jalur ke file gambar
yang valid di bucket Cloud Storage. Anda setidaknya harus memiliki hak istimewa baca ke file tersebut.
Contoh:
gs://cloud-samples-data/vision/pdf_tiff/census2010.pdf
- CLOUD_STORAGE_BUCKET: Bucket/direktori Cloud Storage
tempat file output disimpan, yang dinyatakan dalam bentuk berikut:
gs://bucket/directory/
- FEATURE_TYPE: Jenis fitur yang valid.
Untuk permintaan
files:asyncBatchAnnotate
, Anda dapat menggunakan jenis fitur berikut:DOCUMENT_TEXT_DETECTION
TEXT_DETECTION
- PROJECT_ID: ID project Google Cloud Anda.
Pertimbangkan khusus kolom:
inputConfig
- menggantikan kolomimage
yang digunakan dalam permintaan Vision API lainnya. Pesan ini berisi dua kolom turunan:gcsSource.uri
- URI Google Cloud Storage file PDF atau TIFF (dapat diakses oleh pengguna atau akun layanan yang membuat permintaan).mimeType
- salah satu jenis file yang diterima:application/pdf
atauimage/tiff
.
outputConfig
- menentukan detail output. Pesan ini berisi dua kolom turunan:gcsDestination.uri
- URI Google Cloud Storage yang valid. Bucket harus dapat ditulis oleh pengguna atau akun layanan yang membuat permintaan. Nama filenya adalahoutput-x-to-y
, denganx
dany
mewakili nomor halaman PDF/TIFF yang disertakan dalam file output tersebut. Jika file tersebut ada, isinya akan ditimpa.batchSize
- menentukan jumlah halaman output yang harus disertakan di setiap file JSON output.
Metode HTTP dan URL:
POST https://REGION_ID-vision.googleapis.com/v1/projects/PROJECT_ID/locations/REGION_ID/files:asyncBatchAnnotate
Isi JSON permintaan:
{ "requests":[ { "inputConfig": { "gcsSource": { "uri": "CLOUD_STORAGE_IMAGE_URI" }, "mimeType": "application/pdf" }, "features": [ { "type": "FEATURE_TYPE" } ], "outputConfig": { "gcsDestination": { "uri": "CLOUD_STORAGE_BUCKET" }, "batchSize": 1 } } ] }
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 "x-goog-user-project: PROJECT_ID" \
-H "Content-Type: application/json; charset=utf-8" \
-d @request.json \
"https://REGION_ID-vision.googleapis.com/v1/projects/PROJECT_ID/locations/REGION_ID/files:asyncBatchAnnotate"
PowerShell
Simpan isi permintaan dalam file bernama request.json
,
dan jalankan perintah berikut:
$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred"; "x-goog-user-project" = "PROJECT_ID" }
Invoke-WebRequest `
-Method POST `
-Headers $headers `
-ContentType: "application/json; charset=utf-8" `
-InFile request.json `
-Uri "https://REGION_ID-vision.googleapis.com/v1/projects/PROJECT_ID/locations/REGION_ID/files:asyncBatchAnnotate" | Select-Object -Expand Content
Permintaan asyncBatchAnnotate
yang berhasil akan menampilkan respons dengan satu kolom
nama:
{ "name": "projects/usable-auth-library/operations/1efec2285bd442df" }
Nama ini mewakili operasi yang berjalan lama dengan ID
terkait (misalnya, 1efec2285bd442df
), yang dapat dikueri menggunakan
v1.operations
API.
Untuk mengambil respons anotasi Vision, kirim permintaan GET ke
endpoint v1.operations
, dengan meneruskan ID operasi di URL:
GET https://vision.googleapis.com/v1/operations/operation-id
Contoh:
curl -X GET -H "Authorization: Bearer $(gcloud auth application-default print-access-token)" \ -H "Content-Type: application/json" \ https://vision.googleapis.com/v1/projects/project-id/locations/location-id/operations/1efec2285bd442df
Jika operasi sedang berlangsung:
{ "name": "operations/1efec2285bd442df", "metadata": { "@type": "type.googleapis.com/google.cloud.vision.v1.OperationMetadata", "state": "RUNNING", "createTime": "2019-05-15T21:10:08.401917049Z", "updateTime": "2019-05-15T21:10:33.700763554Z" } }
Setelah operasi selesai, state
akan ditampilkan sebagai DONE
dan
hasilnya ditulis ke file Google Cloud Storage yang Anda tentukan:
{ "name": "operations/1efec2285bd442df", "metadata": { "@type": "type.googleapis.com/google.cloud.vision.v1.OperationMetadata", "state": "DONE", "createTime": "2019-05-15T20:56:30.622473785Z", "updateTime": "2019-05-15T20:56:41.666379749Z" }, "done": true, "response": { "@type": "type.googleapis.com/google.cloud.vision.v1.AsyncBatchAnnotateFilesResponse", "responses": [ { "outputConfig": { "gcsDestination": { "uri": "gs://your-bucket-name/folder/" }, "batchSize": 1 } } ] } }
feature. JSON dalam file output Anda serupa dengan file gambar
deteksi teks dokumen
respons jika Anda menggunakanDOCUMENT_TEXT_DETECTION
baru, atau
deteksi teks respon
jika Anda menggunakanTEXT_DETECTION
aplikasi baru. Outputnya akan memiliki kolom
context
tambahan yang menunjukkan lokasi PDF atau TIFF yang ditentukan dan
jumlah halaman dalam file tersebut:
output-1-to-1.json
Go
Sebelum mencoba contoh ini, ikuti petunjuk penyiapan Go di Panduan memulai Vision menggunakan library klien. Untuk mengetahui informasi selengkapnya, lihat dokumentasi referensi Vision Go API.
Untuk melakukan autentikasi ke Vision, siapkan Kredensial Default Aplikasi. Untuk mengetahui informasi selengkapnya, lihat Menyiapkan autentikasi untuk lingkungan pengembangan lokal.
Java
Sebelum mencoba contoh ini, ikuti petunjuk penyiapan Java di Panduan Memulai Vision API Menggunakan Library Klien. Untuk mengetahui informasi selengkapnya, lihat dokumentasi referensi Java Vision API.
Node.js
Sebelum mencoba contoh ini, ikuti petunjuk penyiapan Node.js di Panduan memulai Vision menggunakan library klien. Untuk mengetahui informasi selengkapnya, lihat dokumentasi referensi Vision Node.js API.
Untuk melakukan autentikasi ke Vision, siapkan Kredensial Default Aplikasi. Untuk mengetahui informasi selengkapnya, lihat Menyiapkan autentikasi untuk lingkungan pengembangan lokal.
Python
Sebelum mencoba contoh ini, ikuti petunjuk penyiapan Python di Panduan memulai Vision menggunakan library klien. Untuk mengetahui informasi selengkapnya, lihat dokumentasi referensi Vision Python API.
Untuk melakukan autentikasi ke Vision, siapkan Kredensial Default Aplikasi. Untuk mengetahui informasi selengkapnya, lihat Menyiapkan autentikasi untuk lingkungan pengembangan lokal.
Coba sendiri
Jika Anda baru menggunakan Google Cloud, buat akun untuk mengevaluasi performa Cloud Vision API dalam skenario dunia nyata. Pelanggan baru mendapatkan kredit gratis senilai $300 untuk menjalankan, menguji, dan men-deploy workload.
Coba Cloud Vision API gratis