Reverse Görsel Arama Nedir?

Tersine görsel arama, kullanıcıların metin yerine arama sorgusu olarak bir görüntü kullanarak bilgi aramasına olanak tanıyan bir teknolojidir. Geleneksel anahtar kelime odaklı aramalardan farklı olarak, tersine görsel arama, eşleşmeleri bulmak, metadata almak veya görüntü hakkında bağlam sağlamak için görsel içeriği işleyerek çalışır.

Bu yöntem, bir görüntünün kaynağını belirleme, otantikliğini doğrulama, benzer içerikleri keşfetme ve telif hakkıyla korunan materyalin yetkisiz kullanımını tespit etme gibi görevler için vazgeçilmez hale gelmiştir. Tersine görüntü arama, e-ticaret, gazetecilik, dijital adli bilimler ve daha fazlası dahil olmak üzere çeşitli alanlarda yaygın olarak kullanılmaktadır.

Geri Görüntü Arama Nasıl Çalışır?

Geri görüntü aramanın temelinde algısal hashing adı verilen bir ana teknoloji yatmaktadır. Bu yaklaşım, her görüntü için benzersiz bir "parmak izi" oluşturur ve bu parmak izleri, benzerlikleri belirlemek için diğer görüntülerin parmak izleriyle karşılaştırılır. Algısal hashing’in geri görüntü aramada nasıl çalıştığına dair bilgiler şunlardır:

  1. Görüntü Ön İşleme: Bir hash oluşturmadan önce, görüntü gereksiz ayrıntıları kaldırmak ve formatını standart hale getirmek için ön işleme tabi tutulur. Bu genellikle görüntüyü daha küçük sabit bir boyuta yeniden boyutlandırmayı ve gri tonlama formatına dönüştürmeyi içerir. Bu, hashing işleminin tüm görüntülerde tutarlı olmasını sağlar.

  2. Özellik Çıkartımı: Her bir bireysel pikseli analiz etmek yerine, algısal hash’leme, görüntünün genel yapısı, desenleri ve renk dağılımı gibi yüksek seviyeli özelliklere odaklanır. Bu özellikler, görüntünün özünü yakalayan ve sıkıştırma artefaktları veya hafif kırpma gibi küçük değişiklikleri göz ardı eden daha küçük bir temsil haline getirilir.

  3. Hash Oluşturma: Bir hash, görüntünün özelliklerini temsil eden sabit uzunlukta bir dizi veya ikili dizidir. Algısal hash’ler, görsel olarak benzer görüntülerin, görüntüler biraz değiştirilmiş olsa bile (örn., boyutlandırılmış, döndürülmüş veya sıkıştırılmış) neredeyse aynı hash’ler üretmesini sağlamak için özel olarak tasarlanmıştır.

  4. Hashes Karşılaştırma: Sorgu resminin hash’i üretildikten sonra, bir veritabanında saklanan hash’lerle karşılaştırılır. Bu karşılaştırma, iki hash arasındaki farklı bit sayısını ölçen Hamming mesafesi gibi teknikler kullanır. Daha küçük bir fark, resimler arasındaki daha yüksek bir benzerliği gösterir.

Algısal özelliklere odaklanarak, bu yöntem tersine görsel arama motorlarının yalnızca aynı görüntüleri değil, aynı zamanda ufak düzenlemelere uğramış olanları da eşleştirmesine olanak tanır. Algısal hashing, tersine görsel aramayı büyük ölçekli veri setleri için bile pratik hale getiren hafif, verimli bir yaklaşımdır.

GroupDocs.Search API ile Ters Görsel Arama Uygulaması

GroupDocs.Search API, uygulamalarınızda ters resim arama yeteneklerini uygulamak için çok yönlü ve verimli bir çözüm sunar. Görüntü indeksleme ve arama özelliklerini kullanarak, belgelerde veya bağımsız dosyalar içinde depolanan görüntüleri bulmak için bir sistem oluşturabilirsiniz. İşte GroupDocs.Search API’yi kullanarak ters resim arama kurulumuna dair adım adım bir kılavuz.

Adım 1: Ortamı Ayarla

Başlamak için, GroupDocs.Search kütüphanesini projenize ekleyin. Bunu, .NET projeleri için kütüphaneyi NuGet aracılığıyla yükleyerek yapabilirsiniz. Aşağıdaki komutu Paket Yöneticisi Konsolu’nda çalıştırın:

Install-Package GroupDocs.Search

Adım 2: Görsellerin Dizinlenmesi

Geri görüntü araması etkinleştirmek için, belge klasörlerinizdeki resimleri indekslemeniz gerekiyor. GroupDocs.Search, bağımsız resimleri (örn. .png, .jpg) ve .zip gibi belge dosyalarında veya konteyner formatlarında yer alan gömülü resimleri indekslemenize olanak tanır. Aşağıda bir indeks oluşturma ve resim indeksleme için belgeler ekleme örneği verilmiştir:

string indexFolder = @"C:\MyIndex";
string documentFolder = @"C:\MyDocuments";

// Creating an index
Index index = new Index(indexFolder);

// Setting the image indexing options
IndexingOptions indexingOptions = new IndexingOptions();
indexingOptions.ImageIndexingOptions.EnabledForContainerItemImages = true;
indexingOptions.ImageIndexingOptions.EnabledForEmbeddedImages = true;
indexingOptions.ImageIndexingOptions.EnabledForSeparateImages = true;

// Indexing documents in a document folder
index.Add(documentFolder, indexingOptions);

Burada, tüm görüntülerin (veya bağımsız, gömülü ya da konteynerlerden) indekslenmesini sağlamak için ImageIndexingOptions seçenekleri etkinleştirilmiştir. Bu, ters görüntü aramasını kapsamlı hale getirir.

Adım 3: İlgili Görselleri Arama

Görüntüler dizinlendikten sonra, bir referans görüntü sağlayarak benzer görüntüler arayabilirsiniz. Aramayı, kabul edilebilir benzerlik düzeyini (HashDifferences), dönecek maksimum sonuç sayısını ve aranacak belirli dosya türlerini kontrol etmek için ImageSearchOptions ile özelleştirin. İşte arama işleminin nasıl göründüğü:

// Setting the image search options
ImageSearchOptions imageSearchOptions = new ImageSearchOptions();
imageSearchOptions.HashDifferences = 10;
imageSearchOptions.MaxResultCount = 100;
imageSearchOptions.SearchDocumentFilter =
    SearchDocumentFilter.CreateFileExtension(".zip", ".png", ".jpg");

// Creating a reference image for search
SearchImage searchImage = SearchImage.Create(@"C:\MyDocuments\image0.png");

// Searching in the index
ImageSearchResult result = index.Search(searchImage, imageSearchOptions);

Arama süreci, referans görüntüsü için bir hash oluşturur ve bunu indekslenmiş görüntülerle karşılaştırır. HashDifferences parametresi benzerlik için eşiği belirtir – değer ne kadar küçükse, eşleşme o kadar sıkı olur.

Adım 4: Arama Sonuçlarını İşleme

ImageSearchResult nesnesi, arama kriterlerini karşılayan tüm resimleri içerir. Eşleşen resimlerin konumları veya meta verileri hakkında bilgi almak için sonuçlar arasında döngü yapabilirsiniz.

Console.WriteLine("Images found: " + result.ImageCount);
for (int i = 0; i < result.ImageCount; i++)
{
    FoundImageFrame image = result.GetFoundImage(i);
    Console.WriteLine(image.DocumentInfo.ToString());
}

Örnek Çıktı

Örneğin, bir sorgu görüntüsü ile ters görüntü arama gerçekleştirildiğinde, aşağıdaki sonuçlar elde edilebilir:

Images found: 2
C:\MyDocuments\image0.png
C:\MyDocuments\image193.png

Bu, dizinlenmiş belgelere iki eşleşen veya benzer görüntünün bulunduğu anlamına gelir: orijinal sorgu görüntüsü (image0.png) ve başka bir sonuç (image193.png).

Adım 5: Sistemi İnce Ayar Yapma

Geri dönüşüm görüntüsü aramanızı optimize etmek için aşağıdaki seçenekleri ayarlayabilirsiniz:

  • Hash Farklılıkları: Daha düşük değerler hassasiyeti artırır, ancak görüntünün hafif değiştirilmiş sürümlerini kaçırabilir.
  • Arama Filtreleri: Aramaları belirli dosya türleri veya belge formatları ile sınırlayın.
  • Dizin Yapısı: Periyodik olarak dizini güncelleyin, yeni resimleri ekleyin veya eski dosyaları kaldırın.

Sonuç

Ters resim araması, e-ticaret ve dijital adli bilimlerden modern endüstrilerde geniş kapsamlı uygulamalara sahip güçlü bir teknolojidir. Geliştiriciler, GroupDocs.Search API gibi araçları kullanarak, görsel verileri etkili bir şekilde bulup karşılaştıran güçlü resim arama sistemlerini kolayca uygulayabilirler. Resim dizinleme, ayarlanabilir benzerlik eşikleri ve gömülü veya bağımsız resim desteği gibi özellikleri ile bu API, esnek ve doğru ters resim arama çözümleri oluşturma sürecini basitleştirir. Sadece yinelenen resimleri takip etmek, özgünlüğü doğrulamak veya ilişkili içeriği keşfetmek olsun, bu işlevselliği uygulamak, kullanıcı deneyimlerini ve operasyonel verimliliği artırmak için değerli bir adımdır.

Check out these useful links for further details and resources:


See Also