La Reverse Image Search è una tecnica che ti aiuta a cercare immagini visivamente simili in base alla tua immagine campione. Ci possono essere molti casi d’uso per applicare il motore di ricerca di immagini inverse. I casi d’uso più comuni sono i seguenti:

  • Cerca l’immagine duplicata e rimuovi i duplicati
  • Cerca contenuti simili a immagini
  • Cerca contenuti inappropriati
  • Cerca immagini firmate digitalmente

API di ricerca immagini inversa

Sono disponibili molte applicazioni per la ricerca di immagini basate su tecniche di ricerca inversa di immagini. Tuttavia, se stai cercando una soluzione REST API per la ricerca inversa di immagini, sei arrivato nel posto giusto. Aspose.Imaging Cloud fornisce un potente motore di ricerca che aiuta gli sviluppatori ad aggiungere funzionalità di ricerca inversa di immagini nelle loro applicazioni su qualsiasi piattaforma senza problemi. Confronta il set di immagini sorgente, contenente almeno un’immagine, con diverse altre immagini. Come risultato di questo confronto, ottieni un elenco delle immagini più simili in base alle seguenti condizioni:

  • Grado di somiglianza
  • La soglia minima di similarità
  • Algoritmo di confronto

Attualmente, il motore di ricerca Aspose.Imaging Cloud supporta la ricerca di immagini basata sul contenuto, la ricerca di immagini duplicate, la ricerca di immagini tramite tag registrati personalizzati, il confronto e il rilevamento di somiglianze tra immagini e le operazioni di estrazione delle caratteristiche delle immagini.

Qui, ti forniremo una rapida panoramica della funzionalità per trovare immagini duplicate utilizzando Aspose.Imaging Cloud REST API. Tuttavia, puoi controllare Aspose.Imaging Cloud documentation per un elenco completo delle funzionalità e dei relativi dettagli.

Come trovare le immagini duplicate?

Rilevamento di immagini duplicate, questo è l’uso più comune del motore di ricerca di immagini inverse. Molti clienti hanno bisogno di ordinare le loro librerie di foto trovando immagini di foto simili e lasciando uno o più scatti mentre eliminano quelli rimanenti.

Ti mostreremo quanto facilmente puoi trovare immagini duplicate usando Aspose.Imaging Cloud API. Stiamo usando l’algoritmo AKAZE per il rilevamento delle feature e l’algoritmo RandomBinaryTree per il feature matching nell’esempio. Seguiremo questi passaggi per trovare le immagini duplicate:

  • Carica le immagini sorgente nell’archivio
  • Crea contesto di ricerca
  • Estrarre le caratteristiche dell’immagine
  • Trova immagini duplicate

Carica le immagini nell’archivio

// Carica le immagini di input su Cloud Storage
DirectoryInfo dir = new DirectoryInfo(PathToDataFiles);
FileInfo[] images = dir.GetFiles();
foreach (FileInfo image in images)
{
	// Carica l'immagine locale su Cloud Storage
	using (FileStream localInputImage = System.IO.File.OpenRead(image.FullName))
	{
		var uploadFileRequest = new UploadFileRequest(image.Name, localInputImage);
		FilesUploadResult result = imagingApi.UploadFile(uploadFileRequest);
	}
	
}

Crea contesto di ricerca

// Crea un nuovo contesto di ricerca
 string searchContextId = CreateImageSearch();

////////////////

public static string CreateImageSearch()
{
	string detector = "akaze";
	string matchingAlgorithm = "randomBinaryTree";
	string folder = null; // File will be saved at the root of the storage
	string storage = null; // We are using default Cloud Storage

	CreateImageSearchRequest createSearchContextRequest = new CreateImageSearchRequest(detector,matchingAlgorithm, folder, storage);
	SearchContextStatus status = imagingApi.CreateImageSearch(createSearchContextRequest);
	return status.Id;
}

Estrarre le caratteristiche dell’immagine

// estrai le caratteristiche delle immagini
foreach (FileInfo image in images)
	{               
	   CreateImageFeatures(image.Name, false, searchContextId);
    }
	
/////////////////////

// Estrai le caratteristiche delle immagini e aggiungile al contesto di ricerca.
public static void CreateImageFeatures(string storageSourcePath, bool isFolder, string searchContextId)
{
	var request = isFolder
		   ? new CreateImageFeaturesRequest(searchContextId, imageId: null, imagesFolder: storageSourcePath, storage: null)
		   : new CreateImageFeaturesRequest(searchContextId, imageId: storageSourcePath, storage: null);
	imagingApi.CreateImageFeatures(request);
}

Trova immagini duplicate

// Trovare immagini duplicate
double? similarityThreshold = 80; // The similarity threshold
string folder = null; // Path to input files
string storage = null; // We are using default Cloud Storage

ImageDuplicatesSet imageDuplicatesSet = imagingApi.FindImageDuplicates(new FindImageDuplicatesRequest(searchContextId, similarityThreshold, folder, storage));
Console.WriteLine("Duplicates Set Count: " + imageDuplicatesSet.Duplicates.Count);

// processo duplica risultati di ricerca
foreach (var duplicates in imageDuplicatesSet.Duplicates)
{
	Console.WriteLine("Duplicates:");
	foreach (var duplicate in duplicates.DuplicateImages)
	{
		Console.WriteLine(
		   $"ImageName: {duplicate.ImageId}, Similarity: {duplicate.Similarity}");
	}

Conclusione

In questo post, abbiamo scoperto le capacità di Aspose.Imaging Cloud per il rilevamento di immagini duplicate. Abbiamo visto gli esempi di codice e i dettagli su come implementare questa funzionalità nella tua applicazione. Nel frattempo, se hai una domanda o hai bisogno di ulteriore assistenza, non esitare a lasciarci un commento qui sotto o a postare una domanda nel forum di supporto gratuito. Ci aiuta a migliorare e perfezionare continuamente la nostra API.

Per saperne di più su Aspose.Imaging Cloud utilizzando una prova gratuita, tutto ciò di cui hai bisogno è registrarti su aspose.cloud. Una volta che ti sei registrato, puoi consultare le seguenti utili risorse di Aspose.Imaging Cloud.

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