使用光學字元辨識 (OCR) 偵測手寫內容
Vision API 可偵測及擷取圖片中的文字:
DOCUMENT_TEXT_DETECTION會從圖片 (或檔案) 擷取文字,並針對密集文字和文件進行最佳化。JSON 包含頁面、區塊、段落、字詞和換行資訊。
DOCUMENT_TEXT_DETECTION 的其中一項用途,是偵測圖片中的手寫文字。

歡迎試用
如果您未曾使用過 Google Cloud,歡迎建立帳戶,親自體驗實際使用 Cloud Vision API 的成效。新客戶還能獲得價值 $300 美元的免費抵免額,用於執行、測試及部署工作負載。
免費試用 Cloud Vision API文件文字偵測要求
設定 Google Cloud 專案和驗證
偵測本機圖片中的文件文字
您可以使用 Vision API 對本機圖片檔執行特徵偵測。
如果是 REST 要求,請在要求主體中,以 base64 編碼字串的形式傳送圖片檔案內容。
如果是 gcloud 和用戶端程式庫要求,請在要求中指定本機圖片的路徑。
REST
使用任何要求資料之前,請先修改下列項目的值:
- BASE64_ENCODED_IMAGE:二進位圖片資料的 Base64 表示法 (ASCII 字串)。這個字串應類似下列字串:
/9j/4QAYRXhpZgAA...9tAVx/zDQDlGxn//2Q==
- PROJECT_ID: Google Cloud 專案 ID。
HTTP 方法和網址:
POST https://vision.googleapis.com/v1/images:annotate
JSON 要求內文:
{
"requests": [
{
"image": {
"content": "BASE64_ENCODED_IMAGE"
},
"features": [
{
"type": "DOCUMENT_TEXT_DETECTION"
}
]
}
]
}
如要傳送要求,請選擇以下其中一個選項:
curl
將要求主體儲存在名為 request.json 的檔案中,然後執行下列指令:
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/images:annotate"
PowerShell
將要求主體儲存在名為 request.json 的檔案中,然後執行下列指令:
$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/images:annotate" | Select-Object -Expand Content
如果要求成功,伺服器會傳回 200 OK HTTP 狀態碼與 JSON 格式的回應。
Go
在試用這個範例之前,請先按照「使用用戶端程式庫的 Vision 快速入門導覽課程」中的 Go 設定說明操作。詳情請參閱 Vision Go API 參考文件。
如要向 Vision 進行驗證,請設定應用程式預設憑證。詳情請參閱「為本機開發環境設定驗證機制」。
Java
在試用這個範例之前,請先按照使用用戶端程式庫的 Vision API 快速入門導覽課程中的 Java 設定操作說明進行操作。詳情請參閱 Vision API Java 參考文件。
Node.js
在試用這個範例之前,請先按照「使用用戶端程式庫的 Vision 快速入門導覽課程」中的 Node.js 設定說明操作。詳情請參閱 Vision Node.js API 參考文件。
如要向 Vision 進行驗證,請設定應用程式預設憑證。詳情請參閱「為本機開發環境設定驗證機制」。
Python
在試用這個範例之前,請先按照「使用用戶端程式庫的 Vision 快速入門導覽課程」中的 Python 設定說明操作。詳情請參閱 Vision Python API 參考文件。
如要向 Vision 進行驗證,請設定應用程式預設憑證。詳情請參閱「為本機開發環境設定驗證機制」。
其他語言
C#:請按照用戶端程式庫頁面上的 C# 設定操作說明完成相關步驟,然後參閱「.NET 適用的 Vision 參考文件」。
PHP:請按照用戶端程式庫頁面上的 PHP 設定操作說明完成相關步驟,然後參閱「PHP 適用的 Vision 參考文件」。
Ruby:請按照用戶端程式庫頁面上的 Ruby 設定操作說明完成相關步驟,然後參閱「Ruby 適用的 Vision 參考文件」。
偵測遠端圖片中的文件文字
您可以透過 Vision API,對位於 Cloud Storage 或網路上的遠端圖片檔案執行特徵偵測。如要傳送遠端檔案要求,請在要求內文中指定檔案的網址或 Cloud Storage URI。
REST
使用任何要求資料之前,請先修改下列項目的值:
- CLOUD_STORAGE_IMAGE_URI:Cloud Storage bucket 中有效圖片檔案的路徑。您至少必須具備檔案的讀取權限。範例:
gs://cloud-samples-data/vision/handwriting_image.png
- PROJECT_ID: Google Cloud 專案 ID。
HTTP 方法和網址:
POST https://vision.googleapis.com/v1/images:annotate
JSON 要求內文:
{
"requests": [
{
"image": {
"source": {
"imageUri": "CLOUD_STORAGE_IMAGE_URI"
}
},
"features": [
{
"type": "DOCUMENT_TEXT_DETECTION"
}
]
}
]
}
如要傳送要求,請選擇以下其中一個選項:
curl
將要求主體儲存在名為 request.json 的檔案中,然後執行下列指令:
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/images:annotate"
PowerShell
將要求主體儲存在名為 request.json 的檔案中,然後執行下列指令:
$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/images:annotate" | Select-Object -Expand Content
如果要求成功,伺服器會傳回 200 OK HTTP 狀態碼與 JSON 格式的回應。
Go
在試用這個範例之前,請先按照「使用用戶端程式庫的 Vision 快速入門導覽課程」中的 Go 設定說明操作。詳情請參閱 Vision Go API 參考文件。
如要向 Vision 進行驗證,請設定應用程式預設憑證。詳情請參閱「為本機開發環境設定驗證機制」。
Java
在試用這個範例之前,請先按照使用用戶端程式庫的 Vision API 快速入門導覽課程中的 Java 設定操作說明進行操作。詳情請參閱 Vision API Java 參考文件。
Node.js
在試用這個範例之前,請先按照「使用用戶端程式庫的 Vision 快速入門導覽課程」中的 Node.js 設定說明操作。詳情請參閱 Vision Node.js API 參考文件。
如要向 Vision 進行驗證,請設定應用程式預設憑證。詳情請參閱「為本機開發環境設定驗證機制」。
Python
在試用這個範例之前,請先按照「使用用戶端程式庫的 Vision 快速入門導覽課程」中的 Python 設定說明操作。詳情請參閱 Vision Python API 參考文件。
如要向 Vision 進行驗證,請設定應用程式預設憑證。詳情請參閱「為本機開發環境設定驗證機制」。
gcloud
如要執行手寫偵測,請使用 gcloud ml vision detect-document 指令,如下列範例所示:
gcloud ml vision detect-document gs://cloud-samples-data/vision/handwriting_image.png
其他語言
C#:請按照用戶端程式庫頁面上的 C# 設定操作說明完成相關步驟,然後參閱「.NET 適用的 Vision 參考文件」。
PHP:請按照用戶端程式庫頁面上的 PHP 設定操作說明完成相關步驟,然後參閱「PHP 適用的 Vision 參考文件」。
Ruby:請按照用戶端程式庫頁面上的 Ruby 設定操作說明完成相關步驟,然後參閱「Ruby 適用的 Vision 參考文件」。
指定語言 (選填)
這兩種 OCR 要求的其中一項或多項 languageHints 可指定圖片中文字的語言。不過,空白值通常會產生最佳結果,因為省略值可啟用自動偵測語言。如果語言使用拉丁字母,則不需要設定 languageHints。在極少數情況下,如果知道圖片中文字的語言,設定提示有助於獲得更準確的結果 (但如果提示錯誤,可能會造成重大阻礙)。如果指定的一或多種語言不是支援的語言,文字偵測功能會傳回錯誤。
如要提供語言提示,請修改要求主體 (request.json 檔案),在 imageContext.languageHints 欄位中提供其中一種支援語言的字串,如下列範例所示:
{ "requests": [ { "image": { "source": { "imageUri": "IMAGE_URL" } }, "features": [ { "type": "DOCUMENT_TEXT_DETECTION" } ], "imageContext": { "languageHints": ["en-t-i0-handwrit"] } } ] }
多區域支援
您現在可以指定洲際資料儲存空間和 OCR 處理作業。目前支援的地區如下:
us:僅限美國eu:歐盟
位置
您可以控管專案資源的儲存和處理位置。具體來說,您可以設定 Cloud Vision,只在歐盟境內儲存及處理資料。
根據預設,Cloud Vision 會在全球位置儲存及處理資源,因此無法保證資源會保留在特定位置或區域。如果選擇「歐盟」,Google 只會在歐盟境內儲存及處理資料。您和使用者可以從任何地點存取資料。
使用 API 設定位置資訊
Vision API 支援全域 API 端點 (vision.googleapis.com),以及兩個區域端點:歐盟端點 (eu-vision.googleapis.com) 和美國端點 (us-vision.googleapis.com)。使用這些端點可進行區域專屬的處理作業。舉例來說,如要只在歐盟儲存及處理資料,請在 REST API 呼叫中使用 URI eu-vision.googleapis.com,取代 vision.googleapis.com:
- 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
如要只在美國儲存及處理資料,請使用上述方法搭配美國端點 (us-vision.googleapis.com)。
使用用戶端程式庫設定位置
Vision API 用戶端程式庫預設會存取全域 API 端點 (vision.googleapis.com)。如要只在歐盟境內儲存及處理資料,您必須明確設定端點 (eu-vision.googleapis.com)。下列程式碼範例說明如何設定這項設定。
REST
使用任何要求資料之前,請先修改下列項目的值:
- REGION_ID:有效的區域位置 ID 之一:
us:僅限美國eu:歐盟
- CLOUD_STORAGE_IMAGE_URI:Cloud Storage bucket 中有效圖片檔案的路徑。您至少必須具備檔案的讀取權限。範例:
gs://cloud-samples-data/vision/handwriting_image.png
- PROJECT_ID: Google Cloud 專案 ID。
HTTP 方法和網址:
POST https://REGION_ID-vision.googleapis.com/v1/projects/PROJECT_ID/locations/REGION_ID/images:annotate
JSON 要求內文:
{
"requests": [
{
"image": {
"source": {
"imageUri": "CLOUD_STORAGE_IMAGE_URI"
}
},
"features": [
{
"type": "DOCUMENT_TEXT_DETECTION"
}
]
}
]
}
如要傳送要求,請選擇以下其中一個選項:
curl
將要求主體儲存在名為 request.json 的檔案中,然後執行下列指令:
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/images:annotate"
PowerShell
將要求主體儲存在名為 request.json 的檔案中,然後執行下列指令:
$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/images:annotate" | Select-Object -Expand Content
如果要求成功,伺服器會傳回 200 OK HTTP 狀態碼與 JSON 格式的回應。
Go
在試用這個範例之前,請先按照「使用用戶端程式庫的 Vision 快速入門導覽課程」中的 Go 設定說明操作。詳情請參閱 Vision Go API 參考文件。
如要向 Vision 進行驗證,請設定應用程式預設憑證。詳情請參閱「為本機開發環境設定驗證機制」。
Java
在試用這個範例之前,請先按照使用用戶端程式庫的 Vision API 快速入門導覽課程中的 Java 設定操作說明進行操作。詳情請參閱 Vision API Java 參考文件。
Node.js
在試用這個範例之前,請先按照「使用用戶端程式庫的 Vision 快速入門導覽課程」中的 Node.js 設定說明操作。詳情請參閱 Vision Node.js API 參考文件。
如要向 Vision 進行驗證,請設定應用程式預設憑證。詳情請參閱「為本機開發環境設定驗證機制」。
Python
在試用這個範例之前,請先按照「使用用戶端程式庫的 Vision 快速入門導覽課程」中的 Python 設定說明操作。詳情請參閱 Vision Python API 參考文件。
如要向 Vision 進行驗證,請設定應用程式預設憑證。詳情請參閱「為本機開發環境設定驗證機制」。
使用 Google APIs Explorer 試用這項功能
在 Google APIs Explorer 中試用文字偵測和文件文字偵測功能。您可以點選「執行」(gs://cloud-samples-data/vision/handwriting_image.png) 使用已指定的圖片,也可以自行指定圖片。

要求主體:
{
"requests": [
{
"features": [
{
"type": "DOCUMENT_TEXT_DETECTION"
}
],
"image": {
"source": {
"imageUri": "gs://cloud-samples-data/vision/handwriting_image.png"
}
}
}
]
}開啟 Google APIs Explorer 並傳送要求
如要開啟 Google APIs Explorer,請按一下「試用!」。
選用。修改現有要求主體。
如要傳送要求,請按一下「執行」。