Şablon eşleştirme nedir? Hızlı bir rehber
Şablon eşleştirme (template matching) olarak adlandırılan görüntü işleme tekniğini, nasıl çalıştığını ve bilgisayarlı görü tarihindeki önemini keşfet.

Görüntüler genellikle insanların kolayca fark edebileceği çok sayıda ince detay barındırır. Ancak makineler için bu görev o kadar basit değildir. Makineler dijital bir görüntüyü piksel değerlerinden oluşan bir ızgara olarak algılar ve ışıklandırma, açı, ölçek veya netlikteki küçük değişiklikler bile kafa karıştırıcı olabilir.
Bir makinenin görüntü analizi yetenekleri genellikle birbirine yakından bağlı iki bilgisayar bilimi alanından gelir: görüntü işleme ve bilgisayarlı görü. Genellikle birlikte çalışsalar da farklı temel amaçlara sahiptirler.
Görüntü işleme, görüntülere ham veri olarak odaklanır. Görüntüleri iyileştirebilir ancak içeriklerini anlamaya çalışmaz. İşte bilgisayarlı görü tam bu noktada fark yaratır. Bilgisayarlı görü, makinelerin görüntüleri ve videoları anlamasını sağlayan yapay zeka (AI) dalıdır.
Temel görüntü işleme uzun yıllardır hayatımızda olsa da, en gelişmiş bilgisayarlı görü yenilikleri çok daha yenidir. Alanın tarihini anlamanın harika bir yolu, bu sorunları çözmek için eskiden kullandığımız geleneksel yöntemlere geri dönüp bakmaktır.
Örneğin görüntü eşleştirmeyi ele alalım. Bu, bir sistemin belirli bir nesnenin veya desenin daha büyük bir görüntü içinde mevcut olup olmadığını bulması gereken yaygın bir görü görevidir.
Günümüzde bu, AI ve derin öğrenme kullanılarak kolay ve doğru bir şekilde yapılabilmektedir. Ancak 2010'lu yıllarda 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. Bir şablon eşleştirme örneği (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. Bu konvolüsyon benzeri kaydırma işlemi, algoritmanın o belirli desenle en yakından eşleşen konumu bulmasını sağlar.
Bu makalede şablon eşleştirmenin ne olduğunu ve modern iyileştirmelerin onu gerçek dünya durumlarında nasıl daha güvenilir hale getirdiğini keşfedeceğiz. Hadi başlayalım!
Link to this sectionŞablon eşleştirme nedir?#
Şablon eşleştirme aynı zamanda klasik bir bilgisayarlı görü tekniği olarak da adlandırılabilir; bu, doğrudan görüntü pikselleriyle (dijital bir görüntünün en küçük birimi) çalıştığı anlamına gelir. Daha büyük bir görüntü içinde daha küçük bir desen bulmak için kullanılır.
Bu gibi yöntemler, büyük veri kümeleri üzerinde büyük modeller eğitmek yerine geometri, optik ve matematiksel kurallar kullanılarak tanımlanır. Diğer bir deyişle, bir şablon eşleştirme sistemi iki girdi arasındaki parlaklık, renk ve diğer piksel bilgilerini karşılaştırır: girdi görüntüsü (daha büyük görüntü) ve daha küçük bir şablon görüntüsü (bulunacak desen).

Ş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ü tespit etmek ve görüntünün farklı bölgeleriyle ne kadar yakın eşleştiğini ölçmektir. Şablon eşleştirme algoritması bunu, şablonu daha büyük görüntü üzerinde kaydırarak ve her konumda bir benzerlik puanı hesaplayarak yapar.
Daha yüksek puanlı bölgeler en iyi eşleşme olarak kabul edilir, yani şablona çok benzerler. Bu yöntem piksel bazlı karşılaştırmalara dayandığından, nesnelerin görünümünün değişmediği kontrollü ortamlarda en iyi şekilde çalışır.
Örneğin, şablon eşleştirme kalite kontroldeki etiket doğrulama görevlerinde kullanılabilir. Etiketlerin mevcut olup olmadığını kontrol etmek için etiketlerin şablon görüntüsünü bitmiş ürünün görüntüleriyle kolayca eşleştirebilir.
Link to this sectionŞablon eşleştirme nasıl çalışır#
İşte şablon eşleştirmenin nasıl çalıştığına dair adım adım bir genel bakış:
-
Adım 1 - Görüntüleri hazırlama: İşlem, girdi görüntüsünü ve şablon görüntüsünü yükleyip ardından her ikisini de gri tonlamalı bir görüntüye dönüştürerek 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ü üzerinde her seferinde bir piksel olacak şekilde (sol üst köşeden başlayarak) kaydırır. Bu hareketin her adımı bir yinelemedir ve algoritma, kaynak görüntüden şablonun boyutuyla eşleşen bir görüntü yaması çıkarır.
-
Adım 3 - Eşleşmenin ne kadar iyi olduğunu ölçme: Her görüntü yaması, her olası konum için bir korelasyon metriği veya korelasyon değeri oluşturmak üzere matematiksel bir eşleştirme yöntemi kullanılarak şablonla karşılaştırılır. Yaygın yaklaşımlar arasında karesel farklar (toplam uyumsuzluğu hesaplamak için piksel yoğunlukları arasındaki sayısal mesafeyi ölçer), normalleştirilmiş çapraz korelasyon (ışık ve karanlık desenlerinin ne kadar iyi hizalandığını belirlemek için piksel değerlerini çarpar) ve korelasyon katsayısı (aydınlatma biraz değişse bile eşleşmenin doğru kalmasını sağlamak için ortalama parlaklığı çıkarır) bulunur.
-
Adım 4 - En iyi eşleşmeyi tanımlama: Tüm konumları değerlendirdikten sonra algoritma, kullanılan yönteme bağlı olarak maksimum veya minimum değeri bularak en iyi eşleşmeyi seçer. Yalnızca yeterince yüksek bir güven puanına sahip eşleşmelerin kabul edilmesini sağlamak ve zayıf veya yanlış tespitleri filtrelemek için bu sonuçlara genellikle bir eşik değeri uygulanır.
-
Adım 5 - Sonucu vurgulama: Son olarak, tespit edilen konum orijinal görüntü üzerine geri eşlenir. Genellikle, şablonun nerede göründüğünü net bir şekilde göstermek için eşleşen bölgenin etrafına bir sınırlayıcı kutu çizilir.
Link to this sectionŞablon eşleştirmeyi uygulamalı öğrenme#
Görüntü işleme tabanlı şablon eşleştirme, getirdiği dezavantajlar nedeniyle dinamik gerçek dünya bilgisayarlı görü çözümlerinde genellikle kullanılmasa da, test etmek istersen OpenCV gibi Python kütüphaneleri bu süreci basitleştirir ve takip etmesi kolay eğitimler sunar. Karmaşık matematiksel karşılaştırmaları yöneten yerleşik bir matchTemplate fonksiyonuna sahiptir.
Ayrıca, imread fonksiyonunu kullanarak görüntü yükleme ve görüntüleri gri tonlamaya dönüştürmek için cvtColor fonksiyonunu kullanma gibi basit görevlerde yardımcı olan diğer fonksiyonları da destekler. Renk dönüşümü kritik bir adımdır çünkü bir 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 hale getirir.
Benzerlik haritasını oluşturduktan sonra, OpenCV tespiti tamamlamak için bir minMaxLoc fonksiyonu da içerir. Bu, genel minimum ve maksimum değerleri tam koordinatlarıyla tanımlamak için haritanın tamamını taramak amacıyla kullanılabilir. 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'ye ek olarak, NumPy gibi kütüphaneler görüntü dizilerini işlemek ve sonuçlara eşik değeri uygulamak için önemlidir; Matplotlib ise benzerlik haritasını ve nihai tespiti görselleştirmek için yaygın olarak kullanılır. Bu araçlar birlikte, bir şablon eşleştirme çözümü oluşturmak ve hata ayıklamak için eksiksiz bir ortam sağlar.
Link to this sectionŞablon eşleştirmenin gerçek dünya uygulamaları#
Artık şablon eşleştirmenin nasıl çalıştığına dair daha iyi bir anlayışa sahip olduğumuza göre, gerçek dünya senaryolarındaki uygulamasına daha yakından bakalım.
Link to this sectionGeleneksel mimari stilleri tanımlama#
Kültürel miras ve mimari çalışmalarda araştırmacılar, tasarım desenlerinin bölgelere göre nasıl değiştiğini anlamak için tarihi binaların, tapınakların ve anıtların fotoğraflarını analiz etmek zorundadır. Gelişmiş bilgisayarlı görü modelleri yaygınlaşmadan önce, bu yapıları incelemek için görüntü eşleştirme tekniklerini kullanıyorlardı.
Şablon eşleştirme, araştırmacıların çatı ana hatları, pencere düzenlemeleri veya duvar motifleri gibi belirli mimari ipuçlarına odaklanmasını sağlar. Şablonları veya referans görüntülerini daha büyük görüntüler üzerinde kaydırarak, tekrarlayan şekilleri tanımlayabilir ve saatler sürebilecek manuel görüntü analizini azaltabilirler.
İlginç bir örnek, Endonezya geleneksel evleri ile ilgili bir çalışmadan gelmektedir. Araştırmacılar karakteristik özelliklerin küçük şablonlarını oluşturdular ve bunları tam ölçekli fotoğraflarla karşılaştırdılar. Bu yaklaşım, şablonla yakından eşleşen görüntü bölgelerini vurgulamak 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)
Link to this sectionEndüstriyel görü sistemlerinde nesne tespiti#
Endüstriyel ortamlar, bileşenleri hızla tespit edebilen, montajları doğrulayabilen veya kusurları fark edebilen görü sistemlerinden yararlanabilir. Üretimde derin öğrenme 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 ifade etmek gerekirse, bir bileşen referans şablonu, üretim hattından gelen görüntüleri taramak ve şablonla eşleşen bölgeleri vurgulamak için kullanılabilir. Bu, parçalar tutarlı konumlarda göründüğünde ve ışıklandırma sabit olduğunda iyi çalışır.
Link to this sectionAkciğer tümörü tespiti için şablon eşleştirme#
En son teknoloji sağlık hizmetlerinde bir etki yaratsa bile, BT taramaları gibi tıbbi görüntülemeden sağlık sorunlarını teşhis etmek hala zordur. Geleneksel olarak, radyologların her tarama dilimini manuel olarak gözden geçirmesi gerekiyordu; bu, aşırı hassasiyet ve önemli miktarda zaman gerektiren bir süreçti.
Derin öğrenme sağlık hizmetlerinde uygulanmadan önce araştırmacılar, iş akışını hızlandırmak ve anormallikleri belirlemeye yardımcı olmak için şablon eşleştirmeyi kullanmaya çalıştılar. Bu tekniğin iyi bir örneği, akciğer tümörlerinin veya nodüllerinin tespiti ile ilgilidir.
Bu yöntemde araştırmacılar, bir tümörün tipik şeklini ve yoğunluğunu temsil eden referans şablonları oluştururlar. Sistem daha sonra bu şablonları hasta taramaları üzerinde kaydırarak her koordinatta benzerliği ölçer.

Şekil 4. Şablon eşleştirme kullanarak akciğer tümörü tespiti (Kaynak)
Link to this sectionŞablon eşleştirmenin avantajları ve dezavantajları#
İşte şablon eşleştirme kullanmanın bazı temel avantajları:
- Sezgisel ve anlaşılır: Şablon eşleştirmenin anlaşılması ve uygulanması kolaydır, bu da onu AI ve bilgisayarlı görüye yeni başlayanlar için ideal bir başlangıç noktası haline getirir.
- Kontrollü koşullarda güvenilir: Tutarlı ışıklandırma altında gri tonlamalı görüntülerde iyi performans gösterir ve desenler ile arka planlar sabit olduğunda doğru sonuçlar verir.
- Kolay entegrasyon: OpenCV gibi Python kütüphanelerini kullanarak şablon eşleştirme, karmaşık kurulum veya ağır hesaplama gerektirmeden gerçek projelere hızlıca uygulanabilir.
Şablon eşleştirme birçok avantaj sunsa da sınırlamaları da vardır. Aklında bulundurman gereken birkaç zorluk şunlardır:
- Ölçek ve döndürmeye duyarlı: Şablonun boyutundaki veya yönündeki değişiklikler doğruluğu azaltabilir.
- Işıklandırma ve kontrast bağımlılığı: Şablon ile görüntü arasındaki ışıklandırma veya kontrast değişiklikleri yanlış eşleşmelere neden olabilir veya şablonun tespit edilmesini zorlaştırabilir.
- Sınırlı uyarlanabilirlik: AI tabanlı yöntemlerin aksine, şablon eşleştirme verilerden öğrenemez veya zamanla gelişemez. En iyi şekilde kontrollü veya tekrarlayan ayarlarda çalışır.
Link to this sectionÖne çıkanlar#
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 çalıştığını anlamak için harika bir başlangıç noktasıdır. En yeni görü AI yenilikleri aynı temel kavramlar üzerine inşa edilir ve benzer sorunları çözer.
AI hakkında daha fazla bilgi edinmek ister misin? Topluluğumuza katıl ve GitHub depomuza göz at. Perakendede AI ve üretimde görü AI alanındaki gelişmelerin değişimi nasıl yönlendirdiğini öğren. Bugün görü AI ile geliştirmeye başlamak için lisanslama seçeneklerimizi incele!






