Omvendt billedsøgning er en teknik, der hjælper dig med at søge visuelt lignende billeder baseret på dit eksempelbillede. Der kan være mange use cases til at anvende den omvendte billedsøgemaskine. De mest almindelige brugstilfælde er følgende:

  • Søg efter duplikatbillede og fjern dubletterne
  • Søg efter indhold lignende billeder
  • Søg efter upassende indhold
  • Søg efter digitalt signerede billeder

Reverse Image Search API

Der er mange tilgængelige applikationer til billedsøgning baseret på omvendt billedsøgningsteknikker. Men hvis du leder efter en REST API-løsning til omvendt billedsøgning, så er du landet det rigtige sted. Aspose.Imaging Cloud tilbyder en kraftfuld søgemaskine, der hjælper udviklere med at tilføje omvendt billedsøgningsfunktioner i deres applikation på enhver platform problemfrit. Den sammenligner kildebilledsættet, der indeholder mindst ét billede, med flere andre billeder. Som et resultat af denne sammenligning får du en liste over de mest lignende billeder i henhold til følgende betingelser:

  • Grad af lighed
  • Den minimale tærskel for lighed
  • Algorithme for sammenligning

I øjeblikket understøtter Aspose.Imaging Cloud-søgemaskinen indholdsbaseret billedsøgning, duplikatbilledsøgning, billedsøgning ved hjælp af brugerdefinerede registrerede tags, billedsammenligning og lighedsdetektion og udtræk af billedfunktioner.

Her giver vi dig et hurtigt overblik over funktionen til at finde duplikerede billeder ved hjælp af Aspose.Imaging Cloud REST API. Du kan dog tjekke Aspose.Imaging Cloud-dokumentation for en komplet liste over funktioner og deres detaljer.

Hvordan finder man dublerede billeder?

Dubletbilleddetektion, dette er den mest almindelige brug af den omvendte billedsøgemaskine. Mange kunder skal sortere deres fotobiblioteker ved at finde lignende fotobilleder og efterlade et eller flere billeder, mens de resterende billeder slettes.

Vi viser dig, hvor nemt du kan finde duplikerede billeder ved hjælp af Aspose.Imaging Cloud API. Vi bruger AKAZE-algoritmen til funktionsdetektion og RandomBinaryTree-algoritmen til funktionsmatchning i eksemplet. Vi følger disse trin for at finde de duplikerede billeder:

  • Upload kildebilleder til lageret
  • Opret søgekontekst
  • Udtræk billedfunktioner
  • Find dublerede billeder

Upload billeder til lager

// Upload inputbilleder til Cloud Storage
DirectoryInfo dir = new DirectoryInfo(PathToDataFiles);
FileInfo[] images = dir.GetFiles();
foreach (FileInfo image in images)
{
	// Upload lokalt billede til Cloud Storage
	using (FileStream localInputImage = System.IO.File.OpenRead(image.FullName))
	{
		var uploadFileRequest = new UploadFileRequest(image.Name, localInputImage);
		FilesUploadResult result = imagingApi.UploadFile(uploadFileRequest);
	}
	
}

Opret søgekontekst

// Opret ny søgekontekst
 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;
}

Udtræk billedfunktioner

// udtræk billedfunktioner
foreach (FileInfo image in images)
	{               
	   CreateImageFeatures(image.Name, false, searchContextId);
    }
	
/////////////////////

// Udpak billedfunktioner og tilføj dem til søgekontekst.
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);
}

Find dublerede billeder

// Finde duplikerede billeder
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);

// proces dubletter søgeresultater
foreach (var duplicates in imageDuplicatesSet.Duplicates)
{
	Console.WriteLine("Duplicates:");
	foreach (var duplicate in duplicates.DuplicateImages)
	{
		Console.WriteLine(
		   $"ImageName: {duplicate.ImageId}, Similarity: {duplicate.Similarity}");
	}

Konklusion

I dette indlæg har vi lært om mulighederne i Aspose.Imaging Cloud til gentagelse af duplikatbilleder. Vi har set kodeeksemplerne og detaljerne om, hvordan du implementerer denne funktion i din applikation. I mellemtiden, hvis du har et spørgsmål, eller du har brug for yderligere hjælp, er du velkommen til at sende os en kommentar nedenfor eller stille et spørgsmål i gratis supportforum. Det hjælper os med løbende at forbedre og forfine vores API.

For at lære mere om Aspose.Imaging Cloud ved hjælp af en gratis prøveperiode, er alt hvad du behøver at tilmelde dig med aspose.cloud. Når du har tilmeldt dig, kan du gennemgå følgende nyttige ressourcer fra Aspose.Imaging Cloud.

Vi anbefaler, at du besøger følgende links for at lære mere om: