역방향 이미지 검색은 샘플 이미지를 기반으로 시각적으로 유사한 이미지를 검색하는 데 도움이 되는 기술입니다. 역방향 이미지 검색 엔진을 적용하는 데는 많은 사용 사례가 있을 수 있습니다. 가장 일반적인 사용 사례는 다음과 같습니다.

  • 중복된 이미지를 검색하여 중복된 이미지를 제거합니다.
  • 비슷한 이미지의 콘텐츠를 검색하세요
  • 부적절한 콘텐츠 검색
  • 디지털 서명된 이미지 검색

역방향 이미지 검색 API

역방향 이미지 검색 기술을 기반으로 한 이미지 검색에 사용할 수 있는 애플리케이션이 많이 있습니다. 그러나 역방향 이미지 검색을 위한 REST API 솔루션을 찾고 있다면 올바른 곳에 왔습니다. Aspose.Imaging Cloud는 개발자가 모든 플랫폼에서 애플리케이션에 역방향 이미지 검색 기능을 원활하게 추가할 수 있도록 돕는 강력한 검색 엔진을 제공합니다. 최소한 하나의 이미지가 포함된 소스 이미지 세트를 여러 다른 이미지와 비교합니다. 이 비교의 결과로 다음 조건에 따라 가장 유사한 이미지 목록을 얻습니다.

  • 유사도
  • 유사성의 최소 임계값
  • 비교 알고리즘

현재 Aspose.Imaging 클라우드 검색 엔진은 내용 기반 이미지 검색, 중복 이미지 검색, 사용자 정의 등록 태그를 통한 이미지 검색, 이미지 비교 및 유사성 탐지, 이미지 특징 추출 작업을 지원합니다.

여기서는 Aspose.Imaging Cloud REST API를 사용하여 중복 이미지를 찾는 기능에 대한 간략한 개요를 제공합니다. 그러나 Aspose.Imaging Cloud 설명서에서 기능의 전체 목록과 세부 정보를 확인할 수 있습니다.

중복된 이미지를 찾는 방법은?

중복 이미지 감지, 이는 역방향 이미지 검색 엔진의 가장 일반적인 용도입니다. 많은 고객이 유사한 사진 이미지를 찾고 하나 또는 여러 장의 사진을 남겨두고 나머지는 삭제하여 사진 라이브러리를 정리해야 합니다.

Aspose.Imaging Cloud API를 사용하여 중복 이미지를 얼마나 쉽게 찾을 수 있는지 보여드리겠습니다. 이 예에서는 특징 감지에 AKAZE 알고리즘을 사용하고 특징 매칭에 RandomBinaryTree 알고리즘을 사용합니다. 다음 단계에 따라 중복 이미지를 찾습니다.

  • 소스 이미지를 저장소에 업로드
  • 검색 컨텍스트 생성
  • 이미지 특징 추출
  • 중복된 이미지 찾기

저장소에 이미지 업로드

// 입력 이미지를 Cloud Storage에 업로드
DirectoryInfo dir = new DirectoryInfo(PathToDataFiles);
FileInfo[] images = dir.GetFiles();
foreach (FileInfo image in images)
{
	// 로컬 이미지를 클라우드 스토리지에 업로드
	using (FileStream localInputImage = System.IO.File.OpenRead(image.FullName))
	{
		var uploadFileRequest = new UploadFileRequest(image.Name, localInputImage);
		FilesUploadResult result = imagingApi.UploadFile(uploadFileRequest);
	}
	
}

검색 컨텍스트 생성

// 새로운 검색 컨텍스트 생성
 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;
}

이미지 특징 추출

// 이미지 기능 추출
foreach (FileInfo image in images)
	{               
	   CreateImageFeatures(image.Name, false, searchContextId);
    }
	
/////////////////////

// 이미지 기능을 추출하여 검색 컨텍스트에 추가합니다.
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);
}

중복된 이미지 찾기

// 중복 이미지 찾기
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);

// 중복된 검색 결과를 처리합니다
foreach (var duplicates in imageDuplicatesSet.Duplicates)
{
	Console.WriteLine("Duplicates:");
	foreach (var duplicate in duplicates.DuplicateImages)
	{
		Console.WriteLine(
		   $"ImageName: {duplicate.ImageId}, Similarity: {duplicate.Similarity}");
	}

결론

이 게시물에서는 중복 이미지 감지를 위한 Aspose.Imaging Cloud의 기능에 대해 알아보았습니다. 코드 샘플과 애플리케이션에서 이 기능을 구현하는 방법에 대한 세부 정보를 살펴보았습니다. 그동안 질문이 있거나 추가 지원이 필요한 경우 아래에 의견을 남기거나 무료 지원 포럼에 질문을 게시해 주세요. API를 지속적으로 개선하고 다듬는 데 도움이 됩니다.

무료 평가판을 사용하여 Aspose.Imaging Cloud에 대해 자세히 알아보려면 aspose.cloud에 가입하기만 하면 됩니다. 가입한 후에는 다음과 같은 Aspose.Imaging Cloud의 유용한 리소스를 살펴볼 수 있습니다.

관련 링크

자세한 내용을 알아보려면 다음 링크를 방문하세요.