Şablon eşleştirme nedir? Kısa bir rehber
Şablon eşleştirmenin bir şablonu kaydırıp benzerliği puanlayarak görüntüdeki bir deseni nasıl bulduğunu, OpenCV ile nasıl deneyebileceğini ve nerelerde kullanıldığını öğren.
Abirami Vina8 dakikalık okuma
Görüntüler çoğu zaman insanların kolayca fark edebildiği pek çok ince ayrıntı içerir. Ancak makineler için bu görev o kadar kolay değildir. Makineler dijital görüntüleri piksel değerlerinden oluşan bir ızgara olarak algılar; ışıklandırma, açı, ölçek veya keskinlikteki küçük değişiklikler bile kafa karıştırıcı olabilir.
Bir makinenin görüntü analiz etme becerisi genellikle birbiriyle yakından ilişkili iki bilgisayar bilimi alanına dayanır: görüntü işleme ve bilgisayarlı görü. Bu iki alan çoğu zaman birlikte çalışsa da temel amaçları farklıdır.
Görüntü işleme, görüntüleri ham veri olarak ele alır. Görüntüleri iyileştirebilir, ancak içeriklerini anlamaya çalışmaz. İşte bilgisayarlı görü burada fark yaratır. Bilgisayarlı görü, makinelerin görüntüleri ve videoları anlamasını sağlayan bir yapay zekâ (AI) dalıdır.
Temel görüntü işleme uzun yıllardır kullanılıyor, ancak modern bilgisayarlı görü yenilikleri çok daha yeni. Alanın tarihini anlamanın iyi bir yolu, bu sorunları daha eski ve geleneksel yöntemlerle nasıl çözdüğümüze bakmaktır.
Örneğin görüntü eşleştirmeyi ele alalım. Bu, bir sistemin daha büyük bir görüntünün içinde belirli bir nesnenin veya örüntünün bulunup bulunmadığını belirlemesi gereken yaygın bir görü görevidir.
Günümüzde bu işlem yapay zekâ ve derin öğrenme kullanılarak kolayca ve doğru biçimde yapılabilir. Ancak 2010'larda modern sinir ağlarının yükselişinden önce başvurulan yöntem, şablon eşleştirme adı verilen çok daha basit bir teknikti.

Şekil 1. Şablon eşleştirmeye bir örnek (Kaynak)
Şablon eşleştirme, küçük bir şablon görüntüsünün daha büyük bir görüntü üzerinde piksel piksel kaydırıldığı bir görüntü işleme tekniğidir. Evrişime benzer bu kaydırma işlemi, algoritmanın belirli örüntüyle en yakından eşleşen konumu bulmasını sağlar.
Bu yazıda, şablon eşleştirmenin ne olduğunu ve modern iyileştirmelerin gerçek dünya koşullarında yöntemi nasıl daha güvenilir hâle getirdiğini inceleyeceğiz.
Şablon eşleştirme nedir?#
Şablon eşleştirme, doğrudan görüntü pikselleriyle (dijital görüntünün en küçük birimi) çalışan klasik bir bilgisayarlı görü tekniği olarak da tanımlanabilir. Daha büyük bir görüntünün içinde daha küçük bir örüntüyü bulmak için kullanılır.
Bu tür yöntemler, büyük modelleri devasa veri kümelerinde eğitmek yerine geometri, optik ve matematik kurallarıyla tanımlanır. Başka bir deyişle, şablon eşleştirme sistemi iki girdi arasındaki parlaklığı, rengi ve diğer piksel bilgilerini karşılaştırır: giriş görüntüsü (daha büyük görüntü) ve küçük şablon görüntüsü (bulunacak örüntü).

Şekil 2. Görüntü A ve Görüntü B, şablon örnekleridir. (Kaynak)
Şablon eşleştirmenin temel amacı, şablonun daha büyük sahnede nerede göründüğünü bulmak ve görüntünün farklı bölgeleriyle ne ölçüde eşleştiğini ölçmektir. Şablon eşleştirme algoritması bunu, şablonu daha büyük görüntü üzerinde kaydırıp her konumda benzerlik puanı hesaplayarak yapar.
Puanı daha yüksek olan bölgeler en iyi eşleşme olarak kabul edilir; başka bir deyişle, bu bölgeler şablona çok benzer. Bu yöntem piksel piksel karşılaştırmalara dayandığından nesnelerin görünümünün değişmediği kontrollü ortamlarda en iyi sonucu verir.
Örneğin şablon eşleştirme, kalite kontrolünde etiket doğrulama görevlerinde kullanılabilir. Etiketlerin mevcut olup olmadığını kontrol etmek için etiket şablon görüntüsünü bitmiş ürünlerin görüntüleriyle kolayca eşleştirebilir.
Şablon eşleştirme nasıl çalışır?#
Şablon eşleştirmenin nasıl çalıştığına ilişkin adım adım genel bakış:
- Adım 1 - Görüntüleri hazırlama: Süreç, giriş görüntüsüyle şablon görüntüsünün yüklenmesi ve ardından ikisinin de gri tonlamalı görüntüye dönüştürülmesiyle başlar. Şablon eşleştirme piksel değerlerini karşılaştırmaya dayandığından renk bilgisini kaldırmak gürültüyü azaltır ve görüntü işlemeyi hızlandırır.
- Adım 2 - Şablonu görüntü üzerinde kaydırma: Ardından şablon eşleştirme algoritması, şablonu daha büyük görüntünün üzerinde her seferinde bir piksel kaydırır (sol üst köşeden başlayarak). Bu hareketin her adımı bir yinelemedir; algoritma bu adımda kaynak görüntüden şablonla aynı boyutta bir görüntü parçası çıkarır.
- Adım 3 - Eşleşmenin kalitesini ölçme: Her görüntü parçası, olası her konum için bir korelasyon ölçütü veya korelasyon değeri üretmek üzere matematiksel bir eşleştirme yöntemiyle şablonla karşılaştırılır. Yaygın yöntemler arasında kare farkları (toplam uyumsuzluğu hesaplamak için piksel yoğunlukları arasındaki sayısal uzaklığı ölçer), normalize edilmiş çapraz korelasyon (aydınlık ve karanlık örüntülerinin ne kadar iyi hizalandığını belirlemek için piksel değerlerini çarpar) ve korelasyon katsayısı (ışıklandırma biraz değişse bile eşleşmenin doğruluğunu korumak için ortalama parlaklığı çıkarır) yer alır.
- Adım 4 - En iyi eşleşmeyi belirleme: Tüm konumları değerlendirdikten sonra algoritma, kullanılan yönteme bağlı olarak en yüksek veya en düşük değeri bularak en iyi eşleşmeyi seçer. Yalnızca yeterince yüksek güven puanına sahip eşleşmeleri kabul edip zayıf veya hatalı tespitleri elemek için bu sonuçlara genellikle bir eşik uygulanır.
- Adım 5 - Sonucu vurgulama: Son olarak tespit edilen konum orijinal görüntüye aktarılır. Genellikle eşleşen bölgenin çevresine bir sınırlayıcı kutu çizilerek şablonun nerede göründüğü açıkça gösterilir.
Şablon eşleştirmeyi uygulamalı olarak deneme#
Görüntü işlemeye dayalı şablon eşleştirme, beraberinde getirdiği dezavantajlar nedeniyle dinamik gerçek dünya bilgisayarlı görü çözümlerinin dağıtımında genellikle kullanılmasa da denemek istersen OpenCV gibi Python kütüphaneleri bu süreci kolaylaştırır ve takip etmesi kolay eğitimler sunar. OpenCV, karmaşık matematiksel karşılaştırmaları gerçekleştiren yerleşik bir matchTemplate işlevi içerir.
Ayrıca, imread işleviyle görüntüleri yükleme ve cvtColor işleviyle görüntüleri gri tonlamaya dönüştürme gibi basit görevlerde yardımcı olan başka işlevleri de destekler. Renk dönüşümü önemli bir adımdır; çünkü görüntüyü tek bir yoğunluk kanalına indirgemek, matchTemplate içindeki matematiksel karşılaştırmayı çok daha hızlı ve renk gürültüsüne karşı daha az hassas hâle getirir.
Benzerlik haritasını oluşturduktan sonra tespiti tamamlamak için OpenCV'nin minMaxLoc işlevini de kullanabilirsin. Bu işlev, haritanın tamamını tarayarak en küçük ve en büyük değerleri tam koordinatlarıyla belirleyebilir. Kullanılan eşleştirme yöntemine bağlı olarak minMaxLoc, verilerdeki en yüksek korelasyonu veya en düşük hata değerini bularak en iyi eşleşmenin konumunu anında belirlemeni sağlar.
OpenCV'nin yanı sıra NumPy gibi kütüphaneler görüntü dizilerini işlemek ve sonuçlara eşik uygulamak için gereklidir; Matplotlib ise benzerlik haritasını ve son tespiti görselleştirmek için yaygın olarak kullanılır. Bu araçlar birlikte, şablon eşleştirme çözümü oluşturmak ve hatalarını ayıklamak için eksiksiz bir ortam sağlar.
Şablon eşleştirmenin gerçek dünyadaki uygulamaları#
Şablon eşleştirmenin nasıl çalıştığını daha iyi anladığımıza göre, şimdi gerçek dünya senaryolarındaki uygulamalarına yakından bakalım.
Geleneksel mimari stilleri belirleme#
Kültürel miras ve mimarlık araştırmalarında araştırmacılar, tasarım örüntülerinin bölgeler arasında nasıl değiştiğini anlamak için tarihî binaların, tapınakların ve anıtların fotoğraflarını incelemek zorundadır. Gelişmiş bilgisayarlı görü modelleri yaygın biçimde benimsenmeden önce araştırmacılar bu yapıları incelemek için görüntü eşleştirme tekniklerini kullanıyordu.
Şablon eşleştirme, araştırmacıların çatı hatları, pencere düzenleri veya duvar motifleri gibi belirli mimari ipuçlarına odaklanmasını sağlar. Şablonları veya referans görüntüleri daha büyük görüntüler üzerinde kaydırarak tekrar eden şekilleri belirleyebilir ve saatler sürebilen elle görüntü analizini azaltabilirler.
İlginç bir örnek, Endonezya geleneksel evleri üzerine yapılan bir çalışmadan geliyor. Araştırmacılar karakteristik özelliklerin küçük şablonlarını oluşturup bunları tam ölçekli fotoğraflarla karşılaştırdı. Bu yaklaşım, şablonla yakından eşleşen görüntü bölgelerini belirginleştirmek ve bölgeler arasındaki mimari stilleri sınıflandırmak için kullanıldı.

Şekil 3. Endonezya'daki geleneksel evleri sınıflandırmak için şablon eşleştirme kullanımı (Kaynak)
Endüstriyel görü sistemlerinde nesne tespiti#
Endüstriyel ortamlar, bileşenleri hızla tespit edebilen, montajları doğrulayabilen veya kusurları belirleyebilen görü sistemlerinden yararlanabilir. Derin öğrenme imalat alanında yaygınlaşmadan önce birçok ekip bu görevleri otomatikleştirmek için görüntü eşleştirme yöntemlerini denedi.
Basitçe söylemek gerekirse, bir bileşenin referans şablonu üretim hattından gelen görüntüleri taramak ve şablonla eşleşen bölgeleri vurgulamak için kullanılabilir. Parçalar tutarlı konumlarda göründüğünde ve ışıklandırma sabit olduğunda bu yöntem iyi çalışır.
Şablon eşleştirmeyle akciğer tümörü algılama#
Gelişmiş teknolojiler sağlık alanında etki yaratsa da BT taramaları gibi tıbbi görüntülerden sağlık sorunlarını teşhis etmek hâlâ zordur. Radyologlar geleneksel olarak her tarama kesitini elle incelemek zorundaydı; bu süreç son derece hassas ve oldukça zaman alıcıdır.
Derin öğrenme sağlık hizmetlerinde kullanılmaya başlamadan önce araştırmacılar iş akışını kolaylaştırmak ve anormallikleri belirlemeye yardımcı olmak için şablon eşleştirmeyi denedi. Bu tekniğin iyi bir örneği, akciğer tümörlerinin veya nodüllerinin tespitiyle ilgilidir.
Bu yöntemde araştırmacılar, bir tümörün tipik şeklini ve yoğunluğunu temsil eden referans şablonlar oluşturur. Ardından sistem, benzerliği her koordinatta ölçerek bu şablonları hasta taramalarında kaydırır.

Şekil 4. Şablon eşleştirmeyle akciğer tümörü algılama (Kaynak)
Şablon eşleştirmenin artıları ve eksileri#
Şablon eşleştirme kullanmanın bazı temel avantajları şunlardır:
- Sezgisel ve anlaşılır: Şablon eşleştirmeyi anlamak ve uygulamak kolaydır; bu da onu yapay zekâ ve bilgisayarlı görü alanında yeni başlayanlar için ideal bir başlangıç noktası yapar.
- Kontrollü koşullarda güvenilir: Tutarlı aydınlatma koşullarında gri tonlamalı görüntülerde iyi performans gösterir; desenler ve arka planlar sabit olduğunda doğru sonuçlar verir.
- Kolay entegrasyon: OpenCV gibi Python kütüphanelerini kullanarak şablon eşleştirmeyi karmaşık kurulumlara veya yoğun hesaplama gücüne ihtiyaç duymadan gerçek projelere hızla uygulayabilirsin.
Şablon eşleştirme birçok avantaj sunsa da bazı sınırlamaları vardır. Göz önünde bulundurman gereken birkaç zorluk şunlardır:
- Ölçek ve dönüşe duyarlı: Şablonun boyutundaki veya yönündeki değişiklikler doğruluğu azaltabilir.
- Aydınlatma ve kontrasta bağımlılık: Şablon ile görüntü arasındaki aydınlatma veya kontrast değişiklikleri hatalı eşleşmelere yol açabilir ya da şablonun tespit edilmesini zorlaştırabilir.
- Uyarlanabilirliği sınırlı: Yapay zekâ tabanlı yöntemlerin aksine şablon eşleştirme verilerden öğrenemez veya zaman içinde gelişemez. Kontrollü ya da tekrarlayan ortamlarda en iyi sonucu verir.
Önemli çıkarımlar#
Bilgisayarlı görü geniş bir alandır ve çeşitli teknikleri kapsar. Şablon eşleştirme gibi geleneksel görüntü işleme tekniklerini öğrenmek, görüntü analizinin nasıl işlediğini anlamak için iyi bir başlangıçtır. Modern görü yapay zekâ modelleri aynı temel kavramlar üzerine inşa edilir ve benzer sorunları çözer.
Yapay zekâ hakkında daha fazlasını keşfetmek ister misin? Topluluğumuza katıl ve GitHub depomuza göz at. Perakendede yapay zekânın ve üretimde görü yapay zekâsının değişimi nasıl yönlendirdiğini öğren. Bugün görü yapay zekâsıyla geliştirmeye başlamak için lisanslama seçeneklerimizi keşfet!
Yazan
Yorumlar
Soru sor, sonuçlarını paylaş veya başka birine yardım et.










