مع إصدار Aspose.Imaging Cloud 20.5، يسعدنا أن نعلن عن ميزة اكتشاف الكائنات في الصور. فهي تمكن المستخدمين من اكتشاف حدود الكائنات في صورة إدخال استنادًا إلى تسمياتها واحتمالاتها. يدعم التنفيذ الحالي طريقة الكشف عن اللقطة الواحدة للتعرف على الكائنات حيث يتم تدريب النموذج باستخدام مجموعة بيانات COCO 2017. يقسم نهج SSD مساحة الإخراج للصناديق المحددة إلى مجموعة من الصناديق الافتراضية على نسب أبعاد ومقاييس مختلفة لكل موقع خريطة ميزة.

Aspose.Imaging Cloud يقوم باكتشاف الكائنات استنادًا إلى الطرق الأربع التالية:

  1. اكتشاف الكائنات الموجودة في صورة موجودة وإرجاع النتائج ككائن JSON
  2. اكتشاف الكائنات الموجودة في صورة موجودة وإرجاع النتائج كصورة
  3. تحميل صورة، واكتشاف الكائنات الموجودة عليها، وإرجاع النتائج ككائن JSON
  4. تحميل صورة، واكتشاف الكائنات الموجودة عليها، وإرجاع النتائج كصورة

في هذا القسم، سنناقش الأقسام التالية بمزيد من التفصيل

اكتشاف حدود الكائن

يكتشف هذا النهج الكائنات الموجودة في صورة موجودة ويعيد النتيجة ككائن JSON.

معلمات استعلام الطلب:

  • الاسم (سلسلة، مطلوب): اسم الصورة. حاليًا، ندعم 3 تنسيقات للصور: BMP وJPEG وJPEG 2000.
  • الطريقة (سلسلة، اختيارية، افتراضية “ssd”): طريقة اكتشاف الكائن.
  • الحد الأدنى (رقم، اختياري، [0 - 100]، الافتراضي 50): الحد الأدنى لاحتمالية اكتشاف الكائنات كنسبة مئوية والتي سيتم تضمينها في النتيجة.
  • includeLabel (منطقي، اختياري، افتراضيًا false): ما إذا كان سيتم تضمين تسميات الكائنات المكتشفة في الاستجابة.
  • includeScore (منطقي، اختياري، افتراضيًا false): ما إذا كان سيتم تضمين احتمالات الكائنات المكتشفة في الاستجابة.
  • المجلد (سلسلة، اختياري): المجلد.
  • التخزين (سلسلة، اختياري): التخزين.

اكتشاف الكائنات باستخدام الأمر 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 (منطقي، اختياري، افتراضيًا false): ما إذا كان سيتم تضمين تسميات الكائنات المكتشفة في الاستجابة.
  • includeScore (منطقي، اختياري، افتراضيًا false): ما إذا كان سيتم تضمين احتمالات الكائنات المكتشفة في الاستجابة.
  • اللون (سلسلة، اختياري): اللون المخصص لحدود ومعلومات الكائن المكتشف. إذا كان يساوي 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. يتم حفظ الصور الناتجة مع الكائنات المميزة على محرك النظام.

///<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:- صورة معالجة تسلط الضوء على الكائنات المحددة

لمزيد من المعلومات حول البحث عن الصور، يرجى زيارة البحث العكسي عن الصور.

خاتمة

في هذه المقالة، تعلمنا قدرات Aspose.Imaging Cloud للكشف عن الكائنات في الصور. لتحديد الكائنات في الصور، يمكنك إما استخدام مقتطف التعليمات البرمجية أو استخدام أوامر cURL. علاوة على ذلك، لتسهيل الأمر على عملائنا، قمنا بإنشاء مجموعات تطوير برمجيات خاصة بلغة البرمجة وفي المقالة أعلاه، استكشفنا ميزات Aspose.Imaging Cloud SDK لـ .NET للكشف عن الكائنات. يتوفر الكود المصدر الكامل لمجموعة تطوير البرمجيات للتنزيل عبر GitHub.

مقالات ذات صلة

ننصحك بزيارة الروابط التالية لمعرفة المزيد عن: