1. Ringkasan
Google Cloud Video Intelligence API memungkinkan developer menggunakan teknologi analisis video Google sebagai bagian dari aplikasi mereka.
Strategi ini dapat digunakan untuk melakukan:
- Deteksi Label: Mendeteksi objek, seperti, bunga, manusia, dalam video.
- Deteksi Konten Vulgar: Mendeteksi konten khusus dewasa dalam video.
- Deteksi Pergantian Shot: Mendeteksi perubahan adegan dalam video.
Dengan REST API ini, pengguna dapat memberikan anotasi ke video yang disimpan secara lokal atau di Google Cloud Storage dengan informasi kontekstual di level seluruh video, per segmen, per shot, dan per frame.
Dalam codelab ini, Anda akan fokus pada penggunaan Video Intelligence API dengan C#. Anda akan mempelajari cara menganalisis label, perubahan shot, dan deteksi konten vulgar pada video.
Yang akan Anda pelajari
- Cara menggunakan Cloud Shell
- Cara mengaktifkan Video Intelligence API
- Cara Mengautentikasi permintaan API
- Cara menginstal library klien Google Cloud untuk C#
- Cara menganalisis video untuk label
- Cara menganalisis video untuk perubahan shot
- Cara menganalisis video untuk deteksi konten vulgar
Yang Anda butuhkan
Survei
Bagaimana Anda akan menggunakan tutorial ini?
Bagaimana Anda menilai pengalaman Anda dengan C#?
Bagaimana penilaian Anda terhadap pengalaman menggunakan layanan Google Cloud Platform?
2. Penyiapan dan Persyaratan
Penyiapan lingkungan mandiri
- 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.
- 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.
- 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
- Dari Cloud Console, klik Aktifkan Cloud Shell .
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.
Perlu waktu beberapa saat untuk penyediaan dan terhubung ke Cloud Shell.
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.
- 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`
- 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. Mengaktifkan Video Intelligence API
Sebelum dapat mulai menggunakan Video Intelligence API, Anda harus mengaktifkan API tersebut. Anda dapat mengaktifkan API menggunakan perintah berikut di Cloud Shell:
gcloud services enable videointelligence.googleapis.com
4. Instal library klien Google Cloud Video Intelligence API untuk C#
Pertama, buat aplikasi konsol C# sederhana yang akan Anda gunakan untuk menjalankan contoh Video Intelligence API:
dotnet new console -n VideoIntApiDemo
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 VideoIntApiDemo
:
cd VideoIntApiDemo/
Dan tambahkan paket NuGet Google.Cloud.VideoIntelligence.V1
ke project:
dotnet add package Google.Cloud.VideoIntelligence.V1
info : Adding PackageReference for package 'Google.Cloud.VideoIntelligence.V1' into project '/home/atameldev/VideoIntApiDemo/VideoIntApiDemo.csproj'.
log : Restoring packages for /home/atameldev/VideoIntApiDemo/VideoIntApiDemo.csproj...
...
info : PackageReference for package 'Google.Cloud.VideoIntelligence.V1' version '1.0.0' added to file '/home/atameldev/VideoIntApiDemo/VideoIntApiDemo.csproj'.
Kini Anda siap untuk menggunakan Video Intelligence API.
5. Deteksi Label
Analisis label mendeteksi label dalam video, baik yang disimpan secara lokal atau di Google Cloud Storage. Di bagian ini, Anda akan menganalisis video untuk label yang disimpan di Google Cloud Storage.
Pertama, buka editor kode dari sisi kanan atas Cloud Shell:
Buka file Program.cs
di dalam folder VideoIntApiDemo
dan ganti kode dengan kode berikut:
using System;
using System.Collections.Generic;
using Google.Cloud.VideoIntelligence.V1;
namespace VideoIntApiDemo
{
class Program
{
static void Main(string[] args)
{
var client = VideoIntelligenceServiceClient.Create();
var request = new AnnotateVideoRequest
{
InputUri = "gs://cloud-samples-data/video/gbikes_dinosaur.mp4",
Features = { Feature.LabelDetection }
};
var op = client.AnnotateVideo(request).PollUntilCompleted();
foreach (var result in op.Result.AnnotationResults)
{
PrintLabels("Video", result.SegmentLabelAnnotations);
PrintLabels("Shot", result.ShotLabelAnnotations);
PrintLabels("Frame", result.FrameLabelAnnotations);
}
}
static void PrintLabels(string labelName,
IEnumerable<LabelAnnotation> labelAnnotations)
{
foreach (var annotation in labelAnnotations)
{
Console.WriteLine($"{labelName} label: {annotation.Entity.Description}");
foreach (var entity in annotation.CategoryEntities)
{
Console.WriteLine($"{labelName} label category: {entity.Description}");
}
foreach (var segment in annotation.Segments)
{
Console.Write("Segment location: ");
Console.Write(segment.Segment.StartTimeOffset);
Console.Write(":");
Console.WriteLine(segment.Segment.EndTimeOffset);
Console.WriteLine($"Confidence: {segment.Confidence}");
}
}
}
}
}
Luangkan waktu satu atau dua menit untuk mempelajari kodenya dan lihat bagaimana video diberi label*.*
Kembali ke Cloud Shell, jalankan aplikasi:
dotnet run
Perlu waktu beberapa detik bagi Video Intelligence API untuk mengekstrak label, tetapi pada akhirnya, Anda akan melihat output berikut:
Video label: bicycle
Video label category: vehicle
Segment location: "0s":"42.766666s"
Confidence: 0.475821
Video label: tyrannosaurus
Video label category: dinosaur
Segment location: "0s":"42.766666s"
Confidence: 0.4222222
Video label: tree
Video label category: plant
Segment location: "0s":"42.766666s"
Confidence: 0.4231415
...
Ringkasan
Pada langkah ini, Anda dapat membuat daftar semua label dalam video menggunakan Video Intelligence API. Anda dapat membaca selengkapnya di halaman Deteksi label.
6. Deteksi Perubahan Bidikan
Anda dapat menggunakan Video Intelligence API untuk mendeteksi perubahan shot dalam video yang disimpan secara lokal atau di Google Cloud Storage. Di bagian ini, Anda akan melakukan analisis video untuk perubahan shot pada file yang ada di Google Cloud Storage.
Untuk mendeteksi perubahan shot, buka file Program.cs
di dalam folder VideoIntApiDemo
dan ganti kode dengan kode berikut:
using System;
using Google.Cloud.VideoIntelligence.V1;
namespace VideoIntApiDemo
{
class Program
{
static void Main(string[] args)
{
var client = VideoIntelligenceServiceClient.Create();
var request = new AnnotateVideoRequest
{
InputUri = "gs://cloud-samples-data/video/gbikes_dinosaur.mp4",
Features = { Feature.ShotChangeDetection }
};
var op = client.AnnotateVideo(request).PollUntilCompleted();
foreach (var result in op.Result.AnnotationResults)
{
foreach (var annotation in result.ShotAnnotations)
{
Console.Out.WriteLine("Start Time Offset: {0}\tEnd Time Offset: {1}",
annotation.StartTimeOffset, annotation.EndTimeOffset);
}
}
}
}
}
Luangkan waktu satu atau dua menit untuk mempelajari kode dan lihat bagaimana deteksi pukulan dilakukan.
Kembali ke Cloud Shell, jalankan aplikasi. Anda akan melihat output berikut:
dotnet run
Anda akan melihat output berikut:
Start Time Offset: "0s" End Time Offset: "5.166666s"
Start Time Offset: "5.233333s" End Time Offset: "10.066666s"
Start Time Offset: "10.100s" End Time Offset: "28.133333s"
Start Time Offset: "28.166666s" End Time Offset: "42.766666s"
Ringkasan
Pada langkah ini, Anda dapat menggunakan Video Intelligence API untuk mendeteksi perubahan shot dalam file yang disimpan di Google Cloud Storage. Baca selengkapnya tentang Perubahan shot.
7. Deteksi Konten Vulgar
Deteksi Konten Vulgar mendeteksi konten khusus dewasa dalam video. Konten khusus dewasa adalah konten yang umumnya sesuai untuk usia 18 tahun ke atas, termasuk, tetapi tidak terbatas pada ketelanjangan, aktivitas seksual, dan pornografi (termasuk kartun atau anime). Respons mencakup nilai kemungkinan yang dikelompokkan, dari VERY_UNLIKELY hingga VERY_LIKELY.
Jika Deteksi Konten Vulgar mengevaluasi video, Deteksi Konten Vulgar akan melakukannya per frame dan mempertimbangkan konten visual saja. Komponen audio dari video tersebut tidak digunakan untuk mengevaluasi level konten vulgar.
Untuk mendeteksi konten vulgar, buka file Program.cs
di dalam folder VideoIntApiDemo
dan ganti kode dengan kode berikut:
using System;
using Google.Cloud.VideoIntelligence.V1;
namespace VideoIntApiDemo
{
class Program
{
static void Main(string[] args)
{
var client = VideoIntelligenceServiceClient.Create();
var request = new AnnotateVideoRequest
{
InputUri = "gs://cloud-samples-data/video/gbikes_dinosaur.mp4",
Features = { Feature.ExplicitContentDetection }
};
var op = client.AnnotateVideo(request).PollUntilCompleted();
foreach (var result in op.Result.AnnotationResults)
{
foreach (var frame in result.ExplicitAnnotation.Frames)
{
Console.WriteLine("Time Offset: {0}", frame.TimeOffset);
Console.WriteLine("Pornography Likelihood: {0}", frame.PornographyLikelihood);
Console.WriteLine();
}
}
}
}
}
Luangkan waktu satu atau dua menit untuk mempelajari kode dan lihat cara deteksi konten vulgar dilakukan*.*
Kembali ke Cloud Shell, jalankan aplikasi:
dotnet run
Mungkin diperlukan waktu beberapa detik, tetapi pada akhirnya, Anda akan melihat output berikut:
dotnet run
Time Offset: "0.056149s"
Pornography Likelihood: VeryUnlikely
Time Offset: "1.166841s"
Pornography Likelihood: VeryUnlikely
...
Time Offset: "41.678209s"
Pornography Likelihood: VeryUnlikely
Time Offset: "42.596413s"
Pornography Likelihood: VeryUnlikely
Ringkasan
Pada langkah ini, Anda dapat melakukan deteksi konten vulgar pada video menggunakan Video Intelligence API. Baca selengkapnya mengenai Deteksi konten vulgar.
8. Selamat!
Anda telah mempelajari cara menggunakan Video Intelligence API dengan C#!
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
- Google Cloud Video Intelligence API: https://cloud.google.com/video-intelligence/docs/
- C#/.NET di Google Cloud Platform: https://cloud.google.com/dotnet/
- Klien .NET Google Cloud: https://googlecloudplatform.github.io/google-cloud-dotnet/
Lisensi
Karya ini dilisensikan berdasarkan Lisensi Umum Creative Commons Attribution 2.0.