Aspose.Imaging Cloud-logo

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.

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);
}
Bronbestand voor objectdetectie

Afbeelding 1:- Bronbestand voor de objectdetectie

Resulterende afbeelding met gedetecteerde objecten

Afbeelding 2: - Resulterend bestand met herkende objecten

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);
}
Invoer afbeelding met paard

Afbeelding 3: - Invoerafbeelding met rennend paard

Paardenobject gedetecteerd in afbeelding

Afbeelding 4: - Paard gedetecteerd met een score van 98%

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: