Zephyrnet Logosu

Görsel Arama Motoru Oluşturma - Bölüm 1: Veri Keşfi

Tarih:

By Mudit Bachhawat, Makine Öğrenimi Mühendisi @ Google

Neden?

 
Google veya Bing'in resminize benzer görselleri nasıl bulduğunu hiç merak ettiniz mi? Metin tabanlı 10 mavi bağlantı oluşturma algoritmaları, görsel olarak benzer veya ilgili görüntüleri bulmaktan çok farklıdır. Bu yazıda, görsel bir arama motoru oluşturmak için böyle bir yöntemi açıklayacağız. Caltech'i kullanacağız 101 Günlük hayatta kullanılan yaygın nesnelerin görüntülerini içeren veri seti. Sadece bir prototip algoritmayı ele alacağız ve tam ölçekli bir görsel arama motoru geliştirmek için nelerin gerekli olacağını tartışacağız.

Veri kümesi hakkında

 
Caltech 101 veri seti, yüz, kene, bıçak, mobil, para vb. 101 nesne sınıfı içerir. Sınıf başına 40–200 görüntü içerir. 101 sınıfa ek olarak, modeli negatif görüntüler üzerinde test etmek için bir arka plan sınıfı/gürültü sınıfı da içerir. Veri kümesi, 8677 arka plan görüntüsü hariç 486 görüntü içermektedir. Aşağıda görüntülerin sınıflara göre frekans dağılımı verilmiştir.

Görsel Arama Motoru Oluşturma - Bölüm 1: Veri Keşfi


 

Her sınıftaki görüntü sayısı uzun kuyruk dağılımını takip eder. En sık kullanılan sınıf, en az kullanılan sınıftan ~16 kat daha fazla görüntü içerir. Sınıfların yaklaşık %5'i (5 sınıf) görüntülerin ~%30'unu içerir. Sınıfların yaklaşık %90'ı 100'den az görüntüye sahiptir.

Not: Veri kümesindeki bu dengesizlik, modeli eğitirken çarpık yığınlara yol açabilir. 

Açıklayıcı Veri Analizi

 
Rastgele seçilen sınıflardan rastgele görüntüler alıyoruz. Lütfen bazı örnek resimleri aşağıda bulabilirsiniz.

XXXXX


 

XXXXX


 

Gözlemler

  • En-boy Oranı: Görüntüler farklı en boy oranlarına sahiptir ancak görüntünün maksimum tarafı 300 piksel olarak yeniden boyutlandırılmıştır. Ek olarak, veri setini daha iyi anlamak için en boy oranının dağılımını elde etmeye çalışıyoruz. Görüntülerin çoğunun 0.5–0.8 en boy oranına sahip olduğunu, yani genişliğin yükseklikten daha büyük olduğunu bulduk.

XXXXX


 

  • Renk ve Gri Tonlama: Bazı dizinlerdeki birçok görüntünün gri tonlamalı görüntüler olduğunu fark ettik. Gri tonlamalı bir görüntü kontrolü uyguladık ve 411 sınıftaki 101 görüntünün gri tonlamalı olduğunu gördük. Daha sonra, sınıf bazında dağılımı kontrol ettik ve araba tarafı sınıfının yalnızca gri tonlamalı görüntülere sahip olduğunu gördük. Gri tonlamalı görüntüler içeren birkaç sınıf daha vardır, ancak araba tarafı dışında hepsi de renkli görüntüler içerir.

XXXXX


 

Veri Önyargıları:

  • yüzler ve yüzler_easy: Bu sınıflar sırasıyla yüzlerin ve kırpılmış yüzlerin resimlerini içerir. Ancak aynı kişinin hafif perspektif değişikliği ile birden fazla görüntüsü var. Ek olarak, görüntüler oklüzyon, arka plan ve aydınlatma açısından çok benzer.

XXXXX


 

  • flamingo ve flamingo_head: Bir sınıf flamingo'nun tüm gövdesini, diğeri ise sadece baş kısmını içerir.

XXXXX


 

  • benzer durum: sandalye ve Windsor_chair
  • akordeon — görüntüler siyah dolgu ile 45 derece döndürülür

Animasyonlu resimler: Bir çok sınıf çizgi film görüntüleri içerir. Çizgi film görüntüleri anlamsal olarak doğrudur ancak gerçek hayattaki görüntülerden farklı dokulara sahiptir.

Nesne Konumu ve Ölçek: Veri setinin görüntüdeki belirli bir ölçek ve konuma yönelik önyargılı olduğunu öğrendik. Odaktaki nesne her zaman görüntünün merkezindedir ve benzer bir ölçeğe sahiptir. CNN modelleri çeviri değişmezi olduğundan (maksimum havuzlama veya ortalama havuzlama ile kullanıldığında) merkezdeki nesneler sorun olmayabilir. Ancak modeli sabit ölçekle eğitmek, modelin yalnızca benzer ölçekli nesneler üzerinde çalışmasına neden olabilir. Bu, genellikle gerçek hayatta meydana gelen farklı ölçeklerdeki görüntülerde modelin başarısız olmasına neden olacaktır. Bu soruna iki çözüm öneriyoruz:

  1. İki Aşamalı Boru Hattı: İki aşamalı bir ardışık düzen oluşturabiliriz, ilk bileşen odaktaki nesnenin sınırlayıcı kutusunu tahmin eder ve ikinci bileşen nesnenin ne olduğunu tahmin eder.
  2. Veri Büyütme Kullanarak Nesneleri Yeniden Boyutlandırma: Odaktaki nesneyi yeniden ölçeklendirmek için veri büyütme tekniklerini uygulayabilir ve modeli bu artırılmış veri kümesi üzerinde eğitebiliriz. Bu, artık daha fazla bilgi depolayacağından model boyutunun artırılmasını gerektirebilir (CNN'ler ölçekte değişmez olmadığı için birden çok ölçek olarak nesne tanıma)

Oklüzyon ve Arka Plan: Veri kümesindeki görüntülerin çoğu temiz bir arka plana sahiptir ve odaktaki nesne kapatılmamıştır.

Görüntü Rasterleştirme: Bazı sınıflar, daha küçük boyutlardan yeniden boyutlandırılmış gibi görünen görüntülere sahiptir. Bu görüntüler nedeniyle çok rasterleştirilmiş görünüyor

Gömme Görselleştirme

  
Bu bölümde, önceden eğitilmiş modelden oluşturulan yerleştirmeleri kullanarak görüntüleri görselleştiriyoruz. Bu amaçla ImageNet üzerinde 2M parametreleri ile önceden eğitilmiş MobileNetV2.2 modelini kullandık. 1280 boyutunda yerleştirme oluşturan küresel ortalama havuzlama katmanının çıktısını kullandık.

XXXXX


 

Vektörün iki boyutlu çizimi çok sezgisel değildir. Bunun nedeni, birleştirilen iki boyutun verilerdeki varyansın yalnızca %8.5'ini açıklamasıdır. Ayrıca bu yerleştirmeleri TF Projektör kullanarak üç boyutlu olarak çiziyoruz. 3B gömme grafiği, verilerdeki varyansın ~%15'ini açıklar.

XXXXX


 

Yukarıdaki grafikte net bir nesne kümesi gözlemlemedik. Ancak görüntüler arasındaki kosinüs benzerliği, görüntülerin iyi bir temsilcisiydi. Çoğu durumda, belirli bir görüntü yerleştirmeye yakın görüntüler aynı sınıftandı. Bu, gömmeler oluşturmak için kullandığımız modelin görüntünün doğru yönüne odaklandığını ve görüntüdeki ilgilenilen nesneyi bulabildiğini kanıtlıyor.

Gömmenin t-SNE görselleştirmesi, çok sayıda konsantre sınıf kümesini gösterir. Bu görselleştirmelere göz atmak, gulet ve keç, helikopter ve uçak, kerevit ve ıstakoz vb. gibi bazı benzer sınıfları da ortaya çıkardı.

XXXXX


 

Editörün notu: Gelecek hafta, veri keşfinden görsel arama motorunun kendisini oluşturmaya geçeceğimiz Görsel Arama Motoru Oluşturma'nın heyecan verici sonucu için bize katılın.

 
 
Mudit Bachhawat Google'da makine öğrenimi mühendisi olarak çalışmaktadır ve veri bilimi, derin öğrenme, bilgisayarla görü, çok modlu bilgi alma ve optimizasyon alanlarında 5 yıldan fazla deneyime sahiptir. Herhangi bir yorum veya soru bırakmaktan çekinmeyin.

spot_img

VC Kafe

LifeSciVC

En Son İstihbarat

spot_img