電腦視覺 · API

Google Cloud Vision API

Google Cloud

利用雲端視覺服務擷取影像標籤與文字。

官方文件下載開發規格

GOOGLE CLOUD VISION / DEVELOPER FIELD GUIDE

選對接口,定義可驗證的結果。

公司/專案背景、十個技術入口,以及每份引用的實作分析。

2026-10-08 · 串接尚未實測

公司/專案背景全貌

依官方公司或專案自述撰寫的原創概要;完整原文請見來源。

Google Cloud Vision · About
使命Google 將協助人們取得與運用資訊列為使命。
技術體系公司資訊串聯 Google Cloud、Research、DeepMind、Labs 與開發者資源。
公司脈絡官方頁連結公司沿革、據點、徵才與 Alphabet 投資者資訊。
公開承諾頁面呈現無障礙、永續、社會影響、教育與公共政策倡議。
採購判斷公司概覽提供背景;選型仍需評估 Vision API 專屬條件、架構與驗收結果。
官方 About 完整原文 ↗
About 引用 — TA 分析
適用角色進行 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 APITEXT_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/媒體工程師

逐份文件分析

能力摘要依據官方文件;限制與建議測試為本站工程評估。

01

SDK

Python client library

Python client library · TA
目標讀者 TAPython/後端整合者
官方文件能力使用官方 google-cloud-vision 套件與 ADC 認證呼叫 Vision。
輸入 → 輸出影像請求 → 型別化標註回應
執行環境Python 後端連接 Google Cloud;安裝 SDK 不代表模型在裝置上執行。
本站選型評估分別管理 SDK 版本、憑證身分與計費專案。
本站建議驗證固定解析後套件版本,先驗證授權單張呼叫再批次處理。
官方文件 · Python client library ↗
02

REST API

images.annotate

images.annotate · TA
目標讀者 TA非 Python 後端/API 平台
官方文件能力以 v1 HTTP 介面提交影像標註請求。
輸入 → 輸出影像與選定功能 → 標註批次回應
執行環境後端經認證 HTTPS 請求。
本站選型評估HTTP 成功不代表全部影像成功,需逐筆檢查錯誤。
本站建議驗證混合有效與無效影像測試,保留原影像與結果的對應。
官方文件 · images.annotate ↗
03

Image classification API

Label Detection

Label Detection · TA
目標讀者 TA型錄編輯/影像初篩工程師
官方文件能力回傳一般影像的英文標籤與分數。
輸入 → 輸出影像 → 標籤、信心分數及選填實體識別
執行環境託管雲端推論。
本站選型評估一般標籤不能證明具備缺陷偵測或精確工業料號識別能力。
本站建議驗證與人工標註樣本比較;新增翻譯時保留英文原標籤。
官方文件 · Label Detection ↗
04

Text extraction API

Text and document OCR

Text and document OCR · TA
目標讀者 TA文件收件/技術內容團隊
官方文件能力TEXT_DETECTION 擷取影像文字;DOCUMENT_TEXT_DETECTION 提供文件導向的文字結構。
輸入 → 輸出影像 → 文字與版面資訊
執行環境雲端 OCR;文件載明的美國/歐盟處理選項限定特定功能。
本站選型評估OCR 並非 BOM 解析器,也不保證圖面公差正確。
本站建議驗證以旋轉、低對比與多語樣本量測字元錯誤率及關鍵欄位完全吻合率。
官方文件 · Text and document OCR ↗
05

Bounding-region API

Object Localization

Object Localization · TA
目標讀者 TA巡檢介面/倉儲原型團隊
官方文件能力偵測多個物件並提供名稱、分數與正規化邊界多邊形。
輸入 → 輸出影像 → 物件區域
執行環境託管雲端推論,客戶端繪製框線。
本站選型評估座標需對應實際顯示影像,不可假定支援自訂缺陷類別。
本站建議驗證檢查縮放及旋轉後框線,量測漏檢與重複偵測。
官方文件 · Object Localization ↗
06

Document batch API

Asynchronous PDF / TIFF OCR

Asynchronous PDF / TIFF OCR · TA
目標讀者 TA型錄遷移/文件管線
官方文件能力從 Cloud Storage 讀取 PDF/TIFF,將 OCR JSON 寫入目的 bucket。
輸入 → 輸出已儲存文件 → 作業狀態及分頁 JSON 輸出
執行環境Cloud Storage 與非同步 Vision 作業。
本站選型評估需要輸入讀取與輸出寫入權限;重用輸出路徑可能覆寫原結果。
本站建議驗證使用唯一作業前綴,核對預期頁碼、輸出與逐頁錯誤。
官方文件 · Asynchronous PDF / TIFF OCR ↗
07

Bulk annotation API

Asynchronous image batch

Asynchronous image batch · TA
目標讀者 TA資料工程/大量影像典藏
官方文件能力非同步執行影像標註,回應檔存入 Cloud Storage。
輸入 → 輸出影像批次 → 長時間作業與 JSON 輸出
執行環境託管雲端作業與儲存。
本站選型評估接受提交不等於完成;工作程序重啟前需保留作業識別。
本站建議驗證接續追蹤既有作業,檢查終態錯誤並逐一核對全部提交影像。
官方文件 · Asynchronous image batch ↗
09

Image discovery API

Web Detection

Web Detection · TA
目標讀者 TA型錄來源核對/內容研究團隊
官方文件能力尋找網頁實體、匹配影像及視覺相似影像引用。
輸入 → 輸出影像 → 實體與網頁/影像網址
執行環境雲端分析與外部網頁引用。
本站選型評估相似度不能證明著作權、供應商身分或影像重用許可。
本站建議驗證人工核對候選來源、處理失效網址,不自動重刊匹配影像。
官方文件 · Web Detection ↗
10

Image attribute API

Image Properties

Image Properties · TA
目標讀者 TA型錄視覺 QA/媒體工程師
官方文件能力回傳主要顏色等一般影像屬性。
輸入 → 輸出影像 → 色彩屬性
執行環境託管雲端分析。
本站選型評估照明、背景及白平衡會干擾製造色彩檢查。
本站建議驗證使用受控參考照片,不將主色相符視為材質符合規格。
官方文件 · Image Properties ↗

ADC and authentication

ADC and authentication · 補充引用分析
TA後端/平台負責人:設定身分與 quota 專案權限。
本站驗證建議本地 gcloud login 與 application-default login 不同。核對實際身分及 Service Usage Consumer 權限;部署優先採用附掛或聯邦身分。
官方文件 · ADC and authentication ↗

Python ImageAnnotatorClient reference

Python ImageAnnotatorClient reference · 補充引用分析
TA後端/QA:確認請求、逾時與重試參數。
本站驗證建議範例以 batch_annotate_images 處理單張,設定 retry=None 與 timeout=30。RPC 截止時間不能涵蓋憑證搜尋或整個程序。
官方文件 · Python ImageAnnotatorClient reference ↗

Vision pricing

Vision pricing · 補充引用分析
TA產品負責人/FinOps:依影像或頁數及選用功能估算,儲存成本另計。
本站驗證建議推估大量用量前記錄帳號實際用量與幣別;多個功能可能增加計費單位。本頁未量測成本或吞吐量。
官方文件 · Vision pricing ↗

Quotas and limits

Quotas and limits · 補充引用分析
TA平台工程師:區分請求限制、功能配額與非同步容量。
本站驗證建議核對專案目前配額,限制佇列及併發,測試節流且避免失控重試。
官方文件 · Quotas and limits ↗

Data Usage FAQ

Data Usage FAQ · 補充引用分析
TA資料負責人:區分線上處理、非同步保留及自行儲存的輸出。
本站驗證建議檢閱現行 FAQ 與帳號條件。自行定義輸入/輸出 bucket 與日誌保留期限;供應商 FAQ 不會代為刪除你的儲存。
官方文件 · Data Usage FAQ ↗

Vision documentation overview

Vision documentation overview · 補充引用分析
TAPM/工程師:導覽功能指南、快速入門與 API 文件。
本站驗證建議選定有文件的操作,確認需求適用預訓練功能或需要另建自訂模型。
官方文件 · Vision documentation overview ↗

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 認證。

憑證僅交由本機或伺服器端的認證設定管理。執行此範例會將影像送至供應商雲端,並可能消耗帳號用量。

展開 Python 起始範例 · google_vision_smoke.py
"""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

開發評估

設備標籤辨讀工具

開發構想規格・串接尚未實測

接口能力依據官方文件或程式庫;以下產品方向、輸入、交付與驗收條件則是我們的開發評估。

可先做小原型

確認存取後,用少量真實樣本測試一個有文件的操作。此為開發判斷,不是交期估算。

原型輸入規劃
少量經授權影像、任務定義與參考標註。
原型交付規劃
可審核的影像引用、標籤或標註狀態;保留原始檔案。
驗收條件
用已標註樣本比對支援的操作;錯誤與缺漏結果分開呈現。
依賴條件
資料集存取、影像使用權與支援的模型或標註專案。

開發順序

  1. 確認 Google Cloud Vision API 的存取、授權與支援版本。
  2. 準備上述樣本,針對「設備標籤辨讀工具」先實作一個有官方文件的操作。
  3. 整理輸出時保留來源、時間與錯誤狀態,並保留供應商回應供審核。
  4. 通過驗收條件後,再估算擴展投入與客戶交付。

如何驗證需求

記錄產品瀏覽、官方文件點擊、規格下載與技術 Hub 點擊。這些是事件次數,不等於獨立人數或已完成串接。

本次可行性評估依實作條件判斷;尚未給定流量排名或交期承諾。

相關產品