1. 總覽
開發人員可透過 Google Cloud Vision API,輕鬆在應用程式中整合視覺偵測功能,包括為圖片加上標籤、自動偵測臉部和地標、光學字元辨識 (OCR),並可偵測煽情露骨內容。
在本程式碼研究室中,您將著重於使用 C# 搭配 Vision API。您將瞭解如何執行文字偵測、地標偵測和臉部偵測!
課程內容
- 如何使用 Cloud Shell
- 如何啟用 Google Cloud Vision API
- 如何驗證 API 要求
- 如何安裝 C# 專用的 Vision API 用戶端程式庫
- 如何執行標籤偵測
- 如何執行文字偵測
- 如何執行地標偵測
- 如何執行臉部偵測
軟硬體需求
問卷調查
您會如何使用本教學課程?
您對 C# 的體驗評價如何?
您對使用 Google Cloud Platform 服務的體驗有何評價?
2. 設定和需求
自修實驗室環境設定
- 登入 Google Cloud 控制台,然後建立新專案或重複使用現有專案。如果沒有 Gmail 或 Google Workspace 帳戶,請先建立帳戶。



- 專案名稱是這個專案參與者的顯示名稱。這是 Google API 未使用的字元字串。你隨時可以更新。
- 專案 ID 在所有 Google Cloud 專案中都是不重複的,而且設定後即無法變更。Cloud 控制台會自動產生專屬字串,通常您不需要在意該字串為何。在大多數程式碼研究室中,您需要參照專案 ID (通常標示為
PROJECT_ID)。如果您不喜歡產生的 ID,可以產生另一個隨機 ID。你也可以嘗試使用自己的名稱,看看是否可用。完成這個步驟後就無法變更,且專案期間會維持不變。 - 請注意,有些 API 會使用第三個值,也就是「專案編號」。如要進一步瞭解這三種值,請參閱說明文件。
- 接著,您需要在 Cloud 控制台中啟用帳單,才能使用 Cloud 資源/API。完成這個程式碼研究室的費用不高,甚至可能完全免費。如要關閉資源,避免在本教學課程結束後繼續產生費用,請刪除您建立的資源或專案。Google Cloud 新使用者可參加價值$300 美元的免費試用計畫。
啟動 Cloud Shell
雖然可以透過筆電遠端操作 Google Cloud,但在本程式碼研究室中,您將使用 Google Cloud Shell,這是可在雲端執行的指令列環境。
啟用 Cloud Shell
- 在 Cloud 控制台,點選「啟用 Cloud Shell」 圖示
。

如果您是首次啟動 Cloud Shell,系統會顯示中繼畫面,說明這個指令列環境。如果出現中繼畫面,請按一下「繼續」。

佈建並連至 Cloud Shell 預計只需要幾分鐘。

這部虛擬機器已載入所有必要的開發工具,並提供永久的 5 GB 主目錄,而且可在 Google Cloud 運作,大幅提升網路效能並強化驗證功能。本程式碼研究室幾乎所有工作都可在瀏覽器上完成。
連至 Cloud Shell 後,您應該會看到驗證已完成,專案也已設為獲派的專案 ID。
- 在 Cloud Shell 中執行下列指令,確認您已通過驗證:
gcloud auth list
指令輸出
Credentialed Accounts
ACTIVE ACCOUNT
* <my_account>@<my_domain.com>
To set the active account, run:
$ gcloud config set account `ACCOUNT`
- 在 Cloud Shell 中執行下列指令,確認 gcloud 指令知道您的專案:
gcloud config list project
指令輸出
[core] project = <PROJECT_ID>
如未設定,請輸入下列指令手動設定專案:
gcloud config set project <PROJECT_ID>
指令輸出
Updated property [core/project].
3. 啟用 Vision API
您必須先啟用 API,才能開始使用 Vision API。您可以使用 Cloud Shell 執行下列指令,啟用 API:
gcloud services enable vision.googleapis.com
4. 安裝 C# 適用的 Google Cloud Vision API 用戶端程式庫
首先,請建立簡單的 C# 控制台應用程式,用來執行 Vision API 範例:
dotnet new console -n VisionApiDemo
您應該會看到建立的應用程式和已解決的依附元件:
The template "Console Application" was created successfully.
Processing post-creation actions...
...
Restore succeeded.
接著前往 VisionApiDemo 資料夾:
cd VisionApiDemo/
並將 Google.Cloud.Vision.V1 NuGet 套件新增至專案:
dotnet add package Google.Cloud.Vision.V1
info : Adding PackageReference for package 'Google.Cloud.Vision.V1' into project '/home/atameldev/VisionApiDemo/VisionApiDemo.csproj'.
log : Restoring packages for /home/atameldev/VisionApiDemo/VisionApiDemo.csproj...
...
info : PackageReference for package 'Google.Cloud.Vision.V1' version '1.2.0' added to file '/home/atameldev/VisionApiDemo/VisionApiDemo.csproj'.
您現在可以使用 Vision API 了!
5. 執行標籤偵測
Vision API 的基本功能之一是識別圖片中的物件或實體,也就是標籤註解。標籤偵測功能可辨識一般物體、地點、活動、動物物種和產品等內容,Vision API 會接收輸入圖片,並傳回最有可能適用於該圖片的標籤。並傳回最相符的標籤,以及與圖片相符的信心分數。
在本例中,您將對上海街景圖片執行標籤偵測。從 Cloud Shell 右上方開啟程式碼編輯器:

前往 VisionApiDemo 資料夾中的 Program.cs 檔案,並將程式碼替換成以下程式碼:
using Google.Cloud.Vision.V1;
using System;
namespace VisionApiDemo
{
class Program
{
static void Main(string[] args)
{
var client = ImageAnnotatorClient.Create();
var image = Image.FromUri("gs://cloud-samples-data/vision/using_curl/shanghai.jpeg");
var labels = client.DetectLabels(image);
Console.WriteLine("Labels (and confidence score):");
Console.WriteLine(new String('=', 30));
foreach (var label in labels)
{
Console.WriteLine($"{label.Description} ({(int)(label.Score * 100)}%)");
}
}
}
}
請花一到兩分鐘研究程式碼,瞭解如何使用 Vision API C# 程式庫執行標籤偵測。
回到 Cloud Shell,執行應用程式:
dotnet run
您應該會看到以下的輸出內容:
Labels (and confidence score):
==============================
Wheel (97%)
Tire (97%)
Photograph (94%)
Bicycle (94%)
Motor vehicle (89%)
Infrastructure (89%)
Vehicle (86%)
Mode of transport (84%)
Bicycle wheel (83%)
Asphalt (81%)
摘要
在這個步驟中,您已對中國街景圖片執行標籤偵測,並顯示與該圖片最相關的標籤。進一步瞭解標籤偵測。
6. 執行文字偵測
Vision API 的文字偵測功能會執行光學字元辨識,這項功能可偵測及擷取圖片中的文字,並支援多種語言。此外,這項功能還能自動識別語言。
在本範例中,您將對系統軟體更新畫面的圖片執行文字偵測。
前往 VisionApiDemo 資料夾中的 Program.cs 檔案,並將程式碼替換成以下程式碼:
using Google.Cloud.Vision.V1;
using System;
namespace VisionApiDemo
{
class Program
{
static void Main(string[] args)
{
var client = ImageAnnotatorClient.Create();
var image = Image.FromUri("gs://cloud-samples-data/vision/text/screen.jpg");
var response = client.DetectText(image);
foreach (var annotation in response)
{
if (annotation.Description != null)
{
Console.WriteLine(annotation.Description);
}
}
}
}
}
請花一到兩分鐘研究程式碼,瞭解如何使用 Vision API C# 程式庫執行文字偵測。
回到 Cloud Shell,執行應用程式:
dotnet run
您應該會看到以下的輸出內容:
System Software Update
Back
Preparing to install...
After preparation is complete, the PS4 will automatically restart and the update file will be
installed.
37%
gus class
System
Software
Update
Back
Preparing
to
install
...
After
preparation
is
complete
,
the
PS4
will
automatically
restart
and
the
update
file
will
be
installed
.
37
%
gus
class
摘要
在這個步驟中,您已對水獺穿越馬路的圖片執行文字偵測,並列印圖片中辨識出的文字。進一步瞭解文字偵測。
7. 執行地標偵測
Vision API 的地標偵測功能可偵測圖片中的熱門天然和人造結構。
在本例中,您將對艾菲爾鐵塔的圖片執行地標偵測。
前往 VisionApiDemo 資料夾中的 Program.cs 檔案,並將程式碼替換成以下程式碼:
using Google.Cloud.Vision.V1;
using System;
namespace VisionApiDemo
{
class Program
{
static void Main(string[] args)
{
var client = ImageAnnotatorClient.Create();
var image = Image.FromUri("gs://cloud-samples-data/vision/eiffel_tower.jpg");
var response = client.DetectLandmarks(image);
foreach (var annotation in response)
{
if (annotation.Description != null)
{
Console.WriteLine(annotation.Description);
}
}
}
}
}
請花一到兩分鐘研究程式碼,瞭解如何使用 Vision API C# 程式庫執行地標偵測。
回到 Cloud Shell,執行應用程式:
dotnet run
您應該會看到以下的輸出內容:
Eiffel Tower
摘要
在這個步驟中,您已對艾菲爾鐵塔的圖片執行地標偵測。進一步瞭解地標偵測。
8. 執行情緒臉部偵測
臉部偵測功能可偵測圖片中的多個臉部,以及相關的重要臉部特徵,例如表情或頭飾。
在本範例中,您將偵測四種不同情緒的機率,包括喜、怒、哀和驚訝,藉此判斷情緒狀態的可能性。
前往 VisionApiDemo 資料夾中的 Program.cs 檔案,並將程式碼替換成以下程式碼:
using Google.Cloud.Vision.V1;
using System;
namespace VisionApiDemo
{
class Program
{
static void Main(string[] args)
{
var client = ImageAnnotatorClient.Create();
var image = Image.FromUri("gs://cloud-samples-data/vision/face/face_no_surprise.jpg");
var response = client.DetectFaces(image);
foreach (var annotation in response)
{
Console.WriteLine($"Picture: {image}");
Console.WriteLine($" Surprise: {annotation.SurpriseLikelihood}");
}
}
}
}
請花一到兩分鐘研究程式碼,瞭解如何使用 Vision API C# 程式庫執行情緒臉部偵測。
執行應用程式;
dotnet run
您應該會看到下列 face_no_surprise 範例的輸出內容:
Picture: { "source": { "imageUri": "gs://cloud-samples-data/vision/face/face_no_surprise.jpg" } }
Surprise: Likely
摘要
在這個步驟中,您已能執行情緒臉部偵測。進一步瞭解臉部偵測。
9. 恭喜!
您已瞭解如何使用 C# 透過 Vision API 對圖片執行各種偵測作業!
清除所用資源
如何避免系統向您的 Google Cloud Platform 帳戶收取您在本快速入門導覽課程中所用資源的相關費用:
- 前往 Cloud Platform Console。
- 選取要關閉的專案,然後按一下頂端的「刪除」,系統就會排定刪除專案的時間。
瞭解詳情
- Google Cloud Vision API:https://cloud.google.com/vision/docs/
- Google Cloud Platform 上的 C#/.NET:https://cloud.google.com/dotnet/
- Google Cloud .NET 用戶端:https://googlecloudplatform.github.io/google-cloud-dotnet
授權
這項內容採用的授權為 Creative Commons 姓名標示 2.0 通用授權。