C# এর সাথে ভিডিও ইন্টেলিজেন্স API ব্যবহার করা

1. ওভারভিউ

Google ক্লাউড ভিডিও ইন্টেলিজেন্স API ডেভেলপারদের তাদের অ্যাপ্লিকেশনের অংশ হিসেবে Google ভিডিও বিশ্লেষণ প্রযুক্তি ব্যবহার করার অনুমতি দেয়।

এটি করতে ব্যবহার করা যেতে পারে:

REST API ব্যবহারকারীদের স্থানীয়ভাবে বা Google ক্লাউড স্টোরেজে সঞ্চিত ভিডিওগুলিকে সমগ্র ভিডিওর স্তরে, প্রতি বিভাগ, প্রতি শট এবং প্রতি ফ্রেমে প্রাসঙ্গিক তথ্য সহ টীকা করতে সক্ষম করে৷

এই কোডল্যাবে, আপনি C# এর সাথে ভিডিও ইন্টেলিজেন্স API ব্যবহার করার উপর ফোকাস করবেন। আপনি শিখবেন কিভাবে লেবেল, শট পরিবর্তন এবং স্পষ্ট বিষয়বস্তু সনাক্তকরণের জন্য ভিডিও বিশ্লেষণ করতে হয়।

আপনি কি শিখবেন

  • ক্লাউড শেল কিভাবে ব্যবহার করবেন
  • কিভাবে ভিডিও ইন্টেলিজেন্স API সক্ষম করবেন
  • কীভাবে API অনুরোধগুলি প্রমাণীকরণ করবেন
  • সি# এর জন্য গুগল ক্লাউড ক্লায়েন্ট লাইব্রেরি কীভাবে ইনস্টল করবেন
  • লেবেলগুলির জন্য ভিডিওগুলি কীভাবে বিশ্লেষণ করবেন
  • শট পরিবর্তনের জন্য ভিডিওগুলি কীভাবে বিশ্লেষণ করবেন
  • স্পষ্ট বিষয়বস্তু সনাক্তকরণের জন্য ভিডিওগুলি কীভাবে বিশ্লেষণ করবেন

আপনি কি প্রয়োজন হবে

  • একটি Google ক্লাউড প্ল্যাটফর্ম প্রকল্প
  • একটি ব্রাউজার, যেমন ক্রোম বা ফায়ারফক্স
  • C# ব্যবহার করে পরিচিতি

সমীক্ষা

আপনি কিভাবে এই টিউটোরিয়াল ব্যবহার করবেন?

শুধুমাত্র মাধ্যমে এটি পড়ুন এটি পড়ুন এবং ব্যায়াম সম্পূর্ণ করুন

আপনি C# এর সাথে আপনার অভিজ্ঞতাকে কীভাবে মূল্যায়ন করবেন?

নবজাতক মধ্যবর্তী দক্ষ

আপনি Google ক্লাউড প্ল্যাটফর্ম পরিষেবাগুলি ব্যবহার করার বিষয়ে আপনার অভিজ্ঞতাকে কীভাবে মূল্যায়ন করবেন?

নবজাতক মধ্যবর্তী দক্ষ

2. সেটআপ এবং প্রয়োজনীয়তা

স্ব-গতিসম্পন্ন পরিবেশ সেটআপ

  1. Google ক্লাউড কনসোলে সাইন-ইন করুন এবং একটি নতুন প্রকল্প তৈরি করুন বা বিদ্যমান একটি পুনরায় ব্যবহার করুন৷ আপনার যদি ইতিমধ্যেই একটি Gmail বা Google Workspace অ্যাকাউন্ট না থাকে, তাহলে আপনাকে অবশ্যই একটি তৈরি করতে হবে।

295004821bab6a87.png

37d264871000675d.png

96d86d3d5655cdbe.png

  • প্রকল্পের নাম এই প্রকল্পের অংশগ্রহণকারীদের জন্য প্রদর্শনের নাম। এটি একটি অক্ষর স্ট্রিং যা Google API দ্বারা ব্যবহৃত হয় না। আপনি সবসময় এটি আপডেট করতে পারেন.
  • প্রোজেক্ট আইডি সমস্ত Google ক্লাউড প্রোজেক্ট জুড়ে অনন্য এবং অপরিবর্তনীয় (সেট করার পরে পরিবর্তন করা যাবে না)। ক্লাউড কনসোল স্বয়ংক্রিয়ভাবে একটি অনন্য স্ট্রিং তৈরি করে; সাধারণত আপনি এটা কি যত্ন না. বেশিরভাগ কোডল্যাবে, আপনাকে আপনার প্রকল্প আইডি উল্লেখ করতে হবে (সাধারণত PROJECT_ID হিসাবে চিহ্নিত)। আপনি যদি জেনারেট করা আইডি পছন্দ না করেন, তাহলে আপনি অন্য একটি এলোমেলো আইডি তৈরি করতে পারেন। বিকল্পভাবে, আপনি নিজের চেষ্টা করতে পারেন, এবং এটি উপলব্ধ কিনা দেখতে পারেন। এই ধাপের পরে এটি পরিবর্তন করা যাবে না এবং প্রকল্পের সময়কালের জন্য থাকে।
  • আপনার তথ্যের জন্য, একটি তৃতীয় মান আছে, একটি প্রকল্প নম্বর , যা কিছু API ব্যবহার করে। ডকুমেন্টেশনে এই তিনটি মান সম্পর্কে আরও জানুন।
  1. এরপরে, ক্লাউড রিসোর্স/এপিআই ব্যবহার করতে আপনাকে ক্লাউড কনসোলে বিলিং সক্ষম করতে হবে। এই কোডল্যাবের মাধ্যমে চালানোর জন্য খুব বেশি খরচ হবে না, যদি কিছু হয়। এই টিউটোরিয়ালের বাইরে বিলিং এড়াতে সংস্থানগুলি বন্ধ করতে, আপনি আপনার তৈরি করা সংস্থানগুলি মুছতে বা প্রকল্প মুছতে পারেন। নতুন Google ক্লাউড ব্যবহারকারীরা $300 USD বিনামূল্যের ট্রায়াল প্রোগ্রামের জন্য যোগ্য৷

ক্লাউড শেল শুরু করুন

যদিও Google ক্লাউড আপনার ল্যাপটপ থেকে দূরবর্তীভাবে পরিচালিত হতে পারে, এই কোডল্যাবে আপনি Google ক্লাউড শেল ব্যবহার করবেন, একটি কমান্ড লাইন পরিবেশ যা ক্লাউডে চলছে।

ক্লাউড শেল সক্রিয় করুন

  1. ক্লাউড কনসোল থেকে, ক্লাউড শেল সক্রিয় করুন ক্লিক করুন d1264ca30785e435.png .

cb81e7c8e34bc8d.png

যদি এটি আপনার প্রথমবার ক্লাউড শেল শুরু হয়, তাহলে এটি কী তা বর্ণনা করে আপনাকে একটি মধ্যবর্তী স্ক্রীন উপস্থাপন করা হবে। যদি আপনি একটি মধ্যবর্তী স্ক্রীনের সাথে উপস্থাপিত হন, তবে চালিয়ে যান ক্লিক করুন।

d95252b003979716.png

ক্লাউড শেলের সাথে সংযোগ করতে এবং সংযোগ করতে এটির মাত্র কয়েক মুহূর্ত লাগবে৷

7833d5e1c5d18f54.png

এই ভার্চুয়াল মেশিনটি প্রয়োজনীয় সমস্ত বিকাশের সরঞ্জাম দিয়ে লোড করা হয়েছে। এটি একটি ক্রমাগত 5 GB হোম ডিরেক্টরি অফার করে এবং Google ক্লাউডে চলে, যা নেটওয়ার্ক কর্মক্ষমতা এবং প্রমাণীকরণকে ব্যাপকভাবে উন্নত করে। এই কোডল্যাবে আপনার অনেক কাজ, যদি সব না হয়, ব্রাউজার দিয়ে করা যেতে পারে।

একবার ক্লাউড শেলের সাথে সংযুক্ত হয়ে গেলে, আপনি দেখতে পাবেন যে আপনি প্রমাণীকৃত হয়েছেন এবং প্রকল্পটি আপনার প্রকল্প আইডিতে সেট করা আছে।

  1. আপনি প্রমাণীকৃত কিনা তা নিশ্চিত করতে ক্লাউড শেলে নিম্নলিখিত কমান্ডটি চালান:
gcloud auth list

কমান্ড আউটপুট

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

To set the active account, run:
    $ gcloud config set account `ACCOUNT`
  1. gcloud কমান্ড আপনার প্রকল্প সম্পর্কে জানে তা নিশ্চিত করতে ক্লাউড শেলে নিম্নলিখিত কমান্ডটি চালান:
gcloud config list project

কমান্ড আউটপুট

[core]
project = <PROJECT_ID>

যদি এটি না হয়, আপনি এই কমান্ড দিয়ে এটি সেট করতে পারেন:

gcloud config set project <PROJECT_ID>

কমান্ড আউটপুট

Updated property [core/project].

3. ভিডিও ইন্টেলিজেন্স API সক্ষম করুন৷

আপনি ভিডিও ইন্টেলিজেন্স API ব্যবহার শুরু করার আগে, আপনাকে অবশ্যই API সক্ষম করতে হবে। আপনি ক্লাউড শেলে নিম্নলিখিত কমান্ডটি ব্যবহার করে API সক্ষম করতে পারেন:

gcloud services enable videointelligence.googleapis.com

4. C# এর জন্য Google ক্লাউড ভিডিও ইন্টেলিজেন্স API ক্লায়েন্ট লাইব্রেরি ইনস্টল করুন

প্রথমে, একটি সাধারণ C# কনসোল অ্যাপ্লিকেশন তৈরি করুন যা আপনি ভিডিও ইন্টেলিজেন্স 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'.

এখন, আপনি ভিডিও ইন্টেলিজেন্স API ব্যবহার করতে প্রস্তুত!

5. লেবেল সনাক্তকরণ

লেবেল বিশ্লেষণ স্থানীয়ভাবে বা Google ক্লাউড স্টোরেজে সঞ্চিত একটি ভিডিওতে লেবেল সনাক্ত করে৷ এই বিভাগে, আপনি Google ক্লাউড স্টোরেজে সঞ্চিত লেবেলগুলির জন্য একটি ভিডিও বিশ্লেষণ করবেন৷

প্রথমে, ক্লাউড শেলের উপরের ডান দিক থেকে কোড এডিটর খুলুন:

fd3fc1303e63572.png

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

কোডটি অধ্যয়ন করতে এক বা দুই মিনিট সময় নিন এবং দেখুন কিভাবে ভিডিওটি* লেবেল করা হচ্ছে।*

ক্লাউড শেলে ফিরে, অ্যাপটি চালান:

dotnet run

ভিডিও ইন্টেলিজেন্স এপিআই-এর লেবেল বের করতে কয়েক সেকেন্ড সময় লাগে কিন্তু শেষ পর্যন্ত, আপনাকে নিম্নলিখিত আউটপুট দেখতে হবে:

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

সারাংশ

এই ধাপে, আপনি ভিডিও ইন্টেলিজেন্স API ব্যবহার করে একটি ভিডিওতে সমস্ত লেবেল তালিকাভুক্ত করতে সক্ষম হয়েছেন৷ আপনি লেবেল সনাক্তকরণ পৃষ্ঠায় আরও পড়তে পারেন।

6. শট পরিবর্তন সনাক্তকরণ

আপনি স্থানীয়ভাবে বা Google ক্লাউড স্টোরেজে সঞ্চিত একটি ভিডিওতে শট পরিবর্তন সনাক্ত করতে ভিডিও ইন্টেলিজেন্স API ব্যবহার করতে পারেন। এই বিভাগে, আপনি Google ক্লাউড স্টোরেজে অবস্থিত একটি ফাইলে শট পরিবর্তনের জন্য ভিডিও বিশ্লেষণ করবেন।

শট পরিবর্তনগুলি সনাক্ত করতে, 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);
                }
            }
        }
    }
}

কোডটি অধ্যয়ন করতে এক বা দুই মিনিট সময় নিন এবং শট সনাক্তকরণটি কীভাবে সঞ্চালিত হয় তা দেখুন।

ক্লাউড শেল-এ ফিরে যান, অ্যাপটি চালান। আপনি নিম্নলিখিত আউটপুট দেখতে হবে:

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 ক্লাউড স্টোরেজে সঞ্চিত একটি ফাইলে শট পরিবর্তন সনাক্ত করতে ভিডিও ইন্টেলিজেন্স 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();
                }
            }
        }
    }
}

কোডটি অধ্যয়ন করতে এক বা দুই মিনিট সময় নিন এবং দেখুন কীভাবে স্পষ্ট বিষয়বস্তু সনাক্তকরণ করা হয়েছে*।*

ক্লাউড শেলে ফিরে, অ্যাপটি চালান:

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

সারাংশ

এই ধাপে, আপনি ভিডিও ইন্টেলিজেন্স API ব্যবহার করে একটি ভিডিওতে স্পষ্ট বিষয়বস্তু সনাক্তকরণ করতে সক্ষম হয়েছেন। স্পষ্ট বিষয়বস্তু সনাক্তকরণ সম্পর্কে আরও পড়ুন।

8. অভিনন্দন!

আপনি শিখেছেন কিভাবে C# ব্যবহার করে ভিডিও ইন্টেলিজেন্স API ব্যবহার করতে হয়!

পরিষ্কার করুন

এই কুইকস্টার্টে ব্যবহৃত রিসোর্সের জন্য আপনার Google ক্লাউড প্ল্যাটফর্ম অ্যাকাউন্টে চার্জ এড়াতে:

  • ক্লাউড প্ল্যাটফর্ম কনসোলে যান।
  • আপনি যে প্রকল্পটি বন্ধ করতে চান সেটি নির্বাচন করুন, তারপরে শীর্ষে 'মুছুন' এ ক্লিক করুন: এটি মুছে ফেলার জন্য প্রকল্পের সময়সূচী করে।

আরও জানুন

লাইসেন্স

এই কাজটি ক্রিয়েটিভ কমন্স অ্যাট্রিবিউশন 2.0 জেনেরিক লাইসেন্সের অধীনে লাইসেন্সপ্রাপ্ত।