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

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

এই কোডল্যাব সম্পর্কে

subjectজুন ২৬, ২০২৩-এ শেষবার আপডেট করা হয়েছে
account_circleMete Atamel-এর লেখা

1. ওভারভিউ

Google ক্লাউড ভিশন API ডেভেলপারদের সহজেই অ্যাপ্লিকেশনগুলির মধ্যে দৃষ্টি সনাক্তকরণ বৈশিষ্ট্যগুলিকে একীভূত করতে দেয়, যার মধ্যে রয়েছে চিত্র লেবেলিং, মুখ এবং ল্যান্ডমার্ক সনাক্তকরণ, অপটিক্যাল ক্যারেক্টার রিকগনিশন (OCR), এবং স্পষ্ট বিষয়বস্তুর ট্যাগিং।

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

  • ক্লাউড শেল কিভাবে ব্যবহার করবেন
  • গুগল ক্লাউড ভিশন এপিআই কীভাবে সক্ষম করবেন
  • কীভাবে API অনুরোধগুলি প্রমাণীকরণ করবেন
  • কিভাবে C# এর জন্য ভিশন 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 vision.googleapis.com

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

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

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

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

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

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

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

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

কোডটি অধ্যয়ন করতে এক বা দুই মিনিট সময় নিন এবং দেখুন কিভাবে Vision API C# লাইব্রেরি লেবেল সনাক্তকরণ সম্পাদন করতে ব্যবহৃত হয়।

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

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

সারাংশ

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

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

Vision API এর টেক্সট ডিটেকশন অপটিক্যাল ক্যারেক্টার রিকগনিশন করে। এটি ভাষার বিস্তৃত পরিসরের সমর্থন সহ একটি চিত্রের মধ্যে পাঠ্য সনাক্ত করে এবং বের করে। এটি স্বয়ংক্রিয় ভাষা সনাক্তকরণের বৈশিষ্ট্যও রয়েছে।

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

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

কোডটি অধ্যয়ন করতে এক বা দুই মিনিট সময় নিন এবং দেখুন কিভাবে ভিশন API C# লাইব্রেরি পাঠ্য সনাক্তকরণ সম্পাদন করতে ব্যবহৃত হয়।

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

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

সারাংশ

এই ধাপে, আপনি একটি অটার ক্রসিং-এর একটি ছবিতে পাঠ্য সনাক্তকরণ সম্পাদন করতে এবং চিত্র থেকে স্বীকৃত পাঠ্য মুদ্রণ করতে সক্ষম হয়েছেন। পাঠ্য সনাক্তকরণ সম্পর্কে আরও পড়ুন।

7. ল্যান্ডমার্ক সনাক্তকরণ সঞ্চালন

ভিশন API এর ল্যান্ডমার্ক ডিটেকশন একটি চিত্রের মধ্যে জনপ্রিয় প্রাকৃতিক এবং মনুষ্যসৃষ্ট কাঠামো সনাক্ত করে।

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

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

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

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

dotnet run

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

Eiffel Tower

সারাংশ

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

8. আবেগপূর্ণ মুখ সনাক্তকরণ সঞ্চালন

ফেস ডিটেকশন একটি ইমেজের মধ্যে একাধিক মুখের সাথে সম্পর্কিত মুখের বৈশিষ্ট্য যেমন আবেগপূর্ণ অবস্থা বা হেডওয়্যার পরা শনাক্ত করে।

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

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

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

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

dotnet run

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

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

সারাংশ

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

9. অভিনন্দন!

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

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

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

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

আরও জানুন

লাইসেন্স

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