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 खाता नहीं है, तो आपको एक खाता बनाना होगा.

295004821bab6a87.png

37d264871000675d.png

96d86d3d5655cdbe.png

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

Cloud Shell शुरू करें

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

Cloud Shell चालू करें

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

cb81e7c8e34bc8d.png

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

d95252b003979716.png

Cloud Shell से कनेक्ट होने में कुछ ही सेकंड लगेंगे.

7833d5e1c5d18f54.png

इस वर्चुअल मशीन में, डेवलपमेंट के लिए ज़रूरी सभी टूल पहले से मौजूद हैं. यह 5 जीबी की होम डायरेक्ट्री उपलब्ध कराता है, जो हमेशा बनी रहती है. साथ ही, यह 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. यह पुष्टि करने के लिए कि gcloud कमांड को आपके प्रोजेक्ट के बारे में पता है, Cloud Shell में यह कमांड चलाएं:
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, इनपुट इमेज लेता है और उस इमेज पर लागू होने वाले सबसे संभावित लेबल दिखाता है. यह इमेज से सबसे ज़्यादा मिलते-जुलते लेबल दिखाता है. साथ ही, इमेज से लेबल के मैच होने का कॉन्फ़िडेंस स्कोर भी दिखाता है.

इस उदाहरण में, आपको शंघाई की सड़क की एक इमेज पर लेबल का पता लगाना है. Cloud Shell में सबसे ऊपर दाईं ओर मौजूद कोड एडिटर खोलें:

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 Console पर जाएं.
  • वह प्रोजेक्ट चुनें जिसे बंद करना है. इसके बाद, सबसे ऊपर मौजूद ‘मिटाएं' पर क्लिक करें: इससे प्रोजेक्ट को मिटाने के लिए शेड्यूल कर दिया जाता है.

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

लाइसेंस

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