Aspose.Imaging Cloud Logo

Objekterkennung ist eine Computertechnologie im Zusammenhang mit Computer Vision und Bildverarbeitung, die sich mit der Erkennung von Instanzen semantischer Objekte einer bestimmten Klasse (wie Menschen, Gebäude oder Autos) in digitalen Bildern und Videos befasst. Falls Sie die Objekterkennung programmgesteuert mithilfe der Cloud API durchführen müssen, sind die Cloud-APIs von Aspose.Imaging die perfekte Wahl. Wir haben auch sprachspezifische SDKs entwickelt, um unseren Kunden die Arbeit zu erleichtern. Daher ist Aspose.Imaging Cloud Java SDK eine praktikable Wahl für die Objekterkennung mit Java.

In den letzten Release-Versionen haben wir die Objekterkennungsfunktion in unsere SDKs integriert und mithilfe dieser Funktion können Benutzer Objektgrenzen auf einem Eingabebild erkennen, solange diese Beschriftungen und Wahrscheinlichkeiten aufweisen. Die API unterstützt derzeit 3 Rasterbildformate (BMP, JPG und JPEG2000) und Single Shot Detector (SSD) ist die Erkennungsmethode zum Erkennen von Objekten. Dennoch planen wir, in unseren nachfolgenden Releases mehrere andere Methoden und Bildformate zu integrieren. Sobald der Vorgang über die API ausgeführt wird, können wir ein JSON Objekt mit erkannten Objektgrenzen, Beschriftungen und Wertungen oder ein Ergebnisbild mit Objektgrenzen und Beschriftungen darauf erhalten. Derzeit können Sie Objekte wie eine Person, ein Fahrrad, ein Auto, eine Katze, einen Hund, ein Pferd usw. identifizieren. Weitere Einzelheiten zur Liste der verfügbaren Beschriftungen finden Sie unter folgendem Link.

Objekte erkennen und im Bild hervorheben

Es gibt zwei Möglichkeiten, Objekte in einem Bild zu erkennen: Sie können einen Vorgang an einem Bild im Speicher ausführen oder einen Vorgang an einem Bild ausführen, das im Anforderungstext übergeben wurde.

Bilder aus dem Cloud-Speicher verarbeiten

Bei der ersten Methode müssen Sie zuerst ein Bild in den Cloud-Speicher hochladen und dann seinen Namen in der API-URL übergeben. Nach der Objekterkennung gibt die API das resultierende Bild in der Antwort zurück.

Wir wissen auch, dass Cloud-Speicher eine schnelle und einfache Möglichkeit sind, Dateien zu speichern und darauf zuzugreifen. Das Objekterkennungsverfahren kann problemlos an Bildern durchgeführt werden, die im Cloud-Speicher gespeichert sind, und die resultierende Datei wird im Antwortheader zurückgegeben. Im folgenden cURL-Befehl wird die Objekterkennungsoperation an einem Bild durchgeführt, das mehrere Objekte enthält, wobei als Argumente angegeben wird, dass Single Shot Detector (SSD) als Erkennungsmodell verwendet werden soll, der Schwellenwert bei 50 bleibt, Beschriftungen von Objekten in das resultierende Bild aufgenommen werden sollen und auch der Objekterkennungswert angegeben wird. Darüber hinaus haben wir Zebra, Giraffe, Pferd als Komma-getrennte Liste zulässiger Beschriftungen gegenüber dem Argument allowedLabels angegeben. Wenn Sie die resultierende Datei dennoch auf dem lokalen System speichern möchten, können Sie versuchen, -o zu verwenden und einen Speicherort für die resultierende Datei anzugeben.

cURL-Befehl

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-Codeausschnitt

 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);
}
Quelldatei für die Objekterkennung

Bild 1:- Quelldatei für die Objekterkennung

Ergebnisbild mit erkannten Objekten

Bild 2:- Ergebnisdatei mit erkannten Objekten

Bilder ohne Speicherung verarbeiten

Die Bildverarbeitungs-API bietet eine zweite Methode (POST), mit der Sie das Bild direkt vom lokalen Speicher in den Anforderungstext übergeben können. Sie können das resultierende Bild auch im Cloud-Speicher speichern, indem Sie den Parameterwert outPath angeben. Wenn Sie den Wert jedoch nicht angeben, enthält die Antwort ein gestreamtes Bild.

cURL-Befehl

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

Anforderungs-URL

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-Codeausschnitt

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);
}
Eingabebild mit Pferd

Bild 3:- Eingabebild mit rennendem Pferd

Pferd als Objekt im Bild erkannt

Bild 4: - Pferd mit 98 % erkannt

Abschluss

In diesem Artikel haben wir die Möglichkeiten der Objekterkennung mit Java SDK untersucht. Das SDK ist so erstaunlich, dass es mehrere Objekte in einem einzigen Versuch präzise bestimmen kann. Um den Benutzern die Arbeit noch weiter zu erleichtern, können sie die Objekte hervorheben und entsprechend beschriften. Falls Sie bei der Verwendung der API auf Probleme stoßen, können Sie uns gerne über das kostenlose Produktsupportforum kontaktieren.

Verwandte Artikel

Wir empfehlen Ihnen, die folgenden Links zu besuchen, um mehr zu erfahren: