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?
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?
Yanıtlar:
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 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:
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:
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:
Resmi gri tonlamaya dönüştür
Resminizi sıfır yapın
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:
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.
Bir resim sorgusu, örneğin beni sorgu resmine benzer görüntüler bul, sonra aşağıdaki gibi çözümlenir:
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