Bir evrişimli sinir ağı farklı boyutlarda girdi görüntüleri olarak kullanılabilir mi?


10

Görüntü tanıma için bir evrişim ağı üzerinde çalışıyorum ve farklı boyutlarda görüntüler girip giremeyeceğimi merak ettim (çok farklı değil).

Bu projede: https://github.com/harvardnlp/im2markup

Onlar söylüyor:

and group images of similar sizes to facilitate batching

Bu nedenle, ön işlemden sonra bile, görüntüler hala farklı boyutlardadır, bu da formülün bir kısmını kesmeyecekleri için mantıklıdır.

Farklı boyutların kullanılmasında herhangi bir sorun var mı? Varsa, bu soruna nasıl yaklaşmalıyım (formüllerin hepsi aynı görüntü boyutuna sığmayacağından)?

Herhangi bir girdi çok takdir edilecektir

Yanıtlar:


2

Farklı boyutların kullanılmasında herhangi bir sorun var mı? Varsa, bu soruna nasıl yaklaşmalıyım (formüllerin hepsi aynı görüntü boyutuna sığmayacağından)?

Sinir ağının mimarisine bağlıdır. Bazı mimariler tüm görüntülerin aynı boyuta sahip olduğunu varsayar, diğerleri (im2markup gibi) böyle bir varsayım yapmaz. İm2markup'ın farklı genişlikteki görüntülere izin vermesi, konvolüsyon katmanının çıktısını tarayan bir RNN kullandıklarından, herhangi bir sorun getirmediğine inanıyorum.

resim açıklamasını buraya girin

Toplu işlemi kolaylaştırmak için benzer boyutlardaki görüntüleri gruplandırın

Bu genellikle çok fazla dolgu eklemekten kaçınarak işleri hızlandırmaktır.


2

Önişleme aşamasında görüntüleri ölçeklendirmeyi düşündünüz mü? Sezgisel olarak, ölçeklendirilmiş bir görüntüyle karşılaşan bir insan yine aynı özellikleri ve nesneleri tanıyabilecektir ve bir CNN'nin ölçeklenmiş bir görüntüde aynı şeyi yapamamasının açık bir nedeni yoktur.

Görüntüleri aynı boyutta ölçeklemenin, 'orijinal araştırma' topraklarında olabileceğini düşündüğüm farklı boyutlardaki görüntüleri işleyen bir evrişim ağı yapmaya çalışmaktan daha kolay olabileceğini düşünüyorum. Kesinlikle herhangi bir boyuttaki bir konveksiyonun konveksiyon katmanlarını, yeniden eğitim almadan yapabilirsiniz. Bununla birlikte, bir konvektörün çıkışı tipik olarak bir tür sınıflandırıcı olacaktır ve bu muhtemelen daha az işe yarayacaktır, eğer farklı büyüklükteki girdilerle beslerseniz, hayal ediyorum.

Başka bir yaklaşım, görüntüleri sıfırlarla doldurmak olacaktır. Ancak sezgisel olarak, siyah kenarlıklarla doldurulmuş küçük bir fotoğrafa baktığınızı veya yakınlaştırabileceğinizi hayal edin, böylece görsel alanınızda makul bir yay ortaya çıkarır. Hangisini yapardın? Hangisini görmek daha kolay?


ölçekleme görüntünün hata ve deforme edici özelliklerin kalitesini düşürmezse, zaten görüntü düşük çözünürlükse, ölçekleme görüntünün kalitesini bile insanların kolaylıkla tanıyamayacağı, ancak ölçeklenmemiş görüntünün tanınabilir olabileceği bir noktaya düşürecektir.
Vikram Bhat

1
ölçekleme uygulamadığınız ve daha sonra tanınmayan hale gelmediği sürece, insanlar tarafından tanınan bir görüntünüz var mı?
Hugh Perkins

Bunu da merak ediyorum. Keras'tan mevcut eğitimli bir modeli kullanmaya çalışırken, görüntüyü InceptionV3 arayüzüne uyacak şekilde ölçeklendirebileceğimi düşünüyorum (32x32'den 299x299 -> CIFAR10). Bence ölçekleme kaliteyi kaybediyor. Ancak, bunu yapmanın uygun yolunun FC çıkışını hariç tutmak ve giriş şeklini 32x32 olarak belirtmek olduğunu düşünüyorum. Giriş katmanı ağırlıkları rasgele olacağından, bunun yeniden eğitilmesi gerektiğini düşünüyorum.
Joey Carson

Ölçekleme kaliteyi düşürür ancak genellemeye yardımcı olur: Antrenmandan önce Gauss bulanıklığı uygulandığında tanınmada gözle görülür bir artış olduğunu kaydeden birçok makale vardır . Sezgisel olarak, tek bir "bulanık" görüntüye benzeyen ve dolayısıyla sınıflandırmayı daha sağlam hale getiren daha farklı giriş örnekleriniz vardır.
Matthieu
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.