Vision API 可使用任何 Vision 功能類型,離線 (非同步) 偵測及註解大量圖片檔案。舉例來說,您可以為單一批次圖片指定一或多項 Vision API 功能 (例如 TEXT_DETECTION
、LABEL_DETECTION
和 LANDMARK_DETECTION
)。
離線批次要求的輸出內容會寫入指定 Cloud Storage bucket 中建立的 JSON 檔案。
限制
Vision API 最多可接受 2,000 個圖片檔。如果圖片檔案數量過多,系統會傳回錯誤。
目前支援的地圖項目類型
特徵類型 | |
---|---|
CROP_HINTS |
判斷圖片裁剪區域的建議端點。 |
DOCUMENT_TEXT_DETECTION |
針對含有密集文字的圖片執行光學字元辨識,例如文件 (PDF/TIFF) 和含有手寫文字的圖片。TEXT_DETECTION 可用於含稀疏文字的圖片。
如果 DOCUMENT_TEXT_DETECTION 和 TEXT_DETECTION 同時存在,則優先採用。 |
FACE_DETECTION |
偵測圖片中的臉孔。 |
IMAGE_PROPERTIES |
計算一組圖片屬性,例如圖片主色。 |
LABEL_DETECTION |
根據圖片內容新增標籤。 |
LANDMARK_DETECTION |
偵測圖片中的地理地標。 |
LOGO_DETECTION |
偵測圖片中的公司標誌。 |
OBJECT_LOCALIZATION |
偵測並擷取圖片中的多個物件。 |
SAFE_SEARCH_DETECTION |
執行安全搜尋,以偵測可能不安全或不適當的內容。 |
TEXT_DETECTION |
針對圖片中的文字執行光學字元辨識 (OCR)。
文字偵測已針對大型圖片中稀疏的文字區域進行最佳化。
如果圖片是文件 (PDF/TIFF)、含有密集文字,或包含手寫內容,請改用 DOCUMENT_TEXT_DETECTION 。 |
WEB_DETECTION |
偵測圖片的主題內容 (例如新聞、事件或名人),並透過 Google 圖片搜尋找出網路上的相似圖片。 |
程式碼範例
使用下列程式碼範例,對 Cloud Storage 中的一批圖片檔案執行離線註解服務。
Java
在試用這個範例之前,請先按照使用用戶端程式庫的 Vision API 快速入門導覽課程中的 Java 設定操作說明進行操作。詳情請參閱 Vision API Java 參考說明文件。
Node.js
在試用這個範例之前,請先按照Node.js「使用用戶端程式庫的 Vision 快速入門導覽課程」中的設定說明操作。詳情請參閱 Vision Node.js API 參考說明文件。
如要向 Vision 進行驗證,請設定應用程式預設憑證。 詳情請參閱「為本機開發環境設定驗證」。
Python
在試用這個範例之前,請先按照Python「使用用戶端程式庫的 Vision 快速入門導覽課程」中的設定說明操作。詳情請參閱 Vision Python API 參考說明文件。
如要向 Vision 進行驗證,請設定應用程式預設憑證。 詳情請參閱「為本機開發環境設定驗證」。
回應
如果要求成功,系統會在程式碼範例中指定 Cloud Storage 值區,傳回 JSON 回應檔案。每個 JSON 檔案的回覆數量取決於程式碼範例中的 batch_size
。
傳回的回應與一般 Vision API 功能回應類似,視您要求圖片的哪些功能而定。
下列回應會顯示 image1.png
的 LABEL_DETECTION
和 TEXT_DETECTION
註解、image2.jpg
的 IMAGE_PROPERTIES
註解,以及 image3.jpg
的 OBJECT_LOCALIZATION
註解。
回應中也會包含 context
欄位,顯示檔案的 URI。
offline_batch_output/output-1-to-2.json
{ "responses": [ { "labelAnnotations": [ { "mid": "/m/07s6nbt", "description": "Text", "score": 0.93413997, "topicality": 0.93413997 }, { "mid": "/m/0dwx7", "description": "Logo", "score": 0.8733531, "topicality": 0.8733531 }, ... { "mid": "/m/03bxgrp", "description": "Company", "score": 0.5682425, "topicality": 0.5682425 } ], "textAnnotations": [ { "locale": "en", "description": "Google\n", "boundingPoly": { "vertices": [ { "x": 72, "y": 40 }, { "x": 613, "y": 40 }, { "x": 613, "y": 233 }, { "x": 72, "y": 233 } ] } }, ... ], "blockType": "TEXT" } ] } ], "text": "Google\n" }, "context": { "uri": "gs://cloud-samples-data/vision/document_understanding/image1.png" } }, { "imagePropertiesAnnotation": { "dominantColors": { "colors": [ { "color": { "red": 229, "green": 230, "blue": 238 }, "score": 0.2744754, "pixelFraction": 0.075339235 }, ... { "color": { "red": 86, "green": 87, "blue": 95 }, "score": 0.025770646, "pixelFraction": 0.13109145 } ] } }, "cropHintsAnnotation": { "cropHints": [ { "boundingPoly": { "vertices": [ {}, { "x": 1599 }, { "x": 1599, "y": 1199 }, { "y": 1199 } ] }, "confidence": 0.79999995, "importanceFraction": 1 } ] }, "context": { "uri": "gs://cloud-samples-data/vision/document_understanding/image2.jpg" } } ] }
offline_batch_output/output-3-to-3.json
{ "responses": [ { "context": { "uri": "gs://cloud-samples-data/vision/document_understanding/image3.jpg" }, "localizedObjectAnnotations": [ { "mid": "/m/0bt9lr", "name": "Dog", "score": 0.9669734, "boundingPoly": { "normalizedVertices": [ { "x": 0.6035543, "y": 0.1357359 }, { "x": 0.98546547, "y": 0.1357359 }, { "x": 0.98546547, "y": 0.98426414 }, { "x": 0.6035543, "y": 0.98426414 } ] } }, ... { "mid": "/m/0jbk", "name": "Animal", "score": 0.58003056, "boundingPoly": { "normalizedVertices": [ { "x": 0.014534635, "y": 0.1357359 }, { "x": 0.37197515, "y": 0.1357359 }, { "x": 0.37197515, "y": 0.98426414 }, { "x": 0.014534635, "y": 0.98426414 } ] } } ] } ] }