1. Обзор
API Google Cloud Vision позволяет разработчикам легко интегрировать функции обнаружения зрения в приложения, включая маркировку изображений, распознавание лиц и ориентиров, оптическое распознавание символов (OCR) и пометку непристойного контента.
В этой лаборатории кода вы сосредоточитесь на использовании Vision API с C#. Вы узнаете, как выполнять распознавание текста, распознавание ориентиров и распознавание лиц!
Что вы узнаете
- Как использовать Cloud Shell
- Как включить API Google Cloud Vision
- Как аутентифицировать запросы API
- Как установить клиентскую библиотеку Vision API для C#
- Как выполнить обнаружение меток
- Как выполнить обнаружение текста
- Как выполнить обнаружение ориентиров
- Как выполнить распознавание лиц
Что вам понадобится
Опрос
Как вы будете использовать этот урок?
Как бы вы оценили свой опыт работы с C#?
Как бы вы оценили свой опыт использования сервисов Google Cloud Platform?
2. Настройка и требования
Самостоятельная настройка среды
- Войдите в Google Cloud Console и создайте новый проект или повторно используйте существующий. Если у вас еще нет учетной записи Gmail или Google Workspace, вам необходимо ее создать .
- Имя проекта — это отображаемое имя для участников этого проекта. Это строка символов, не используемая API Google. Вы всегда можете обновить его.
- Идентификатор проекта уникален для всех проектов Google Cloud и является неизменяемым (невозможно изменить после его установки). Cloud Console автоматически генерирует уникальную строку; обычно тебя не волнует, что это такое. В большинстве лабораторий кода вам потребуется указать идентификатор проекта (обычно идентифицируемый как
PROJECT_ID
). Если вам не нравится сгенерированный идентификатор, вы можете создать другой случайный идентификатор. Альтернативно, вы можете попробовать свой собственный и посмотреть, доступен ли он. Его нельзя изменить после этого шага и он сохраняется на протяжении всего проекта. - К вашему сведению, есть третье значение — номер проекта , которое используют некоторые API. Подробнее обо всех трех этих значениях читайте в документации .
- Затем вам необходимо включить выставление счетов в Cloud Console, чтобы использовать облачные ресурсы/API. Прохождение этой лаборатории кода не будет стоить много, если вообще что-то стоить. Чтобы отключить ресурсы и избежать выставления счетов за пределами этого руководства, вы можете удалить созданные вами ресурсы или удалить проект. Новые пользователи Google Cloud имеют право на участие в программе бесплатной пробной версии стоимостью 300 долларов США .
Запустить Cloud Shell
Хотя Google Cloud можно управлять удаленно с вашего ноутбука, в этой лаборатории вы будете использовать Google Cloud Shell , среду командной строки, работающую в облаке.
Активировать Cloud Shell
- В Cloud Console нажмите «Активировать Cloud Shell». .
Если вы запускаете Cloud Shell впервые, вы увидите промежуточный экран с описанием того, что это такое. Если вам был представлен промежуточный экран, нажмите «Продолжить» .
Подготовка и подключение к Cloud Shell займет всего несколько минут.
Эта виртуальная машина загружена всеми необходимыми инструментами разработки. Он предлагает постоянный домашний каталог объемом 5 ГБ и работает в Google Cloud, что значительно повышает производительность сети и аутентификацию. Большую часть, если не всю, работу в этой лаборатории кода можно выполнить с помощью браузера.
После подключения к Cloud Shell вы увидите, что вы прошли аутентификацию и что для проекта установлен идентификатор вашего проекта.
- Выполните следующую команду в 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
Прежде чем вы сможете начать использовать Vision API, вы должны включить API. Используя Cloud Shell, вы можете включить API с помощью следующей команды:
gcloud services enable vision.googleapis.com
4. Установите клиентскую библиотеку Google Cloud Vision API для C#.
Сначала создайте простое консольное приложение 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:
Перейдите к файлу Program.cs
в папке VisionApiDemo
и замените код следующим:
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 выполняет оптическое распознавание символов. Он обнаруживает и извлекает текст внутри изображения с поддержкой широкого спектра языков. Он также имеет функцию автоматической идентификации языка.
В этом примере вы выполните обнаружение текста на изображении экрана обновления системного программного обеспечения .
Перейдите к файлу Program.cs
в папке VisionApiDemo
и замените код следующим:
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 обнаруживает на изображении популярные природные и искусственные структуры.
В этом примере вы выполните обнаружение ориентиров на изображении Эйфелевой башни .
Перейдите к файлу Program.cs
в папке VisionApiDemo
и замените код следующим:
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. Выполните распознавание эмоциональных лиц
Функция распознавания лиц обнаруживает несколько лиц на изображении вместе со связанными с ними ключевыми атрибутами лица, такими как эмоциональное состояние или ношение головного убора.
В этом примере вы определите вероятность эмоционального состояния по четырем различным эмоциональным вероятностям, включая радость, гнев, печаль и удивление.
Перейдите к файлу Program.cs
в папке VisionApiDemo
и замените код следующим:
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. Поздравляем!
Вы узнали, как использовать Vision API с использованием C# для выполнения различных операций обнаружения изображений!
Очистить
Чтобы избежать списания средств с вашей учетной записи Google Cloud Platform за ресурсы, используемые в этом кратком руководстве:
- Перейдите в консоль облачной платформы .
- Выберите проект, который хотите закрыть, затем нажмите «Удалить» вверху: это запланирует удаление проекта.
Узнать больше
- API Google Cloud Vision: https://cloud.google.com/vision/docs/
- C#/.NET на облачной платформе Google: https://cloud.google.com/dotnet/
- Клиент Google Cloud .NET: https://googlecloudplatform.github.io/google-cloud-dotnet
Лицензия
Эта работа распространяется под лицензией Creative Commons Attribution 2.0 Generic License.