Google, "Görselle Ara" sitesi için hangi algoritmayı kullanıyor?


45

Google Görsel Arama'nın nasıl çalıştığını en iyi nasıl tahmin edersiniz? Bir fotoğraf yükleyebilir ve benzer görüntüleri arayabilirim. Benzer görüntüleri tanımlamak için hangi algoritmayı kullanıyor?


Görüntünün histogramını saklayabilirler. Bu, aynı görüntünün farklı ölçeklerinde ve sıkıştırma artefaktları veya her neyse küçük farklar için çalışır.
helyum

1
Histogramlar mekansal bilgileri yakalamaz; yanlış kibrit alırsın.
Emre

Yanıtlar:


29

Google’ın hangi algoritmayı kullandığını bilmiyorum. Ancak, en iyi tahminde bulunmak istediğiniz için, benzer bir sistemin nasıl kurulabileceği hakkında fikir vereyim .

Aramaya göre görüntü arama temeline göre aramanın tümü, İçeriğe Dayalı Görüntü Alma (CBIR) olarak adlandırılır . Buradaki fikir, bir şekilde, imaj içeriği hakkındaki bilgileri içeren bir imaj gösterimi (insanlar tarafından anlaşılması zorunlu değildir) oluşturmaktır .

İki temel yaklaşım var:

  • Düşük seviyeli (yerel) özellikler kullanarak alma: görüntü, belirli görüntü parçalarında renk, doku, şekil (görüntü yerel özelliklerin tanımlayıcıları topluluğudur )
  • bir imgenin, bir şekilde, nesneler topluluğu ve onların ilişkileri olarak temsil edildiği semantik yaklaşımlar.

Düşük seviyeli yerel yaklaşım çok iyi araştırılmıştır. Mevcut en iyi yaklaşım, yerel özellikleri ayıklar (burada yer alan bir özellik çıkarma algoritması seçeneği vardır) ve görüntüleri karşılaştırmak için yerel tanımlayıcılarını (yine tanımlayıcıların seçimi) kullanır.

Yeni çalışmalarda, önce yerel tanımlayıcılar kümelenir ve sonra kümeler görsel kelimeler olarak ele alınır - teknik Google doküman aramaya çok benzer, ancak harf kelimeler yerine görsel kelimeler kullanılır.

Görsel kelimeleri, dildeki kelime köklerine eşdeğer olarak düşünebilirsiniz: örneğin, kelimeler: iş, çalışma, işlenen tüm sözcükler aynı kelimeye dayanır.

Bu tür yöntemlerin dezavantajlarından biri, genellikle düşük dokulu görüntüler üzerinde düşük performans göstermeleridir.

Zaten bu yaklaşımları detaylandıran birçok cevap verdim ve gördüm, bu yüzden bu cevaplara link vereceğim:

  • CBIR: 1 , 2
  • özellik çıkarma / açıklama: 1 , 2 , 3 , 4

Anlamsal yaklaşımlar genellikle tüm görüntünün hiyerarşik temsillerine dayanır. Bu yaklaşımlar, özellikle genel görüntü türleri için henüz mükemmelleştirilmemiştir. Bu tür teknikleri belirli görüntü alanlarına uygulamada bazı başarılar vardır.

Şu anda bu yaklaşımların araştırmasının ortasında olduğum için, herhangi bir sonuca varamıyorum. Şimdi, dedi ki, bu cevapta bu tekniklerin arkasındaki genel bir fikri açıkladım .

Bir kez daha, kısaca: Genel fikir, yaprakların görüntü ayrıntılarını içerdiği ve ağaçların köküne yakın düğümlerde nesnelerin bulunabileceği, ağaç şeklinde bir yapıya sahip bir görüntüyü temsil etmektir. Sonra, her nasılsa, farklı görüntülerde bulunan nesneleri tanımlamak için alt ağaçları karşılaştırın.

İşte farklı ağaç temsilleri için bazı referanslar. Hepsini okumadım ve bir kısmı CBIR yerine segmentasyon için bu tür gösterimleri kullanıyorlar, ancak yine de, işte bunlar:


22

Penelope'nin cevabına ek olarak, algısal karma ve temel işlevselliği kolayca uygulanan ve daha gelişmiş bir bölgeye girmeden önce onlardan bir şeyler öğrenmek ya da öğrenmek için güzel olan iki yaklaşım vardır.

Algısal karma

Algısal karma algoritmalar, bir kriptografik karmaşanın aksine, örneğin ölçeklendirme veya JPEG sıkıştırmasıyla hafifçe bozulan aynı görüntüler için benzer veya yakın hash değerleri verecek bir karma yapmayı amaçlar. Bir resim koleksiyonundaki kopyaların yakınında bulunan algılamada yararlı bir amaca hizmet ederler.

En temel haliyle, bunu aşağıdaki gibi uygulayabilirsiniz:

  1. Resmi gri tonlamaya dönüştür

  2. Resminizi sıfır yapın

  3. Resminizi küçük resim boyutuna indirin, [32x32] deyin
  4. İki boyutlu Ayrık Kosinüs Dönüşümünü Çalıştırın
  5. En soldaki [8 x 8], en önemli düşük frekans bileşenlerini tutun
  6. Bileşenlerin işaretine dayalı olarak bloğu ikili hale getirin

Sonuç, esnek bir 64 bit karmadır, çünkü görüntünün düşük frekans bileşenlerine dayanır. Bu temanın bir çeşidi, her bir görüntüyü 64 alt-bloğa bölmek ve global görüntü ortalamasını yerel alt-blok ortasıyla karşılaştırmak ve buna göre 1 veya 0 yazmak olacaktır.

Algısal karma, örneğin phash tarafından uygulanır.

Kelimelerin Torba Modeli

Kelimelerden oluşan bir model, bir görüntüyü anlamsal olarak tanımlamayı amaçlamaktadır; örneğin, içinde köpek bulunan tüm görüntüler. Bunu, aynı kelimede belirli görüntülerin oluşumuna dayanarak bir metin belgesini sınıflandırması gereken bazı görüntü yamaları kullanarak yapar. Birisi kelimeleri, kategorilere ayırabilir, "köpek" ve "köpekler" diyebilir ve bunları "köpek" kategorisinin şimdi "köpek" veya "köpekler" içeren tüm belgelere işaret ettiği ters bir dosyada tanımlayıcı olarak saklayabilir.

En basit haliyle, bunu görüntülerle aşağıdaki gibi yapabilirsiniz:

  1. Örneğin , SIFT özellik noktalarını ve nokta başına bir SIFT tanımlayıcısını tespit edecek mükemmel vlfeat kitaplığını kullanarak SIFT özelliklerini kullanın . Bu tanımlayıcı temelde, bu özellik noktasını çevreleyen görüntü yamasının akıllıca oluşturulmuş bir şablonudur. Bu tanımlayıcılar senin ham sözlerin.
  2. İlgili tüm görseller için SIFT tanımlayıcılarını toplayın

Artık geniş bir SIFT tanımlayıcı koleksiyonunuz var. Sorun şu ki, neredeyse aynı görüntülerden bile tanımlayıcılar arasında bazı uyuşmazlıkların olması. Aynı kelimeleri "az" olarak "bazı köpekleri", "köpekleri" olarak aynı şekilde muamele etmeyi sevdiğiniz gibi aynı şeyleri birlikte gruplamak istiyorsunuz ve hataları telafi etmeniz gerekiyor. Kümelemenin devreye girdiği yer burasıdır.

  1. Tüm SIFT tanımlayıcılarını alın ve bunları, örneğin k-means gibi bir algoritma ile kümeleyin. Bu, tanımlayıcı verilerinizde, önceden belirlenmiş sayıda centroid içeren küme bulacaktır. Bu centroidler yeni görsel kelimelerin.
  2. Şimdi görüntü başına ve orijinal bulunan tanımlayıcılarına göre, bu tanımlayıcıların atandığı kümelere bakabilirsiniz. Bundan, sizin centroid veya görsel kelimelerin 'imajınıza ait olduğunu' bilirsiniz. Bu sentroidler veya görsel kelimeler, görüntünüzün ters bir dosyada depolanabilecek yeni anlamsal tanımlayıcısı haline gelir.

Bir resim sorgusu, örneğin beni sorgu resmine benzer görüntüler bul, sonra aşağıdaki gibi çözümlenir:

  1. Sorgu resminde SIFT noktalarını ve tanımlayıcılarını bulun
  2. Sorgu tanımlayıcılarını daha önce kayıt aşamasında bulduğunuz centroidlere atayın. Artık, sorgu resminizle ilgili bir grup centroid veya görsel kelimeniz var
  3. Sorgu görsel sözcüklerini ters çevrilmiş dosyanızdaki görsel kelimelerle eşleştirin ve eşleşen resimleri döndürün

1
Çantaniz-of-the deyişle yaklaşım temelde ne :) "Yerel yaklaşım" kurşun benim bağlantıları olmasa da gerçekten doğada semantik: Bir özelliği ile tek bir köpek temsil asla, ne de tespit etmek o kadar kolay olur Farklı köpek baharatları köpekler gibi. Fakat algısal karmaşa iyidir, bunu bilmiyordum. Açıklamalar güzel. Beni düşündürdü ... bu tekniğin dikdörtgen olmayan bir alana nasıl uygulanacağı konusunda bir öneriniz var mı? Ya da belki makalelere referanslar verebilirim, biraz okuyabilirim ve eğer soru mantıklıysa, ayrı bir soru olarak aç.
penelope,

1
@penelope Yıllar önce, yazarların rastgele üçgenler içinde bir görüntü paylaştığı makalede okudum. Ve algısal bir karma için de temel olarak kullanılan iz dönüşümü var. Sana geri döneceğim.
Maurits,

Bu konuda size sormak istediğim her şey bu sorunun kapsamı dışında, bu yüzden yeni bir tane açtım . Temel teknikle ilgili daha fazla bilgi / referanslar bu cevapta ya da bu konuda da mükemmel olurdu. Dört gözle :)
penelope

2

Yukarıdaki cevaplarda ihmal edilmiş gibi görünen diğer ilginç yaklaşım, Derin Evrimsel Sinir Ağlarıdır. Görünen o ki Google şu anda resim arama motoru ve çeviri hizmeti için kullanıyor . CNN'ler benzerlik bulma gibi bilişsel görevlerde son derece güçlüdür. Görünüşe göre, CNN ağ katmanları içine gömülmüş benzer bir Çantalar dünyası prosedürü uygulamaktadır. Bu tekniklerin dezavantajı, eğitim için devasa veri setinin öğrenilmemesi ve gerekliliği ve tabii ki eğitim aşamasındaki ağır hesaplama maliyetinin yetersizliğidir.

Bu konuda önerilen kağıt:

ve açık kaynaklı derin öğrenme imajı alma uygulaması (sonraki makale): https://github.com/paucarre/tiefvision

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.