با انتشار Aspose.Imaging Cloud 20.5، خوشحالیم که ویژگی تشخیص اشیا در تصاویر را اعلام کنیم. این به کاربران امکان می دهد تا مرزهای شی را بر روی یک تصویر ورودی بر اساس برچسب ها و احتمالات خود تشخیص دهند. پیاده‌سازی کنونی از [روش آشکارساز تک شات1 برای تشخیص اشیایی که مدل با استفاده از مجموعه داده COCO 2017 آموزش داده شده است، پشتیبانی می‌کند. رویکرد SSD فضای خروجی جعبه‌های مرزی را به مجموعه‌ای از جعبه‌های پیش‌فرض بر روی نسبت‌ها و مقیاس‌های مختلف در هر مکان نقشه ویژگی تفکیک می‌کند.

Aspose.Imaging Cloud تشخیص شی را بر اساس 4 روش زیر انجام می دهد:

  1. اشیاء روی یک تصویر موجود را شناسایی کنید و نتایج را به عنوان یک شی JSON برگردانید
  2. اشیاء روی یک تصویر موجود را شناسایی کنید و نتایج را به صورت تصویر برگردانید
  3. یک تصویر آپلود کنید، اشیاء روی آن را شناسایی کنید و نتایج را به عنوان یک شی JSON برگردانید
  4. یک تصویر را آپلود کنید، اشیاء روی آن را شناسایی کنید و نتایج را به صورت تصویر برگردانید

در این بخش قصد داریم در مورد بخش های زیر با جزئیات بیشتر صحبت کنیم

تشخیص محدوده شی

این رویکرد اشیاء روی یک تصویر موجود را شناسایی می کند و نتیجه را به عنوان یک شی JSON برمی گرداند.

درخواست پارامترهای پرس و جو:

  • نام (رشته، مورد نیاز): نام تصویر. در حال حاضر، ما از 3 فرمت تصویر پشتیبانی می کنیم: BMP، JPEG، و JPEG 2000.
  • روش (رشته، اختیاری، پیش فرض “ssd”): روش تشخیص شی.
  • آستانه (تعداد، اختیاری، [0 - 100]، پیش فرض 50): حداقل احتمال اشیاء شناسایی شده در درصدی که در نتیجه گنجانده می شود.
  • includeLabel (بولی، اختیاری، نادرست پیش‌فرض): آیا باید برچسب‌های شی شناسایی شده در پاسخ گنجانده شود.
  • شامل امتیاز (بولی، اختیاری، نادرست پیش‌فرض): آیا باید احتمالات شی شناسایی شده در پاسخ گنجانده شود.
  • پوشه (رشته، اختیاری): پوشه.
  • ذخیره سازی (رشته، اختیاری): ذخیره سازی.

تشخیص شی با استفاده از دستور cURL

Aspose.Imaging Cloud همچنین با استفاده از دستورات cURL قابل دسترسی است. دستور زیر نشان می دهد که چگونه می توان از دستور cURL برای شناسایی یک شی و دریافت پاسخ به عنوان یک شی JSON استفاده کرد.

ما از تصویر زیر برای شناسایی شی استفاده می کنیم.

نمونه تصویر گربه

تصویر 1: - تصویر منبع

curl "https://api.aspose.cloud/v3.0/imaging/ai/objectdetection/cat-pet-animal-domestic-104827.jpeg/bounds?method=ssd&threshold=50&includeLabel=true&includeScore=true" \
-X GET \
-H "accept: application/json" \
-H "authorization: Bearer <jwt token>"

درخواست URL

https://api.aspose.cloud/v3.0/imaging/ai/objectdetection/cat-pet-animal-domestic-104827.jpeg/bounds?method=ssd&threshold=50&includeLabel=true&includeScore=true

بدنه پاسخگویی

{
  "detectedObjects": [
    {
      "label": "cat",
      "score": 0.9450986,
      "bounds": {
        "x": 43,
        "y": 4,
        "width": 401,
        "height": 323
      }
    }
  ]
}

طرح واره پاسخ

{
    "type": "object",
    "properties": {
        "detectedObjects": {
            "type": "array",
            "items": [
                {
                    "type": "object",
                    "properties": {
                        "score": {
                            "type": "number"
                        },
                        "label": {
                            "type": "string"
                        },
                        "bounds": {
                            "type": "object",
                            "properties": {
                                "x": {
                                    "type": "number"
                                },
                                "y": {
                                    "type": "number"
                                },
                                "width": {
                                    "type": "number"
                                },
                                "height": {
                                    "type": "number"
                                }
                            },
                            "required": [
                                "x",
                                "y",
                                "width",
                                "height"
                            ]
                        }
                    },
                    "required": [
                        "score",
                        "label",
                        "bounds"
                    ]
                }
            ]
        }
    },
    "required": [
        "detectedObjects"
    ]
}

تشخیص اشیا در تصاویر با استفاده از C#

لطفاً از قطعه کد زیر برای تشخیص شی در تصاویر با استفاده از قطعه کد C# استفاده کنید.

قطعه کد C#.NET

///<summary>
/// تشخیص اشیاء روی یک تصویر از فضای ذخیره سازی ابری.
///</summary>
public static void DetectObjectsImageFromStorage()
{
    string MyAppKey = "xxxxx";   // Get AppKey and AppSID from https://dashboard.aspose.cloud/
    string MyAppSid = "xxxxx";   // Get AppKey and AppSID from https://dashboard.aspose.cloud/

    string method = "ssd";
    int threshold = 50;
    bool includeLabel = true;
    bool includeScore = true;
    string folder = "";    // Input file is saved at default folder in the storage
    string storage = null; // We are using default Cloud Storage

    // شیء Aspose.Imaging Cloud را مقداردهی کنید
    ImagingApi imagingApi = new ImagingApi(appKey: MyAppKey, appSid: MyAppSid, debug: false);
    imagingApi.UploadFile(new Aspose.Imaging.Cloud.Sdk.Model.Requests.UploadFileRequest("dog-and-cat-cover.jpg", File.Open("dog-and-cat-cover.jpg", FileMode.Open), null));

    var request = new Aspose.Imaging.Cloud.Sdk.Model.Requests.GetObjectBoundsRequest("dog-and-cat-cover.jpg", method, threshold, includeLabel, includeScore, folder, storage);
    Console.WriteLine($"Call ObjectBoundsRequest with params: method:{method}, threshold:{threshold}, include label: {includeLabel}, includeScore: {includeScore}");
    Aspose.Imaging.Cloud.Sdk.Model.DetectedObjectList detectedObjectList = imagingApi.GetObjectBounds(request);
    // دریافت تعداد اشیاء در فایل تصویری
    Console.WriteLine("Objects detected: " + detectedObjectList.DetectedObjects.Count);
}

محدوده شی را شناسایی کرده و به عنوان تصویر برگردانید

یک تصویر را آپلود کنید، اشیا را شناسایی کنید، اطراف آنها را ترسیم کنید و نتیجه را به صورت تصویر برمی گرداند.

درخواست پارامترهای پرس و جو:

  • نام (رشته، مورد نیاز): نام تصویر. در حال حاضر، 3 فرمت تصویر پشتیبانی می شود: bmp، jpg، jpeg و jpeg2000.
  • روش (رشته، اختیاری، [“ssd”]، پیش فرض “ssd”): روش تشخیص شی.
  • آستانه (تعداد، اختیاری، [0 - 100]، پیش فرض 50): حداقل احتمال اشیاء بر حسب درصد که در نتیجه گنجانده می شود.
  • includeLabel (بولی، اختیاری، نادرست پیش‌فرض): آیا باید برچسب‌های شی شناسایی شده در پاسخ گنجانده شود.
  • شامل امتیاز (بولی، اختیاری، نادرست پیش‌فرض): آیا باید احتمالات شی شناسایی شده در پاسخ گنجانده شود.
  • رنگ (رشته، اختیاری): رنگ سفارشی محدوده ها و اطلاعات شی شناسایی شده. اگر برابر با null باشد، اشیاء برچسب‌های مختلف دارای مرزهایی با رنگ‌های مختلف هستند.
  • پوشه (رشته، اختیاری): پوشه.
  • ذخیره سازی (رشته، اختیاری): ذخیره سازی.

با استفاده از دستور cURL برای تعیین اشیا

Aspose.Imaging Cloud همچنین از طریق دستورات cURL قابل دسترسی است. با این حال، به عنوان یک پیش نیاز، ابتدا باید یک توکن دسترسی JWT بر اساس اعتبار مشتری خود ایجاد کنید. لطفا دستور زیر را برای تولید توکن JWT اجرا کنید.

curl -v "https://api.aspose.cloud/connect/token" \
-X POST \
-d "grant_type=client_credentials&client_id=4ccf1790-accc-41e9-8d18-a78dbb2ed1aa&client_secret=caac6e3d4a4724b2feb53f4e460eade3" \
-H "Content-Type: application/x-www-form-urlencoded" \
-H "Accept: application/json"

اکنون دستور زیر را برای شناسایی کران شی و برگرداندن آنها به صورت تصویر اجرا کنید.

curl -v "https://api.aspose.cloud/v3.0/imaging/ai/objectdetection/dog-and-cat-cover.jpg/visualbounds?method=ssd&threshold=50&includeLabel=false&includeScore=false&color=Red" \
-X GET \
-H "accept: application/json" \
-H "authorization: Bearer <JWT Token>"

درخواست URL

https://api.aspose.cloud/v3.0/imaging/ai/objectdetection/dog-and-cat-cover.jpg/visualbounds?method=ssd&threshold=50&includeLabel=false&includeScore=false&color=Red

در درخواست بالا، توجه قرمز به عنوان رنگ برجسته مشخص شده است.

قطعه کد C#.NET

قطعه کد زیر مراحل بارگذاری یک فایل تصویری حاوی دو شی (سگ و گربه) را نشان می دهد. هر دوی این اشیا با استفاده از Aspose.Imaging Cloud API شناسایی می شوند. تصاویر حاصل با اشیاء برجسته شده در درایو سیستم ذخیره می شوند.

///<summary>
/// شی شناسایی شده را روی تصویری که در جریان درخواست ارسال می شود تجسم کنید.
///</summary>
public static void VisualizeObjectsImageFromRequestBody()
{
    Console.WriteLine("Detect objects on an image. Image data is passed in a request stream");

    string MyAppKey = "xxxxx";   // Get AppKey and AppSID from https://dashboard.aspose.cloud/
    string MyAppSid = "xxxxx";   // Get AppKey and AppSID from https://dashboard.aspose.cloud/
    // شیء Aspose.Imaging Cloud را مقداردهی کنید
    ImagingApi imagingApi = new ImagingApi(appKey: MyAppKey, appSid: MyAppSid, debug: false);
    using (FileStream inputImageStream = File.OpenRead("dog-and-cat-cover.jpg"))
    {
        string method = "ssd";
        int threshold = 50;
        bool includeLabel = true;
        bool includeScore = true;
        string color = null;
        string outPath = null;
        string storage = null; // We are using default Cloud Storage

        var request = new Aspose.Imaging.Cloud.Sdk.Model.Requests.CreateVisualObjectBoundsRequest(inputImageStream, method, threshold, includeLabel, includeScore, color, outPath, storage);

        Console.WriteLine($"Call CreateVisualObjectBoundsRequest with params: method:{method}, threshold:{threshold}, include label: {includeLabel}, include score: {includeScore}");

        using (Stream updatedImage = imagingApi.CreateVisualObjectBounds(request))
        {
            // جریان تصویر به روز شده را در مکان سیستم ذخیره کنید
            System.Drawing.Image img = System.Drawing.Image.FromStream(updatedImage);
            img.Save("/Users/Aspose/Desktop/myImage.Jpeg", System.Drawing.Imaging.ImageFormat.Jpeg);
        }
    }
    Console.WriteLine();
}
تصویر جلد گربه و سگ

تصویر 2: - تصویر ورودی با گربه و سگ

تصویر پردازش شده برجسته کردن اشیاء شناسایی شده

تصویر 3: - تصویر پردازش شده برجسته کردن اشیاء شناسایی شده

برای اطلاعات بیشتر در مورد جستجوی تصویر، لطفاً از [جستجوی عکس معکوس2 دیدن کنید.

نتیجه گیری

در این مقاله با قابلیت های Aspose.Imaging Cloud for Object Detection in Images آشنا شدیم. برای شناسایی اشیاء در تصاویر، می توانید از قطعه کد استفاده کنید یا از دستورات cURL استفاده کنید. علاوه بر این، برای تسهیل مشتریان خود، SDK های مخصوص زبان برنامه نویسی را ایجاد کرده ایم و در مقاله فوق، ویژگی های Aspose.Imaging Cloud SDK برای .NET را برای تشخیص اشیا بررسی کرده ایم. کد منبع کامل SDK برای دانلود از طریق GitHub در دسترس است.

مقالات مرتبط

توصیه می کنیم برای کسب اطلاعات بیشتر به لینک های زیر مراجعه کنید: