Menggunakan Vision API dengan C#

1. Ringkasan

Google Cloud Vision API memungkinkan developer mengintegrasikan fitur deteksi visi dalam aplikasi dengan mudah, termasuk pelabelan gambar, deteksi wajah dan struktur, pengenalan karakter optik (OCR), dan pemberian tag konten vulgar.

Dalam codelab ini, Anda akan berfokus pada penggunaan Vision API dengan C#. Anda akan mempelajari cara melakukan deteksi teks, deteksi struktur, dan deteksi wajah.

Yang akan Anda pelajari

  • Cara menggunakan Cloud Shell
  • Cara Mengaktifkan Google Cloud Vision API
  • Cara Mengautentikasi permintaan API
  • Cara menginstal library klien Vision API untuk C#
  • Cara melakukan deteksi Label
  • Cara melakukan Deteksi teks
  • Cara melakukan deteksi Tempat terkenal
  • Cara melakukan Deteksi Wajah

Yang Anda butuhkan

  • Project Google Cloud Platform
  • Browser, seperti Chrome atau Firefox
  • Pemahaman dalam menggunakan C#

Survei

Bagaimana Anda akan menggunakan tutorial ini?

Hanya membacanya Membacanya dan menyelesaikan latihan

Bagaimana Anda menilai pengalaman Anda dengan C#?

Pemula Menengah Mahir

Bagaimana penilaian Anda terhadap pengalaman menggunakan layanan Google Cloud Platform?

Pemula Menengah Mahir

2. Penyiapan dan Persyaratan

Penyiapan lingkungan mandiri

  1. Login ke Google Cloud Console dan buat project baru atau gunakan kembali project yang sudah ada. Jika belum memiliki akun Gmail atau Google Workspace, Anda harus membuatnya.

295004821bab6a87.pngS

37d264871000675d.png

96d86d3d5655cdbe.pngS

  • Project name adalah nama tampilan untuk peserta project ini. String ini adalah string karakter yang tidak digunakan oleh Google API. Anda dapat memperbaruinya kapan saja.
  • Project ID bersifat unik di semua project Google Cloud dan tidak dapat diubah (tidak dapat diubah setelah ditetapkan). Cloud Console otomatis membuat string unik; biasanya Anda tidak mementingkan kata-katanya. Di sebagian besar codelab, Anda harus merujuk Project ID-nya (umumnya diidentifikasi sebagai PROJECT_ID). Jika tidak suka dengan ID yang dibuat, Anda dapat membuat ID acak lainnya. Atau, Anda dapat mencobanya sendiri, dan lihat apakah ID tersebut tersedia. ID tidak dapat diubah setelah langkah ini dan tersedia selama durasi project.
  • Sebagai informasi, ada nilai ketiga, Project Number, yang digunakan oleh beberapa API. Pelajari lebih lanjut ketiga nilai ini di dokumentasi.
  1. Selanjutnya, Anda harus mengaktifkan penagihan di Konsol Cloud untuk menggunakan resource/API Cloud. Menjalankan operasi dalam codelab ini tidak akan memakan banyak biaya, bahkan mungkin tidak sama sekali. Guna mematikan resource agar tidak menimbulkan penagihan di luar tutorial ini, Anda dapat menghapus resource yang dibuat atau menghapus project-nya. Pengguna baru Google Cloud memenuhi syarat untuk mengikuti program Uji Coba Gratis senilai $300 USD.

Mulai Cloud Shell

Meskipun Google Cloud dapat dioperasikan dari jarak jauh menggunakan laptop Anda, dalam codelab ini, Anda akan menggunakan Google Cloud Shell, lingkungan command line yang berjalan di Cloud.

Mengaktifkan Cloud Shell

  1. Dari Cloud Console, klik Aktifkan Cloud Shell d1264ca30785e435.png.

cb81e7c8e34bc8d.png

Jika ini pertama kalinya Anda memulai Cloud Shell, Anda akan melihat layar perantara yang menjelaskan apa itu Cloud Shell. Jika Anda melihat layar perantara, klik Lanjutkan.

d95252b003979716.png

Perlu waktu beberapa saat untuk penyediaan dan terhubung ke Cloud Shell.

7833d5e1c5d18f54.pngS

Mesin virtual ini dimuat dengan semua alat pengembangan yang diperlukan. Layanan ini menawarkan direktori beranda tetap sebesar 5 GB dan beroperasi di Google Cloud, sehingga sangat meningkatkan performa dan autentikasi jaringan. Sebagian besar pekerjaan Anda dalam codelab ini dapat dilakukan dengan browser.

Setelah terhubung ke Cloud Shell, Anda akan melihat bahwa Anda telah diautentikasi dan project sudah ditetapkan ke project ID Anda.

  1. Jalankan perintah berikut di Cloud Shell untuk mengonfirmasi bahwa Anda telah diautentikasi:
gcloud auth list

Output perintah

 Credentialed Accounts
ACTIVE  ACCOUNT
*       <my_account>@<my_domain.com>

To set the active account, run:
    $ gcloud config set account `ACCOUNT`
  1. Jalankan perintah berikut di Cloud Shell untuk mengonfirmasi bahwa perintah gcloud mengetahui project Anda:
gcloud config list project

Output perintah

[core]
project = <PROJECT_ID>

Jika tidak, Anda dapat menyetelnya dengan perintah ini:

gcloud config set project <PROJECT_ID>

Output perintah

Updated property [core/project].

3. Aktifkan API Vision

Sebelum dapat mulai menggunakan Vision API, Anda harus mengaktifkan API. Dengan Cloud Shell, Anda dapat mengaktifkan API menggunakan perintah berikut:

gcloud services enable vision.googleapis.com

4. Menginstal library klien Google Cloud Vision API untuk C#

Pertama, buat aplikasi konsol C# sederhana yang akan Anda gunakan untuk menjalankan contoh Vision API:

dotnet new console -n VisionApiDemo

Anda akan melihat aplikasi yang dibuat dan dependensi di-resolve:

The template "Console Application" was created successfully.
Processing post-creation actions...
...
Restore succeeded.

Selanjutnya, buka folder VisionApiDemo:

cd VisionApiDemo/

Dan tambahkan paket NuGet Google.Cloud.Vision.V1 ke project:

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'.

Sekarang, Anda siap untuk menggunakan Vision API.

5. Lakukan Deteksi Label

Salah satu fitur dasar Vision API adalah mengidentifikasi objek atau entitas dalam gambar, yang dikenal sebagai anotasi label. Deteksi label mengidentifikasi objek umum, lokasi, aktivitas, spesies hewan, produk, dan lain-lain. Vision API mengambil gambar input dan menampilkan label yang paling mungkin untuk diterapkan pada gambar tersebut. Fitur ini menampilkan label yang paling cocok beserta skor keyakinan kecocokannya dengan gambar.

Dalam contoh ini, Anda akan melakukan deteksi label pada gambar adegan jalan di Shanghai. Buka editor kode dari sisi kanan atas Cloud Shell:

92ea233083f961c5.pngS

Buka file Program.cs di dalam folder VisionApiDemo dan ganti kode dengan kode berikut:

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)}%)");
            }
        }
    }
}

Luangkan waktu satu atau dua menit untuk mempelajari kode dan lihat bagaimana library Vision API C# digunakan untuk melakukan deteksi label.

Kembali ke Cloud Shell, jalankan aplikasi:

dotnet run 

Anda akan melihat output berikut:

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%)

Ringkasan

Pada langkah ini, Anda dapat melakukan deteksi label pada gambar pemandangan jalanan di China dan menampilkan label yang paling mungkin terkait dengan gambar tersebut. Baca selengkapnya tentang Deteksi Label.

6. Lakukan Deteksi Teks

Deteksi Teks Vision API melakukan Pengenalan Karakter Optik. Alat ini mendeteksi dan mengekstrak teks dalam gambar dengan dukungan untuk berbagai bahasa. Chromebook juga dilengkapi identifikasi bahasa otomatis.

Dalam contoh ini, Anda akan melakukan deteksi teks pada gambar layar update software sistem.

Buka file Program.cs di dalam folder VisionApiDemo dan ganti kode dengan kode berikut:

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);
                }
            }
        }
    }
}

Luangkan waktu satu atau dua menit untuk mempelajari kode dan lihat bagaimana library C# Vision API digunakan untuk melakukan deteksi teks.

Kembali ke Cloud Shell, jalankan aplikasi:

dotnet run 

Anda akan melihat output berikut:

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

Ringkasan

Pada langkah ini, Anda dapat melakukan deteksi teks pada gambar Berang-Berang dan mencetak teks yang dikenali dari gambar tersebut. Baca selengkapnya tentang Deteksi Teks.

7. Lakukan Deteksi Tempat Terkenal

Landmark Detection Vision API mendeteksi struktur buatan manusia dan alami yang populer dalam sebuah gambar.

Dalam contoh ini, Anda akan melakukan deteksi tempat terkenal pada gambar Menara Eiffel.

Buka file Program.cs di dalam folder VisionApiDemo dan ganti kode dengan kode berikut:

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);
                }
            }
        }
    }
}

Luangkan waktu satu atau dua menit untuk mempelajari kode dan lihat bagaimana library C# Vision API digunakan untuk melakukan deteksi tempat terkenal.

Kembali ke Cloud Shell, jalankan aplikasi:

dotnet run

Anda akan melihat output berikut:

Eiffel Tower

Ringkasan

Pada langkah ini, Anda dapat melakukan deteksi tempat terkenal pada gambar Menara Eiffel. Baca selengkapnya tentang Deteksi Tempat Terkenal.

8. Lakukan Deteksi Wajah Emosional

Deteksi Wajah mendeteksi beberapa wajah dalam gambar beserta atribut wajah utama yang terkait, seperti kondisi emosional atau mengenakan aksesori kepala.

Dalam contoh ini, Anda akan mendeteksi kemungkinan kondisi emosional dari empat kemungkinan emosional yang berbeda termasuk: gembira, marah, sedih, dan terkejut.

Buka file Program.cs di dalam folder VisionApiDemo dan ganti kode dengan kode berikut:

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}");
            }
        }
    }
}

Luangkan waktu satu atau dua menit untuk mempelajari kode dan lihat bagaimana library C# Vision API digunakan untuk melakukan deteksi wajah emosional.

Menjalankan aplikasi;

dotnet run

Anda akan melihat output berikut untuk contoh face_no_surprise:

Picture: { "source": { "imageUri": "gs://cloud-samples-data/vision/face/face_no_surprise.jpg" } }
 Surprise: Likely

Ringkasan

Pada langkah ini, Anda dapat melakukan deteksi wajah emosional. Baca selengkapnya tentang Deteksi Wajah.

9. Selamat!

Anda telah mempelajari cara menggunakan Vision API dengan C# untuk melakukan deteksi yang berbeda pada gambar.

Pembersihan

Agar tidak menimbulkan biaya pada akun Google Cloud Platform Anda untuk resource yang digunakan di panduan memulai ini:

  • Buka Cloud Platform Console.
  • Pilih project yang ingin dinonaktifkan, lalu klik 'Delete' di bagian atas: tindakan ini menjadwalkan penghapusan project.

Pelajari Lebih Lanjut

Lisensi

Karya ini dilisensikan berdasarkan Lisensi Umum Creative Commons Attribution 2.0.