Her şeyden önce, bu makalede 'şablon' diye bir şey yoktur - 'şablon (lar)' kelimesinin Computer Vision'da farklı bir anlamı vardır.
Bu makalede kullanılan yöntem nispeten basittir. Senin için yıkayım. Yerel Özellikleri kullanarak nesne tanıma, görüntü eşleştirme, görüntü dikişi ve benzerleri gibi görevleri yaparken yapmanız gereken üç önemli şey vardır.
İlk önemli şey Tespit; bu adımda, ilgi noktalarını veya anahtar noktaları tespit etmek istiyorsunuz ve bunun anlamı, görüntüde ilginç olduğunu düşündüğünüz yerel noktaları (temel olarak küçük yamalar) seçmek istediğinizdir, bunu yapmanın birçok yolu vardır; bu makale bu alana katkıda bulunmaz. Ancak, SURF özellik dedektörü ve CenSurE tuş noktalarını kullandıkları anlaşılıyor (onlar hakkında daha fazla bilgi edinmek isterseniz onları arayabilirsiniz, degradeler ve benzeri özellikler kullanmaları dışında bu adım hakkında konuşmayacağım, yani bir fotoğrafınız varsa, gökyüzünün ortasındaki bir noktanın bir ilgi noktası olarak seçilmesi olası değildir, çünkü bu noktanın etrafındaki piksellerin hepsi aynı yoğunluklardır, 'meşgul' olan şeyler ilgi noktası olarak seçilme eğilimindedir (örn. masa / bina kenarları / köşeleri)).
Algılama yapıldıktan sonra Özellik Açıklamasıizler. Resimdeki ilginç noktaları biliyorsunuz ve şimdi onları tanımlamak istiyorsunuz (temel olarak ilginç noktaların etrafındaki noktaları / yamayı tanımlamak istiyorsunuz). SIFT popüler bir özellik tanımlayıcıdır. Bu yazıda BRIEF adında yeni bir makale bulmuşlardır. BRIEF karşılaştırmalara dayanmaktadır, bu yüzden diyelim ki bir yama var (50 piksel x 50 piksel), iki nokta seçiyoruz ve iki noktanın yoğunluğunu karşılaştırıyoruz, eğer birinci nokta ikinci noktadan daha büyükse, ' 1 ', başka' 0 ', bunu birkaç çift için yaparız ve bir dizi boolean değerle sonuçlanır. Şimdi büyük soru 'puan çiftini nasıl seçiyorsunuz?', Gazetede 5 yolu açıkladılar, nispeten benzer, ilkini açıklayacağım. Yaptığınız şey eşit olarak (eşit olasılık) -S / 2'den S / 2'ye bir nokta seçmek, Örneğimizde yama boyutunun 50 olduğunu söyledik, bu nedenle -25 ila 25 arasında bir nokta seçiyoruz. 0,0 koordinatının yamanın merkezinde olduğunu varsayarsak. İşte bir örnek;
İlk çifti seçmek istiyoruz, her nokta (X, Y) koordinatlarından oluşuyor, bu yüzden ilk noktanın X koordinatını, ardından ilk noktanın Y koordinatını seçiyoruz, diyelim ki (10, -1) , şimdi ikinci nokta; ikinci nokta için X koordinatını ve ikinci nokta için Y koordinatını eşit olarak seçiyoruz, diyelim ki (-2,20), şimdi her nokta için yoğunluk değerlerini alıyoruz ve hangisinin daha büyük yoğunluk değerlerine sahip olduğunu görüyoruz - ilk büyükse ilk boole değerini '1' olarak atarız, değilse '0' atarız. Bunu birçok çift için yapıyoruz ve bir boolean değerleri vektörü ile sonuçlanıyoruz.
* Çok önemli bir nokta: Bunun işe yarayacağını varsayıyorum, rastgele jeneratörden önce bir tohum değeri belirtmeniz gerekecek. Bunun anlamı, her bir yama için aynı değerleri seçmek istediğinizdir - bu çok önemlidir, çünkü yamaları karşılaştırdığınızda / eşleştirdiğinizde, tam olarak aynı şekilde seçilmezlerse tüm sistem bozulacaktır. - Umarım bu eşleşen adımı okuduğunuzda mantıklı olacaktır.
Bunu, dedektör tarafından tespit edilen her bir ilgi noktası için yapıyoruz. Her bir ilgi noktası için, bir boole değerleri vektörü elde edeceğiz.
Şimdi iki görüntüyü eşleştirmek için ( üçüncü adım; eşleme ), diğer görüntü için aynı şeyi yapıyoruz, tespit ediyoruz, sonra BRIEF'i kullanarak açıklıyoruz. Örneğin, her bir görüntüde 10 ilgi noktamız olduğunu varsayalım (her görüntüde en ilginç 10 noktayı elde edersek bu her zaman işe yarayabilir), her bir yamayı örneğin 50 çift kullanarak tanımlamak için BRIEF kullanırız, böylece her görüntü 50 boolean değerinden 10 vektör.
İki görüntüyü karşılaştırmak için, ilk görüntüden her vektörün en yakın komşusunu ikinci görüntüden birbirine vektör olarak buluruz. Oldukça hızlı olan Hamming mesafesini kullanıyoruz, hamming mesafesi örneği
hammingDistance ((0, 1, 1), (0, 0, 0)) = 2
hammingDistance ((0, 1, 1), (0, 1, 1)) = 0
hammingDistance ((0, 1, 1), (1, 0, 0)) = 3
hammingDistance ((0, 1, 1), (1, 1, 1)) = 1
Temelde kaç yanlış yazışma
umarım yardımcı olur