עם שחרורו של Aspose.Imaging Cloud 20.5, אנו שמחים להכריז על התכונה של זיהוי אובייקטים בתמונות. זה מאפשר למשתמשים לזהות גבולות אובייקט בתמונת קלט בהתבסס על התוויות וההסתברויות שלהם. היישום הנוכחי תומך ב[שיטת גלאי ירייה בודדת] לזיהוי אובייקטים שבהם המודל מאומן באמצעות נתונים של COCO 2017. גישת ה-SSD מבדילה את מרחב הפלט של תיבות תוחמות לקבוצה של תיבות ברירת מחדל על פני יחסי גובה-רוחב וקנה מידה שונים לכל מיקום מפת תכונה.

Aspose.Imaging Cloud מבצע זיהוי אובייקטים על סמך 4 השיטות הבאות:

  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>"

בקש כתובת אתר

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 גם באמצעות פקודות 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>"

בקש כתובת אתר

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: - תמונה מעובדת המדגישה אובייקטים מזוהים

למידע נוסף על חיפוש תמונות, בקר בחיפוש תמונות הפוך.

מַסְקָנָה

במאמר זה למדנו את היכולות של Aspose.Imaging Cloud לזיהוי אובייקטים בתמונות. כדי לזהות אובייקטים בתמונות, אתה יכול להשתמש בקטע הקוד או להשתמש בפקודות cURL. יתרה מזאת, כדי להקל על הלקוחות שלנו, יצרנו SDK ספציפיים לשפת תכנות ובמאמר לעיל, בחנו את התכונות של Aspose.Imaging Cloud SDK עבור .NET לזיהוי אובייקטים. קוד המקור המלא של SDK זמין להורדה דרך GitHub.

מאמרים קשורים

אנו ממליצים לבקר בקישורים הבאים כדי ללמוד עוד על: