Yöntem makalesi

Gerçek Zamanlı Sobel Kenar Algılaması İçin Alt-Lineer Kaynak Ölçeklendirmesi Sağlayan Çözünürlük Uyarlamalı Bir Donanım Mimarisi

17 görüntüleme

DOI:

10.3791/71589

28 Ağustos 2026

Bu makalede

Özet

Bu çalışma, Ultra96-V2 heterojen platformu üzerinde Sobel kenar algılama algoritmasının FPGA tabanlı bir uygulamasını sunmakta; 256 × 256 ile 2560 × 1440 arasındaki görüntü çözünürlükleri boyunca kaynak kullanımını, gücü ve hızı değerlendirmektedir. Önerilen mimari, gerçek zamanlı görüntü işleme uygulamaları için alt-lineer kaynak ölçeklemesi sergilemektedir.

Özet

Kenar algılama, bilgisayarlı görü alanında temel bir konudur ve çeşitli uygulama alanlarının ayrılmaz bir parçası haline gelmiştir. Kenar algılama, görüntülerdeki kritik özellikler olan ve görüntülerden temel ve ayırt edici bilgilerin çıkarılmasına yardımcı olan önemli nitelikleri temsil eden kenarların tanımlanmasını sağlar. Kenar algılamanın donanım uygulaması hızlı olmalı, minimum kaynak kullanmalı, düşük güç tüketmeli ve farklı görüntü çözünürlüklerine uyarlanabilir olmalıdır. Bu çalışma, düşük çözünürlüklü bir görüntüden tam yüksek çözünürlüğe kadar değişen adaptif görüntü çözünürlüğü için Sobel kenar algılamasını uygulamakta ve modern bir heterojen Field Programmable Gate Array (FPGA) platformu olan Ultra96-V2'yi kullanmaktadır. Sonuçlar, düşük çözünürlüklü görüntüler için Look up Tables (LUTs), Flip Flops (FF), Digital Signal Processor (DSP) ve Block Memory (BRAM) dahil olmak üzere FPGA üzerindeki kaynakların yalnızca %5'inin kullanıldığını, yüksek çözünürlüklü görüntüler için ise üzerindeki kaynakların yaklaşık %23'ünün tüketildiğini ortaya koymaktadır. Bu durum, düşük çözünürlükten yüksek çözünürlüklü görüntülere geçişte kaynak kullanımındaki artışın %20'den az olduğunu göstermektedir. Ek olarak, en yüksek çözünürlük için güç tüketimi yaklaşık 2 W'tır ve maksimum çalışma frekansı yüksek çözünürlük için 136 MHz, düşük çözünürlüklü görüntüler için ise 166 MHz olarak kaydedilmiştir; bu da frekansta yalnızca %18'lik bir azalma olduğunu göstermektedir. Önerilen mimari, modern heterojen FPGA mimarisinin avantajlarından yararlanarak, piksel sayısındaki 56 katlık artışı yönetirken kaynak kullanımında %20'den az artış ve hız ile güçte %20'den az azalma ile alt-lineer kaynak ölçeklemesi sağlamaktadır. Sonuç olarak, düşük kaynak ölçeklemesi ile birleşen adaptif çözünürlük yeteneği, önerilen tasarımı yüksek kaliteli görüntü işleme gerektiren gerçek zamanlı kenar algılama uygulamaları için özellikle uygun hale getirmektedir.

Giriş

Kenar Algılama, günümüzde çeşitli uygulama alanlarında kullanılan neredeyse tüm bilgisayarlı görü tekniklerinin kritik bir unsuru haline gelmiştir1. Kenar algılama bir öznitelik çıkarma aşamasıdır ve görüntüden, geniş bir senaryo yelpazesinde uygulanabilecek bilgilendirici ve ayırt edici ayrıntıların elde edilmesinden sorumludur2. Bir görüntü içindeki kenarlar, yoğunlukta ani bir değişimin olduğu bölgeleri belirtir; bu nedenle, o görüntü hakkında önemli ve ayırt edici bilgiler sunarlar. Bu işlem, gereksiz ve ilgisiz ayrıntıların elenmesini kolaylaştırarak, yalnızca belirli uygulama için daha fazla işlenebilecek kritik ve benzersiz unsurların korunmasını sağlar.

Şekil 1'de gösterildiği gibi; kenar belirlemenin önemi, görüntü bölütleme, nesne belirleme ve tanıma, öznitelik çıkarma, görüntü iyileştirme, nesne tanımlama, tıbbi görüntüleme, gözetleme, endüstriyel otomasyon, otonom sürüş, artırılmış gerçeklik ve robotik dahil olmak üzere çeşitli görevlerdeki uygulamalarıyla vurgulanmaktadır2,3,4,5,6.

Sobel, Prewitt, Roberts, Canny ve diğerleri dahil olmak üzere kenar belirleme için birçok yöntem mevcuttur. Bu teknikler arasında Sobel kenar belirleme; kolay uygulanabilirliği, düşük uygulama karmaşıklığı ve kenarları belirlemedeki yüksek hassasiyeti ile öne çıkmaktadır3,4,5,6. Görüntünün gradyanları, Sobel Kenar algoritması tarafından, aşağıda gösterildiği gibi sırasıyla Gx ve Gy çekirdekleri kullanılarak hem yatay hem de dikey yönlerde belirlenir2,4.

Gx, şuradaki kenarları belirginleştirir × yönü ve Gy y yönündeki kenarları vurgular12,13Birlikte birleştirildiklerinde, bir görüntüdeki tüm kenarları eksiksiz olarak tanımlarlar.6Çekirdek (kernel) ile evrişim işlemi ve kayan pencere yöntemi, bir görüntüye Sobel kenar algılama işlemini uygulamak için kullanılır. Resimden örneğin 3x3 piksellik bir pencere sırayla alınır ve merkez pikselin yeni değerini elde etmek için bu pencere filtre matrisi ile evrilir. Görüntünün tamamı aynı şekilde işlenir. Sobel kenar algılamada iki tane çekirdek kullanılır: biri x yönündeki kenarları çıkarmak için, diğeri ise y yönündeki kenarlar içindir. Tüm kenarları elde etmek için bu iki sonuç daha sonra birleştirilir. Sobel kenar algılama, bazı ön işlemelerle daha da geliştirilebilen, doğru ve güvenilir sonuçlar üretir.4,5,15Tam Sobel kenar belirleme işlemi şurada yorumlanmıştır: Şekil 2.

Rapor edilen tüm literatür kenar algılama alanına önemli katkılar sağlamış olsa da, rapor edilen tüm temel araştırmalar düşük görüntü çözünürlükleri üzerinde çalışmıştır; buna karşın bu makalede sunulan çalışma, düşük çözünürlüklü görüntülerden (256 × 256) tam yüksek çözünürlüklü (HD) görüntü çözünürlüğüne (2560 × 1440) kadar değişen farklı görüntü çözünürlükleri üzerinde çalışmaktadır. Sonuç olarak, Sobel kenar algılama algoritmasının farklı görüntü çözünürlükleri için donanım uygulamasının incelenmesi, değişken görüntü çözünürlüklerine sahip gerçek zamanlı senaryolara maruz kaldığında uygulamanın verimliliğini anlamak açısından kritik öneme sahiptir. Alan Programlanabilir Kapı Dizileri (FPGA), hızlı prototip geliştirme için uygunluğu ve tüm donanım konfigürasyonunu değiştirme ihtiyacı olmadan kolay tasarım modifikasyonlarına olanak tanıyan yeniden yapılandırılabilirlik gibi avantajları nedeniyle donanım uygulamaları için uygun bir platform olarak kabul edilmiştir6,7,8,9,10,11,12,13. Ayrıca, FPGA'lar paralel işleme ve boru hattı (pipelining) potansiyeli sunar; performans metrikleri optimize edilip platform doğrulandıktan sonra tasarım, Uygulamaya Özel Tümleşik Devrelerin (ASIC) fiili üretimine doğru ilerleyebilir14,15. FPGA'nın bir diğer önemli özelliği, tasarımcıların herhangi bir donanımı değiştirme ihtiyacı duymadan ürün tasarımında her an modifikasyonlar yapabilmelerini sağlayan yeniden yapılandırılabilirliğidir. Tasarımcının VHDL/Verilog gibi donanım tanımlama dillerine hakim olması kaydıyla, tek yapılması gereken çipi yeniden programlamaktır ve bu işlem çok az zaman veya çaba gerektirir4,6,13,16,17. FPGA uygulama analizi için dikkate alınan temel parametreler hız (maksimum frekans), kaynak kullanımı ve güç verimliliğidir. FPGA alanında yayınlanan literatürün artan miktarını betimleyen Tablo 1, FPGA yayınlarının 2006'dan 2024'e kadar olan dönemde nasıl geliştiğini göstermektedir. Bu tablo, FPGA araştırma alanının artık gerçek zamanlı uygulamalara, artırılmış gerçekliğe, kenar bilişime ve diğer üst düzey uygulamalara kaydığını açıkça açıklamaktadır13,14,15,16,17,18,19,20,21,22,23.

Tablo 2, 2020–2025 yılları arasından itibaren FPGA üzerinde Sobel kenar algılama uygulamalarıyla ilgili mevcut literatürde yapılan çalışmaları vurgulamaktadır. Tablo 2; kullanılan FPGA kartını, uygulanan algoritmaları, tasarım metodolojisini, bulguları, metrikleri, uygulama alanını ve atıfta bulunulan her bir makalenin zorluklarını belirtmektedir.

Yazarlar4, kenar algılama doğruluğunu artırmak için 8 yönlü Sobel Kenar yönteminin kullanılmasını önermişlerdir, ancak önerilen metodoloji için daha yüksek kaynak tüketimi bildirmişlerdir. Navinkumar ve ark., geleneksel Sobel kenar algılamada yer alan çarpma ve karekök gibi karmaşık matematiksel işlemleri azaltmak için bir teknik kullanarak yerleşik kaynaklardan tasarruf etmiş ve hızı artırmışlardır9. Yazarlar17, Gelişmiş Sürücü Destek Sistemlerinde şeritleri belirlemek için Sobel Kenar Algılama Algoritmasının kullanımını belgelemişlerdir. Amaçları, işlem süresini kısaltırken algılama hızını artırmaktı. Genel olarak, kenar algılama kullanımı, gelecekte ilgi alanı çıkarımı için güvenilir bir yöntem olarak önerilmiştir; bu durum, bir görüntünün gerekli alanının, diğer gereksiz bilgiler göz ardı edilerek çıkarılması gereken çeşitli uygulamalarda oldukça faydalı olabilir. Kolektif olarak bildirilen zorluklar arasında daha yüksek kaynak ve bellek kullanımı, gürültüye karşı hassasiyet, yüksek hesaplama maliyeti ve yüksek çözünürlüklü görüntüler için sınırlı ölçeklenebilirlik yer almaktadır4,5,6,11,12,13,21,22,23.

Bu çalışmada, geleneksel Sobel kenar algılama algoritması uygulaması, 256 × 256 düşük çözünürlükten 2560 × 1440 tam yüksek çözünürlüğe kadar farklı görüntü çözünürlükleri için Ultra96-V2 FPGA kartı üzerinde gerçekleştirilmiştir. Ultra96-V2, yüksek performanslı uygulamalar için FPGA programlanabilirlik yeteneklerini güçlü Arm işlemci (Cortex-A53/R5) ile birleştiren bir karttır. Bu kart ilk olarak 2018 yılında piyasaya sürülmüştür ve 16 nm FinFET teknoloji düğümünü kullanmaktadır18.

Tekrarlanabilirliği sağlamak amacıyla, tüm uygulama; Yüksek Seviyeli Sentez (HLS) için Vivado HLS 2019.2 ve yerleştirme-yönlendirme (place-and-route) için Vivado 2019.2'den oluşan standart bir araç zincirinin yanı sıra Ultra96-V2 kaynakları tarafından yayınlanan PYNQ imajı kullanılarak gerçekleştirilmiştir. Sobel kenar algılama IP'sini (Fikri Mülkiyet) türetmek için HLS kodu kullanılmış; bu IP dışa aktarılarak Vivado tasarım paketine entegre edilmiştir.  IP, PL (Programlanabilir Mantık) kısmına uygulanmış, FPGA'nın PS (İşleme Sistemi) kısmı ise veri transferi ve kontrol mekanizmalarından sorumlu tutulmuştur. PS'nin PL ile arayüz bağlantısı AXI protokolü üzerinden yapılmıştır. Raporlanan tüm metrikler —frekans, kaynak kullanımı ve güç— HLS tahminlerinden değil, uygulama sonrası (post-implementation) raporlardan alınmıştır. Uygulama ayarları tutarlı tutulmuş ve deneyler boyunca yalnızca görüntü çözünürlükleri değiştirilmiştir.

Bu çalışmanın önemli başarıları düşük güç tüketimi, düşük kaynak kullanımı ve yüksek hız açısından gerçekleşmiştir. Sonuçlar, yüksek çözünürlüklü görüntüler için yerleşik kaynak kullanımının %20'den az olduğunu ( %18 Look Up Tables (LUTs), %11 Flip Flops (FF), %3 bellek ve %10 DSP) göstermektedir; bu durum, kenar belirlemenin yalnızca ara bir adım olduğu herhangi bir bilgisayarlı görü sisteminde beklendiği üzere, bu görüntüler üzerinde çok daha fazla işlem entegre etmek için geniş bir imkan olduğunu belirtmektedir. Ayrıca, güç tüketimi yaklaşık 2 W ve maksimum çalışma frekansı 144 MHz olarak rapor edilmiştir. Sonuçlar, görüntü boyutlarının yaklaşık 56 kat artırılmasının kaynak kullanımını yalnızca yaklaşık %20 oranında artırdığını göstermektedir. Hız ve güç tüketimi de yine sadece yaklaşık %20 oranında düşmüştür. Bu analiz, algoritmayı önceki literatürde rapor edilmemiş farklı bir perspektiften önemli ölçüde incelemektedir ve bu nedenle uygulamanın, kenar belirleme sonrası sonraki aşamalarda gerekli olan bilgi miktarını kesinlikle azaltan küçük boyutlu/düşük çözünürlüklü görüntülerle sınırlandırmaya gerek kalmadan, gerçek zamanlı uygulamalar için oldukça uygun olduğunu göstermektedir.

Bu çalışmanın yeniliği algoritmanın kendisinde değil, HLS tabanlı uygulama tekniklerinin avantajlarından yararlanarak, geleneksel Sobel kenar algılama algoritmasının modern heterojen FPGA mimarilerinde çeşitli görüntü çözünürlükleri üzerindeki performansının değerlendirilmesine odaklanmasındadır. Bu makalenin temel katkıları, öncelikle bir FPGA üzerinde uygulanan hibrit bir metodolojinin kullanımında olup, tasarımın farklı çözünürlüklere zahmetsizce uyum sağlamasına olanak tanımak için iş yükünü mimarinin PS ve PL bölümleri arasında etkili bir şekilde dağıtmasıdır. Bir diğer katkı ise, kaynak ölçeklendirmenin görüntü çözünürlüklerindeki değişikliklerle nasıl değiştiğini değerlendirmek için yapılan deneyleri kapsamakta olup, bu durum farklı kurulumlar ve çeşitli uygulamalar genelinde performansın anlaşılmasına yardımcı olmaktadır.

Protokol

1. HLS aracında Sobel kenar algılama uygulaması

  1. Vivado HLS 2019.2 aracını açın ve bir proje oluşturun. FPGA kartı olarak Ultra96-V2'yi seçin.
  2. Görüntü boyutu parametresi sabitlenmemiş ve genel hale getirilmiş şekilde, Sobel kenar belirleme işlemi için C++ dilini kullanarak yüksek seviyeli dil kodunu yazın.
    NOT: Görüntü genişliği ve yüksekliği sabitlenmemiş ve koda genel bir parametre olarak yazılmıştır; böylece görüntü çözünürlüğü değiştirilirken birden fazla konumda değişiklik yapma ihtiyacı olmadan kolayca güncellenebilirler.
  3. Sobel kenar belirleme algoritması için C++ dilinde test düzeneği (test bench) kodunu yazın.
    NOT: Test düzeneği, kodun test edileceği giriş görüntülerini sağlamak amacıyla yazılmıştır.
  4. Fonksiyonel doğruluğu kontrol etmek için kodu simüle etmek amacıyla “run C simulation” seçeneğine tıklayın. Test düzeneğine bir giriş görüntüsü verin ve ardından kenarları belirginleştirilmiş bir görüntü olması gereken üretilen çıktıyı kontrol edin.
  5. HLS kodunu sentezlemek ve Sobel kenar belirleme için IP'yi dışa aktarmak amacıyla “run C synthesis” seçeneğine tıklayın.
    NOT: Sentezleme işlemi, temel olarak kodlanmış tasarımı donanım bileşenlerine eşler ve tasarımı donanım uygulaması için uyumlu ve hazır hale getirir.
  6. Araç tarafından oluşturulan zamanlama ve kaynak kullanımı raporlarını kontrol edin ve tahmini sürenin hedeflenen süreden fazla olmadığından emin olun.
    NOT: HLS platformundan alınan tüm bu sonuçlar yalnızca bir tahmindir ve gerçek parametreler ancak tasarım bir FPGA üzerinde uygulandığında hesaplanır.
  7. Sobel kenar belirleme prosedürünün IP'sini dışa aktarmak için “export IP” seçeneğine tıklayın.
    NOT: Bu IP, bir sonraki adımda Vivado aracı üzerinde FPGA uygulaması için blok diyagramı tasarlanırken kullanılır.

2. Çıkarılan HLS IP kullanılarak Ultra96-V2 FPGA Platformu üzerinde Sobel Kenar Algılamanın Uygulanması

  1. Vivado Design Tool'u açın ve yeni bir proje oluşturun. Hedef kart olarak Ultra96-V2'yi seçin ve “Create a new block design” seçeneğine tıklayın.
  2. HLS aracından yeni dışa aktarılan Sobel edge IP'sini içe aktarın. PS ve PL kısımları arasındaki ara birleşimi tamamlamak için gerekli diğer blokları ekleyin.
    NOT: Blok diyagramı, Advanced eXtensible Interface (AXI) protokolünü kullanarak PS ve PL arasında arayüz kurmak için Zynq Ultrascale IP, Smart Connect ve işlemci sıfırlama (processor reset) gibi diğer önemli IP bloklarını da kullanır.
  3. Blok tasarımını doğrulamak için “validate design” seçeneğine tıklayın. Araç tarafından raporlanan herhangi bir tasarım hatası olmadığından emin olun. Hata varsa, düzeltme talimatlarını izleyin ve tekrar doğrulama yapın.
    NOT: Bu adım, blok diyagramında eksik bağlantı olmadığını garanti eder ancak blok tasarımının fonksiyonel doğruluğunu doğrulamaz.
  4. Blok tasarımı için genel bir HDL kodu elde etmek üzere “create the HDL wrapper” seçeneğine tıklayın.
  5. Raporlanan hataları kontrol etmek için tasarımı sentezlemek amacıyla “run synthesis” seçeneğine tıklayın. Hata bulunmazsa, araç başarılı sentezleme raporu verir. Başarılı sentezlemeden sonra, herhangi bir zamanlama ihlali olup olmadığını kontrol etmek için zamanlama (timing) sentez raporlarına erişin.
  6. Zamanlama ihlallerini kontrol etmek için, hiçbir zamanlama verisinin kırmızı metinle raporlanmadığından emin olun; çünkü bu, kullanılan sürenin atanan hedef süreden daha fazla olduğunu ve dolayısıyla ihlal olduğunu belirtir.
  7. Tasarımı uygulamak ve zamanlama, güç ve kaynak kullanımı raporlarını değerlendirmek için “run implementation” seçeneğine tıklayın.
  8. FPGA kartını programlamak için “.bit” dosyasını oluşturun.
    NOT: Ultra96-V2 üzerinde Sobel kenar algılama için blok diyagramı Şekil 3'te gösterilmiştir. Daha önce belirtildiği gibi, blok diyagramı temel olarak FPGA kartının PS ve PL kısımları arasında bir arayüz kurmak için gereklidir.

3. FPGA kartının programlanması

  1. SD kartı hazırlamak için Ultra96-V2 kartı için olan PYNQ görüntü dosyasını (.img) indirin16 ve indirilen dosyayı SD karta yükleyin.
  2. Ultra96-V2 referans kılavuzuna16 uygun olarak anahtar konumlarını seçerek kartı SD kart önyükleme modunda çalıştırın.
  3. http://192.168.3.1 adresini ziyaret edin ve istendiğinde kullanıcı adı ve parolayı “xilinx” olarak girin.
    NOT: Herhangi bir teknik uyumsuzluğu önlemek için Google Chrome tarayıcısının kullanılması tercih edilir.
  4. Jupyter platformuna erişin ve PS bölümü için, giriş görüntülerini veya videolarını okuyacak ve okunan görüntüyü işlenmek üzere PL bölümüne gönderecek Python kodunu yazın.
  5. İşlenmiş görüntülerin PL'den PS'ye geri yazılması ve sonucun görüntülenmesi görevi için kod yazın.
    NOT: Ultra96-V2 üzerinde sonuçları görüntülemek için, çıktı görüntülerinin sadece Python kodları ve OpenCV kütüphaneleri kullanılarak görüntülenmesini çok daha kolay hale getiren PYNQ platformu kullanılır.
    Şekil 4, bu bölümde gösterilen Ultra96-V2 yaklaşımının adımlarını ve elde edilen çıktıları göstermektedir.

Sonuçlar

Bu bölüm, Ultra96-V2 üzerinde Sobel kenar belirleme tasarımında elde edilen sonuçları tartışmaktadır. Aşağıdaki Şekil 5 HLS simülasyonu aracılığıyla elde edilen giriş ve çıkış görüntülerini göstermektedir. Kullanılan görüntüler 512 × 512 boyutundaki standart görüntülerdir. Bu sonuçlar, Sobel kenar belirleme için yazılan HLS kodunun fonksiyonel olarak doğru olduğunu kanıtlamaktadır. Kenarlar, sonuç görüntülerinde net bir şekilde görünmelidir.

Tablo 3, FPGA parçası xczu3eg-sbva484-1-e olan Ultra96-V2 üzerindeki sentez raporlarını ve oluşturulan zamanlama ile kaynak kullanımı parametrelerini göstermektedir. Rapor, tasarımın kullanıcı tarafından belirtilen zamanlama kısıtlamalarını karşılayıp karşılamadığını gösteren zamanlamayla ilgili bilgilerden oluşmaktadır. Zamanlama özetine göre, 8.544 ns olan tahmini süre, 10 ns hedef süreden daha kısadır; bu durum tasarımın kullanıcı kısıtlamalarını karşıladığını açıkça göstermektedir.

HLS araçları ayrıca, tasarımcıya yerleşik kaynakların olası kullanımına dair bir tahmin sunan tahmini bir kaynak kullanımı raporu oluşturur. Gerçek kullanım parametreleri ancak gerçek donanım gerçekleştirme işleminden sonra oluşturulabilir. Bir FPGA üzerinde çok sayıda ve farklı kategorilerde kaynak bulunsa da, en sık kullanılan donanımlar LUT'lar (Arama Tabloları), FF'ler (Flip Flop'lar), DSP Dilimleri (Sayısal Sinyal İşleme Dilimleri) ve bellektir.

Tablo 3, yüksek çözünürlüklü görüntüler için Sobel kenar algılamanın Ultra96-V2 üzerinde geliştirildiği durumlardaki gerçek zamanlamayı ve kaynak kullanımını da göstermektedir. Zamanlama analizi, en kötü negatif boşluğun (worst negative slack) 3.102 ns olduğunu göstermektedir; bu durum, işleme için yeterli zaman olduğunu ve dolayısıyla 144 MHz saat hızına ulaşıldığını belirtmektedir. 1920 × 1080 çözünürlükte elde edilen 144 MHz çalışma frekansı, yaklaşık 299 MP/s'lik bir veri hızına karşılık gelmektedir ve bu değer, 30 fps'de gerçek zamanlı full HD video işleme için gereken 62 MP/s değerini aşmaktadır. Düşük çözünürlüklü görüntülerden yüksek çözünürlüklü görüntülere geçerken kaynak ölçeklendirmesini ve parametreler üzerindeki etkisini anlamak için tablo, farklı çözünürlükler için tekrarlanan aynı adımları içeren deneysel sonuçlar aracılığıyla raporlanmıştır.

Tablo 4; görüntü boyutunu ve dolayısıyla toplam piksel sayısını, ardından çalışma frekansını, gücü ve LUT'lar, FF'ler, BRAM ve DSP cinsinden kaynak kullanımlarını belirtmektedir. En küçük değerlendirilen çözünürlük olan 256 × 256'dan, piksel sayısında yaklaşık 56 kat artışa karşılık gelen en yüksek 2560 × 1440 çözünürlüğe geçişte, parametrelerin yalnızca %20 oranında değiştiği açıkça görülmektedir. Bu durum, işlenecek verinin katlarca arttığı ancak performans metriklerindeki düşüşün çok minimal olduğu, gerçek zamanlı uygulamalar için uygunluğu sağlayan alt-lineer kaynak ölçeklemesini açıkça ortaya koymuştur.

Tablo 4'te sunulan sonuçlar, Ultra96-V2 üzerinde Sobel kenar belirleme uygulamasının, görüntünün düşük çözünürlükten yüksek çözünürlüğe güncellenmesi sırasında performans metriklerinin optimize kalması ve önemli değişiklikler göstermemesi nedeniyle, uyarlanabilir çözünürlük gerektiren görevler için önemli avantajlar sunduğunu açıkça kanıtlamaktadır. Bu başarı, FPGA mantığını görüntü verileriyle aşırı yüklemekten kaçınan ve kartın işlemcisinin yoğun görüntü iş yükünü yönetmesini sağlayan hibrit uygulama yaklaşımına bağlanmaktadır. İşlemci, görüntü verilerini basitçe FPGA mantık bileşenine iletir; kaynak ölçeklendirmesindeki herhangi bir artış veya maksimum frekanstaki herhangi bir azalma, yalnızca daha fazla işlem gerektiren büyük veri hacminin bir sonucudur. Bu nedenle, görüntü pikselleri yaklaşık 56 kat artmasına rağmen, bu makalede izlenen yaklaşımın alt doğrusal kaynak ölçeklendirmesi sağladığı ifade edilebilir.

Görüntü çözünürlüğü, saat frekansı, güç tüketimi ve kaynak kullanımı gibi performans metrikleri arasındaki karşılaştırmayı anlamak için uygulanan çalışma, mevcut tasarımlarla da karşılaştırılmıştır. Tablo 5, güncel literatür ile yapılan karşılaştırmayı göstermektedir.

Tablo 5 ile açıkça gösterildiği üzere, bu makalede uygulanan çalışma uygun performans metriklerine sahiptir ancak daha önce rapor edilen mevcut uygulamaların çözümleri9,10 daha iyi parametrelere sahiptir. Ancak genel bir karşılaştırma yapıldığında, önceki çalışmaların her ikisinin de9,10 düşük görüntü çözünürlüğü ve eski FPGA platformları üzerinde çalıştığı, buna karşın bu makalede sunulan sonuçların, görüntü boyutunun 256 × 256 en düşük çözünürlükten 2560 × 1440'a kadar olan yüksek çözünürlüğe kadar değiştiği adaptif görüntü çözünürlüklerine göre olduğu görülebilir. Sonuçlar, heterojen FPGA kartı Ultra96-V2'nin hem işlemci hem de mantık kısmının yeteneklerini kullanan uygulanan Sobel kenar algılama yaklaşımının, piksel sayısı yaklaşık 56 kat artarken kaynak kullanımının yalnızca %20 artmasıyla ve güç ile hızdaki düşüşün de %20'den az olmasıyla, alt-lineer kaynak ölçeklendirmesi sağlamada faydalı olduğunu kanıtlamaktadır. En düşük çözünürlük için kaynakların yalnızca %5'i kullanılır ve maksimum kullanım yalnızca %23'tür; bu da daha fazla işlem için geniş bir kullanılabilirlik bırakır. Dolayısıyla, görüntü çözünürlüklerindeki fark nedeniyle karşılaştırma yapmanın zor olduğu açıkça belirtilebilir; ancak bu çalışmada uygulanan tasarım analiz edildiğinde, saat frekansının 136 MHz, güç tüketiminin 2 W ve kaynak kullanımının karttaki toplam kaynakların %23'ünden az olduğu görülür. Önceki çalışmalarda rapor edilen uygulamaların9,10 üstün bireysel performans metrikleri sergilediğini belirtmek önemlidir. Bununla birlikte, her iki çalışmanın da tasarımlarını tek bir sabit görüntü çözünürlüğünde değerlendirdiği, önerilen çalışmanın ise 256 × 256 ile 2560 × 1440 arasındaki geniş bir çözünürlük aralığında değerlendirildiği not edilmelidir. Bu nedenle tasarım hedefleri temelden farklıdır; zira çalışma9,10 tek bir çözünürlükte zirve performans için optimizasyon yaparken, önerilen mimari birden fazla çözünürlükte adaptasyon ve alt-lineer kaynak ölçeklendirmeye öncelik vermektedir. Bu durum, uygulanan tasarımı kenar algılama gerektiren uygulamalar için uygun hale getirmektedir.

Böylece, bu çalışmada sub-lineer kaynak ölçeklemesi, kaynak kullanımındaki yüzde artışın, piksel sayısındaki yüzde artıştan önemli ölçüde daha düşük olduğu durum olarak tanımlanabilir. Çözünürlük 256 × 256'dan 2560 × 1440'a çıktığında, piksel sayısı yaklaşık %5600 oranında artarken, yerleşik kaynak kullanımı %20'den daha az artmaktadır. Doğrudan PS-PL heterojen bölümlendirme stratejisinin bir sonucu olan bu orantısız düşük kaynak büyüme oranı, önerilen mimarinin sub-lineer ölçekleme davranışını doğrulamaktadır. Önerilen uygulama, test edilen çözünürlük aralığında sub-lineer kaynak ölçeklemesi gösterse de, sonuçların doğru yorumlanması için bazı sınırlamalar belirtilmelidir. Çalışma frekansı, düşük çözünürlükten yüksek çözünürlüğe geçişte %18 oranında azalmaktadır ve 2560 × 1440'ın ötesindeki ekstrapolasyonlar, zamanlama kapatmasını (timing closure) korumak için mimari ayarlamalar gerektirebilir. Ayrıca, görüntü veri aktarımı ARM işlemci tarafından yönetildiğinden, PS tarafındaki aktarım yükü piksel sayısı ile lineer olarak artmaktadır ve bu durum, sürekli yüksek çözünürlüklü video akış uygulamalarında, yalnızca PL tarafı metriklerinin öngördüğünden daha fazla bir darboğaz oluşturarak veri aktarım hızını sınırlayabilir.

Kenar algılama uygulamalarının diyagramı: robotik, görüntüleme, artırılmış gerçeklik, otomasyon, gözetim.
Şekil 1: Kenar algılamanın çeşitli uygulama alanları. Bilgisayarlı görü, tıbbi görüntüleme, gözetim, robotik ve endüstriyel otomasyon dahil olmak üzere kenar algılamanın yaygın olarak kullanıldığı temsili uygulama alanlarının gösterimi. Bu şeklin daha büyük bir versiyonunu görüntülemek için lütfen buraya tıklayın.

Görüntü işleme: Giriş görüntüsü üzerindeki konvolüsyon çekirdekleri ile Sobel operatörü kenar algılama diyagramı.
Şekil 2: Sobel kenar algılama algoritmasındaki adımların açıklaması. 3 × 3 görüntü penceresinin çıkarılması, yatay ve dikey Sobel çekirdekleri ile konvolüsyon ve kenar algılanmış çıktı görüntüsünün oluşturulmasını içeren Sobel kenar algılama sürecini gösteren iş akışı. Bu şeklin daha büyük bir versiyonunu görüntülemek için lütfen buraya tıklayın.

Zynq UltraScale+ blok diyagramı, veri akışını ve AXI ara bağlantı bileşenlerini gösteren sistem mimarisi.
Şekil 3: PS (işleme sistemi) ve PL (programlanabilir mantık) kısımları arasındaki arayüz kullanılarak Ultra96-V2 FPGA kartı üzerinde Sobel kenar algılama için uygulanan blok diyagramı.FPGA uygulaması için kullanılan işleme sisteminin (PS), programlanabilir mantığın (PL) ve destekleyici IP çekirdeklerinin donanım mimarisini ve ara bağlantılarını gösteren blok diyagramı. Bu şeklin daha büyük bir versiyonunu görüntülemek için lütfen buraya tıklayın.

PYNQ imaj yazdırma işlemi ve Vivado tasarım akışı; SD kart kurulumu, doğrulama, bit dosyası oluşturma.
Şekil 4: PYNQ platformu kullanılarak Sobel kenar belirleme için Ultra96-V2 kartının programlanma adımları ve bir giriş görüntüsü üzerindeki Sobel kenar belirleme sonucu.PYNQ platformu kullanılarak Ultra96-V2 kartı için programlama prosedürünü ve FPGA uygulaması sonrası elde edilen temsilci bir çıktı görüntüsünü gösteren iş akışı. Bu şeklin daha büyük bir versiyonunu görüntülemek için lütfen buraya tıklayın.

Görüntü işlemede renk ve kenar algılama; orijinal ve kenarı belirginleştirilmiş görüntülerin karşılaştırma ızgarası.
Şekil 5: Vivado HLS (2019.2) kullanılarak farklı standart görüntüler üzerinde Sobel kenar algılama simülasyon sonuçları. Vivado HLS 2019.2 kullanılarak Sobel kenar algılama algoritmasının fonksiyonel simülasyonu sırasında elde edilen temsili giriş görüntüleri ve bunlara karşılık gelen kenarı belirlenmiş çıktılar. Bu şeklin daha büyük bir versiyonunu görüntülemek için lütfen buraya tıklayınız.

Tablo 1: Bilgisayarlı görü araştırmalarında FPGA uygulamalarının evrimi (2006–2024). 2006 ile 2024 yılları arasında bildirilen temsili FPGA tabanlı bilgisayarlı görü uygulamalarının özeti. Bu Tabloyu indirmek için lütfen buraya tıklayın.

Tablo 2: FPGA üzerinde kenar algılama algoritmalarının uygulanmasına ilişkin ilgili literatür (2020-2025). Platform, metodoloji ve bildirilen performans metriklerini içeren, FPGA tabanlı güncel kenar algılama uygulamalarının karşılaştırması. Bu Tabloyu indirmek için lütfen buraya tıklayın.

Tablo 3: FPGA üzerinde Sobel kenar algılama uygulaması: tahmini parametreler ve gerçek parametreler. FPGA uygulaması için elde edilen tahmini HLS sentez sonuçları ve bunlara karşılık gelen uygulama sonrası zamanlama ve kaynak kullanımı. Bu tabloyu indirmek için lütfen buraya tıklayınız.

Tablo 4: Farklı görüntü çözünürlüklerinde uygulanan Sobel kenar algılama algoritmasının kaynak kullanımı ve performans metrikleri. Önerilen uygulamanın farklı görüntü çözünürlüklerindeki performans metrikleri, çalışma frekansı, güç tüketimi ve FPGA kaynak kullanımı. Bu tabloyu indirmek için lütfen buraya tıklayınız.

Tablo 5: FPGA üzerinde uygulanan ve mevcut Sobel kenar algılama yöntemlerinin karşılaştırılması. Önerilen FPGA uygulamasının, temsili performans metrikleri kullanılarak daha önce raporlanmış Sobel kenar algılama uygulamalarıyla karşılaştırılması. Bu tabloyu indirmek için lütfen buraya tıklayın.

Tartışma

Bu makale, bilgisayarlı görü ve görüntü işlemenin birçok alanındaki çeşitli uygulamaların temel bir bileşeni olan Sobel kenar algılama algoritmasının yürütülmesine odaklanmaktadır2,3,4,5,6. Sobel kenar algılama uygulaması, donanım tanımlama dillerine güvenmek yerine daha üst seviye dillerde kodlama imkanı sağlayan Vivado HLS aracı kullanılarak gerçekleştirilmiştir. Vivado HLS kodu Ultra96-V2 kartı üzerinde çalıştırılmıştır. Uygulama sonrası sonuçlar, gerçekleştirilen tasarımın yüksek çözünürlüklü görüntüleri desteklediğini, 136 MHz frekansta çalıştığını, 2 W güç tüketimi sergilediğini ve kart üzerindeki toplam kaynakların %20'sinden daha azını kullandığını göstermektedir. Ayrıca sonuçlar, farklı uygulamaların çeşitli görüntü boyutlarının kullanılmasını gerektirebileceği ve kompleks tasarım hatlarında çok sık yapılan kenar algılamanın genellikle bir ara adım olduğu göz önüne alındığında, yaklaşımın görüntülerin adaptif çözünürlüğü için uygun olduğunu ortaya koymuştur2,3,4,5,6. Bu nedenle, tasarlanan sistemin kenar algılama gerektiren gerçek zamanlı uygulamalarda kullanılabileceği belirtilebilir. Kaynakların geniş ölçüde mevcut olması, geliştirilen sisteme çeşitli diğer işleme adımlarının da dahil edilebileceğini göstermektedir6,7,8,9,10,11,12,13,14,15.

Sobel kenar dedektörünün Ultra96-V2 kartı üzerinde başarılı bir şekilde uygulanması, birçok pratik hususa dikkat edilmesini gerektirir. PYNQ çatısı, donanım kontrolünü Python kütüphaneleri aracılığıyla sağlayarak PS–PL etkileşimini önemli ölçüde basitleştirir ve böylece yazılım geliştirme çabasını azaltır. Ancak, resmi kaynaktan doğru PYNQ imajı indirilmeli ve dağıtım öncesinde SD kart uygun şekilde yapılandırılmalıdır. HLS tasarımının kapsamlı test düzenekleri kullanılarak fonksiyonel doğrulaması, IP dışa aktarımı öncesinde esastır; çünkü erken aşamadaki doğrulama, donanım uygulaması öncesinde algoritmik ve arayüz hatalarının belirlenmesine yardımcı olur. FPGA uygulamaları sırasında, blok diyagram tasarımı da tasarımcının büyük dikkatini gerektirir; zira söz konusu FPGA donanımının mimarisini doğru şekilde anlamak ve buna bağlı olarak uygun blokları seçip bağlantıları kurmak tavsiye edilir. Bağlantıların tamamen otomatikleştirilmesi, eksik bağlantılara veya izlenecek tasarıma uygun olmayan bağlantılara yol açabileceği için önerilmez. PS–PL arayüzünün bu aşamasında; hatalı AXI adres eşlemesi, saat alanı uyumsuzlukları veya yanlış yapılandırılmış DMA transferleri gibi hatalar, işlemci ile programlanabilir mantık arasındaki başarılı iletişimi engelleyebilir. Bu sorunlar, Vivado'nun tasarım doğrulama araçları kullanılarak tespit edilebilir ve bit akışı (bitstream) oluşturulmadan önce adres atamaları, saat yapılandırmaları, kesme bağlantıları ve DMA ayarları doğrulanarak çözülebilir. FPGA uygulaması sırasında, uzun kombinasyonel yollar veya yetersiz boru hattı (pipelining) kullanımı nedeniyle zamanlama ihlalleri meydana gelebilir. Boru hattı aşamalarının artırılması, döngü yapılarının optimize edilmesi veya uygun yerlerde zamanlama kısıtlarının esnetilmesi, zamanlama kapatmaya (timing closure) ulaşmaya yardımcı olabilir.

Bu çalışma, önerilen PS-PL bölümlendirme mimarisini özellikle Sobel kenar algılama için doğrulasa da, mimari yaklaşım doğası gereği genelleştirilebilir niteliktedir. Prewitt, Roberts, Gauss Laplasyeni veya Canny'nin gradyan aşaması da dahil olmak üzere, kayan pencere konvolüsyonu olarak ifade edilebilen herhangi bir algoritma, temel olarak HLS tasarımındaki değişikliklerle benzer bir yaklaşımla uygulanabilir3,4,5,6. Önerilen çalışmanın belirli sınırlamaları bulunmaktadır. Sınırlamalardan biri, FPGA'nın PS ve PL kısımları arasındaki veri transferinden kaynaklanan ve algoritmanın toplam yürütme süresini etkileyen gecikmedir. Ayrıca, alt-doğrusal ölçekleme bulgusu Ultra96-V2 heterojen mimarisine özgüdür16 ve özel bir işlemci çekirdeği bulunmayan homojen FPGA platformlarına doğrudan uygulanamayabilir.

Gelecekteki kapsam, hızı artırabilecek ve güç tüketimini daha da azaltabilecek belirli optimizasyonlarla tasarımın daha da geliştirilmesini içermektedir. Ayrıca, uygulamanın gerçek zamanlı senaryolara uyarlanması, gelecekte değerlendirilebilecek bir diğer potansiyel husustur.

Açıklamalar

Yazarlar herhangi bir çıkar çatışması beyan etmemektedir. Bu taslağın hazırlanmasında herhangi bir yapay zeka (AI) aracı kullanılmamıştır.

Teşekkürler

Yazarların beyan edeceği herhangi bir teşekkür yoktur. Bu araştırma herhangi bir dış finansman almamıştır.

Malzemeler

Bu makalede kullanılan malzemelerin listesi
AdŞirketKatalog numarasıYorumlar
Ultra96-V2 FPGA Kartı Xilinx 2018'de tanıtıldıYaya tespit algoritmasının uygulanması için kullanılan Donanım Uygulama Platformu
Vivado HLS AMD2019.2Fikri Mülkiyet'i (IP) dışa aktarmak için makaledeki yaya tespit kodunun yüksek seviyeli programlanmasında kullanılan Yüksek Seviyeli Sentez Aracı
Vivado AMD2019.2Ultra 96 v2 FPGA kartını Sobel kenar tespit algoritması ile programlamak için kullanılan FPGA Programlama aracı 

Kaynaklar

  1. Rani N. Image processing techniques: a review. J Today Ideas Tomorrow Technol. 2017;5(1):40-9.
  2. Gonzalez RC. Digital image processing. Pearson Education; India; 2009.
  3. Jena KK, Mishra S, Mishra S. An edge detection approach for fractal image processing. In: Examining Fractal Image Processing and Analysis. IGI Global; 2020. p. 1-22.
  4. Gayathri AG, Remya AS. VLSI implementation of improved Sobel edge detection algorithm [conference presentation]. Presented at: 2021 International Conference on Communication, Control and Information Sciences (ICCISc); 2021 Jun 16. Available from: https://ieeexplore.ieee.org/
  5. Obaid MT. Efficient Implementation of Sobel Edge Detection with ZYNQ-7000 [Master's thesis]. Purdue University.
  6. Asharani P, et al. A inventive method for door detection on FPGA using Sobel edge algorithm [conference presentation]. Presented at: 2022 2nd International Conference on Intelligent Technologies (CONIT); 2022 Jun 24. Available from: https://ieeexplore.ieee.org/
  7. Shylashree N, Anil Naik M, Sridhar V. Design and implementation of image edge detection algorithm on FPGA. Int J Circuits Syst Signal Process. 2022;16:628-36.
  8. Zhou G, Guo S, Chen Z. FPGA-based improved Sobel operator edge detection. Front Comput Intell Syst. 2023;5(2):6-11.
  9. Navinkumar K, Logesh R, VishnuBabu P, Ananthalakshmi AV. FPGA implementation of Sobel edge detection algorithm. EAI Endorsed Trans Internet Things. 2024;10.
  10. Ravichandran S, et al. Parallel processing of Sobel edge detection on FPGA: enhancing real-time image analysis. Sensors. 2025;25(12):3649.
  11. Baloch A, et al. Hardware synthesize and performance analysis of intelligent transportation using Canny edge detection algorithm. Int J Eng Manuf. 2021;11(4):22-32.
  12. Patel CS, Solanki N, Tailor N. Analysis of edge detection using Zynq based SoC FPGA. Turk Online J Qual Inq. 2021;12(7).
  13. Kashyap S, Bhandari AK, Giri P. Low resource FPGA implementation based efficient image edge detector architecture. Multimed Tools Appl. 2024;83(9):25595-615.
  14. Dakshayani V, et al. Design of a Gabor filter-based image denoising hardware model. Electronics. 2022;11(7):1063.
  15. Belmessaoud NM, Bentoutou Y, El-Mezouar MC. FPGA implementation of feature detection and matching using ORB. Microprocess Microsyst. 2022;94:104666.
  16. Castells-Rufas D, et al. A survey of FPGA-based vision systems for autonomous cars. IEEE Access. 2022;10:132525-63.
  17. Vedavyas Y, Vasavi S, Harsha SS, Subhash MS. An FPGA-based adaptive real-time quality enhancement system for drone imagery. SN Comput Sci. 2022;4(1):84.
  18. Avnet. Ultra96-V2 Single Board Computer Hardware User's Guide. Revision 1.0. Avnet; 2020 May.
  19. Singh G, et al. Optimizing IoT capabilities: leveraging FPGA for superior performance, efficiency and security [conference presentation]. Presented at: 2024 5th International Conference for Emerging Technology (INCET); 2024 May 24. Available from: https://ieeexplore.ieee.org/
  20. Kaur A. A survey on FPGA implementations in embedded augmented reality applications [conference presentation]. Presented at: 6th Edition of International Conference on Wireless Networks and Embedded Systems (WECON); 2018 Nov 16. Available from: https://ieeexplore.ieee.org/
  21. Kalaiselvi A, Sajina S, Nithish S, Sowmiya M. Implementation of Sobel edge detection. Int Res J Mod Eng Technol Sci. 2023;5(3):701-11.
  22. Narasimhamurthy CG, Kulkarni S. Fast architecture for low level vision and image enhancement for reconfigurable platform [conference presentation]. Presented at: 2021 International Conference on Advances in Electrical, Computing, Communication and Sustainable Technologies (ICAECT); 2021 Feb 19. Available from: https://ieeexplore.ieee.org/
  23. Pujare A, Sawant P, Sharma H, Pichhode K. Hardware implementation of Sobel edge detection algorithm [conference presentation]. Presented at: ITM Web of Conferences; 2020. Available from: https://www.itm-conferences.org/

Yeniden basım ve izinler

Etiketler

EngineeringComputer VisionField Programmable Gate ArrayImage ProcessingImage ResolutionSobel Edge Detection