Logo di Aspose.Imaging Cloud

Il rilevamento di oggetti è una tecnologia informatica correlata alla visione artificiale e all’elaborazione delle immagini che si occupa di rilevare istanze di oggetti semantici di una certa classe (come esseri umani, edifici o automobili) in immagini e video digitali. Nel caso in cui sia necessario eseguire a livello di programmazione il rilevamento di oggetti tramite Cloud API, le API Aspose.Imaging Cloud sono la scelta perfetta. Abbiamo anche sviluppato SDK specifici per linguaggio per facilitare i nostri clienti. Quindi Aspose.Imaging Cloud Java SDK è una scelta valida per il riconoscimento di oggetti tramite Java.

Nelle versioni di rilascio più recenti, abbiamo incorporato la funzionalità di rilevamento degli oggetti nei nostri SDK e con l’aiuto di questa funzionalità, gli utenti sono in grado di rilevare i confini degli oggetti su un’immagine di input, purché le loro etichette e probabilità. L’API supporta attualmente 3 formati di immagini raster (BMP, JPG e JPEG2000) e Single Shot Detector (SSD) è il metodo di rilevamento per riconoscere gli oggetti. Tuttavia, stiamo pianificando di integrare diversi altri metodi e formati di immagine nelle nostre versioni successive. Una volta eseguita l’operazione tramite API, possiamo ottenere un oggetto JSON con limiti, etichette e punteggi dell’oggetto rilevato o un’immagine risultante con limiti ed etichette dell’oggetto su di essa. Attualmente, puoi identificare oggetti come una persona, una bicicletta, un’auto, un gatto, un cane, un cavallo, ecc. Puoi prendere in considerazione la visita al seguente collegamento per ulteriori dettagli sull’Elenco delle etichette disponibili.

Rileva gli oggetti ed evidenziali sull’immagine

Esistono due opzioni per rilevare oggetti all’interno di un’immagine: eseguire un’operazione su un’immagine archiviata oppure eseguire un’operazione su un’immagine passata nel corpo della richiesta.

Immagini di processo da Cloud Storage

Il primo metodo si aspetta che tu carichi prima un’immagine su Cloud Storage e poi passi il suo nome nell’URL API. Dopo il rilevamento dell’oggetto, l’API restituisce l’immagine risultante nella risposta.

Sappiamo anche che gli archivi cloud sono un modo rapido e semplice per archiviare e accedere ai file. La procedura di rilevamento degli oggetti può essere facilmente eseguita su immagini archiviate nell’archivio cloud e il file risultante viene restituito nell’intestazione di risposta. Nel seguente comando cURL, l’operazione di rilevamento degli oggetti viene eseguita su un’immagine contenente più oggetti in cui gli argomenti specificano di utilizzare Single Shot Detector (SSD) come modello di rilevamento, mantenere il valore di soglia a 50, includere etichette di oggetti nell’immagine risultante e specificare anche il punteggio di rilevamento degli oggetti. Inoltre, abbiamo specificato Zebra, giraffa, cavallo come elenco separato da virgole di etichette consentite rispetto all’argomento allowedLabels. Tuttavia, se si desidera salvare il file risultante sul sistema locale, è possibile provare a utilizzare -o e specificare una posizione per il file risultante.

comando cURL

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

Frammento di codice Java

 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);
}
File sorgente per il rilevamento degli oggetti

Immagine 1:- File sorgente per il rilevamento dell’oggetto

Immagine risultante con oggetti rilevati

Immagine 2:- File risultante con oggetti riconosciuti

Elaborare immagini senza archiviazione

L’API di elaborazione delle immagini offre un secondo metodo (POST) in cui puoi passare direttamente l’immagine dall’archivio locale al corpo della richiesta. Ti consente inoltre di salvare l’immagine risultante su Cloud Storage specificando il valore del parametro outPath. Tuttavia, se non specifichi il valore, la risposta contiene un’immagine trasmessa in streaming.

comando cURL

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

Richiedi 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

Frammento di codice Java

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);
}
Immagine di input con cavallo

Immagine 3: - Immagine di input con cavallo in corsa

Oggetto cavallo rilevato nell'immagine

Immagine 4:- Cavallo rilevato con punteggio del 98%

Conclusione

In questo articolo, abbiamo esplorato le capacità relative al riconoscimento degli oggetti tramite Java SDK. L’SDK è così sorprendente che può determinare con precisione più oggetti in un singolo tentativo. Per facilitare ulteriormente gli utenti, consente loro di evidenziare gli oggetti ed etichettarli di conseguenza. In caso di problemi durante l’utilizzo dell’API, non esitate a contattarci tramite il forum di supporto prodotto gratuito.

Articoli correlati

Ti consigliamo di visitare i seguenti link per saperne di più: