1. Genel Bakış
Google Cloud Vision API, geliştiricilerin görsel algılama özelliklerini uygulamalara kolayca entegre etmelerini sağlar. Bu özellikler arasında görüntü etiketleme, yüz ve önemli nokta algılama, optik karakter tanıma (OCR) ve uygunsuz içerik etiketleme yer alır.
Bu codelab'de Vision API'yi C# ile kullanmaya odaklanacaksınız. Metin algılama, önemli nokta algılama ve yüz algılama işlemlerini nasıl yapacağınızı öğreneceksiniz.
Neler öğreneceksiniz?
- Cloud Shell'i kullanma
- Google Cloud Vision API'yi Etkinleştirme
- API isteklerinin kimliğini doğrulama
- C# için Vision API istemci kitaplığını yükleme
- Etiket algılama nasıl yapılır?
- Metin algılama nasıl yapılır?
- Önemli nokta algılama nasıl yapılır?
- Yüz algılama nasıl yapılır?
Gerekenler
- Google Cloud Platform projesi
- Chrome veya Firefox gibi bir tarayıcı
- C# kullanma konusunda bilgi sahibi olma
Anket
Bu eğitimi nasıl kullanacaksınız?
C# ile ilgili deneyiminizi nasıl değerlendirirsiniz?
Google Cloud Platform hizmetlerini kullanma deneyiminizi nasıl değerlendirirsiniz?
2. Kurulum ve Gereksinimler
Yönlendirmesiz ortam kurulumu
- Google Cloud Console'da oturum açın ve yeni bir proje oluşturun veya mevcut bir projeyi yeniden kullanın. Gmail veya Google Workspace hesabınız yoksa hesap oluşturmanız gerekir.



- Proje adı, bu projenin katılımcıları için görünen addır. Google API'leri tarafından kullanılmayan bir karakter dizesidir. Bu bilgiyi istediğiniz zaman güncelleyebilirsiniz.
- Proje kimliği, tüm Google Cloud projelerinde benzersizdir ve sabittir (ayarlandıktan sonra değiştirilemez). Cloud Console, benzersiz bir dizeyi otomatik olarak oluşturur. Genellikle bu dizenin ne olduğuyla ilgilenmezsiniz. Çoğu codelab'de proje kimliğinize (genellikle
PROJECT_IDolarak tanımlanır) başvurmanız gerekir. Oluşturulan kimliği beğenmezseniz başka bir rastgele kimlik oluşturabilirsiniz. Dilerseniz kendi adınızı deneyerek kullanılabilir olup olmadığını kontrol edebilirsiniz. Bu adım tamamlandıktan sonra değiştirilemez ve proje süresince geçerli kalır. - Bazı API'lerin kullandığı üçüncü bir değer olan Proje Numarası da vardır. Bu üç değer hakkında daha fazla bilgiyi belgelerde bulabilirsiniz.
- Ardından, Cloud kaynaklarını/API'lerini kullanmak için Cloud Console'da faturalandırmayı etkinleştirmeniz gerekir. Bu codelab'i tamamlamak neredeyse hiç maliyetli değildir. Bu eğitimin ötesinde faturalandırılmayı önlemek için kaynakları kapatmak üzere oluşturduğunuz kaynakları veya projeyi silebilirsiniz. Yeni Google Cloud kullanıcıları 300 ABD doları değerinde ücretsiz deneme programından yararlanabilir.
Cloud Shell'i başlatma
Google Cloud, dizüstü bilgisayarınızdan uzaktan çalıştırılabilir. Ancak bu codelab'de, Cloud'da çalışan bir komut satırı ortamı olan Google Cloud Shell'i kullanacaksınız.
Cloud Shell'i etkinleştirme
- Cloud Console'da Cloud Shell'i etkinleştir 'i
tıklayın.

Cloud Shell'i ilk kez başlatıyorsanız ne olduğunu açıklayan bir ara ekran gösterilir. Ara ekran gösterildiyse Devam'ı tıklayın.

Cloud Shell'in temel hazırlığı ve bağlanması yalnızca birkaç dakikanızı alır.

Bu sanal makineye, ihtiyaç duyacağınız tüm geliştirme araçları yüklenmiştir. 5 GB boyutunda kalıcı bir ana dizin bulunur ve Google Cloud'da çalışır. Bu sayede ağ performansı ve kimlik doğrulama önemli ölçüde güçlenir. Bu codelab'deki çalışmalarınızın neredeyse tamamını tarayıcıyla yapabilirsiniz.
Cloud Shell'e bağlandıktan sonra kimliğinizin doğrulandığını ve projenin, proje kimliğinize ayarlandığını görürsünüz.
- Kimliğinizin doğrulandığını onaylamak için Cloud Shell'de şu komutu çalıştırın:
gcloud auth list
Komut çıkışı
Credentialed Accounts
ACTIVE ACCOUNT
* <my_account>@<my_domain.com>
To set the active account, run:
$ gcloud config set account `ACCOUNT`
- gcloud komutunun projeniz hakkında bilgi sahibi olduğunu onaylamak için Cloud Shell'de aşağıdaki komutu çalıştırın:
gcloud config list project
Komut çıkışı
[core] project = <PROJECT_ID>
Değilse şu komutla ayarlayabilirsiniz:
gcloud config set project <PROJECT_ID>
Komut çıkışı
Updated property [core/project].
3. Vision API'yi etkinleştirin
Vision API'yi kullanmaya başlamadan önce API'yi etkinleştirmeniz gerekir. Cloud Shell'i kullanarak aşağıdaki komutla API'yi etkinleştirebilirsiniz:
gcloud services enable vision.googleapis.com
4. C# için Google Cloud Vision API istemci kitaplığını yükleyin.
Öncelikle Vision API örneklerini çalıştırmak için kullanacağınız basit bir C# konsol uygulaması oluşturun:
dotnet new console -n VisionApiDemo
Uygulamanın oluşturulduğunu ve bağımlılıkların çözüldüğünü görmelisiniz:
The template "Console Application" was created successfully.
Processing post-creation actions...
...
Restore succeeded.
Ardından VisionApiDemo klasörüne gidin:
cd VisionApiDemo/
Ayrıca projeye Google.Cloud.Vision.V1 NuGet paketini ekleyin:
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'.
Artık Vision API'yi kullanmaya hazırsınız.
5. Etiket Algılama İşlemini Gerçekleştirme
Vision API'nin temel özelliklerinden biri, bir resimdeki nesneleri veya öğeleri tanımlamaktır. Bu işleme etiket notu ekleme adı verilir. Etiket algılama; genel nesneleri, konumları, etkinlikleri, hayvan türlerini, ürünleri ve daha fazlasını tanımlar. Vision API, giriş görüntüsünü alır ve bu görüntü için geçerli olan en olası etiketleri döndürür. Görüntüyle en iyi eşleşen etiketleri ve eşleşmenin güven puanını döndürür.
Bu örnekte, Şanghay'daki bir sokak sahnesinin görüntüsünde etiket algılama işlemi gerçekleştireceksiniz. Cloud Shell'in sağ üst tarafındaki kod düzenleyiciyi açın:

VisionApiDemo klasöründeki Program.cs dosyasına gidin ve kodu aşağıdakilerle değiştirin:
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)}%)");
}
}
}
}
Kodu incelemek ve Vision API C# kitaplığının etiket algılama için nasıl kullanıldığını görmek için bir veya iki dakikanızı ayırın.
Cloud Shell'e dönüp uygulamayı çalıştırın:
dotnet run
Aşağıdaki çıkışı göreceksiniz:
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%)
Özet
Bu adımda, Çin'deki bir sokak sahnesinin görüntüsünde etiket algılama işlemi gerçekleştirebildiniz ve bu görüntüyle ilişkili en olası etiketleri görüntüleyebildiniz. Etiket Algılama hakkında daha fazla bilgi edinin.
6. Metin Algılama İşlemini Gerçekleştirme
Vision API'nin Metin Algılama özelliği, Optik Karakter Tanıma işlemi gerçekleştirir. Çok çeşitli dillerde destek sunarak resimlerdeki metinleri algılayıp ayıklar. Ayrıca otomatik dil tanımlama özelliği de bulunur.
Bu örnekte, sistem yazılımı güncelleme ekranının görüntüsünde metin algılama işlemi yapacaksınız.
VisionApiDemo klasöründeki Program.cs dosyasına gidin ve kodu aşağıdakilerle değiştirin:
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);
}
}
}
}
}
Kodu incelemek ve metin algılama işlemini gerçekleştirmek için Vision API C# kitaplığının nasıl kullanıldığını görmek için bir veya iki dakikanızı ayırın.
Cloud Shell'e dönüp uygulamayı çalıştırın:
dotnet run
Aşağıdaki çıkışı göreceksiniz:
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
Özet
Bu adımda, bir su samuru geçidinin görüntüsünde metin algılama işlemi gerçekleştirebildiniz ve görüntüdeki tanınan metni yazdırabildiniz. Metin Algılama hakkında daha fazla bilgi edinin.
7. Önemli nokta algılama gerçekleştirme
Vision API'nin Önemli Nokta Algılama özelliği, resimdeki popüler doğal ve yapay yapıları algılar.
Bu örnekte, Eyfel Kulesi'nin görüntüsünde önemli nokta tespiti yapacaksınız.
VisionApiDemo klasöründeki Program.cs dosyasına gidin ve kodu aşağıdakilerle değiştirin:
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);
}
}
}
}
}
Kodu incelemek ve Vision API C# kitaplığının önemli nokta tespiti yapmak için nasıl kullanıldığını görmek için bir veya iki dakikanızı ayırın.
Cloud Shell'e dönüp uygulamayı çalıştırın:
dotnet run
Aşağıdaki çıkışı göreceksiniz:
Eiffel Tower
Özet
Bu adımda, Eyfel Kulesi resminde önemli nokta tespiti yapabildiniz. Önemli Yer Algılama hakkında daha fazla bilgi edinin.
8. Duygusal yüz algılama gerçekleştirme
Yüz Algılama, bir görüntüdeki birden fazla yüzü, duygusal durum veya başlık takma gibi ilişkili temel yüz özellikleriyle birlikte algılar.
Bu örnekte, mutluluk, öfke, üzüntü ve şaşkınlık dahil olmak üzere dört farklı duygusal olasılıktan duygusal durum olasılığını tespit edeceksiniz.
VisionApiDemo klasöründeki Program.cs dosyasına gidin ve kodu aşağıdakilerle değiştirin:
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}");
}
}
}
}
Kodu incelemek ve Vision API C# kitaplığının duygusal yüz algılama için nasıl kullanıldığını görmek için bir veya iki dakikanızı ayırın.
Uygulamayı çalıştırın.
dotnet run
face_no_surprise örneğimiz için aşağıdaki çıkışı görmelisiniz:
Picture: { "source": { "imageUri": "gs://cloud-samples-data/vision/face/face_no_surprise.jpg" } }
Surprise: Likely
Özet
Bu adımda, duygusal yüz algılama işlemi gerçekleştirebildiniz. Yüz Algılama hakkında daha fazla bilgi edinin.
9. Tebrikler!
Görüntülerde farklı algılama işlemleri gerçekleştirmek için C# kullanarak Vision API'yi nasıl kullanacağınızı öğrendiniz.
Temizleme
Bu hızlı başlangıçta kullanılan kaynaklar için Google Cloud Platform hesabınızın ücretlendirmesini önlemek amacıyla:
- Cloud Platform Console'a gidin.
- Kapatmak istediğiniz projeyi seçin, ardından üst kısımdaki "Sil"i tıklayın. Bu işlem, projenin silinmesini planlar.
Daha Fazla Bilgi
- Google Cloud Vision API: https://cloud.google.com/vision/docs/
- Google Cloud Platform'da C#/.NET: https://cloud.google.com/dotnet/
- Google Cloud .NET istemcisi: https://googlecloudplatform.github.io/google-cloud-dotnet
Lisans
Bu çalışma, Creative Commons Attribution 2.0 Genel Amaçlı Lisans ile lisans altına alınmıştır.