Objectdetectie is een computertechnologie die gerelateerd is aan computer vision en beeldverwerking en die te maken heeft met het detecteren van instanties van semantische objecten van een bepaalde klasse (zoals mensen, gebouwen of auto’s) in digitale afbeeldingen en video’s. Als u de objectdetectie programmatisch moet uitvoeren met behulp van Cloud API, dan zijn Aspose.Imaging Cloud API’s een perfecte keuze. We hebben ook taalspecifieke SDK’s ontwikkeld om onze klanten te faciliteren. Dus Aspose.Imaging Cloud Java SDK is een haalbare keuze voor objectherkenning met behulp van Java.
In recente releaseversies hebben we de objectdetectiefunctie in onze SDK’s opgenomen en met behulp van deze functie kunnen gebruikers objectgrenzen op een invoerafbeelding detecteren, zolang hun labels en waarschijnlijkheden. De API ondersteunt momenteel 3 rasterafbeeldingsformaten (BMP, JPG en JPEG2000) en Single Shot Detector (SSD) is de detectiemethode om objecten te herkennen. Niettemin zijn we van plan om verschillende andere methoden en afbeeldingsformaten te integreren in onze volgende releases. Zodra de bewerking via de API is uitgevoerd, kunnen we een JSON-object met gedetecteerde objectgrenzen, labels en scores of een resultaatafbeelding met objectgrenzen en labels erop krijgen. Momenteel kunt u objecten identificeren zoals een persoon, fiets, auto, kat, hond, paard, enz. U kunt overwegen de volgende link te bezoeken voor meer informatie over de Lijst met beschikbare labels.
Objecten detecteren en markeren op de afbeelding
Er zijn twee opties om objecten in een afbeelding te detecteren: een bewerking uitvoeren op een afbeelding in de opslag of een bewerking uitvoeren op een afbeelding die in de aanvraagtekst is doorgegeven.
- KRIJG /imaging/ai/objectdetectie/{naam}/visualbounds
- POST /imaging/ai/objectdetectie/visualbounds
Afbeeldingen verwerken vanuit cloudopslag
De eerste methode verwacht dat u eerst een afbeelding uploadt naar Cloud Storage en vervolgens de naam ervan doorgeeft in de API-URL. Na de objectdetectie retourneert de API de resulterende afbeelding in de respons.
We begrijpen ook dat cloudopslag een snelle en gemakkelijke manier is om bestanden op te slaan en te openen. De objectdetectieprocedure kan eenvoudig worden uitgevoerd op afbeeldingen die zijn opgeslagen in cloudopslag en het resulterende bestand wordt geretourneerd in de responsheader. In de volgende cURL-opdracht wordt de objectdetectiebewerking uitgevoerd op een afbeelding met meerdere objecten waarbij argumenten worden gespecificeerd om Single Shot Detector (SSD) te gebruiken als detectiemodel, de drempelwaarde op 50 te houden, labels van objecten op te nemen in de resulterende afbeelding en ook de objectdetectiescore te specificeren. Verder hebben we Zebra, giraffe, horse gespecificeerd als een door komma’s gescheiden lijst met toegestane labels tegen het argument allowedLabels. Als u het resulterende bestand echter op het lokale systeem wilt opslaan, kunt u proberen -o te gebruiken en een locatie voor het resulterende bestand op te geven.
cURL-opdracht
curl -v "https://api.aspose.cloud/v3.0/imaging/ai/objectdetection/71ElMFUKIvL.jpg/visualbounds?method=ssd&threshold=50&includeLabel=true&includeScore=true&allowedLabels=zebra, giraffe, horse" \
-X GET \
-H "accept: application/json" \
-H "authorization: Bearer <JWT Token>" \
-o c:/pdftest/mydetected.jpeg
Java-codefragment
public void VisualBoundsAnImageInCloud() throws Exception {
String fileName = "object_detection_example.jpg";
String method = "ssd";
int threshold = 50;
Boolean includeLabel = true;
Boolean includeScore = true;
String color = "blue";
String folder = CloudPath; // Input file is saved at the Examples folder in the storage
String storage = null; // We are using default Cloud Storage
GetVisualObjectBoundsRequest request = new GetVisualObjectBoundsRequest(getSampleImageFileName(), method, threshold, includeLabel, includeScore, color, folder, storage);
byte[] resultImage = ImagingApi.getVisualObjectBounds(request);
Path path = Paths.get(OutputFolder, "object_detection_example_out.jpg").toAbsolutePath();
Files.write(path, resultImage);
}
Afbeeldingen verwerken zonder opslag
De Image processing API biedt een tweede methode (POST) waarbij u de afbeelding rechtstreeks van de lokale opslag naar de aanvraagbody kunt doorgeven. U kunt de resulterende afbeelding ook opslaan in de Cloud Storage door de outPath-parameterwaarde op te geven. Als u de waarde echter niet opgeeft, bevat de respons een gestreamde afbeelding.
cURL-opdracht
curl -X POST "https://api.aspose.cloud/v3.0/imaging/ai/objectdetection/visualbounds?method=ssd&threshold=50&includeLabel=true&includeScore=true&allowedLabels=bird, cat, dog, horse, sheep, cow, elephant, bear, zebra, giraffe&color=yellow" -H "accept: application/json" -H "authorization: Bearer <jwt token>" -H "Content-Type: multipart/form-data" -d {"imageData":{}}
URL aanvragen
https://api.aspose.cloud/v3.0/imaging/ai/objectdetection/visualbounds?method=ssd&threshold=50&includeLabel=true&includeScore=true&allowedLabels=bird, cat, dog, horse, sheep, cow, elephant, bear, zebra, giraffe&color=yellow
Java-codefragment
public void VisualBoundsAnImageInRequestBody() throws Exception {
String fileName = "object_detection_example.jpg";
String method = "ssd";
int threshold = 50;
Boolean includeLabel = true;
Boolean includeScore = true;
String color = null;
String outPath = null;
String storage = null; // We are using default Cloud Storage
byte[] inputStream = Files.readAllBytes(Paths.get(ExampleImagesFolder, getSampleImageFileName()));
CreateVisualObjectBoundsRequest request = new CreateVisualObjectBoundsRequest(inputStream, method, threshold, includeLabel, includeScore, color, outPath, storage);
byte[] resultImage = ImagingApi.createVisualObjectBounds(request);
Path path = Paths.get(OutputFolder, "object_detection_example_out.jpg").toAbsolutePath();
Files.write(path, resultImage);
}
Conclusie
In dit artikel hebben we de mogelijkheden van Object Recognition met Java SDK onderzocht. De SDK is zo geweldig dat het meerdere objecten in één keer nauwkeurig kan bepalen. Om het gebruikers nog gemakkelijker te maken, kunnen ze de objecten markeren en ze dienovereenkomstig labelen. Mocht u problemen ondervinden bij het gebruik van de API, neem dan gerust contact met ons op via het gratis productondersteuningsforum.
Gerelateerde artikelen
Voor meer informatie raden wij u aan de volgende links te bezoeken: