Az Aspose.Imaging Cloud 20.5 megjelenésével örömmel jelentjük be a képeken található objektumészlelés funkcióját. Lehetővé teszi a felhasználók számára, hogy címkéik és valószínűségeik alapján felismerjék az objektumhatárokat a bemeneti képen. A jelenlegi megvalósítás támogatja az egylövéses érzékelő módszert az olyan objektumok felismerésére, amelyeknél a modellt COCO 2017 adatkészlet segítségével tanítják. Az SSD-megközelítés a határolódobozok kimeneti terét diszkretizálja alapértelmezett dobozok készletévé, különböző képarányokkal és méretarányokkal a jellemzőtérkép helyénként.

Az Aspose.Imaging Cloud a következő 4 módszer alapján végez objektumészlelést:

  1. Objektumok észlelése egy meglévő képen, és az eredményeket JSON-objektumként adja vissza
  2. Objektumok észlelése egy meglévő képen, és az eredményeket képként adja vissza
  3. Töltsön fel egy képet, észlelje a rajta lévő objektumokat, és adja vissza az eredményeket JSON-objektumként
  4. Töltsön fel egy képet, észlelje a rajta lévő objektumokat, és az eredményeket képként adja vissza

Ebben a részben a következő szakaszokat fogjuk részletesebben tárgyalni

Objektumhatárok észlelése

Ez a megközelítés észleli az objektumokat egy meglévő képen, és az eredményt JSON-objektumként adja vissza.

Lekérdezési paraméterek kérése:

  • név (karakterlánc, kötelező): kép neve. Jelenleg 3 képformátumot támogatunk: BMP, JPEG és JPEG 2000.
  • metódus (karakterlánc, opcionális, alapértelmezett “ssd”): objektumészlelési módszer.
  • küszöb (szám, nem kötelező, [0 - 100], alapértelmezett 50): az észlelt objektumok minimális valószínűsége százalékban, amely szerepelni fog az eredményben.
  • includeLabel (logikai, opcionális, alapértelmezett false): szerepeltetni kell-e az észlelt objektumcímkéket a válaszban.
  • includeScore (logikai, opcionális, alapértelmezett hamis): szerepeltetni kell-e az észlelt objektum valószínűségét a válaszban.
  • mappa (karakterlánc, nem kötelező): mappa.
  • tároló (string, opcionális): tárolás.

Objektumészlelés a cURL paranccsal

Az Aspose.Imaging Cloud a cURL parancsokkal is elérhető. A következő parancs bemutatja, hogyan használható a cURL parancs egy objektum észlelésére, és JSON-objektumként kaphat választ.

Az alábbi képet használjuk a tárgy észlelésére.

Minta macskakép

  1. kép: - Forráskép

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 kérése

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

Választest

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

Válaszséma

{
    "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"
    ]
}

Objektumészlelés képekben C# használatával

Kérjük, próbálja meg a következő kódrészletet használni az objektumok észleléséhez a képekben a C# kódrészlet használatával.

C# .NET kódrészlet

///<summary>
/// Objektumok észlelése egy felhőtárhelyről származó képen.
///</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

    // Inicializálja az Aspose.Imaging Cloud objektumot
    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);
    // lekérheti a képfájlban lévő objektumok számát
    Console.WriteLine("Objects detected: " + detectedObjectList.DetectedObjects.Count);
}

Objektumhatárok észlelése és visszaadás képként

Töltsön fel egy képet, észlelje az objektumokat, húzzon határokat köréjük, és az eredményt képként adja vissza.

Lekérdezési paraméterek kérése:

  • név (karakterlánc, kötelező): kép neve. Jelenleg 3 képformátum támogatott: bmp, jpg, jpeg és jpeg2000.
  • metódus (karakterlánc, opcionális, [“ssd”], alapértelmezett “ssd”): objektumészlelési módszer.
  • küszöb (szám, nem kötelező, [0 - 100], alapértelmezett 50): az objektumok minimális valószínűsége százalékban, amely szerepelni fog az eredményben.
  • includeLabel (logikai, opcionális, alapértelmezett false): szerepeltetni kell-e az észlelt objektumcímkéket a válaszban.
  • includeScore (logikai, opcionális, alapértelmezett hamis): szerepeltetni kell-e az észlelt objektum valószínűségét a válaszban.
  • szín (karakterlánc, opcionális): az észlelt objektum határainak és információinak egyedi színe. Ha egyenlő nullával, a különböző címkékkel rendelkező objektumok határai különböző színűek.
  • mappa (karakterlánc, nem kötelező): mappa.
  • tároló (string, opcionális): tárolás.

A cURL parancs használata az objektumok meghatározásához

Az Aspose.Imaging Cloud a cURL parancsokon keresztül is elérhető. Előfeltételként azonban először létre kell hoznia egy JWT hozzáférési tokent az ügyfél hitelesítő adatai alapján. Kérjük, hajtsa végre a következő parancsot a JWT token generálásához.

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"

Most hajtsa végre a következő parancsot az objektumhatárok észleléséhez és képként való visszaadásához.

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 kérése

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

A fenti kérésben a piros kiemelés színeként van megadva.

C#.NET kódrészlet

A következő kódrészlet a két objektumot (kutyát és macskát) tartalmazó képfájl betöltésének lépéseit mutatja be. Mindkét objektum azonosítása az Aspose.Imaging Cloud API használatával történik. Az eredményül kapott képeket a kiemelt objektumokkal a rendszer a rendszermeghajtóra menti.

///<summary>
/// Az észlelt objektum megjelenítése egy kérésfolyamban továbbított képen.
///</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/
    // Inicializálja az Aspose.Imaging Cloud objektumot
    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))
        {
            // mentse a frissített képfolyamot a rendszer helyére
            System.Drawing.Image img = System.Drawing.Image.FromStream(updatedImage);
            img.Save("/Users/Aspose/Desktop/myImage.Jpeg", System.Drawing.Imaging.ImageFormat.Jpeg);
        }
    }
    Console.WriteLine();
}
Macska és kutya borítókép

  1. kép: - Adja meg a képet macska és kutya funkcióval

Feldolgozott kép az azonosított objektumok kiemelésével

  1. kép: - Az azonosított objektumokat kiemelő feldolgozott kép

A képkereséssel kapcsolatos további információkért látogasson el a Reverse Image Search oldalra.

Következtetés

Ebben a cikkben megismertük az Aspose.Imaging Cloud képességeit az objektumészleléshez képekben. A képeken lévő objektumok azonosításához használhatja a kódrészletet vagy a cURL parancsokat. Továbbá ügyfeleink megkönnyítése érdekében programozási nyelv-specifikus SDK-kat hoztunk létre, és a fenti cikkben megvizsgáltuk az Aspose.Imaging Cloud SDK for .NET objektumészlelési funkcióit. Az SDK teljes forráskódja letölthető GitHub-on keresztül.

Kapcsolódó cikkek

Javasoljuk, hogy látogassa meg az alábbi linkeket, ha többet szeretne megtudni erről: