1. खास जानकारी
Google Cloud Video Intelligence API की मदद से डेवलपर, Google की वीडियो विश्लेषण टेक्नोलॉजी को अपने ऐप्लिकेशन में इस्तेमाल कर सकते हैं.
इसका इस्तेमाल इन कामों के लिए किया जा सकता है:
- लेबल की पहचान करना: वीडियो में मौजूद ऑब्जेक्ट की पहचान करना. जैसे, कुत्ता, फूल, इंसान.
- अश्लील कॉन्टेंट का पता लगाना: किसी वीडियो में मौजूद अश्लील कॉन्टेंट का पता लगाएं.
- शॉट चेंज डिटेक्शन: वीडियो में सीन के बदलावों का पता लगाएं.
REST API की मदद से, उपयोगकर्ता स्थानीय तौर पर या Google Cloud Storage में सेव किए गए वीडियो में कॉन्टेक्स्ट के हिसाब से एनोटेशन जोड़ सकते हैं. ये एनोटेशन, पूरे वीडियो, हर सेगमेंट, हर शॉट, और हर फ़्रेम के हिसाब से जोड़े जा सकते हैं.
इस कोडलैब में, C# के साथ Video Intelligence API का इस्तेमाल करने पर फ़ोकस किया जाएगा. आपको लेबल, शॉट में बदलाव, और अश्लील कॉन्टेंट का पता लगाने के लिए वीडियो का विश्लेषण करने का तरीका बताया जाएगा.
आपको क्या सीखने को मिलेगा
- Cloud Shell का इस्तेमाल कैसे करें
- Video Intelligence API को चालू करने का तरीका
- एपीआई अनुरोधों की पुष्टि करने का तरीका
- C# के लिए Google Cloud क्लाइंट लाइब्रेरी इंस्टॉल करने का तरीका
- लेबल के लिए वीडियो का विश्लेषण करने का तरीका
- शॉट में हुए बदलावों का पता लगाने के लिए वीडियो का विश्लेषण कैसे करें
- अश्लील कॉन्टेंट का पता लगाने के लिए वीडियो का विश्लेषण कैसे करें
आपको इन चीज़ों की ज़रूरत होगी
- Google Cloud Platform प्रोजेक्ट
- कोई ब्राउज़र, जैसे कि Chrome या Firefox
- C# का इस्तेमाल करने की जानकारी
सर्वे
इस ट्यूटोरियल का इस्तेमाल कैसे किया जाएगा?
C# के साथ अपने अनुभव को आप क्या रेटिंग देंगे?
Google Cloud Platform की सेवाओं को इस्तेमाल करने के अपने अनुभव को आप क्या रेटिंग देंगे?
2. सेटअप और ज़रूरी शर्तें
अपने हिसाब से एनवायरमेंट सेट अप करना
- Google Cloud Console में साइन इन करें और नया प्रोजेक्ट बनाएं या किसी मौजूदा प्रोजेक्ट का फिर से इस्तेमाल करें. अगर आपके पास पहले से कोई Gmail या Google Workspace खाता नहीं है, तो आपको एक खाता बनाना होगा.



- प्रोजेक्ट का नाम, इस प्रोजेक्ट में हिस्सा लेने वाले लोगों के लिए डिसप्ले नेम होता है. यह एक वर्ण स्ट्रिंग है, जिसका इस्तेमाल Google API नहीं करते. इसे कभी भी अपडेट किया जा सकता है.
- प्रोजेक्ट आईडी, सभी Google Cloud प्रोजेक्ट के लिए यूनीक होता है. साथ ही, इसे बदला नहीं जा सकता. Cloud Console, यूनीक स्ट्रिंग को अपने-आप जनरेट करता है. आम तौर पर, आपको इससे कोई फ़र्क़ नहीं पड़ता कि यह क्या है. ज़्यादातर कोडलैब में, आपको अपने प्रोजेक्ट आईडी (आम तौर पर
PROJECT_IDके तौर पर पहचाना जाता है) का रेफ़रंस देना होगा. अगर आपको जनरेट किया गया आईडी पसंद नहीं है, तो कोई दूसरा रैंडम आईडी जनरेट किया जा सकता है. इसके अलावा, आपके पास अपना नाम आज़माने का विकल्प भी है. इससे आपको पता चलेगा कि वह नाम उपलब्ध है या नहीं. इस चरण के बाद, इसे बदला नहीं जा सकता. यह प्रोजेक्ट की अवधि तक बना रहता है. - आपकी जानकारी के लिए बता दें कि एक तीसरी वैल्यू भी होती है, जिसे प्रोजेक्ट नंबर कहते हैं. इसका इस्तेमाल कुछ एपीआई करते हैं. इन तीनों वैल्यू के बारे में ज़्यादा जानने के लिए, दस्तावेज़ देखें.
- इसके बाद, आपको Cloud Console में बिलिंग चालू करनी होगी, ताकि Cloud संसाधनों/एपीआई का इस्तेमाल किया जा सके. इस कोडलैब को पूरा करने में ज़्यादा समय नहीं लगेगा. इस ट्यूटोरियल के बाद बिलिंग से बचने के लिए, संसाधनों को बंद किया जा सकता है. इसके लिए, बनाए गए संसाधनों को मिटाएं या प्रोजेक्ट को मिटाएं. Google Cloud के नए उपयोगकर्ताओं को, 300 डॉलर का क्रेडिट मिलेगा. वे इसे मुफ़्त में आज़मा सकते हैं.
Cloud Shell शुरू करें
Google Cloud को अपने लैपटॉप से रिमोटली ऐक्सेस किया जा सकता है. हालांकि, इस कोडलैब में Google Cloud Shell का इस्तेमाल किया जाएगा. यह क्लाउड में चलने वाला कमांड लाइन एनवायरमेंट है.
Cloud Shell चालू करें
- Cloud Console में, Cloud Shell चालू करें
पर क्लिक करें.

अगर आपने 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`
- यह पुष्टि करने के लिए कि gcloud कमांड को आपके प्रोजेक्ट के बारे में पता है, Cloud Shell में यह कमांड चलाएं:
gcloud config list project
कमांड आउटपुट
[core] project = <PROJECT_ID>
अगर ऐसा नहीं है, तो इस कमांड का इस्तेमाल करके इसे सेट किया जा सकता है:
gcloud config set project <PROJECT_ID>
कमांड आउटपुट
Updated property [core/project].
3. Video Intelligence API को चालू करना
Video Intelligence API का इस्तेमाल शुरू करने से पहले, आपको इसे चालू करना होगा. Cloud Shell में यह कमांड इस्तेमाल करके, एपीआई को चालू किया जा सकता है:
gcloud services enable videointelligence.googleapis.com
4. C# के लिए, Google Cloud Video Intelligence API की क्लाइंट लाइब्रेरी इंस्टॉल करना
सबसे पहले, एक सामान्य C# कंसोल ऐप्लिकेशन बनाएं. इसका इस्तेमाल, Video Intelligence API के सैंपल चलाने के लिए किया जाएगा:
dotnet new console -n VideoIntApiDemo
आपको बनाया गया ऐप्लिकेशन और हल की गई डिपेंडेंसी दिखनी चाहिए:
The template "Console Application" was created successfully.
Processing post-creation actions...
...
Restore succeeded.
इसके बाद, VideoIntApiDemo फ़ोल्डर पर जाएं:
cd VideoIntApiDemo/
इसके बाद, प्रोजेक्ट में Google.Cloud.VideoIntelligence.V1 NuGet पैकेज जोड़ें:
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'.
अब Video Intelligence API का इस्तेमाल किया जा सकता है!
5. लेबल की पहचान करने की सुविधा
लेबल विश्लेषण की सुविधा, वीडियो में मौजूद लेबल का पता लगाती है. वीडियो को स्थानीय तौर पर या Google Cloud Storage में सेव किया जा सकता है. इस सेक्शन में, Google Cloud Storage में सेव किए गए लेबल के लिए किसी वीडियो का विश्लेषण किया जाएगा.
सबसे पहले, Cloud Shell में सबसे ऊपर दाईं ओर मौजूद कोड एडिटर खोलें:

VideoIntApiDemo फ़ोल्डर में मौजूद Program.cs फ़ाइल पर जाएं और कोड की जगह यह कोड डालें:
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}");
}
}
}
}
}
कोड को समझने के लिए एक या दो मिनट का समय लें. साथ ही, देखें कि वीडियो को कैसे लेबल किया जा रहा है*.*
Cloud Shell में वापस जाकर, ऐप्लिकेशन चलाएं:
dotnet run
Video Intelligence API को लेबल निकालने में कुछ सेकंड लगते हैं. हालांकि, इसके बाद आपको यह आउटपुट दिखेगा:
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
...
खास जानकारी
इस चरण में, आपने Video Intelligence API का इस्तेमाल करके, किसी वीडियो में मौजूद सभी लेबल की सूची बनाई. लेबल का पता लगाना पेज पर जाकर, इस बारे में ज़्यादा जानें.
6. शॉट में बदलाव का पता लगाने की सुविधा
Video Intelligence API का इस्तेमाल करके, स्थानीय तौर पर या Google Cloud Storage में सेव किए गए वीडियो में शॉट के बदलावों का पता लगाया जा सकता है. इस सेक्शन में, Google Cloud Storage में मौजूद किसी फ़ाइल में शॉट के बदलावों का विश्लेषण किया जाएगा.
शॉट में हुए बदलावों का पता लगाने के लिए, VideoIntApiDemo फ़ोल्डर में मौजूद Program.cs फ़ाइल पर जाएं और कोड को इससे बदलें:
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);
}
}
}
}
}
कोड को समझने के लिए, एक या दो मिनट का समय लें. साथ ही, देखें कि शॉट का पता कैसे लगाया जाता है.
Cloud Shell में वापस जाकर, ऐप्लिकेशन चलाएं. आपको यह आउटपुट दिखेगा:
dotnet run
आपको यह आउटपुट दिखेगा:
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"
खास जानकारी
इस चरण में, Google Cloud Storage में सेव की गई किसी फ़ाइल में शॉट के बदलावों का पता लगाने के लिए, Video Intelligence API का इस्तेमाल किया गया. शॉट में हुए बदलावों के बारे में ज़्यादा जानें.
7. अश्लील कॉन्टेंट की पहचान करना
एक्सप्लिसिट कॉन्टेंट का पता लगाने की सुविधा, किसी वीडियो में वयस्कों के लिए बने कॉन्टेंट का पता लगाती है. वयस्कों के लिए बना कॉन्टेंट आम तौर पर 18 साल और उससे ज़्यादा उम्र के लोगों के लिए सही होता है. इसमें नग्नता, सेक्शुअल ऐक्ट, और पॉर्नोग्राफ़ी (इसमें कार्टून या ऐनिमेशन भी शामिल हैं) शामिल है. हालांकि, इसमें और भी कॉन्टेंट शामिल हो सकता है. जवाब में, संभावना की बकेट की गई वैल्यू शामिल होती है. यह VERY_UNLIKELY से लेकर VERY_LIKELY तक होती है.
अश्लील कॉन्टेंट का पता लगाने वाली सुविधा, वीडियो का आकलन फ़्रेम के हिसाब से करती है. साथ ही, सिर्फ़ विज़ुअल कॉन्टेंट को ध्यान में रखती है. वीडियो के ऑडियो कॉम्पोनेंट का इस्तेमाल, अश्लील कॉन्टेंट के लेवल का आकलन करने के लिए नहीं किया जाता.
अश्लील कॉन्टेंट का पता लगाने के लिए, VideoIntApiDemo फ़ोल्डर में मौजूद Program.cs फ़ाइल पर जाएं और कोड को इससे बदलें:
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();
}
}
}
}
}
कोड को समझने के लिए एक या दो मिनट का समय लें. साथ ही, देखें कि अश्लील कॉन्टेंट का पता कैसे लगाया गया*.*
Cloud Shell में वापस जाकर, ऐप्लिकेशन चलाएं:
dotnet run
इसमें कुछ सेकंड लग सकते हैं. हालांकि, इसके बाद आपको यह आउटपुट दिखेगा:
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
खास जानकारी
इस चरण में, आपने Video Intelligence API का इस्तेमाल करके, किसी वीडियो में अश्लील कॉन्टेंट का पता लगाया. साफ़ तौर पर सेक्शुअल ऐक्ट दिखाने वाले कॉन्टेंट का पता लगाने के बारे में ज़्यादा जानें.
8. बधाई हो!
आपने C# का इस्तेमाल करके, Video Intelligence API का इस्तेमाल करने का तरीका सीखा!
व्यवस्थित करें
इस क्विकस्टार्ट में इस्तेमाल की गई संसाधनों के लिए, अपने Google Cloud Platform खाते से शुल्क न लिए जाने के लिए:
- Cloud Platform Console पर जाएं.
- वह प्रोजेक्ट चुनें जिसे बंद करना है. इसके बाद, सबसे ऊपर मौजूद ‘मिटाएं' पर क्लिक करें: इससे प्रोजेक्ट को मिटाने के लिए शेड्यूल कर दिया जाता है.
ज़्यादा जानें
- Google Cloud Video Intelligence API: https://cloud.google.com/video-intelligence/docs/
- Google Cloud Platform पर C#/.NET: https://cloud.google.com/dotnet/
- Google Cloud .NET क्लाइंट: https://googlecloudplatform.github.io/google-cloud-dotnet/
लाइसेंस
इस काम के लिए, Creative Commons एट्रिब्यूशन 2.0 जेनेरिक लाइसेंस के तहत लाइसेंस मिला है.