FPGA ile Olay Tabanlı ve Nöromorfik Görüntü İşleme
Geleneksel bir kamera dünyayı her seferinde aynı şekilde yakalar: saniyede onlarca kez, her bir pikseli, değişmiş olsun olmasın, okur. Durağan bir sahneye çevrildiğinde bile kare üstüne kare, milyonlarca aynı değeri özenle yeniden iletir. Gündelik fotoğrafçılığın çoğu için bu sorun değildir. Ancak mikrosaniyeler içinde harekete tepki vermesi gereken sistemler için (robot kolları, otonom araçlar, endüstriyel denetim hatları) bu, muazzam bir bant genişliği ve gecikme israfı demektir.
Olay tabanlı görüntüleme (event-based vision) farklı bir soruyla yola çıkar: “Sahne şu anda bütünüyle nasıl görünüyor?” yerine “Hangi pikseller az önce değişti?” sorusunu sorar. Nöromorfik sensörlerin dayandığı bakış açısı budur ve bu yaklaşım, çok özel bir hesaplama platformuyla doğal biçimde eşleşir: FPGA.
Olay Tabanlı Görüntüleme Tam Olarak Nedir?
Prophesee’nin EVK4 modeli gibi kameraların arkasındaki sensör sınıfı olan Dinamik Görüş Sensörü (Dynamic Vision Sensor, DVS), sabit kareler oluşturmaz. Her piksel bağımsız ve asenkron çalışır: yalnızca parlaklıkta eşik değerini aşan bir değişiklik algıladığında ateşlenir ve tam kare okuması yerine kompakt bir “olay” (piksel adresi, polarite, zaman damgası) üretir. Hareket yoksa çıktı da yoktur.
Datasheet değerleri çarpıcıdır. Daha önce de kullandığımız Sony IMX636 sensörü üzerine inşa edilen EVK4; 100 µs’nin altında piksel seviyesinde gecikme, standart modda 86 dB’nin üzerinde, düşük ışık için optimize edilmiş modda ise 120 dB’yi aşan dinamik aralık (yaklaşık 0,08 lux’e kadar çalışma) ve 10.000 fps’nin üzerinde eşdeğer zamansal çözünürlük sunar. Üstelik bunların tümünü yalnızca gerçekten değişen pikselleri ileterek yapar. Hız, dinamik aralık ve doğal veri seyrekliğinin bu birleşimi, olay tabanlı sensörlerin kare tabanlı kameraların tıkandığı her yerde öne çıkmasının nedenidir: yüksek hızlı takip, düşük ışıkta çalışma ve aşırı kontrastlı sahneler.
Bu Yaklaşım Nöromorfik Hesaplamayla Neden Örtüşür?
Olay tabanlı veri yalnızca seyrek değildir, aynı zamanda “doğası gereği sivri (spike) benzeridir”: ayrık, zaman damgalı ve asenkron sinyallerden oluşan bir akıştır. Bu, tam olarak Sivri Sinir Ağlarının (Spiking Neural Network, SNN) tasarlandığı girdi biçimidir. Geleneksel bir sinir ağı yoğun tensörleri saat darbesiyle işlerken, sivri bir nöron girdiyi zaman içinde biriktirir ve yalnızca eşiği aştığında ateşlenir, yani yalnızca o zaman iş yapar. Bir SNN’i kare tabanlı, yoğun örneklenmiş verilerle beslediğinizde onun doğasına karşı çalışmış olursunuz. Doğrudan yerel bir olay akışıyla beslediğinizde ise iki paradigma neredeyse kusursuz biçimde örtüşür: hiçbir şeyin olmadığı yerde veri yok, hiçbir şeyin olmadığı yerde hesaplama yok.
Neden GPU Değil de FPGA?
Bu, gerçekten inşa etmeye çalışana kadar kolayca hafife alınan bir noktadır: GPU’lar yoğun, toplu (batch) ve kare odaklı iş yüklerinde olağanüstü başarılıdır, ancak seyrek, asenkron ve olay bazlı işlemeyle yapısal olarak uyumsuzdur. GPU’yu verimli kılmak için olayları gruplamak, sensörün ortadan kaldırmak üzere tasarlandığı gecikmeyi geri getirir.
FPGA’da böyle bir çelişki yoktur. Deterministik ve saat doğruluğunda zamanlama, devasa ölçüde ince taneli paralellik ve en önemlisi, genel amaçlı bir komut kümesi yerine tam olarak olay akışına göre şekillendirilmiş özel bir veri akışı hattı kurma özgürlüğü sunar. Bu, RunX dışında da aktif bir araştırma alanıdır: FPGA tabanlı sivri sinir ağı hızlandırıcıları üzerine yakın tarihli çalışmalar, programlanabilir mantık içinde asenkron ve olay tetiklemeli SNN çıkarımını tam da bu şekilde inceler. -Bu mimari argüman yalnızca RunX’in kendi görüşü değildir, alanın gittiği yöndür.
Gerçek Dünyada Nerede Karşımıza Çıkıyor?
Engellere milisaniyeler değil mikrosaniyeler içinde tepki vermesi gereken robotlar ve dronlar. Bir kusurun sensörün önünden bir karenin çok küçük bir bölümü kadar sürede geçtiği yüksek hızlı endüstriyel denetim. Tünel çıkışları ve geceleyin karşıdan gelen farlar gibi aşırı ışık geçişlerinde otomotiv algılama. Hızlı baş veya el hareketlerini hareket bulanıklığı olmadan izleyen AR/VR sistemleri. Bunların hepsinde darboğaz makine öğrenmesi modeli değildir. Asıl mesele, karenin değişmemiş olan %99’una bedel ödemeden doğru veriyi modele yeterince hızlı ulaştırmaktır.
Biz Bu Yaklaşımı Nasıl Uyguladık?
Daha önce RunX projelerinden birinde bu hattı uçtan uca hayata geçirdik: olay tabanlı bir kameradan gelen yüksek hızlı olay akışı, Xilinx ZCU102 (Zynq UltraScale+ MPSoC) üzerinde alındı ve işlendi; ardından programlanabilir mantıkta (PL) donanım IP çekirdeği olarak gerçeklenen bir SNN bloğuna aktarıldı.
Kameradaki olay verisi, İşlem Sistemi (Processing System, PS) tarafına geldi ve AXI DMA üzerinden PL’e taşındı. SNN IP çekirdeği, çıkarımı doğrudan gelen olay akışı üzerinde çalıştırdı. Kamera saniyede 10.000 olaya kadar veri akıtıyordu ve bunların tamamının veri kaybı olmadan sıralı biçimde işlenmesi gerekiyordu. Bu, ARM çekirdeklerine değil PL’e ait, örnek başına işlenen ve zamanlaması kritik türden bir iş yüküdür. Sonuçlar buradan 10G UDP tasarımı ve 10G Ethernet IP’si üzerinden dışarı aktarıldı. PS ise kontrol ve izleme için ayrı bir 1G Ethernet yolunu yönetti.
Sensör verisininin önce PS veya PL üzerinden geçeceği projeye göre değişebilir. Arayüze ve zamanlama bütçesine bağlı olarak bazı tasarımlarda sensör doğrudan PL’e bağlanır. Projeden projeye taşınan şey sabit bir mimariden çok bir pratik kuraldır: bir görevin zamanlama garantisine ihtiyacı varsa veya örnek başına çalışması gerekiyorsa PL’de yer almalıdır. Karar veriyorsa veya dış dünyayla haberleşiyorsa PS’te kalmalıdır. PS ile PL de, verinin hangi taraftan başladığına bakılmaksızın, aynı tür AXI tabanlı iletişim kalıbı üzerinden birbiriyle konuşur.
Seriye Devam Edin
Yüksek bant genişlikli sensör hatları için PS/PL veri yolunu nasıl tasarladığımızı (AXI arayüz seçimleri, DMA tasarımı, Linux’un neden PS tarafında çalıştığı) daha önce ayrıntılı biçimde yazmıştık: FPGA-SoC’de PS ve PL Mimarisi. Kendi uç yapay zekâ uygulamanız için donanım seçeneklerini değerlendiriyorsanız, FPGA Üzerinde Uçta Yapay Zeka: Donanım Seçimi ve Dağıtım Stratejileri yazımız da iyi bir sonraki durak olacaktır.
Olay tabanlı algılama veya nöromorfik hesaplama alanında bir problem üzerinde çalışıyorsanız ve mimariyi birlikte konuşmak isterseniz, sizden haber almaktan memnuniyet duyarız.
Bize ulaşın: info@run-x.com | www.run-x.com