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:
- Objektumok észlelése egy meglévő képen, és az eredményeket JSON-objektumként adja vissza
- Objektumok észlelése egy meglévő képen, és az eredményeket képként adja vissza
- Töltsön fel egy képet, észlelje a rajta lévő objektumokat, és adja vissza az eredményeket JSON-objektumként
- 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
- Objektumészlelés képekben C# használatával
- Objektumhatárok észlelése és visszaadás képként
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.
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();
}
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: