C# এর সাথে ভিশন API ব্যবহার করা

১. সংক্ষিপ্ত বিবরণ

গুগল ক্লাউড ভিশন এপিআই ডেভেলপারদের অ্যাপ্লিকেশনগুলিতে সহজেই ভিশন ডিটেকশন ফিচারগুলি ইন্টিগ্রেট করার সুযোগ দেয়, যার মধ্যে রয়েছে ইমেজ লেবেলিং, ফেস ও ল্যান্ডমার্ক ডিটেকশন, অপটিক্যাল ক্যারেক্টার রিকগনিশন (OCR), এবং এক্সপ্লিসিট কন্টেন্টের ট্যাগিং।

এই কোডল্যাবে আপনি C# এর সাথে ভিশন এপিআই (Vision API) ব্যবহার করার উপর মনোযোগ দেবেন। আপনি শিখবেন কীভাবে টেক্সট ডিটেকশন, ল্যান্ডমার্ক ডিটেকশন এবং ফেস ডিটেকশন করতে হয়!

আপনি যা শিখবেন

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

আপনার যা যা লাগবে

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

জরিপ

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

শুধু পুরোটা পড়ুন এটি পড়ুন এবং অনুশীলনগুলো সম্পূর্ণ করুন।

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

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

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

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

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

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

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

295004821bab6a87.png

37d264871000675d.png

96d86d3d5655cdbe.png

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

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

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

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

  1. ক্লাউড কনসোল থেকে, Activate Cloud Shell-এ ক্লিক করুন। d1264ca30785e435.png .

cb81e7c8e34bc8d.png

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

d95252b003979716.png

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

7833d5e1c5d18f54.png

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

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

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

৩. ভিশন এপিআই সক্রিয় করুন

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

gcloud services enable vision.googleapis.com

৪. C# এর জন্য Google Cloud Vision API ক্লায়েন্ট লাইব্রেরি ইনস্টল করুন।

প্রথমে, একটি সহজ C# কনসোল অ্যাপ্লিকেশন তৈরি করুন যা আপনি ভিশন এপিআই স্যাম্পলগুলো চালানোর জন্য ব্যবহার করবেন:

dotnet new console -n VisionApiDemo

অ্যাপ্লিকেশনটি তৈরি হতে এবং নির্ভরতাগুলো সমাধান হতে দেখবেন:

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

এরপর, VisionApiDemo ফোল্ডারে যান:

cd VisionApiDemo/

এবং প্রজেক্টে Google.Cloud.Vision.V1 NuGet প্যাকেজটি যোগ করুন:

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

এখন, আপনি ভিশন এপিআই ব্যবহার করার জন্য প্রস্তুত!

৫. লেবেল সনাক্তকরণ সম্পাদন করুন

ভিশন এপিআই-এর অন্যতম মৌলিক বৈশিষ্ট্য হলো কোনো ছবিতে থাকা বস্তু বা সত্তা শনাক্ত করা, যা লেবেল অ্যানোটেশন নামে পরিচিত। লেবেল ডিটেকশনের মাধ্যমে সাধারণ বস্তু, স্থান, কার্যকলাপ, প্রাণীর প্রজাতি, পণ্য এবং আরও অনেক কিছু শনাক্ত করা যায়। ভিশন এপিআই একটি ইনপুট ছবি গ্রহণ করে এবং সেই ছবির জন্য প্রযোজ্য সবচেয়ে সম্ভাব্য লেবেলগুলো ফেরত দেয়। এটি ছবির সাথে মিলের কনফিডেন্স স্কোরসহ সর্বোচ্চ মিলে যাওয়া লেবেলগুলো ফেরত দেয়।

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

92ea233083f961c5.png

VisionApiDemo ফোল্ডারের ভিতরে থাকা Program.cs ফাইলটিতে যান এবং কোডটি নিম্নলিখিত কোড দিয়ে প্রতিস্থাপন করুন:

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

এক বা দুই মিনিট সময় নিয়ে কোডটি দেখুন এবং লেবেল শনাক্তকরণের জন্য কীভাবে ভিশন এপিআই সি# লাইব্রেরি ব্যবহার করা হয়েছে তা লক্ষ্য করুন।

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

dotnet run 

আপনি নিম্নলিখিত আউটপুট দেখতে পাবেন:

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

সারসংক্ষেপ

এই ধাপে, আপনি চীনের একটি রাস্তার দৃশ্যের ছবিতে লেবেল ডিটেকশন করতে এবং সেই ছবির সাথে সম্পর্কিত সবচেয়ে সম্ভাব্য লেবেলগুলো প্রদর্শন করতে সক্ষম হয়েছেন। লেবেল ডিটেকশন সম্পর্কে আরও পড়ুন।

৬. পাঠ্য সনাক্তকরণ সম্পাদন করুন

ভিশন এপিআই-এর টেক্সট ডিটেকশন অপটিক্যাল ক্যারেক্টার রিকগনিশন (OCR) সম্পাদন করে। এটি বিস্তৃত পরিসরের ভাষা সমর্থনসহ একটি ছবির মধ্যে থেকে টেক্সট শনাক্ত ও নিষ্কাশন করে। এতে স্বয়ংক্রিয় ভাষা শনাক্তকরণের সুবিধাও রয়েছে।

এই উদাহরণে, আপনি একটি সিস্টেম সফটওয়্যার আপডেট স্ক্রিনের ইমেজের উপর টেক্সট ডিটেকশন করবেন।

VisionApiDemo ফোল্ডারের ভিতরে থাকা Program.cs ফাইলটিতে যান এবং কোডটি নিম্নলিখিত কোড দিয়ে প্রতিস্থাপন করুন:

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

এক বা দুই মিনিট সময় নিয়ে কোডটি দেখুন এবং টেক্সট ডিটেকশনের জন্য কীভাবে ভিশন এপিআই সি# লাইব্রেরি ব্যবহার করা হয়েছে তা লক্ষ্য করুন।

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

dotnet run 

আপনি নিম্নলিখিত আউটপুট দেখতে পাবেন:

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

সারসংক্ষেপ

এই ধাপে, আপনি একটি ওটার ক্রসিং-এর ছবিতে টেক্সট ডিটেকশন করতে এবং ছবিটি থেকে শনাক্ত করা টেক্সট প্রিন্ট করতে সক্ষম হয়েছেন। টেক্সট ডিটেকশন সম্পর্কে আরও পড়ুন।

৭. ল্যান্ডমার্ক সনাক্তকরণ সম্পাদন করুন

ভিশন এপিআই-এর ল্যান্ডমার্ক ডিটেকশন একটি ছবির মধ্যে জনপ্রিয় প্রাকৃতিক এবং মানবসৃষ্ট স্থাপনাগুলো শনাক্ত করে।

এই উদাহরণে, আপনি আইফেল টাওয়ারের একটি ছবির উপর ল্যান্ডমার্ক ডিটেকশন করবেন।

VisionApiDemo ফোল্ডারের ভিতরে থাকা Program.cs ফাইলটিতে যান এবং কোডটি নিম্নলিখিত কোড দিয়ে প্রতিস্থাপন করুন:

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

এক বা দুই মিনিট সময় নিয়ে কোডটি দেখুন এবং ল্যান্ডমার্ক ডিটেকশন করতে কীভাবে ভিশন এপিআই সি# লাইব্রেরি ব্যবহার করা হয়েছে তা লক্ষ্য করুন।

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

dotnet run

আপনি নিম্নলিখিত আউটপুট দেখতে পাবেন:

Eiffel Tower

সারসংক্ষেপ

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

৮. আবেগপূর্ণ মুখমণ্ডল শনাক্তকরণ সম্পাদন করুন

ফেস ডিটেকশন একটি ছবির মধ্যে একাধিক মুখ এবং সেই সাথে মুখের সংশ্লিষ্ট মূল বৈশিষ্ট্যগুলো, যেমন—আবেগীয় অবস্থা বা মাথায় কোনো কিছু পরা আছে কিনা, তা শনাক্ত করে।

এই উদাহরণে, আপনি আনন্দ, রাগ, দুঃখ এবং বিস্ময় সহ চারটি ভিন্ন আবেগীয় অবস্থা থেকে একটি আবেগীয় অবস্থার সম্ভাবনা নির্ণয় করবেন।

VisionApiDemo ফোল্ডারের ভিতরে থাকা Program.cs ফাইলটিতে যান এবং কোডটি নিম্নলিখিত কোড দিয়ে প্রতিস্থাপন করুন:

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

এক বা দুই মিনিট সময় নিয়ে কোডটি দেখুন এবং জানুন কীভাবে আবেগপূর্ণ মুখমণ্ডল শনাক্ত করতে ভিশন এপিআই সি# লাইব্রেরিটি ব্যবহার করা হয়েছে।

অ্যাপটি চালান।

dotnet run

আমাদের face_no_surprise উদাহরণটির জন্য আপনি নিম্নলিখিত আউটপুটটি দেখতে পাবেন:

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

সারসংক্ষেপ

এই ধাপে, আপনি আবেগপূর্ণ মুখমণ্ডল শনাক্ত করতে সক্ষম হয়েছেন। মুখমণ্ডল শনাক্তকরণ সম্পর্কে আরও পড়ুন।

৯. অভিনন্দন!

আপনি শিখেছেন কীভাবে C# ব্যবহার করে ভিশন এপিআই (Vision API) দিয়ে ছবির উপর বিভিন্ন ডিটেকশন (detection) করতে হয়!

পরিষ্কার করা

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

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

আরও জানুন

লাইসেন্স

এই কাজটি ক্রিয়েটিভ কমন্স অ্যাট্রিবিউশন ২.০ জেনেরিক লাইসেন্সের অধীনে রয়েছে।