Nesne Algılama Yaklaşımlarına “Transformer” Devrimi

“Bilimde yeni olgular elde etmekten daha önemli olan şey, olgular üzerine yeni düşünme yolları keşfetmektir.” Lawrence Bragg

Ayyüce Kızrak, Ph.D.
9 min readApr 10, 2021
Photo by Samule Sun on Unsplash

Bilgisayarlı görü (computer vision) alanında insanüstü başarılara ulaşan uygulamalar varken her geçen gün daha efektif uygulanabilen yaklaşımlar ile iyileştirmeler yapılmaya devam etmektedir. Günümüzün karmaşık nesne algılama ve sınıflandırma çalışmaları; yüksek doğruluk, gerçek zaman, düşük çözünürlüklü görüntülerde küçük nesne tahminleri gibi daha fazla yeteneğe sahiptir. Yine de nesne algılama görevleri, eğitim, test ve sınırlı parametrelerle iyi bir şekilde genelleştirebilen birleşik bir mimari açısından sınıflandırma görevinin basitliğinden yoksundur. Bu problemi çözmek için yapılan çalışmalardan biri de Facebook AI tarafından 2020 yılının Mayıs ayında yayınlanan End-to-End Object Detection with Transformers (Transformerslar ile uçtan uca nesne algılama) bir diğer adı ile DEtection TRansformer — DETR çalışmasıdır.

Nesne Algılama için Transformer kullanma fikri

Transformer son yıllarda özellikle Doğal Dil İşleme — DDİ (Natural Language Processing — NLP) mimarilerinin temel yapı taşını oluşturan derin öğrenme modelleri ailesidir. Dikkat mekanizmalarına dayanan basit bir ağ mimarisidir. Yapay zekâ (YZ) modellerinin girdilerinin belli kısımlarına seçici olarak odaklanmasını ve böylece daha hızlı ve etkin bir öğrenme amaçlanmıştır. Ayrıca konuşma tanıma, sembolik matematik ve pekiştirmeli öğrenme gibi çeşitli görevlerde de transformersları görebiliyoruz. Makine dil çevirileri konusunda özellikle tercih edilirken bu çalışmada, belki de şaşırtıcı bir şekilde, bilgisayarlı görü konusu olan görüntülerden nesne tanıma problemini çözmek üzere karşımıza çıkıyor.

DETR geçmişteki nesne algılama ve tanıma sistemlerine kıyasla tamamen farklı bir mimari ile pipelineın merkezine transformersları yerleştirmiş ilk çalışmadır.

DETR iki yeni bileşenden meydana geliyor:

  • Çift taraflı eşleştirme (bipartite matching) temelli benzersiz tahminleri zorlayan küme tabanlı bir global yitim (loss).
  • Bir transformer kodlayıcı-kod çözücü (encoder-decoder) mimarisi.

DETR modeli, nesnelerin ve görüntünün global bağlamındaki ilişkilerini öğrenmek için sabit küçük bir dizi olarak öğrenilmiş nesne sorguları verildiğinde, paralel olarak nihai tahmin kümesini doğrudan çıkarabilmektedir.

DETR Pipeline

  1. Bir temel modelden görüntü özelliklerinin hesaplanması
  2. Kodlayıcı-kod çözücü mimarisine transformersların iletilmesi
  3. Tahmin kümelerinin hepsini aynı anda hesaplayabilmesi
DETR, ortak bir CNN’i Transformer mimarisiyle birleştirerek nihai algılama kümesini paralel olarak tahmin eder. Eğitim sırasında, iki taraflı eşleştirme, referans kutuları (ground truth) ile benzersiz bir şekilde tahminler hesaplar. Eşleşme olmayan tahminler “nesnesiz” sınıf tahmini olarak hesaplanır.

Eğitim

  1. Bir temel model ile görüntü özelliklerinin hesaplanması.
  2. Kodlayıcı-kod çözücü mimarisine transformersların iletilmesi
  3. Yanlış veya ekstra tanımlamaları ortadan kaldırmak için tahmin edilen ve gerçek nesneler arasında çift taraflı eşleştirme gerçekleştiren bir set yitim fonksiyınu uygulanması

DETR Mimarisi üç ana bileşenden meydana geliyor:

  1. Efektif bir özellik gösterimi elde etmek için CNN mimarisi kullanır.
  2. Bir kodlayıcı-kod çözücü transformers kullanır.
  3. Son nesne algılama tahminini yapan basit bir ileri beslemeli ağ (Feed-Forward Network — FFN) kullanır.

Başlangıç model (Backbone)

DETR makalesinde ResNet50 derin öğrenme modelini başlangıçta temel model olarak kullanmışlardır. Genellikle problemin karmaşıklığına göre başarısı ispatlanmış modellerden biri başlangıç olarak kullanılabilir. Düşük boyutlu öznitelikleri çıkarmak için kullanılırlar.

Faster R-CNN gibi geleneksel iki aşamalı (agreement) algılama sistemleri, genellikle CNN özelliklerinin bir fonksiyonu olan çok sayıda aday bölgeyi filtreleyerek nesne sınırlama kutularını tahmin eder. Seçilen her bölge, bölge tarafından tanımlanan konumdaki CNN özelliklerinin kırpılmasını ve her bölgenin bağımsız olarak sınıflandırılmasını ve konumunun iyileştirilmesini içeren bir iyileştirme adımında kullanılır. Son olarak, yinelenen kutuları kaldırmak için maksimum olmayan bir eşikleme adımı uygulanır. DETR, geleneksel olarak nesne algılamaya özgü (potansiyel olarak farklılaştırılamayan) işlemleri gerçekleştirmek için standart bir Transformer mimarisinden yararlanarak algılama pipeline oluşturur.

Nesne algılama ve tanıma için yinelemeli sinir ağları yaklaşımları kullanmaya yönelik yapılan çalışmalarda çok daha yavaş ve daha az başarılı olduğu anlaşılmıştı. Çünkü tahminler paralel yerine sıralı olarak yapılıyor! Ancak transformers ile dikkat mekanizması oluşturulduğunda örneğin; model, sınırlayıcı kutudaki nesne hakkında karar vermeye yardımcı olması için görüntünün diğer bölgelerine bakabilir. Ayrıca, bir görüntüdeki nesneler arasındaki ilişkilere veya korelasyonlara dayalı tahminlerde bulunabilir.

Ayrıca, bu pipeline, arka plandaki tüm pikselleri aynı anda etiketlerken farklı ön plandaki nesneleri segmentlere ayırmayı amaçlayan panoptik segmentasyon gibi ilgili görevlere genişletilebileceğini de gösteriyor. DETR, hayvanlar veya insanlar gibi ön plandaki öğeleri ve gökyüzü veya çimen gibi arka plan öğelerini bütün bir şekilde ele alabiliyor.

DETR pipeline avantajları

  • Kullanımı kolay
  • Özel katman yok
  • Diğer görevlere kolay genelleştirebilme
  • Öneri kutuları (anchor boxes) veya NMS gibi el ile algoritmalar hakkında bilgi gerektirmez

Transformers nasıl çalışır?

Attention is All You Need” makalesi, Transformer adlı yeni bir mimariyi tanıtınılmıştı. Başlığın da belirttiği gibi “dikkat mekanizmasını” kullanan bir yapı önerilmektedir. LSTM (Long-Short Term Memory) gibi, Transformer bir diziyi, iki parçanın (Kodlayıcı ve Kod Çözücü) yardımıyla bir başka diziye dönüştürmek için kullanılan bir mimaridir. Ancak mevcut diziden diziye dönüştürme yapabilen modellerden farklıdır çünkü Yinelenen Ağları (RNN, GRU, LSTM gibi) kullanmaktadır.

Vaswani ve diğerleri tarafından “Attention is All You Need” den Transformatör Mimarisi.

Şeklin solunda kodlayıcı sağında kodçözücü mimarisi gösterilmektedir. Hem kodlayıcı hem de kod çözücü, şekilde Nx tarafından açıklandığı gibi, üst üste birden çok kez birbirine bağlanabilen modüllerden oluşuyor. Modüllerin ağırlıklı olarak “Multi-Head Attention” ve FFN katmanlarından oluştuğunu görüyoruz.

Transformer, YZ modellerinin girdilerinin belirli kısımlarına seçici olarak odaklanmasını ve böylece daha etkili bir şekilde öğrenme sağlayan “dikkat” adı verilen basit ama güçlü bir mekanizmaya dayanıyor.

Kodlayıcı

İlk olarak, 1×1'lik bir evrişim, yüksek seviyeli aktivasyon haritasının kanal boyutunu C’den daha küçük bir d boyutuna düşürerek yeni bir özellik haritası d × H × W oluşturur. Kodlayıcı, bir diziyi girdi olarak bekler, böylece bir boyuta daraltılır ve sonuçta bir d × HW özellik haritası elde edilir. Her kodlayıcı katmanı standart bir mimariye sahiptir ve multi-head self-attention modülü ve bir FFN’den oluşur. Transformer mimarisi permütasyonla değişmez (permutation invariant) olduğundan, onu her dikkat katmanının girişine eklenen sabit konumsal kodlamalarla tamamlarlar.

Kod çözücü

Kod çözücü, multi-head self-attention ve kodlayıcı-kod çözücü dikkat mekanizmalarını kullanarak d boyutundaki N tane embeddinge dönüştürerek transformer standart mimarisini takip eder. Orijinal transformerdan farkı, DETR modelinin her kod çözücü katmanında paralel olarak N nesnenin kodunu çözmesidir. Bu N giriş yerleştirmeleri, nesne sorguları olarak adlandırdıkları öğrenilmiş konumsal kodlamalardır ve kodlayıcıya benzer şekilde, her dikkat katmanının girişine eklenirler.

N nesne sorgusu, kod çözücü tarafından gömülü bir çıktıya dönüştürülür. Daha sonra bağımsız olarak, bir FFN tarafından kutu koordinatlarına ve sınıf etiketlerine dönüştürülerek N adet nihai tahmin elde edilir.

Kod çözücü, sorguları (başlangıçta sıfıra ayarlanır), çıkış konumsal kodlamayı (nesne sorguları) ve kodlayıcı belleğini alır . Multi-head self-attention ve kod çözücü-kodlayıcı dikkat mekanizması yoluyla tahmini sınıf etiketlerinin ve sınırlayıcı kutuların son setini üretir. İlk kod çözücü katmanındaki ilk self-attention katmanı atlanabilir.

İleri Besleme Ağı (FFN)

FNN, ReLU aktivasyon fonksiyonuna, d boyutunda gizli ve doğrusal 3 katmanlı bir algılayıcıdır. FFN katmanları, Md giriş ve çıkış kanallarına sahip etkili çok katmanlı 1×1 evrişimlerdir.

FFN, normalleştirilmiş merkez koordinatlarını, kutunun yüksekliğini ve genişliğini w.r.t tahmin eder. Girdi görüntüsü ve doğrusal katman, bir softmax fonksiyonu kullanarak sınıf etiketini tahmin eder. Sabit boyutlu bir N sınırlayıcı kutu setini tahmin ettiğimizden, burada N genellikle bir görüntüde ilgilenilen nesnelerin gerçek sayısından çok daha büyüktür. Bir kutuda hiçbir nesnenin algılanmadığını göstermek için ek bir özel sınıf etiketi ∅ kullanılır. Bu sınıf, standart nesne algılama yaklaşımlarında “arka plan” sınıfına benzer bir rol oynar.

Yitim/KayıpFonksiyonu

Yitim fonksinunu oluşturmak bu çalışma için karmaşık gibi görünse de iki basit adımdan meydana geliyor ve ilki DETR yaklaşımına özgü bir adımdır:

  • Maliyet fonksiyonuna sahip bir graf tekniği kullanarak verilen referans kutulara göre tahminlerin en iyi eşleşmesi hesaplanır.
  • Ardından bilinen yitim adımı, sınıf ve kutu tahminlerini maliyet hesabı için bir yitim tanımlanır.

Nasıl bir graf tekniği uygulanır?

  • İki Taraflı Grafdaki (Bipartite Graph) bir eşleştirme, iki kenarın bir uç noktayı paylaşmayacağı şekilde seçilen kenarlar kümesidir. Maksimum eşleşme, maksimum boyutun yani kenar sayısının eşleşmesidir. Daha iyi anlaşılması için yandaki şekile gözatabilirsiniz.
  • Maksimum eşleşmede, eğer herhangi bir kenar eklenirse, artık bir eşleşme olmaz. Belirli bir “İki Taraflı Graf” için birden fazla maksimum eşleşme olabilir.

Nesne algılama bağlamında, belirli bir referans kutu için en iyi tahmin edilen kutuyu bulmalıyız. Bu sayede, Non Maximum Suppression (NMS) ve öneri kutu ihtiyacını ortadan kaldırıyor.

Yitim fonksiyonu, optimal bir çift taraflı eşleştirme fonksiyonudur (optimal bipartite matching function).

  • I giriş görüntüsündeki referans kutuların sayısı y olsun.
  • y_ ağ tarafından yapılan tahminlerin sayısı olsun.

y_, herhangi bir görüntüdeki genel tahminlerden çok daha büyük olduğu varsayılan N değerine sabitlenmiştir. (Gerçek tahminler + nesne etiketi olmadığı için geri kalanlar doldurulur) N’ye eşittir.

Daha sonra, en düşük maliyetli N öğeden oluşan bir permütasyonda bir eşleştirme fonksiyonu kullanarak bu iki küme arasında iki taraflı bir eşleşme bulunur:

En düşük maliyetle önceden ve gt arasında en iyi eşleşme.

Burada Lmatch(yi,ˆyσ(i)), referans kutu yi ile indeks σ(i) olan bir tahmin arasındaki çift yönlü bir eşleştirme maliyetidir (cost). m referans kutu ve n tahmini ile bir argmin problemi olarak formüle edilmiş ve m×n matrisi üzerinden Hungarian algoritması ile verimli bir şekilde hesaplanmıştır.

Eşleştirme maliyeti, hem sınıf tahminini (sınıflandırma) hem de tahmin edilen ve referans kutularının benzerliğini (regresyon) hesaba katıyor.

Eşleşen maliyet şu şekilde tanımlanır:

Maliyet Fonksiyonunu Eşleştirme

Referans kutu (ground truth) kümesinin her i öğesi, bir yi=(ci, bi) olarak görülebilir; burada ci, hedef sınıf etiketidir (∅ olabilir) ve bi∈ [0,1], dört özelliğe sahip bir vektördür. Normalleştirilmiş referans kutusu merkez koordinatları, görüntü boyutuna göre yükseklik ve genişliğe sahiptir. İndeks σ(i) ile tahmin için ci sınıfının olasılığını ˆpσ(i)(ci) ve tahmin edilen kutuyu ˆbσ(i) olarak tanımlar. Yitim fonksiyonunun ilk kısmı sınıf tahminiyle ilgilenir ve ikinci kısım kutu tahmini için yitim hesabıdır.

Küme için tüm eşleşen çiftleri aldıktan sonra, sonraki adım yitim fonksiyonunu, Hungarian yitim hesaplamaktır.

Pred ve gtarasındaki Hungarian Yitimi

ˆσ, eşleşen maliyet fonksiyonunda hesaplanan en uygun atama / en iyi eşleşmedir.

Ekstra ve yanlış kutuları ve bunlara karşılık gelen sınıflandırmaları hesaplamak için tahminlerin tüm N permütasyonları ile temel gerçek arasında negative log likelihood olasılığı oluşturur. Yani bilinen diğer nesne algılama yaklaşımları gibidir.

Bu makalede, sınıf dengesizliğini hesaba katmak için ci=∅ (nesne yok) olduğunda log-olasılık terimini 10 faktör ile azaltılır. Pozitif-negatif dengesizlik oranını hesaba katmak için Faster R-CNN ve diğer iki aşamalı nesne algılayıcılarıne benzer.

Kutu Yitim Fonksiyonu (L_box)

L1 ve Genelleştirilmiş IOU yitimi (doğası gereği ölçek değişmezi) doğrusal bir kombinasyonunu kullanır.

Kutu Yitim Fonksiyonu

Bu yitim, herhangi bir öneri ve referans kutu veya ölçekleme sorunu olmadan kutunun doğrudan tahmin edilmesine yardımcı olur. Bu iki yitim, küme (batch) içindeki nesnelerin sayısı ile normalleştirilir.

🎯 Sonuçlar

DETR’ın yeni mimarisi, bilgisayarlı görü modellerinin yorumlanabilirliğinin geliştirilmesine de yardımcı olabilir. Dikkat mekanizmalarına dayandığından, ağın bir tahminde bulunurken görüntünün hangi kısımlarına baktığını görmek kolaydır.

COCO veri kümesinde DETR sonuçları

Doğrudan küme tahmini için transformerslara ve çift taraflı eşleştirme yitimine dayalı nesne algılama sistemleri için yeni bir yaklaşımdır. Büyük nesnelerde Faster R-CNN’den önemli ölçüde daha iyi performans elde eder. Self-attention tarafından gerçekleştirilen global bilgilerin işlenmesi sayesindedir. Diğer nesne algılama yaklaşımlarına kıyasla daha küçük nesneler üzerinde iyi performans gösterir. Eğitim süresi uzundur ve gerçek zamanlı değildir.

💻 Uygulama

Yazarlar, makalenin son sayfasına DETR yaklaşımının 50 satırdan az olan kaynak kodunu paylaşmışlardır.

--

--

Ayyüce Kızrak, Ph.D.

AI Specialist @Digital Transformation Office, Presidency of the Republic of Türkiye | Academics @Bahçeşehir University | http://www.ayyucekizrak.com/