Med udgivelsen af Aspose.Imaging Cloud 20.5 er vi glade for at kunne annoncere funktionen af objektdetektion i billeder. Det gør det muligt for brugerne at detektere objektgrænser på et inputbillede baseret på deres etiketter og sandsynligheder. Den nuværende implementering understøtter en enkeltskudsdetektormetode til at genkende objekter, hvor modellen trænes ved hjælp af COCO 2017-datasæt. SSD-tilgangen diskretiserer outputrummet for afgrænsningsfelter til et sæt standardfelter over forskellige billedformater og skalaer pr. kortplacering.
Aspose.Imaging Cloud udfører objektdetektion baseret på følgende 4 metoder:
- Registrer objekter på et eksisterende billede og returner resultater som et JSON-objekt
- Registrer objekter på et eksisterende billede og returner resultater som et billede
- Upload et billede, registrer objekter på det, og returner resultater som et JSON-objekt
- Upload et billede, registrer objekter på det, og returner resultater som et billede
I dette afsnit vil vi diskutere de følgende afsnit mere detaljeret
- Registrer objektgrænser
- Objektregistrering i billeder ved hjælp af C#
- Registrer objektgrænser og returner som billede
Registrer objektgrænser
Denne tilgang registrerer objekter på et eksisterende billede og returnerer resultatet som et JSON-objekt.
Forespørgselsparametre:
- navn (streng, påkrævet): billednavn. I øjeblikket understøtter vi 3 billedformater: BMP, JPEG og JPEG 2000.
- metode (streng, valgfri, standard “ssd”): objektdetektionsmetode.
- tærskel (antal, valgfri, [0 - 100], standard 50): minimum sandsynlighed for opdagede objekter i procent, der vil blive inkluderet i resultatet.
- includeLabel (boolesk, valgfri, standard false): om detekterede objektetiketter skal inkluderes i svaret.
- includeScore (boolesk, valgfri, standardfalsk): om sandsynligheder for detekterede objekter skal inkluderes i svaret.
- mappe (streng, valgfri): mappe.
- opbevaring (streng, valgfri): opbevaring.
Objektdetektion ved hjælp af cURL-kommando
Aspose.Imaging Cloud kan også tilgås ved hjælp af cURL-kommandoer. Den følgende kommando viser, hvordan en cURL-kommando kan bruges til at detektere et objekt og få et svar som et JSON-objekt.
Vi bruger følgende billede til at opdage objektet.
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>"
Anmod om 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
Svarorgan
{
"detectedObjects": [
{
"label": "cat",
"score": 0.9450986,
"bounds": {
"x": 43,
"y": 4,
"width": 401,
"height": 323
}
}
]
}
Svarskema
{
"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"
]
}
Objektregistrering i billeder ved hjælp af C#
Prøv venligst at bruge følgende kodestykke til objektdetektering i billeder ved hjælp af C#-kodestykket.
C# .NET kodestykke
///<summary>
/// Registrer objekter på et billede fra et skylager.
///</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
// Initialiser Aspose.Imaging Cloud-objekt
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);
// få optælling af objekter i billedfil
Console.WriteLine("Objects detected: " + detectedObjectList.DetectedObjects.Count);
}
Registrer objektgrænser og returner som billede
Upload et billede, find objekter, tegn grænser omkring dem og returner resultatet som et billede.
Forespørgselsparametre:
- navn (streng, påkrævet): billednavn. I øjeblikket understøttes 3 billedformater: bmp, jpg, jpeg og jpeg2000.
- metode (streng, valgfri, [“ssd”], standard “ssd”): objektdetektionsmetode.
- tærskel (antal, valgfri, [0 - 100], standard 50): minimumsobjekters sandsynlighed i procent, der vil blive inkluderet i resultatet.
- includeLabel (boolesk, valgfri, standard false): om detekterede objektetiketter skal inkluderes i svaret.
- includeScore (boolesk, valgfri, standardfalsk): om sandsynligheder for detekterede objekter skal inkluderes i svaret.
- farve (streng, valgfri): den brugerdefinerede farve for de detekterede objektgrænser og info. Hvis det er lig med null, har objekter med forskellige etiketter grænser af forskellige farver.
- mappe (streng, valgfri): mappe.
- opbevaring (streng, valgfri): opbevaring.
Brug af cURL-kommandoen til at bestemme objekter
Aspose.Imaging Cloud kan også tilgås via cURL-kommandoer. Men som en forudsætning skal du først generere et JWT-adgangstoken baseret på dine klientoplysninger. Udfør venligst følgende kommando for at generere JWT-tokenet.
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"
Udfør nu følgende kommando for at opdage objektgrænser og returnere dem som et billede.
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>"
Anmod om 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
I ovenstående anmodning er meddelelsen Rød angivet som en fremhævet farve.
C#.NET kodestykke
Det følgende kodestykke viser trin til at indlæse en billedfil, der indeholder to objekter (Hund og Kat).Begge disse objekter er identificeret ved hjælp af Aspose.Imaging Cloud API. De resulterende billeder med fremhævede objekter gemmes på systemdrevet.
///<summary>
/// Visualiser registreret objekt på et billede, der sendes i en anmodningsstrøm.
///</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/
// Initialiser Aspose.Imaging Cloud-objekt
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))
{
// gem opdateret billedstrøm til systemplacering
System.Drawing.Image img = System.Drawing.Image.FromStream(updatedImage);
img.Save("/Users/Aspose/Desktop/myImage.Jpeg", System.Drawing.Imaging.ImageFormat.Jpeg);
}
}
Console.WriteLine();
}
For mere information om billedsøgning, besøg venligst Omvendt billedsøgning.
Konklusion
I denne artikel har vi lært mulighederne i Aspose.Imaging Cloud til objektdetektion i billeder. For at identificere objekter i billeder kan du enten bruge kodestykket eller bruge cURL-kommandoerne. For at lette vores kunder har vi desuden oprettet programmeringssprogsspecifikke SDK’er, og i ovenstående artikel har vi udforsket funktionerne i Aspose.Imaging Cloud SDK til .NET til objektdetektion. Den komplette kildekode for SDK er tilgængelig til download via GitHub.
Relaterede artikler
Vi anbefaler, at du besøger følgende links for at lære mere om: