استفاده از Vision API با سی شارپ

1. بررسی اجمالی

Google Cloud Vision API به توسعه دهندگان این امکان را می دهد تا به راحتی ویژگی های تشخیص دید را در برنامه ها ادغام کنند، از جمله برچسب گذاری تصویر، تشخیص چهره و نقطه عطف، تشخیص نوری کاراکتر (OCR)، و برچسب گذاری محتوای صریح.

در این کد لبه شما بر روی استفاده از Vision API با سی شارپ تمرکز خواهید کرد. شما یاد خواهید گرفت که چگونه تشخیص متن، تشخیص نقطه عطف و تشخیص چهره را انجام دهید!

چیزی که یاد خواهید گرفت

  • نحوه استفاده از Cloud Shell
  • نحوه فعال کردن Google Cloud Vision API
  • نحوه احراز هویت درخواست های API
  • نحوه نصب کتابخانه مشتری Vision API برای سی شارپ
  • نحوه انجام تشخیص برچسب
  • نحوه انجام تشخیص متن
  • نحوه انجام تشخیص Landmark
  • نحوه انجام تشخیص چهره

آنچه شما نیاز دارید

  • یک پروژه Google Cloud Platform
  • یک مرورگر، مانند کروم یا فایرفاکس
  • آشنایی با سی شارپ

نظرسنجی

چگونه از این آموزش استفاده خواهید کرد؟

فقط از طریق آن را بخوانید آن را بخوانید و تمرینات را کامل کنید

به تجربه خود با سی شارپ چه امتیازی می دهید؟

تازه کار متوسط مسلط

تجربه خود را در استفاده از سرویس‌های پلتفرم ابری Google چگونه ارزیابی می‌کنید؟

تازه کار متوسط مسلط

2. راه اندازی و الزامات

تنظیم محیط خود به خود

  1. به Google Cloud Console وارد شوید و یک پروژه جدید ایجاد کنید یا از یک موجود استفاده مجدد کنید. اگر قبلاً یک حساب Gmail یا Google Workspace ندارید، باید یک حساب ایجاد کنید .

295004821bab6a87.png

37d264871000675d.png

96d86d3d5655cdbe.png

  • نام پروژه نام نمایشی برای شرکت کنندگان این پروژه است. این یک رشته کاراکتری است که توسط API های Google استفاده نمی شود. همیشه می توانید آن را به روز کنید.
  • شناسه پروژه در تمام پروژه‌های Google Cloud منحصربه‌فرد است و تغییرناپذیر است (پس از تنظیم نمی‌توان آن را تغییر داد). Cloud Console به طور خودکار یک رشته منحصر به فرد تولید می کند. معمولاً برای شما مهم نیست که چیست. در اکثر کدها، باید شناسه پروژه خود را ارجاع دهید (معمولاً با نام PROJECT_ID شناخته می شود). اگر شناسه تولید شده را دوست ندارید، ممکن است یک شناسه تصادفی دیگر ایجاد کنید. از طرف دیگر، می‌توانید خودتان را امتحان کنید، و ببینید آیا در دسترس است یا خیر. پس از این مرحله نمی توان آن را تغییر داد و در طول مدت پروژه باقی می ماند.
  • برای اطلاع شما، یک مقدار سوم وجود دارد، یک شماره پروژه ، که برخی از API ها از آن استفاده می کنند. در مورد هر سه این مقادیر در مستندات بیشتر بیاموزید.
  1. در مرحله بعد، برای استفاده از منابع Cloud/APIها باید صورتحساب را در کنسول Cloud فعال کنید . اجرا کردن از طریق این کد لبه هزینه زیادی نخواهد داشت. برای خاموش کردن منابع برای جلوگیری از تحمیل صورت‌حساب فراتر از این آموزش، می‌توانید منابعی را که ایجاد کرده‌اید حذف کنید یا پروژه را حذف کنید. کاربران جدید Google Cloud واجد شرایط برنامه آزمایشی رایگان 300 دلاری هستند.

Cloud Shell را راه اندازی کنید

در حالی که Google Cloud را می توان از راه دور از لپ تاپ شما کار کرد، در این کد لبه از Google Cloud Shell استفاده خواهید کرد، یک محیط خط فرمان که در Cloud اجرا می شود.

Cloud Shell را فعال کنید

  1. از Cloud Console، روی Activate Cloud Shell کلیک کنید d1264ca30785e435.png .

cb81e7c8e34bc8d.png

اگر این اولین باری است که Cloud Shell را راه اندازی می کنید، با یک صفحه میانی روبرو می شوید که آن را توصیف می کند. اگر با یک صفحه میانی مواجه شدید، روی Continue کلیک کنید.

d95252b003979716.png

تهیه و اتصال به Cloud Shell فقط باید چند لحظه طول بکشد.

7833d5e1c5d18f54.png

این ماشین مجازی با تمام ابزارهای توسعه مورد نیاز بارگذاری شده است. این یک فهرست اصلی 5 گیگابایتی دائمی ارائه می‌کند و در Google Cloud اجرا می‌شود، که عملکرد و احراز هویت شبکه را بسیار افزایش می‌دهد. بسیاری از کارهای شما، اگر نه همه، در این کد لبه با مرورگر قابل انجام است.

پس از اتصال به Cloud Shell، باید ببینید که احراز هویت شده اید و پروژه به ID پروژه شما تنظیم شده است.

  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 استفاده کنید، باید API را فعال کنید. با استفاده از Cloud Shell، می توانید API را با استفاده از دستور زیر فعال کنید:

gcloud services enable vision.googleapis.com

4. کتابخانه سرویس گیرنده Google Cloud Vision API را برای C# نصب کنید

ابتدا یک برنامه کنسول 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

به فایل Program.cs داخل پوشه VisionApiDemo بروید و کد زیر را جایگزین کنید:

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 تشخیص نوری کاراکتر را انجام می دهد. با پشتیبانی از طیف گسترده ای از زبان ها، متن را در یک تصویر شناسایی و استخراج می کند. همچنین دارای شناسایی خودکار زبان است.

در این مثال، تشخیص متن را روی تصویری از صفحه به‌روزرسانی نرم‌افزار سیستم انجام خواهید داد.

به فایل Program.cs داخل پوشه VisionApiDemo بروید و کد زیر را جایگزین کنید:

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

خلاصه

در این مرحله، می‌توانید تشخیص متن را روی تصویری از Otter Crossing انجام دهید و متن شناسایی شده را از تصویر چاپ کنید. درباره تشخیص متن بیشتر بخوانید.

7. تشخیص نقطه عطف را انجام دهید

Vision API's Landmark Detection ساختارهای طبیعی و مصنوعی محبوب را در یک تصویر تشخیص می دهد.

در این مثال، شما تشخیص نقطه عطفی را بر روی تصویری از برج ایفل انجام خواهید داد.

به فایل Program.cs داخل پوشه VisionApiDemo بروید و کد زیر را جایگزین کنید:

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. تشخیص چهره احساسی را انجام دهید

تشخیص چهره چندین چهره را در یک تصویر به همراه ویژگی‌های کلیدی چهره مانند حالت احساسی یا پوشیدن لباس سر شناسایی می‌کند.

در این مثال، احتمال حالت عاطفی را از چهار احتمال هیجانی مختلف از جمله: شادی، خشم، غم و تعجب تشخیص خواهید داد.

به فایل Program.cs داخل پوشه VisionApiDemo بروید و کد زیر را جایگزین کنید:

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. تبریک!

شما یاد گرفتید که چگونه از Vision API با استفاده از سی شارپ برای انجام تشخیص های مختلف روی تصاویر استفاده کنید!

تمیز کردن

برای جلوگیری از تحمیل هزینه به حساب Google Cloud Platform برای منابع استفاده شده در این شروع سریع:

  • به کنسول Cloud Platform بروید.
  • پروژه‌ای را که می‌خواهید تعطیل کنید انتخاب کنید، سپس روی «حذف» در بالا کلیک کنید: با این کار، پروژه برای حذف برنامه‌ریزی می‌شود.

بیشتر بدانید

مجوز

این اثر تحت مجوز Creative Commons Attribution 2.0 Generic مجوز دارد.