1. Genel Bakış
Google Cloud Vision API, geliştiricilerin görüntü etiketleme, yüz ve önemli nokta algılama, optik karakter tanıma (OCR) ve uygunsuz içeriği etiketleme gibi görme algılama özelliklerini uygulamalara kolayca entegre etmesine olanak tanır.
Bu codelab'de, C# ile Vision API'yi kullanmaya odaklanacaksınız. Metin algılama, önemli nokta algılama ve yüz algılama özelliklerini nasıl kullanacağı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 işlemi nasıl yapılır?
- Yüz Algılama nasıl yapılır?
Gerekenler
Anket
Bu eğiticiden nasıl yararlanacaksınız?
C# ile ilgili deneyiminizi nasıl değerlendirirsiniz?
Google Cloud Platform hizmetlerinin kullanımıyla ilgili deneyiminizi nasıl değerlendirirsiniz?
2. Kurulum ve Gereksinimler
Kendi hızınızda ortam kurulumu
- Google Cloud Console'da oturum açıp 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. İstediğiniz zaman güncelleyebilirsiniz.
- Proje Kimliği, tüm Google Cloud projelerinde benzersizdir ve değiştirilemez (belirlendikten sonra değiştirilemez). Cloud Console, otomatik olarak benzersiz bir dize oluşturur. bunun ne olduğunu umursamıyorsunuz. Çoğu codelab'de proje kimliğinizi (genellikle
PROJECT_ID
olarak tanımlanır) belirtmeniz gerekir. Oluşturulan kimliği beğenmezseniz rastgele bir kimlik daha oluşturabilirsiniz. Alternatif olarak, kendi ölçümünüzü deneyip mevcut olup olmadığına bakabilirsiniz. Bu adımdan sonra değiştirilemez ve proje süresince kalır. - Bilginiz olması açısından, bazı API'lerin kullandığı üçüncü bir değer, yani Proje Numarası daha vardır. Bu değerlerin üçü hakkında daha fazla bilgiyi belgelerde bulabilirsiniz.
- Sonraki adımda, Cloud kaynaklarını/API'lerini kullanmak için Cloud Console'da faturalandırmayı etkinleştirmeniz gerekir. Bu codelab'i çalıştırmanın maliyeti, yüksek değildir. Bu eğitim dışında faturalandırmanın tekrarlanmasını önlemek amacıyla kaynakları kapatmak için oluşturduğunuz kaynakları silebilir veya projeyi silebilirsiniz. Yeni Google Cloud kullanıcıları 300 ABD doları değerindeki ücretsiz denemeden yararlanabilir.
Cloud Shell'i başlatma
Google Cloud dizüstü bilgisayarınızdan uzaktan çalıştırılabilse de 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 simgesini tıklayın.
Cloud Shell'i ilk kez başlatıyorsanız ne olduğunu açıklayan bir ara ekran gösterilir. Ara bir ekran görüntülendiyse Devam'ı tıklayın.
Temel hazırlık ve Cloud Shell'e bağlanmak yalnızca birkaç dakika sürer.
Gereken tüm geliştirme araçları bu sanal makinede yüklüdür. 5 GB boyutunda kalıcı bir ana dizin sunar ve Google Cloud'da çalışarak ağ performansını ve kimlik doğrulamasını büyük ölçüde iyileştirir. Bu codelab'deki çalışmalarınızın tamamı olmasa bile büyük bir kısmı tarayıcıyla yapılabilir.
Cloud Shell'e bağlandıktan sonra kimliğinizin doğrulandığını ve projenin proje kimliğinize ayarlandığını göreceksiniz.
- Kimlik doğrulamanızın tamamlandığını onaylamak için Cloud Shell'de aşağıdaki 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 projenizi bildiğini onaylamak için Cloud Shell'de aşağıdaki komutu çalıştırın:
gcloud config list project
Komut çıkışı
[core] project = <PROJECT_ID>
Doğru değilse aşağıdaki 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'de aşağıdaki komutu kullanarak API'yi etkinleştirebilirsiniz:
gcloud services enable vision.googleapis.com
4. C# için Google Cloud Vision API istemci kitaplığını yükleme
İlk olarak, 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öreceksiniz:
The template "Console Application" was created successfully.
Processing post-creation actions...
...
Restore succeeded.
Sonra, VisionApiDemo
klasörüne gidin:
cd VisionApiDemo/
Ardından 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 Gerçekleştir
Vision API'nin temel özelliklerinden biri, görüntüdeki nesneleri veya varlıkları tanımlamaktır. Buna etiket ek açıklaması denir. Etiket algılama; genel nesneleri, konumları, etkinlikleri, hayvan türlerini, ürünleri ve daha fazlasını tanımlar. Vision API, bir giriş görüntüsünü alır ve söz konusu görüntü için geçerli olan en olası etiketleri döndürür. En iyi eşleşen etiketleri, resimle eşleşmenin güven puanıyla birlikte döndürür.
Bu örnekte, Şanghay'daki bir sokak sahnesinin görüntüsü üzerinde etiket algılama işlemi gerçekleştireceksiniz. Cloud Shell'in sağ üst tarafından kod düzenleyiciyi açın:
VisionApiDemo
klasörünün içindeki Program.cs
dosyasına gidin ve kodu aşağıdakiyle 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)}%)");
}
}
}
}
Bir veya iki dakikanızı ayırıp kodu inceleyin ve etiket algılamayı gerçekleştirmek için Vision API C# kitaplığının nasıl kullanıldığını öğrenin.
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 resmi üzerinde etiket algılamayı başardınız ve bu görüntüyle ilişkili en olası etiketleri gösterdiniz. Etiket Algılama hakkında daha fazla bilgi edinin.
6. Metin Algılamayı Gerçekleştir
Vision API'nin Metin Algılama özelliği, optik karakter tanıma işlemi gerçekleştirir. Çok çeşitli dilleri destekleyen bu çözüm, resimlerdeki metinleri tespit edip ayıklar. Ayrıca otomatik dil tanımlama özelliği de vardır.
Bu örnekte, bir sistem yazılımı güncelleme ekranının resminde metin algılama işlemi gerçekleştireceksiniz.
VisionApiDemo
klasörünün içindeki Program.cs
dosyasına gidin ve kodu aşağıdakiyle 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);
}
}
}
}
}
Bir iki dakikanızı ayırarak kodu inceleyin ve metin algılama işlemi için Vision API C# kitaplığının nasıl kullanıldığını öğrenin.
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çişi görüntüsünde metin algılamayı gerçekleştirebildiniz ve resimden tanınan metni yazdırabildiniz. Metin Algılama hakkında daha fazla bilgi edinin.
7. Önemli Nokta Algılamayı Gerçekleştirme
Vision API'nin Önemli Algılama özelliği, bir resimdeki doğal ve insan yapımı popüler yapıları algılar.
Bu örnekte, Eyfel Kulesi'nin bir resmi üzerinde önemli nokta algılama işlemi gerçekleştireceksiniz.
VisionApiDemo
klasörünün içindeki Program.cs
dosyasına gidin ve kodu aşağıdakiyle 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);
}
}
}
}
}
Bir veya iki dakikanızı ayırarak kodu inceleyin ve önemli noktaları algılamak için Vision API C# kitaplığının nasıl kullanıldığını öğrenin.
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'nin görüntüsü üzerinde önemli nokta algılaması gerçekleştirdiniz. Önemli Nokta Algılama hakkında daha fazla bilgi edinin.
8. Duygusal Yüz Algılamayı Gerçekleştir
Yüz Algılama özelliği, resimdeki birden çok yüzü ve duygusal durum veya başlık takma gibi ilişkili temel yüz özelliklerini algılar.
Bu örnekte duygusal durum ihtimalini şu dört farklı duygusal olasılığa göre tespit edeceksiniz: sevinç, öfke, üzüntü ve sürpriz.
VisionApiDemo
klasörünün içindeki Program.cs
dosyasına gidin ve kodu aşağıdakiyle 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}");
}
}
}
}
Bir iki dakikanızı ayırarak kodu inceleyin ve Vision API C# kitaplığının duygusal yüz algılamayı gerçekleştirmek için nasıl kullanıldığını öğrenin.
Uygulamayı çalıştırın;
dotnet run
face_no_surprise örneğimiz için aşağıdaki çıkışı göreceksiniz:
Picture: { "source": { "imageUri": "gs://cloud-samples-data/vision/face/face_no_surprise.jpg" } }
Surprise: Likely
Özet
Bu adımda duygusal yüz algılamayı gerçekleştirdiniz. Yüz Algılama hakkında daha fazla bilgi edinin.
9. Tebrikler!
Görüntülerde farklı algılamalar yapmak 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 "Sil"i tıklayın üstte üstte yer alır: Bu işlem, projeyi silinmek üzere programlar.
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.