La recherche d’images inversée est une technique qui vous permet de rechercher des images visuellement similaires en fonction de votre image d’échantillon. Il peut y avoir de nombreux cas d’utilisation pour appliquer le moteur de recherche d’images inversée. Les cas d’utilisation les plus courants sont les suivants :
- Rechercher une image en double et supprimer les doublons
- Rechercher du contenu avec des images similaires
- Rechercher du contenu inapproprié
- Rechercher des images signées numériquement
API de recherche d’images inversée
Il existe de nombreuses applications disponibles pour la recherche d’images basées sur des techniques de recherche d’images inversée. Cependant, si vous recherchez une solution d’API REST pour la recherche d’images inversée, vous êtes au bon endroit. Aspose.Imaging Cloud fournit un moteur de recherche puissant qui aide les développeurs à ajouter des fonctionnalités de recherche d’images inversée dans leur application sur n’importe quelle plate-forme de manière transparente. Il compare l’ensemble d’images source, contenant au moins une image, avec plusieurs autres images. À la suite de cette comparaison, vous obtenez une liste des images les plus similaires selon les conditions suivantes :
- Degré de similitude
- Le seuil minimal de similitude
- Algorithme de comparaison
Actuellement, le moteur de recherche Aspose.Imaging Cloud prend en charge la recherche d’images basée sur le contenu, la recherche d’images en double, la recherche d’images par balises enregistrées personnalisées, la comparaison d’images et la détection de similitudes ainsi que les opérations d’extraction de caractéristiques d’image.
Nous vous donnerons ici un aperçu rapide de la fonctionnalité permettant de rechercher des images en double à l’aide de l’API REST Aspose.Imaging Cloud. Cependant, vous pouvez consulter la documentation Aspose.Imaging Cloud pour obtenir une liste complète des fonctionnalités et leurs détails.
Comment trouver des images en double ?
Détection d’images en double, c’est l’utilisation la plus courante du moteur de recherche d’images inversé. De nombreux clients ont besoin de trier leurs bibliothèques de photos en trouvant des images similaires et en laissant une ou plusieurs photos en supprimant celles qui restent.
Nous allons vous montrer à quel point il est facile de trouver des images en double à l’aide de l’API Cloud Aspose.Imaging. Dans l’exemple, nous utilisons l’algorithme AKAZE pour la détection des caractéristiques et l’algorithme RandomBinaryTree pour la correspondance des caractéristiques. Nous allons suivre ces étapes pour trouver les images en double :
- Télécharger les images sources vers le stockage
- Créer un contexte de recherche
- Extraire les caractéristiques de l’image
- Trouver des images en double
Télécharger des images vers le stockage
// Télécharger les images d'entrée vers le stockage cloud
DirectoryInfo dir = new DirectoryInfo(PathToDataFiles);
FileInfo[] images = dir.GetFiles();
foreach (FileInfo image in images)
{
// Télécharger l'image locale sur le stockage cloud
using (FileStream localInputImage = System.IO.File.OpenRead(image.FullName))
{
var uploadFileRequest = new UploadFileRequest(image.Name, localInputImage);
FilesUploadResult result = imagingApi.UploadFile(uploadFileRequest);
}
}
Créer un contexte de recherche
// Créer un nouveau contexte de recherche
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;
}
Extraire les caractéristiques de l’image
// extraire les fonctionnalités des images
foreach (FileInfo image in images)
{
CreateImageFeatures(image.Name, false, searchContextId);
}
/////////////////////
// Extraire les fonctionnalités des images et les ajouter au contexte de recherche.
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);
}
Trouver des images en double
// Recherche d'images en double
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);
// traiter les résultats de recherche en double
foreach (var duplicates in imageDuplicatesSet.Duplicates)
{
Console.WriteLine("Duplicates:");
foreach (var duplicate in duplicates.DuplicateImages)
{
Console.WriteLine(
$"ImageName: {duplicate.ImageId}, Similarity: {duplicate.Similarity}");
}
Conclusion
Dans cet article, nous avons découvert les capacités d’Aspose.Imaging Cloud pour la détection d’images en double. Nous avons vu les exemples de code et les détails sur la façon d’implémenter cette fonctionnalité dans votre application. En attendant, si vous avez une question ou si vous avez besoin d’aide supplémentaire, n’hésitez pas à nous laisser un commentaire ci-dessous ou à poser une question dans le forum d’assistance gratuit. Cela nous aide à améliorer et à affiner continuellement notre API.
Pour en savoir plus sur Aspose.Imaging Cloud en utilisant une version d’essai gratuite, il vous suffit de vous inscrire sur aspose.cloud. Une fois inscrit, vous pouvez consulter les ressources utiles suivantes d’Aspose.Imaging Cloud.
- Web API Explorer → Exemples concrets d’API
- Documentation du développeur → Documentation en ligne
- Exemples et SDK → Exemples de code sur Github
Liens connexes
Nous vous recommandons de visiter les liens suivants pour en savoir plus sur :