Με την κυκλοφορία του Aspose.Imaging Cloud 20.5, είμαστε στην ευχάριστη θέση να ανακοινώσουμε τη δυνατότητα ανίχνευσης αντικειμένων σε εικόνες. Επιτρέπει στους χρήστες να ανιχνεύουν όρια αντικειμένων σε μια εικόνα εισόδου με βάση τις ετικέτες και τις πιθανότητες τους. Η τρέχουσα υλοποίηση υποστηρίζει μια μέθοδος ανιχνευτή μονής βολής για την αναγνώριση αντικειμένων όπου το μοντέλο εκπαιδεύεται χρησιμοποιώντας το σύνολο δεδομένων COCO 2017. Η προσέγγιση SSD διακρίνει τον χώρο εξόδου των οριοθετημένων πλαισίων σε ένα σύνολο προεπιλεγμένων πλαισίων σε διαφορετικούς λόγους διαστάσεων και κλίμακες ανά τοποθεσία χάρτη χαρακτηριστικών.

Το Aspose.Imaging Cloud εκτελεί εντοπισμό αντικειμένων με βάση τις ακόλουθες 4 μεθόδους:

  1. Εντοπίστε αντικείμενα σε μια υπάρχουσα εικόνα και επιστρέψτε αποτελέσματα ως αντικείμενο JSON
  2. Εντοπίστε αντικείμενα σε μια υπάρχουσα εικόνα και επιστρέψτε τα αποτελέσματα ως εικόνα
  3. Ανεβάστε μια εικόνα, εντοπίστε αντικείμενα σε αυτήν και επιστρέψτε αποτελέσματα ως αντικείμενο JSON
  4. Ανεβάστε μια εικόνα, εντοπίστε αντικείμενα σε αυτήν και επιστρέψτε τα αποτελέσματα ως εικόνα

Σε αυτήν την ενότητα, θα συζητήσουμε τις ακόλουθες ενότητες με περισσότερες λεπτομέρειες

Ανίχνευση ορίων αντικειμένου

Αυτή η προσέγγιση ανιχνεύει αντικείμενα σε μια υπάρχουσα εικόνα και επιστρέφει το αποτέλεσμα ως αντικείμενο JSON.

Ζητήστε παραμέτρους ερωτήματος:

  • όνομα (συμβολοσειρά, απαιτείται): όνομα εικόνας. Επί του παρόντος, υποστηρίζουμε 3 μορφές εικόνας: BMP, JPEG και JPEG 2000.
  • μέθοδος (string, προαιρετική, προεπιλεγμένη “ssd”): μέθοδος ανίχνευσης αντικειμένων.
  • κατώφλι (αριθμός, προαιρετικό, [0 - 100], προεπιλογή 50): ελάχιστη πιθανότητα εντοπισμένων αντικειμένων σε ποσοστό που θα συμπεριληφθούν στο αποτέλεσμα.
  • includeLabel (boolean, προαιρετικό, default false): εάν θα συμπεριληφθούν ετικέτες ανιχνευμένων αντικειμένων στην απόκριση.
  • includeScore (boolean, προαιρετικό, προεπιλεγμένο 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>
/// Ανίχνευση αντικειμένων σε μια εικόνα από μια αποθήκευση cloud.
///</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.
  • μέθοδος (string, optional, [“ssd”], default “ssd”): μέθοδος ανίχνευσης αντικειμένου.
  • όριο (αριθμός, προαιρετικό, [0 - 100], προεπιλογή 50): ελάχιστη πιθανότητα αντικειμένων σε ποσοστό που θα συμπεριληφθούν στο αποτέλεσμα.
  • includeLabel (boolean, προαιρετικό, default false): εάν θα συμπεριληφθούν ετικέτες ανιχνευμένων αντικειμένων στην απόκριση.
  • includeScore (boolean, προαιρετικό, προεπιλεγμένο false): εάν θα συμπεριληφθούν οι πιθανότητες εντοπισμένου αντικειμένου στην απόκριση.
  • χρώμα (συμβολοσειρά, προαιρετικό): το προσαρμοσμένο χρώμα των ορίων και των πληροφοριών που εντοπίστηκαν. Αν ισούται με μηδενικό, τα αντικείμενα διαφορετικών ετικετών έχουν όρια διαφορετικών χρωμάτων.
  • φάκελος (συμβολοσειρά, προαιρετικό): φάκελος.
  • αποθήκευση (χορδή, προαιρετική): αποθήκευση.

Χρησιμοποιώντας την εντολή 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:- Επεξεργασμένη εικόνα που επισημαίνει αναγνωρισμένα αντικείμενα

Για περισσότερες πληροφορίες σχετικά με την Αναζήτηση εικόνων, επισκεφθείτε την Αντίστροφη Αναζήτηση εικόνων.

Σύναψη

Σε αυτό το άρθρο, μάθαμε τις δυνατότητες του Aspose.Imaging Cloud for Object Detection in Images. Για να αναγνωρίσετε αντικείμενα σε εικόνες, μπορείτε είτε να χρησιμοποιήσετε το απόσπασμα κώδικα είτε να χρησιμοποιήσετε τις εντολές cURL. Επιπλέον, για να διευκολύνουμε τους πελάτες μας, δημιουργήσαμε SDK για συγκεκριμένες γλώσσες προγραμματισμού και στο παραπάνω άρθρο, εξερευνήσαμε τις δυνατότητες του Aspose.Imaging Cloud SDK για .NET για ανίχνευση αντικειμένων. Ο πλήρης πηγαίος κώδικας του SDK είναι διαθέσιμος για λήψη μέσω GitHub.

Σχετικά Άρθρα

Συνιστούμε να επισκεφθείτε τους παρακάτω συνδέσμους για να μάθετε περισσότερα σχετικά με: