SDK
Python client library
| 目標讀者 TA | Python/後端整合者 |
|---|---|
| 官方文件能力 | 使用官方 google-cloud-vision 套件與 ADC 認證呼叫 Vision。 |
| 輸入 → 輸出 | 影像請求 → 型別化標註回應 |
| 執行環境 | Python 後端連接 Google Cloud;安裝 SDK 不代表模型在裝置上執行。 |
| 本站選型評估 | 分別管理 SDK 版本、憑證身分與計費專案。 |
| 本站建議驗證 | 固定解析後套件版本,先驗證授權單張呼叫再批次處理。 |
電腦視覺 · API
Google Cloud
利用雲端視覺服務擷取影像標籤與文字。
GOOGLE CLOUD VISION / DEVELOPER FIELD GUIDE
公司/專案背景、十個技術入口,以及每份引用的實作分析。
2026-10-08 · 串接尚未實測
依官方公司或專案自述撰寫的原創概要;完整原文請見來源。
| 使命 | Google 將協助人們取得與運用資訊列為使命。 |
|---|---|
| 技術體系 | 公司資訊串聯 Google Cloud、Research、DeepMind、Labs 與開發者資源。 |
| 公司脈絡 | 官方頁連結公司沿革、據點、徵才與 Alphabet 投資者資訊。 |
| 公開承諾 | 頁面呈現無障礙、永續、社會影響、教育與公共政策倡議。 |
| 採購判斷 | 公司概覽提供背景;選型仍需評估 Vision API 專屬條件、架構與驗收結果。 |
| 適用角色 | 進行 AI 供應商初選的採購、合作夥伴與產品負責人。 |
|---|---|
| 本站評估 | 用定位與公司背景判斷初步適配度;另行取得專案部署、支援與商務條件。 |
於 2026-10-08 讀取官方公司與開發文件。能力為來源摘要;限制及測試計畫為本站工程評估,尚未呼叫供應商服務。
依工業型錄、文件收件及影像初篩挑選十個不同技術入口;不是官方排名,也不是十個獨立產品。
| 接口 | 用途與 TA |
|---|---|
| 01 · Python client librarySDK | 使用官方 google-cloud-vision 套件與 ADC 認證呼叫 Vision。Python/後端整合者 |
| 02 · images.annotateREST API | 以 v1 HTTP 介面提交影像標註請求。非 Python 後端/API 平台 |
| 03 · Label DetectionImage classification API | 回傳一般影像的英文標籤與分數。型錄編輯/影像初篩工程師 |
| 04 · Text and document OCRText extraction API | TEXT_DETECTION 擷取影像文字;DOCUMENT_TEXT_DETECTION 提供文件導向的文字結構。文件收件/技術內容團隊 |
| 05 · Object LocalizationBounding-region API | 偵測多個物件並提供名稱、分數與正規化邊界多邊形。巡檢介面/倉儲原型團隊 |
| 06 · Asynchronous PDF / TIFF OCRDocument batch API | 從 Cloud Storage 讀取 PDF/TIFF,將 OCR JSON 寫入目的 bucket。型錄遷移/文件管線 |
| 07 · Asynchronous image batchBulk annotation API | 非同步執行影像標註,回應檔存入 Cloud Storage。資料工程/大量影像典藏 |
| 08 · SafeSearchContent-screening API | 回傳成人、惡搞、醫療、暴力與挑逗內容的可能性類別。公開上傳審核/產品負責人 |
| 09 · Web DetectionImage discovery API | 尋找網頁實體、匹配影像及視覺相似影像引用。型錄來源核對/內容研究團隊 |
| 10 · Image PropertiesImage attribute API | 回傳主要顏色等一般影像屬性。型錄視覺 QA/媒體工程師 |
能力摘要依據官方文件;限制與建議測試為本站工程評估。
SDK
| 目標讀者 TA | Python/後端整合者 |
|---|---|
| 官方文件能力 | 使用官方 google-cloud-vision 套件與 ADC 認證呼叫 Vision。 |
| 輸入 → 輸出 | 影像請求 → 型別化標註回應 |
| 執行環境 | Python 後端連接 Google Cloud;安裝 SDK 不代表模型在裝置上執行。 |
| 本站選型評估 | 分別管理 SDK 版本、憑證身分與計費專案。 |
| 本站建議驗證 | 固定解析後套件版本,先驗證授權單張呼叫再批次處理。 |
REST API
| 目標讀者 TA | 非 Python 後端/API 平台 |
|---|---|
| 官方文件能力 | 以 v1 HTTP 介面提交影像標註請求。 |
| 輸入 → 輸出 | 影像與選定功能 → 標註批次回應 |
| 執行環境 | 後端經認證 HTTPS 請求。 |
| 本站選型評估 | HTTP 成功不代表全部影像成功,需逐筆檢查錯誤。 |
| 本站建議驗證 | 混合有效與無效影像測試,保留原影像與結果的對應。 |
Image classification API
| 目標讀者 TA | 型錄編輯/影像初篩工程師 |
|---|---|
| 官方文件能力 | 回傳一般影像的英文標籤與分數。 |
| 輸入 → 輸出 | 影像 → 標籤、信心分數及選填實體識別 |
| 執行環境 | 託管雲端推論。 |
| 本站選型評估 | 一般標籤不能證明具備缺陷偵測或精確工業料號識別能力。 |
| 本站建議驗證 | 與人工標註樣本比較;新增翻譯時保留英文原標籤。 |
Text extraction API
| 目標讀者 TA | 文件收件/技術內容團隊 |
|---|---|
| 官方文件能力 | TEXT_DETECTION 擷取影像文字;DOCUMENT_TEXT_DETECTION 提供文件導向的文字結構。 |
| 輸入 → 輸出 | 影像 → 文字與版面資訊 |
| 執行環境 | 雲端 OCR;文件載明的美國/歐盟處理選項限定特定功能。 |
| 本站選型評估 | OCR 並非 BOM 解析器,也不保證圖面公差正確。 |
| 本站建議驗證 | 以旋轉、低對比與多語樣本量測字元錯誤率及關鍵欄位完全吻合率。 |
Bounding-region API
| 目標讀者 TA | 巡檢介面/倉儲原型團隊 |
|---|---|
| 官方文件能力 | 偵測多個物件並提供名稱、分數與正規化邊界多邊形。 |
| 輸入 → 輸出 | 影像 → 物件區域 |
| 執行環境 | 託管雲端推論,客戶端繪製框線。 |
| 本站選型評估 | 座標需對應實際顯示影像,不可假定支援自訂缺陷類別。 |
| 本站建議驗證 | 檢查縮放及旋轉後框線,量測漏檢與重複偵測。 |
Document batch API
| 目標讀者 TA | 型錄遷移/文件管線 |
|---|---|
| 官方文件能力 | 從 Cloud Storage 讀取 PDF/TIFF,將 OCR JSON 寫入目的 bucket。 |
| 輸入 → 輸出 | 已儲存文件 → 作業狀態及分頁 JSON 輸出 |
| 執行環境 | Cloud Storage 與非同步 Vision 作業。 |
| 本站選型評估 | 需要輸入讀取與輸出寫入權限;重用輸出路徑可能覆寫原結果。 |
| 本站建議驗證 | 使用唯一作業前綴,核對預期頁碼、輸出與逐頁錯誤。 |
Bulk annotation API
| 目標讀者 TA | 資料工程/大量影像典藏 |
|---|---|
| 官方文件能力 | 非同步執行影像標註,回應檔存入 Cloud Storage。 |
| 輸入 → 輸出 | 影像批次 → 長時間作業與 JSON 輸出 |
| 執行環境 | 託管雲端作業與儲存。 |
| 本站選型評估 | 接受提交不等於完成;工作程序重啟前需保留作業識別。 |
| 本站建議驗證 | 接續追蹤既有作業,檢查終態錯誤並逐一核對全部提交影像。 |
Content-screening API
| 目標讀者 TA | 公開上傳審核/產品負責人 |
|---|---|
| 官方文件能力 | 回傳成人、惡搞、醫療、暴力與挑逗內容的可能性類別。 |
| 輸入 → 輸出 | 影像 → 分類可能性 |
| 執行環境 | 託管雲端影像篩查。 |
| 本站選型評估 | 類別並非校準過的數值機率,也不是完整審核政策。 |
| 本站建議驗證 | 測試可接受的工業/醫療影像,模糊案例轉人工審核。 |
Image discovery API
| 目標讀者 TA | 型錄來源核對/內容研究團隊 |
|---|---|
| 官方文件能力 | 尋找網頁實體、匹配影像及視覺相似影像引用。 |
| 輸入 → 輸出 | 影像 → 實體與網頁/影像網址 |
| 執行環境 | 雲端分析與外部網頁引用。 |
| 本站選型評估 | 相似度不能證明著作權、供應商身分或影像重用許可。 |
| 本站建議驗證 | 人工核對候選來源、處理失效網址,不自動重刊匹配影像。 |
Image attribute API
| 目標讀者 TA | 型錄視覺 QA/媒體工程師 |
|---|---|
| 官方文件能力 | 回傳主要顏色等一般影像屬性。 |
| 輸入 → 輸出 | 影像 → 色彩屬性 |
| 執行環境 | 託管雲端分析。 |
| 本站選型評估 | 照明、背景及白平衡會干擾製造色彩檢查。 |
| 本站建議驗證 | 使用受控參考照片,不將主色相符視為材質符合規格。 |
| TA | 後端/平台負責人:設定身分與 quota 專案權限。 |
|---|---|
| 本站驗證建議 | 本地 gcloud login 與 application-default login 不同。核對實際身分及 Service Usage Consumer 權限;部署優先採用附掛或聯邦身分。 |
| TA | 後端/QA:確認請求、逾時與重試參數。 |
|---|---|
| 本站驗證建議 | 範例以 batch_annotate_images 處理單張,設定 retry=None 與 timeout=30。RPC 截止時間不能涵蓋憑證搜尋或整個程序。 |
| TA | 產品負責人/FinOps:依影像或頁數及選用功能估算,儲存成本另計。 |
|---|---|
| 本站驗證建議 | 推估大量用量前記錄帳號實際用量與幣別;多個功能可能增加計費單位。本頁未量測成本或吞吐量。 |
| TA | 平台工程師:區分請求限制、功能配額與非同步容量。 |
|---|---|
| 本站驗證建議 | 核對專案目前配額,限制佇列及併發,測試節流且避免失控重試。 |
| TA | 資料負責人:區分線上處理、非同步保留及自行儲存的輸出。 |
|---|---|
| 本站驗證建議 | 檢閱現行 FAQ 與帳號條件。自行定義輸入/輸出 bucket 與日誌保留期限;供應商 FAQ 不會代為刪除你的儲存。 |
| TA | PM/工程師:導覽功能指南、快速入門與 API 文件。 |
|---|---|
| 本站驗證建議 | 選定有文件的操作,確認需求適用預訓練功能或需要另建自訂模型。 |
04 / INPUT · EXPECTED OUTPUT · ACCEPTANCE
將一張本地影像送往雲端 LABEL_DETECTION;僅取得一般標籤,OCR、框線、視訊與自訂缺陷需另設轉接器與驗證。
起始範例 v1.0.0 · 僅離線樣本測試 · 尚未實際串接供應商
使用獨立 Python 環境,安裝 google-cloud-vision 與 google-auth,固定解析後版本。選定已啟用計費與 Vision API 的 Google Cloud 專案。本地開發執行 gcloud auth application-default login,再執行 gcloud auth application-default set-quota-project YOUR_PROJECT_ID;身分需具備該專案的 serviceusage.services.use。設定 GOOGLE_CLOUD_QUOTA_PROJECT 與 IMAGE_PATH,另存為 google_vision_smoke.py,執行 python google_vision_smoke.py。部署使用授權的附掛/聯邦身分。SDK 使用 ADC;此範例不採 API key 認證。
憑證僅交由本機或伺服器端的認證設定管理。執行此範例會將影像送至供應商雲端,並可能消耗帳號用量。
"""Smart Tools: one cloud label request. Offline-tested; live integration untested."""
import json
import math
import os
import sys
from datetime import datetime, timezone
from importlib.metadata import version
from pathlib import Path
from time import monotonic
class ProviderFailure(Exception):
pass
def normalize(raw):
if not isinstance(raw, dict) or type(raw.get('error_code')) is not int:
raise ValueError('unexpected_schema')
if raw['error_code'] != 0:
raise ProviderFailure()
labels = raw.get('labels')
if not isinstance(labels, list):
raise ValueError('unexpected_schema')
result = []
for item in labels:
if not isinstance(item, dict):
raise ValueError('unexpected_schema')
label, score = item.get('label'), item.get('score')
if not isinstance(label, str) or not label.strip():
raise ValueError('unexpected_schema')
if type(score) not in (int, float) or not math.isfinite(score) or not 0 <= score <= 1:
raise ValueError('unexpected_schema')
result.append({'label': label, 'score': score})
return result
def run():
start = monotonic()
result = {'schema_version': '1.0.0', 'provider': 'Google Cloud Vision',
'status': 'error', 'model_version': None, 'feature': 'LABEL_DETECTION',
'endpoint': 'vision.googleapis.com', 'data': None, 'error': None,
'captured_at': datetime.now(timezone.utc).isoformat()}
try:
project = os.environ['GOOGLE_CLOUD_QUOTA_PROJECT'].strip()
if not project:
raise ValueError('configuration')
with Path(os.environ['IMAGE_PATH']).open('rb') as image:
content = image.read(5 * 1024 * 1024 + 1)
# Local 5 MiB policy for this starter; not a quoted provider maximum.
if not content or len(content) > 5 * 1024 * 1024:
raise ValueError('starter_image_limit')
import google.auth
from google.auth.exceptions import DefaultCredentialsError, RefreshError
from google.api_core import exceptions as api_errors
from google.cloud import vision_v1
result['sdk_version'] = version('google-cloud-vision')
try:
credentials, _ = google.auth.default(
scopes=['https://www.googleapis.com/auth/cloud-platform'],
quota_project_id=project)
request = {'requests': [{'image': {'content': content},
'features': [{'type_': vision_v1.Feature.Type.LABEL_DETECTION,
'max_results': 10}]}]}
# Bytes leave this machine. No automatic RPC retry; cloud model revision is not exposed here.
with vision_v1.ImageAnnotatorClient(
credentials=credentials,
client_options={'api_endpoint': 'vision.googleapis.com'}) as client:
batch = client.batch_annotate_images(request=request, retry=None, timeout=30)
if len(batch.responses) != 1:
raise ValueError('unexpected_schema')
response = batch.responses[0]
raw = {'error_code': response.error.code,
'labels': [{'label': x.description, 'score': x.score}
for x in response.label_annotations]}
result['data'] = normalize(raw)
result['status'] = 'ok'
except (DefaultCredentialsError, RefreshError):
result['error'] = 'authentication'
except (api_errors.Unauthenticated, api_errors.PermissionDenied):
result['error'] = 'authentication_or_permission'
except api_errors.ResourceExhausted:
result['error'] = 'quota_or_capacity'
except api_errors.DeadlineExceeded:
result['error'] = 'deadline_exceeded'
except api_errors.InvalidArgument:
result['error'] = 'invalid_request'
except api_errors.GoogleAPICallError:
result['error'] = 'provider_or_transport_failure'
except (KeyError, OSError):
result['error'] = 'configuration'
except ImportError:
result['error'] = 'dependency_missing'
except ProviderFailure:
result['error'] = 'provider_image_error'
except (ValueError, TypeError, AttributeError):
result['error'] = 'configuration_or_schema'
except Exception:
# Never print provider exception strings, credential paths or image contents.
result['error'] = 'unexpected_failure'
result['elapsed_ms'] = round((monotonic() - start) * 1000)
return result
if __name__ == '__main__':
output = run()
print(json.dumps(output, ensure_ascii=False, allow_nan=False))
sys.exit(0 if output['status'] == 'ok' else 1)
| 輸出契約 | status 為 ok/error;data 為已驗證的 label/score 陣列(可空),失敗時為 null。error 為去敏後分類。分數保持 0–1;回應未提供固定模型修訂版,因此 model_version 為 null。 |
|---|---|
| 認證/設定 | 憑證留在伺服器端,不提交 ADC 檔或服務帳戶金鑰。分別核對 quota 專案、API 啟用及計費。範例本地輸入上限 5 MiB 是本站政策,非供應商限制。 |
| 失敗與時間預算 | 關閉 RPC 自動重試;timeout=30 限制 RPC,不涵蓋憑證搜尋與完整程序,需另加外部程序截止時間。先區分憑證/權限、配額、逾時、無效請求及逐張影像錯誤,再決定是否重試。 |
| 建議驗收門檻 | 準備 20 張授權代表影像及人工標註基準;以約定門檻量測精確率與 p95 延遲,測試空白/毀損輸入、拒絕權限及逾時;要求零筆隱藏失敗。一般物件分數不能認證產線無缺陷。 |
| 成本/資料流 | 影像位元組送至 Google Cloud。依各影像/頁面選用功能計算,另納入儲存與運算成本。記錄樣本識別、SDK 版本、功能、時間及端點,不記錄影像位元組或憑證。目前沒有實測成本、延遲或品質基準。 |
可一併評估的路線: Amazon Rekognition
開發評估
開發構想規格・串接尚未實測
接口能力依據官方文件或程式庫;以下產品方向、輸入、交付與驗收條件則是我們的開發評估。
確認存取後,用少量真實樣本測試一個有文件的操作。此為開發判斷,不是交期估算。
記錄產品瀏覽、官方文件點擊、規格下載與技術 Hub 點擊。這些是事件次數,不等於獨立人數或已完成串接。
本次可行性評估依實作條件判斷;尚未給定流量排名或交期承諾。