实验设置说明和要求
保护您的账号和进度。请务必在无痕浏览器窗口中,使用实验凭证运行此实验。

透過 Cloud ML API 擷取、分析及翻譯圖片中的文字

实验 15 分钟 universal_currency_alt 5 积分 show_chart 中级
info 此实验可能会提供 AI 工具来支持您学习。
此内容尚未针对移动设备进行优化。
为获得最佳体验,请在桌面设备上访问通过电子邮件发送的链接。

GSP075

Google Cloud 自學實驗室標誌

總覽

在本實驗室,您將搭配使用多個機器學習 API,探索機器學習技術的強大功能。首先,您將使用 Cloud Vision API 的文字偵測方法,透過光學字元辨識 (OCR) 技術從圖片中擷取文字。接著,您會學到如何使用 Translation API 翻譯該文字,並透過 Natural Language API 分析。

目標

本實驗室的學習內容如下:

  • 建立 Cloud Vision API 要求,並使用 curl 指令呼叫 API
  • 使用 Vision API 的文字偵測 (OCR) 方法
  • 使用 Translation API 翻譯圖片中的文字
  • 使用 Natural Language API 分析文字

設定和需求

瞭解以下事項後,再點選「Start Lab」按鈕

請詳閱以下操作說明。實驗室活動會計時,且中途無法暫停。點選「Start Lab」後就會開始計時,顯示可使用 Google Cloud 資源的時間。

您將在真正的雲端環境完成實作實驗室活動,而不是模擬或示範環境。為此,我們會提供新的暫時憑證,供您在實驗室活動期間登入及存取 Google Cloud。

為了順利完成這個實驗室,請先確認:

  • 可以使用標準的網際網路瀏覽器 (Chrome 瀏覽器為佳)。
注意事項:請使用無痕模式 (建議選項) 或私密瀏覽視窗執行此實驗室,這可以防止個人帳戶和學員帳戶之間的衝突,避免個人帳戶產生額外費用。
  • 是時候完成實驗室活動了!別忘了,活動一旦開始將無法暫停。
注意事項:務必使用實驗室專用的學員帳戶。如果使用其他 Google Cloud 帳戶,可能會產生額外費用。

如何開始研究室及登入 Google Cloud 控制台

  1. 點選「Start Lab」按鈕。如果實驗室會產生費用,畫面上會出現選擇付款方式的對話方塊。左側的「Lab Details」窗格會顯示下列項目:

    • 「Open Google Cloud console」按鈕
    • 剩餘時間
    • 必須在這個研究室中使用的臨時憑證
    • 完成這個實驗室所需的其他資訊 (如有)
  2. 點選「Open Google Cloud console」;如果使用 Chrome 瀏覽器,也能按一下滑鼠右鍵,選取「在無痕視窗中開啟連結」

    接著,實驗室會啟動相關資源,並開啟另一個分頁,顯示「登入」頁面。

    提示:您可以在不同的視窗中並排開啟分頁。

    注意:如果頁面中顯示「選擇帳戶」對話方塊,請點選「使用其他帳戶」
  3. 如有必要,請將下方的 Username 貼到「登入」對話方塊。

    {{{user_0.username | "Username"}}}

    您也可以在「Lab Details」窗格找到 Username。

  4. 點選「下一步」

  5. 複製下方的 Password,並貼到「歡迎使用」對話方塊。

    {{{user_0.password | "Password"}}}

    您也可以在「Lab Details」窗格找到 Password。

  6. 點選「下一步」

    重要事項:請務必使用實驗室提供的憑證,而非自己的 Google Cloud 帳戶憑證。 注意:如果使用自己的 Google Cloud 帳戶來進行這個實驗室,可能會產生額外費用。
  7. 按過後續的所有頁面:

    • 接受條款及細則。
    • 由於這是臨時帳戶,請勿新增救援選項或雙重驗證機制。
    • 請勿申請免費試用。

Google Cloud 控制台稍後會在這個分頁開啟。

注意:如要使用 Google Cloud 產品和服務,請點選「導覽選單」,或在「搜尋」欄位輸入服務或產品名稱。「導覽選單」圖示和搜尋欄位

啟動 Cloud Shell

Cloud Shell 是搭載多項開發工具的虛擬機器,提供永久的 5 GB 主目錄,而且在 Google Cloud 中運作。Cloud Shell 提供指令列存取權,方便您使用 Google Cloud 資源。

  1. 點按 Google Cloud 控制台頂端的「啟用 Cloud Shell」圖示 「啟動 Cloud Shell」圖示

  2. 系統顯示視窗時,請按照下列步驟操作:

    • 繼續操作 Cloud Shell 視窗。
    • 授權 Cloud Shell 使用您的憑證發出 Google Cloud API 呼叫。

連線建立完成即代表已通過驗證,而且專案已設為您的 Project_ID。輸出內容中有一行文字,宣告本工作階段的 Project_ID

Your Cloud Platform project in this session is set to {{{project_0.project_id | "PROJECT_ID"}}}

gcloud 是 Google Cloud 的指令列工具,已預先安裝於 Cloud Shell,並支援 Tab 鍵自動完成功能。

  1. (選用) 您可以執行下列指令來列出使用中的帳戶:
gcloud auth list
  1. 點按「授權」

輸出內容:

ACTIVE: * ACCOUNT: {{{user_0.username | "ACCOUNT"}}} To set the active account, run: $ gcloud config set account `ACCOUNT`
  1. (選用) 您可以使用下列指令來列出專案 ID:
gcloud config list project

輸出內容:

[core] project = {{{project_0.project_id | "PROJECT_ID"}}} 注意:如需 gcloud 的完整說明,請前往 Google Cloud 參閱 gcloud CLI 總覽指南

工作 1:建立 API 金鑰

您將使用 curl 向 Vision API 傳送要求,因此必須產生 API 金鑰來傳遞要求網址。

  1. 依序前往「導覽選單」>「API 和服務」>「憑證」,建立 API 金鑰。

  2. 按一下「+ 建立憑證」

  3. 在下拉式選單中,選取「API 金鑰」

  4. 複製剛才產生的金鑰,然後點按「關閉」

  5. 請將 API 金鑰儲存為環境變數,這樣就不必在每個要求插入金鑰值。

  6. 在 Cloud Shell 執行下列指令,將 <your_api_key> 替換成剛才複製的金鑰:

export API_KEY=<YOUR_API_KEY>

點選「Check my progress」,確認工作已完成。

建立 API 金鑰

工作 2:將圖片上傳至 Cloud Storage bucket

建立 Cloud Storage bucket

將圖片傳送至 Vision API 進行偵測的方式有兩種:將採用 Base64 編碼的圖片字串傳送至 API,或是傳送儲存在 Cloud Storage 的檔案網址。在本實驗室,您將建立 Cloud Storage bucket 來儲存圖片。

  1. 前往控制台的「導覽選單」 >「Cloud Storage」瀏覽器,然後點選「建立 bucket」

  2. 為 bucket 取一個不重複的名稱:-bucket。

  3. 命名後,點按「選取如何控制物件的存取權」

  4. 取消勾選「強制禁止公開存取這個 bucket」方塊。

  5. 在「存取控管」下方選擇「精細」,然後點按「建立」

將圖片上傳至 bucket

  1. 用右鍵點選下方的法文招牌圖片,然後點按「另存圖片」,將圖片儲存至電腦並命名為「sign.jpg」

Le Bien Public 法文招牌

  1. 前往剛才在 Cloud Storage 瀏覽器中建立的 bucket,依序點按「上傳」>「上傳檔案」,然後選取「sign.jpg」

接著要允許公開查看檔案,同時維持 bucket 的私人存取權設定。

  1. 點按圖片檔案的 3 點圖示:

「物件」分頁,顯示已上傳的招牌圖片檔案並醒目標出「更多選項」按鈕

  1. 選取「編輯存取權」

  2. 點按「新增項目」,然後設定下列項目:

  • 在「實體」選取「公開」
  • 確認「名稱」的值為「allUsers」
  • 在「存取權」選取「讀取者」

新增項目的「實體」、「名稱」和「存取權」欄位,以紅框醒目顯示

  1. 按一下「儲存」

現在您會看到檔案已具備公開存取權。

現在檔案已加入 bucket,您可以建立 Vision API 要求,傳送圖片的網址了。

點選「Check my progress」,確認工作已完成。

將圖片上傳至 bucket

工作 3:建立 Cloud Vision API 要求

  1. 在 Cloud Shell 環境中建立 ocr-request.json 檔案,然後將下列程式碼新增至檔案,並將「my-bucket-name」替換為您建立的 bucket 名稱。您可以使用偏好的指令列編輯器 (例如 nanovimemacs) 建立檔案,或點按鉛筆圖示,在 Cloud Shell 開啟程式碼編輯器:

含鉛筆圖示的「開啟編輯器」按鈕

  1. 將下列內容新增至 ocr-request.json 檔案:
{ "requests": [ { "image": { "source": { "gcsImageUri": "gs://my-bucket-name/sign.jpg" } }, "features": [ { "type": "TEXT_DETECTION", "maxResults": 10 } ] } ] }

接下來要使用 Cloud Vision API 的 TEXT_DETECTION 功能,對圖片執行光學字元辨識 (OCR),以擷取文字。

工作 4:呼叫文字偵測方法

  1. 在 Cloud Shell,使用 curl 呼叫 Cloud Vision API:
curl -s -X POST -H "Content-Type: application/json" --data-binary @ocr-request.json https://vision.googleapis.com/v1/images:annotate?key=${API_KEY}

回應的第一部分應如下所示:

{ "responses": [ { "textAnnotations": [ { "locale": "fr", "description": "LE BIEN PUBLIC\nles dépêches\nPour Obama,\nla moutarde\nest\nde Dijon\n", "boundingPoly": { "vertices": [ { "x": 138, "y": 40 }, { "x": 622, "y": 40 }, { "x": 622, "y": 795 }, { "x": 138, "y": 795 } ] } }, { "description": "LE", "boundingPoly": { "vertices": [ { "x": 138, "y": 99 }, { "x": 274, "y": 82 }, { "x": 283, "y": 157 }, { "x": 147, "y": 173 } ] } }, { "description": "BIEN", "boundingPoly": { "vertices": [ { "x": 291, "y": 79 }, { "x": 413, "y": 64 }, { "x": 422, "y": 139 }, { "x": 300, "y": 154 } ] } ... ] }] }

OCR 方法可從圖片中擷取大量文字。

textAnnotations 傳回的第一筆資料是 API 在圖片中找到的整段文字,其中包括:

  • 語言代碼 (本例中 fr 代表法文)
  • 文字字串
  • 定界框,指出在圖片中找到文字的位置

接著,您會取得一個物件,其中包含在文字中找到的每個字詞,以及該字詞的定界框。

備註:如果圖片包含大量文字,可以使用 Cloud Vision API 的 DOCUMENT_TEXT_DETECTION 功能。這項功能的回應會包含額外資訊,並將文字細分為頁面、區塊、段落和字詞。

除非您會法文,否則可能不知道這句話的意思,因此下一步是翻譯。

  1. 執行下列 curl 指令,將回應儲存至 ocr-response.json 檔案,以便稍後參照:
curl -s -X POST -H "Content-Type: application/json" --data-binary @ocr-request.json https://vision.googleapis.com/v1/images:annotate?key=${API_KEY} -o ocr-response.json

工作 5:將圖片中的文字傳送至 Translation API

Translation API 可將文字翻譯成超過 100 種語言,還能偵測輸入文字的語言。如要將法文文字翻譯成英文,請將文字和目標語言的語言代碼 (en-US) 傳送至 Translation API。

  1. 首先,建立 translation-request.json 檔案,並加入下列內容:
{ "q": "your_text_here", "target": "en" }

q 用來放置要翻譯的字串。

  1. 儲存檔案。

  2. 在 Cloud Shell 執行下列 Bash 指令,從上一個步驟擷取圖片文字,並複製到新的 translation-request.json 檔案 (只需一個指令即可完成):

STR=$(jq .responses[0].textAnnotations[0].description ocr-response.json) && STR="${STR//\"}" && sed -i "s|your_text_here|$STR|g" translation-request.json
  1. 現在您可以準備呼叫 Translation API 了!這個指令會同時將回應複製到 translation-response.json 檔案:
curl -s -X POST -H "Content-Type: application/json" --data-binary @translation-request.json https://translation.googleapis.com/language/translate/v2?key=${API_KEY} -o translation-response.json
  1. 執行下列指令,檢查包含 Translation API 回應的檔案:
cat translation-response.json

這下您就能看懂招牌上的更多內容了!

{ "data": { "translations": [ { "translatedText": "TO THE PUBLIC GOOD the dispatches For Obama, the mustard is from Dijon", "detectedSourceLanguage": "fr" } ] } }

在回應中:

  • translatedText 包含翻譯結果
  • detectedSourceLanguagefr,即法文的 ISO 語言代碼。

Translation API 支援超過 100 種語言,詳情請見語言支援參考頁面

除了翻譯圖片中的文字,您可能還想進一步分析內容,這時 Natural Language API 就能派上用場。接著就來進行下一個步驟!

工作 6:使用 Natural Language API 分析圖片文字

Natural Language API 能擷取實體、分析情緒和語法,並將文字分類,幫助您理解文本。使用 analyzeEntities 方法,即可查看 Natural Language API 從圖片文字中找到哪些實體。

  1. 如要設定 API 要求,請建立 nl-request.json 檔案,並加入下列內容:
{ "document":{ "type":"PLAIN_TEXT", "content":"your_text_here" }, "encodingType":"UTF8" }

這項要求會將文字資訊提供給 Natural Language API:

  • type:支援的類型值為 PLAIN_TEXTHTML

  • content:將要分析的文字傳遞至 Natural Language API。Natural Language API 也能處理儲存在 Cloud Storage 的文字檔案。如要傳送 Cloud Storage 中的檔案,請將 content 替換為 gcsContentUri,並將值設為文字檔案在 Cloud Storage 中的 URI。

  • encodingType:指示 API 要使用哪種文字編碼來處理文字。API 會依照該方法計算特定實體在文字中出現的位置。

  1. 在 Cloud Shell 執行下列 Bash 指令,將翻譯後的文字複製到 Natural Language API 要求的內容區塊:
STR=$(jq .data.translations[0].translatedText translation-response.json) && STR="${STR//\"}" && sed -i "s|your_text_here|$STR|g" nl-request.json

nl-request.json 檔案現在已包含原始圖片文字的英文譯文,接著就來分析吧!

  1. 使用下列 curl 要求,呼叫 Natural Language API 的 analyzeEntities 端點:
curl "https://language.googleapis.com/v1/documents:analyzeEntities?key=${API_KEY}" \ -s -X POST -H "Content-Type: application/json" --data-binary @nl-request.json

捲動查看回應,即可看到 Natural Language API 找到的實體:

{ "entities": [ { "name": "dispatches", "type": "OTHER", "metadata": {}, "salience": 0.3560996, "mentions": [ { "text": { "content": "dispatches", "beginOffset": 23 }, "type": "COMMON" } ] }, { "name": "mustard", "type": "OTHER", "metadata": {}, "salience": 0.2878307, "mentions": [ { "text": { "content": "mustard", "beginOffset": 38 }, "type": "COMMON" } ] }, { "name": "Obama", "type": "PERSON", "metadata": { "mid": "/m/02mjmr", "wikipedia_url": "https://en.wikipedia.org/wiki/Barack_Obama" }, "salience": 0.16260329, "mentions": [ { "text": { "content": "Obama", "beginOffset": 31 }, "type": "PROPER" } ] }, { "name": "Dijon", "type": "LOCATION", "metadata": { "mid": "/m/0pbhz", "wikipedia_url": "https://en.wikipedia.org/wiki/Dijon" }, "salience": 0.08129317, "mentions": [ { "text": { "content": "Dijon", "beginOffset": 54 }, "type": "PROPER" } ] } ], "language": "en" }

對於有維基百科頁面的實體,API 會提供中繼資料,包括該頁面的網址和實體的 midmid 是 Google 知識圖譜中對應至該實體的 ID。如要取得更多資訊,可以呼叫 Knowledge Graph API 並傳遞這個 ID。Natural Language API 會針對所有實體,提供實體在文字中出現的位置 (mentions)、實體類型 (type),以及顯著性 (salience) (介於 0 到 1 之間,表示實體在整段文字中的重要性)。除了英文,Natural Language API 也支援語言支援參考頁面列出的語言。

從這張圖片找出重要實體相對容易,但如果圖片庫含有數千張圖片,這項工作的難度就會大增。這時就能利用 OCR、翻譯和自然語言處理技術,從大量圖片資料集中擷取意義。

點選「Check my progress」,確認工作已完成。

使用 Natural Language API 分析圖片文字

恭喜!

您已學會如何搭配使用 3 種不同的機器學習 API 了:Vision API 的 OCR 方法可從圖片擷取文字,Translation API 則能將該文字翻譯成英文,而 Natural Language API 可找出該文字中的實體。只要同時使用這幾個 API,就能從大型圖片資料集中擷取有意義的資訊。

後續步驟/瞭解詳情

Google Cloud 教育訓練與認證

協助您瞭解如何充分運用 Google Cloud 的技術。我們的課程會介紹專業技能和最佳做法,讓您可以快速掌握要領並持續進修。我們提供從基本到進階等級的訓練課程,並有隨選、線上和虛擬課程等選項,方便您抽空參加。認證可協助您驗證及證明自己在 Google Cloud 技術方面的技能和專業知識。

使用手冊上次更新日期:2024 年 10 月 22 日

實驗室上次測試日期:2024 年 10 月 22 日

Copyright 2026 Google LLC 保留所有權利。Google 和 Google 標誌是 Google LLC 的商標,其他公司和產品名稱則有可能是其關聯公司的商標。

准备工作

  1. 实验会创建一个 Google Cloud 项目和一些资源,供您使用限定的一段时间
  2. 实验有时间限制,并且没有暂停功能。如果您中途结束实验,则必须重新开始。
  3. 在屏幕左上角,点击开始实验即可开始

使用无痕浏览模式

  1. 复制系统为实验提供的用户名密码
  2. 在无痕浏览模式下,点击打开控制台

登录控制台

  1. 使用您的实验凭证登录。使用其他凭证可能会导致错误或产生费用。
  2. 接受条款,并跳过恢复资源页面
  3. 除非您已完成此实验或想要重新开始,否则请勿点击结束实验,因为点击后系统会清除您的工作并移除该项目

此内容目前不可用

一旦可用,我们会通过电子邮件告知您

太好了!

一旦可用,我们会通过电子邮件告知您

一次一个实验

确认结束所有现有实验并开始此实验

使用无痕浏览模式运行实验

Using an Incognito or private browser window is the best way to run this lab. This prevents any conflicts between your personal account and the Student account, which may cause extra charges incurred to your personal account.