A Pesquisa Reversa de Imagens é uma técnica que ajuda você a pesquisar imagens visualmente semelhantes com base na sua imagem de amostra. Pode haver muitos casos de uso para aplicar o mecanismo de pesquisa reversa de imagens. Os casos de uso mais comuns são os seguintes:

  • Procure por imagens duplicadas e remova as duplicatas
  • Pesquisar conteúdo imagens semelhantes
  • Pesquisar por conteúdo inapropriado
  • Pesquisar por imagens assinadas digitalmente

API de pesquisa reversa de imagens

Há muitos aplicativos disponíveis para pesquisa de imagens com base em técnicas de pesquisa reversa de imagens. No entanto, se você está procurando uma solução REST API para pesquisa reversa de imagens, então você chegou ao lugar certo. O Aspose.Imaging Cloud fornece um mecanismo de pesquisa poderoso que ajuda os desenvolvedores a adicionar recursos de pesquisa reversa de imagens em seus aplicativos em qualquer plataforma perfeitamente. Ele compara o conjunto de imagens de origem, contendo pelo menos uma imagem, com várias outras imagens. Como resultado dessa comparação, você obtém uma lista das imagens mais semelhantes de acordo com as seguintes condições:

  • Grau de similaridade
  • O limiar mínimo de similaridade
  • Algoritmo de comparação

Atualmente, o mecanismo de busca Aspose.Imaging Cloud oferece suporte a pesquisa de imagens com base em conteúdo, pesquisa de imagens duplicadas, pesquisa de imagens por tags registradas personalizadas, comparação de imagens e detecção de similaridade, além de operações de extração de recursos de imagem.

Aqui, daremos a você uma rápida visão geral do recurso para encontrar imagens duplicadas usando a API REST do Aspose.Imaging Cloud. No entanto, você pode verificar a documentação do Aspose.Imaging Cloud para obter uma lista completa dos recursos e seus detalhes.

Como encontrar imagens duplicadas?

Detecção de imagem duplicada, este é o uso mais comum do mecanismo de busca reversa de imagens. Muitos clientes precisam classificar suas bibliotecas de fotos encontrando imagens de fotos semelhantes e deixando uma ou várias fotos enquanto apagam as restantes.

Mostraremos a você como é fácil encontrar imagens duplicadas usando a API Aspose.Imaging Cloud. Estamos usando o algoritmo AKAZE para detecção de recursos e o algoritmo RandomBinaryTree para correspondência de recursos no exemplo. Seguiremos estas etapas para encontrar as imagens duplicadas:

  • Carregar imagens de origem para armazenamento
  • Criar contexto de pesquisa
  • Extrair recursos de imagem
  • Encontrar imagens duplicadas

Carregar imagens para armazenamento

// Carregar imagens de entrada para o Cloud Storage
DirectoryInfo dir = new DirectoryInfo(PathToDataFiles);
FileInfo[] images = dir.GetFiles();
foreach (FileInfo image in images)
{
	// Carregar imagem local para o Cloud Storage
	using (FileStream localInputImage = System.IO.File.OpenRead(image.FullName))
	{
		var uploadFileRequest = new UploadFileRequest(image.Name, localInputImage);
		FilesUploadResult result = imagingApi.UploadFile(uploadFileRequest);
	}
	
}

Criar contexto de pesquisa

// Criar novo contexto de pesquisa
 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;
}

Extrair recursos de imagem

// extrair recursos de imagens
foreach (FileInfo image in images)
	{               
	   CreateImageFeatures(image.Name, false, searchContextId);
    }
	
/////////////////////

// Extraia recursos de imagens e adicione-os ao contexto de pesquisa.
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);
}

Encontrar imagens duplicadas

// Encontrando Imagens Duplicadas
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);

// processar resultados de pesquisa duplicados
foreach (var duplicates in imageDuplicatesSet.Duplicates)
{
	Console.WriteLine("Duplicates:");
	foreach (var duplicate in duplicates.DuplicateImages)
	{
		Console.WriteLine(
		   $"ImageName: {duplicate.ImageId}, Similarity: {duplicate.Similarity}");
	}

Conclusão

Nesta postagem, aprendemos sobre os recursos do Aspose.Imaging Cloud para detecção de imagens duplicadas. Vimos os exemplos de código e os detalhes sobre como implementar esse recurso em seu aplicativo. Enquanto isso, se você tiver alguma dúvida ou precisar de mais assistência, sinta-se à vontade para nos deixar um comentário abaixo ou postar uma pergunta no fórum de suporte gratuito. Isso nos ajuda a melhorar e refinar continuamente nossa API.

Para saber mais sobre o Aspose.Imaging Cloud usando um teste gratuito, tudo o que você precisa é inscrever-se no aspose.cloud. Depois de se inscrever, você pode acessar os seguintes recursos úteis do Aspose.Imaging Cloud.

Recomendamos visitar os seguintes links para saber mais sobre: