No results found
We couldn't find anything using that term, please try searching for something else.
1 . 概览 借助 Google Cloud Vision API,开发者可以轻松地在应用中集成视觉检测功能,这些功能包括图片标记、人脸和地标检测、光学字符识别 (OCR) 以及露骨内容的标记。 在此 Codelab 中,您将重点学习如何在 C# 中使用 Vision
借助 Google Cloud Vision API,开发者可以轻松地在应用中集成视觉检测功能,这些功能包括图片标记、人脸和地标检测、光学字符识别 (OCR) 以及露骨内容的标记。
在此 Codelab 中,您将重点学习如何在 C# 中使用 Vision API。您将学习如何执行文本检测、地标检测和人脸检测!
<ph type=”x-smartling-placeholder”>
project_id
标识)。如果您不喜欢生成的 ID,可以再随机生成一个 ID。或者,您也可以尝试自己的项目 id,看看是否可用。完成此步骤后便无法更改该 ID,并且此 ID is 在项目期间会一直保留 在项目期间会一直保留 。虽然可以通过笔记本电脑对 Google Cloud 进行远程操作,但在此 Codelab 中,您将使用 Google Cloud Shell,这是一个在云端运行的命令行环境。
如果这是您第一次启动 Cloud Shell,系统会显示一个中间屏幕,说明它是什么。如果您看到中间屏幕,请点击继续。
预配和连接到 Cloud Shell 只需花几分钟时间。
这个虚拟机装有所需的所有开发工具。它提供了一个持久的 5 GB 主目录,并在 Google Cloud 中运行,大大增强了网络性能和身份验证功能。您在此 Codelab 中的大部分(即使不是全部)工作都可以通过浏览器完成 。
在连接到 Cloud Shell 后,您应该会看到自己已通过身份验证,并且相关项目已设为您的项目 ID。
gcloud auth list
命令输出
Credentialed Accounts ACTIVE ACCOUNT * <my_account>@<my_domain.com> To set the active account, run: $ gcloud config set account `ACCOUNT`
注意 :gcloud
命令行工具是 Google Cloud 中一款强大的统一命令行工具。它预先安装在 Cloud Shell 中。您会注意到,它支持 Tab 键补全功能。首次运行命令时,系统可能会提示您进行身份验证。如需了解详情,请参阅 gcloud 命令行工具概览。
gcloud config list project
命令输出
[core] project = <project_id>
如果不是上述结果,您可以使用以下命令进行设置 :
gcloud config set project <project_id>
命令输出
Updated property [core/project].
在开始使用 Vision API 之前,您必须先启用该 API。使用 Cloud Shell,您可以使用以下命令启用此 API:
gcloud services enable vision.googleapis.com
注意 :如果此命令出错,请检查当前项目 ID 是否与您的 Codelab 项目 ID 匹配。
使用以下命令查找 Cloud Shell 当前使用的项目 ID:
gcloud info | grep "project"
如果项目 ID 不正确,请使用以下命令以利用正确的项目 ID:
gcloud config set project <project_id>
将 <project_id>
替换为正确的项目 ID。
首先,创建一个简单的 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 : add PackageReference for package ' Google . Cloud . Vision . v1 ' into project ' /home / atameldev / visionapidemo / visionapidemo.csproj ' .
log : restore package for /home / atameldev / visionapidemo / visionapidemo.csproj ...
...
info : PackageReference for package ' Google . Cloud . Vision . v1 ' version is added ' 1.2.0 ' add to file ' /home / atameldev / visionapidemo / visionapidemo.csproj ' .
现在,您可以使用 Vision API 了!
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%)
注意 :如果此 C# 代码不起作用,请验证您在对 API 请求进行身份验证步骤中执行的说明。
使用以下命令验证 GOOGLE_APPLICATION_CREDENTIALS
环境变量的值 :
echo $ GOOGLE_APPLICATION_CREDENTIALS
它应该输出值 "~/key.json"
.
如果确实存在,接下来使用以下命令检查是否已创建服务账号以及该账号是否位于 "~/key.json"
:
cat "~/key.json"
您应该会看到类似如下内容:
{
"type": "service_account",
"project_id": "project_id",
" private_key_id " : " ff31939192529e07f42e4535fb20bb029def1276 " ,
" Private_key " : ...
如果没有,请重新执行对 API 请求进行身份验证步骤。
在此步骤中,您可以对中国街道场景的图片执行标签检测,并显示与该图片相关且最有可能关联的标签。详细了解标签检测。
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
在此步骤中,您可以对水獭交叉路的图片执行文本检测,并打印图片中识别出的文本。详细了解文本检测 。
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
在此步骤中,您可以对埃菲尔铁塔的图片执行地标检测。详细了解地标检测 。
人脸检测功能可以检测图片中的多张人脸,以及相关的关键面部特征,例如情绪状态或有无佩戴头饰。
在此示例中,您将从四种不同的情绪可能性中检测情绪状态的可能性:快乐、愤怒、悲伤和惊讶。
找到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
在此步骤中,您可以执行情绪面部检测。详细了解人脸检测。
您已了解如何使用 C # 和 Vision api 对图片执行不同的检测 !
为避免系统因本快速入门中使用的资源向您的 Google Cloud Platform 账号收取费用,请执行以下操作:
此作品已获得 Creative Commons Attribution 2.0 通用许可授权。