C# के साथ Vision API का इस्तेमाल करना

1. खास जानकारी

Google Cloud Vision API की मदद से डेवलपर, ऐप्लिकेशन में दृष्टि की पहचान करने वाली सुविधाओं को आसानी से इंटिग्रेट कर सकते हैं. इनमें इमेज को लेबल करना, चेहरे और लैंडमार्क की पहचान करना, ऑप्टिकल कैरेक्टर रिकग्निशन (ओसीआर), और अश्लील कॉन्टेंट को टैग करना शामिल है.

इस कोडलैब में, C# के साथ Vision API के इस्तेमाल पर ध्यान दिया जाएगा. आप टेक्स्ट की पहचान, लैंडमार्क की पहचान, और चेहरे की पहचान करने की सुविधाओं के बारे में जानें!

आपको इनके बारे में जानकारी मिलेगी

  • Cloud Shell का इस्तेमाल कैसे करें
  • Google Cloud Vision API को चालू करने का तरीका
  • एपीआई अनुरोधों की पुष्टि करने का तरीका
  • C# के लिए Vision API क्लाइंट लाइब्रेरी इंस्टॉल करने का तरीका
  • लेबल की पहचान कैसे करें
  • टेक्स्ट की पहचान करने का तरीका
  • लैंडमार्क की पहचान करने का तरीका
  • चेहरे की पहचान करने वाली सुविधा इस्तेमाल करने का तरीका

आपको इन चीज़ों की ज़रूरत होगी

  • Google Cloud Platform प्रोजेक्ट
  • ब्राउज़र, जैसे कि Chrome या Firefox
  • C# का इस्तेमाल करना कितना आसान है

सर्वे

इस ट्यूटोरियल का इस्तेमाल कैसे किया जाएगा?

इसे सिर्फ़ पढ़ें इसे पढ़ें और कसरतों को पूरा करें

C# का इस्तेमाल करने का आपका अनुभव कैसा रहा?

शुरुआती इंटरमीडिएट कुशल

Google Cloud Platform की सेवाएं इस्तेमाल करने का आपका अनुभव कैसा रहा?

शुरुआती इंटरमीडिएट कुशल

2. सेटअप और ज़रूरी शर्तें

अपने हिसाब से एनवायरमेंट सेटअप करना

  1. Google Cloud Console में साइन इन करें और नया प्रोजेक्ट बनाएं या किसी मौजूदा प्रोजेक्ट का फिर से इस्तेमाल करें. अगर आपके पास पहले से Gmail या Google Workspace खाता नहीं है, तो आपको नया खाता बनाना होगा.

295004821बाबा6a87.png

37d264871000675d.png

96d86d3d5655cdbe.png

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

Cloud Shell शुरू करना

Google Cloud को आपके लैपटॉप से, कहीं से भी ऑपरेट किया जा सकता है. हालांकि, इस कोडलैब में Google Cloud Shell का इस्तेमाल किया जा रहा है. यह क्लाउड में चलने वाला कमांड लाइन एनवायरमेंट है.

Cloud Shell चालू करें

  1. Cloud Console में, Cloud Shell चालू करें d1264ca30785e435.png पर क्लिक करें.

cb81e7c8e34bc8d.png

अगर आपने Cloud Shell का इस्तेमाल पहली बार किया है, तो आपको बीच में आने वाली स्क्रीन दिखेगी. इसमें यह बताया जाएगा कि यह क्या है. अगर आपको बीच के लेवल पर मिलने वाली स्क्रीन दिखती है, तो जारी रखें पर क्लिक करें.

d95252b003979716.png

प्रावधान करने और Cloud Shell से कनेक्ट होने में कुछ ही समय लगेगा.

7833d5e1c5d18f54.png

इस वर्चुअल मशीन में डेवलपमेंट के सभी ज़रूरी टूल मौजूद हैं. इसमें लगातार पांच जीबी की होम डायरेक्ट्री मिलती है और यह Google Cloud में काम करती है. यह नेटवर्क की परफ़ॉर्मेंस और ऑथेंटिकेशन को बेहतर बनाने में मदद करती है. अगर सभी नहीं, तो इस कोडलैब में आपका बहुत सारा काम ब्राउज़र से किया जा सकता है.

Cloud Shell से कनेक्ट करने के बाद, आपको दिखेगा कि आपकी पुष्टि हो चुकी है और प्रोजेक्ट आपके प्रोजेक्ट आईडी पर सेट है.

  1. यह पुष्टि करने के लिए 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`
  1. Cloud Shell में यह कमांड चलाएं, ताकि यह पुष्टि की जा सके कि gcloud के लिए कमांड को आपके प्रोजेक्ट के बारे में जानकारी है:
gcloud config list project

कमांड आउटपुट

[core]
project = <PROJECT_ID>

अगर ऐसा नहीं है, तो आप इसे इस निर्देश की मदद से सेट कर सकते हैं:

gcloud config set project <PROJECT_ID>

कमांड आउटपुट

Updated property [core/project].

3. Vision API चालू करें

Vision API का इस्तेमाल शुरू करने से पहले, आपको इस एपीआई को चालू करना होगा. Cloud Shell का इस्तेमाल करके, नीचे दिए गए कमांड का इस्तेमाल करके एपीआई को चालू किया जा सकता है:

gcloud services enable vision.googleapis.com

4. C# के लिए, Google Cloud Vision API क्लाइंट लाइब्रेरी इंस्टॉल करें

सबसे पहले, एक आसान C# कंसोल ऐप्लिकेशन बनाएं, जिसका इस्तेमाल आप Vision 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'.

अब आप Vision API का इस्तेमाल करने के लिए तैयार हैं!

5. लेबल की पहचान करें

Vision API की एक बुनियादी सुविधा, इमेज में मौजूद ऑब्जेक्ट या इकाइयों की पहचान करना है. इसे लेबल एनोटेशन कहा जाता है. लेबल की पहचान करने से सामान्य चीज़ों, जगहों, गतिविधियों, जानवरों की प्रजातियों, प्रॉडक्ट वगैरह की पहचान होती है. 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# लाइब्रेरी का इस्तेमाल कैसे किया जाता है.

Cloud Shell पर वापस जाकर, इस ऐप्लिकेशन को चलाएं:

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

थोड़ा समय निकालकर कोड को पढ़ें और देखें कि टेक्स्ट की पहचान करने के लिए, Vision API C# लाइब्रेरी का इस्तेमाल कैसे किया जाता है.

Cloud Shell पर वापस जाकर, इस ऐप्लिकेशन को चलाएं:

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. लैंडमार्क की पहचान करने की सुविधा चालू करें

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/eiffel_tower.jpg");
            var response = client.DetectLandmarks(image);
            foreach (var annotation in response)
            {
                if (annotation.Description != null)
                {
                    Console.WriteLine(annotation.Description);
                }
            }
        }
    }
}

थोड़ा समय निकालकर कोड को पढ़ें और देखें कि लैंडमार्क की पहचान करने के लिए, Vision API C# लाइब्रेरी का इस्तेमाल कैसे किया जाता है.

Cloud Shell पर वापस जाकर, इस ऐप्लिकेशन को चलाएं:

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

थोड़ा समय निकालकर कोड को अच्छी तरह से समझ लें और देखें कि भावनात्मक चेहरे की पहचान करने के लिए Vision API C# लाइब्रेरी का इस्तेमाल कैसे किया जाता है.

ऐप्लिकेशन चलाएं;

dotnet run

आपको हमारे face_no_surprise उदाहरण के लिए यह आउटपुट देखना चाहिए:

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

खास जानकारी

इस चरण में, भावनात्मक चेहरे की पहचान की जा सकती है. चेहरे की पहचान करने की सुविधा के बारे में और पढ़ें.

9. बधाई हो!

आपने सीख लिया है कि इमेज को अलग-अलग तरह से पहचानने के लिए, C# का इस्तेमाल करके Vision API का इस्तेमाल कैसे करें!

व्यवस्थित करें

इस क्विकस्टार्ट में इस्तेमाल किए गए संसाधनों के लिए, आपके Google Cloud Platform खाते पर लगने वाले शुल्क से बचने के लिए:

  • Cloud Platform कंसोल पर जाएं.
  • वह प्रोजेक्ट चुनें जिसे शट डाउन करना है. इसके बाद, ‘मिटाएं' पर क्लिक करें सबसे ऊपर: यह प्रोजेक्ट को मिटाने के लिए शेड्यूल करता है.

ज़्यादा जानें

लाइसेंस

इस काम को क्रिएटिव कॉमंस एट्रिब्यूशन 2.0 जेनरिक लाइसेंस के तहत लाइसेंस मिला है.