Method Article

Otonom Sürüş Uygulaması için Alan Programlanabilir Kapı Dizisi Tabanlı Yaya Algılama Çerçevesinin Tasarımı ve Uygulanması

June 12th, 2026

In This Article

Summary

Loading...
$$\rightleftharpoonup{xx}$$ $$\longleftharp{xx}$$, $$\longrightharp{xx}$$,

Bu araştırma makalesi, öncelikle otonom sürüş uygulamaları için, sahada programlanabilir kapı dizisi donanımında gerçek zamanlı yaya algılama algoritmasının uygulanmasını göstermektedir. Algoritma, yönlendirilmiş gradyanların histogramını (HoG) destek vektör makinesi (SVM) sınıflandırıcı ile birleştirir ve sonuçlar hız, güç tüketimi ve kaynak kullanımı açısından verimlilik gösterir.

Abstract

Loading...
$$\rightleftharpoonup{xx}$$ $$\longleftharp{xx}$$, $$\longrightharp{xx}$$,

Otonom sürüş, trafik kazalarından kaynaklanan ölümlerin artan sayısıyla başa çıkmak için umut verici bir yol sunuyor. Otonom bir araç birçok özelliğe sahiptir, ancak yayaları tespit etme yeteneği çok önemli, zorlayıcı ve gözetim, insan takibi ve izleme gibi çeşitli gerçek zamanlı durumlar için önemlidir. Yayaları doğru şekilde tanımlamak zordur çünkü onlar farklı şekillerde, pozisyonlarda ve duruşlarda ortaya çıkabilirler. Çeşitli kıyafetler giyebilirler ve bazen kısmen gizlenmiş olabilirler veya yakındaki nesnelerle karışabilirler. Bu makale, popüler bir donanım platformu olan Alan programlanabilir kapı dizisi (FPGA), Ultra 96 v2 kullanılarak otonom araçlar için yayaların gerçek zamanlı tespitine odaklanmaktadır. Çalışma, FPGA panosunda bireyleri tanımak için yönelmez gradyanlarının histogramı (HOG) ile desteklenen bir vektör makinesi (SVM) sınıflandırıcısına dayalı yaya algılama yöntemini uygular; yüksek seviyeli sentez (HLS) araçları kullanılır. Sistemin etkinliği hem sabit görüntüler hem de canlı video üzerinde test edilmiştir. Sonuçlar, Ultra 96 v2 gibi gelişmiş FPGA kartlarının performans metriklerini önemli ölçüde iyileştirdiğini gösteriyor. Sistem, mevcut kaynakların yarısından azını kullanarak yaklaşık 2,5 W güç tüketerek 150 MHz saat frekansında çalışır. Ayrıca sistem, yaya algılama doğruluğunu yaklaşık %95 ve tespit değerlendirmesi için hassasiyet (%78,6), hatırlama (%88,3) ve F1 puanı (%83,1) gibi diğer verimli ölçütleri bildirmektedir. Özetle, geliştirilen sistem yayaları gerçek zamanlı olarak tespit edebilir ve akıllı ve güvenli bir ulaşım ortamının gelişimini önemli ölçüde iyileştirme potansiyeline sahiptir.

Introduction

Loading...
$$\rightleftharpoonup{xx}$$ $$\longleftharp{xx}$$, $$\longrightharp{xx}$$,

Kentsel gelişim ve akıllı şehirlerin ortaya çıkışı, dünya çapında ilgi çekici konulardır. Tüm ülkeler, şehirlerinin güvenli ve rahat yapılacak şekilde inşa edilmesi için çalışıyor. 1,2. Ancak mevcut durumda, nüfus arttıkça ve yol sıkışıklığı arttıkça, sürüş ihmali ve kötü görüş sorunları nedeniyle yol kazalarından kaynaklanan ölüm oranlarının endişe verici şekilde arttığı gözlemlenmiştir. Bu sorunlara umut verici bir çözüm, dünya çapında otonom araçların ortaya çıkmasıdır; bu da yenilik 1,2,3,4 hareketlerini tetiklemiştir ve araştırmacılar, yolcuların rahatlamasını sağlayacak tamamen otonom araçlar geliştirmek için çaba göstermektedir. Otonom araçların geliştirilmesine olan ihtiyacı, deneyimli sürücülerin bile kötü hava koşulları nedeniyle stres, ikilem, yorgunluk veya çevrelerini algılamakta zorlanabilmesinden kaynaklanıyor ve tüm bu sorunlar yol kazalarına yol açıyor. Kendi kendine giden bir araç, seyahat sırasında kazaları önlemek, motor kaynak kullanımını optimize etmek ve trafik kurallarına uymak için tasarlanmıştır; bu da kesinlikle ulaşımıgeliştirecektir 2,4. Otonom bir araç, çevresini çok hassas hissetmesini sağlayan çok sayıda özellik, sensör ve işlevselliğe sahiptir; böylece çarpışma ve kazaları önler; bu nedenle, taşımayı güvenli ve emniyetli kılmak için umut vadeden bir çözümolarak ortaya çıkmıştır 1,2,3,4.

Otonom bir araçta yer alan tüm özellikler arasında, en önemlilerinden biri yaya algılamadır. Sağlam bir yaya tespit sistemi, bu kazaların çoğu yaya olduğundan, trafik kazası ölümlerini 5,6,7,8 azaltmaya önemli ölçüde yardımcı olabilir. Yaya tespiti, yoldaki kişileri tespit etmek ve onlarla çarpışmalardan kaçınmak anlamına gelir. Bu özellik sadece otonom araçlar için değil, kalabalık izleme, kişi tanımlama ve 9,10,11 takibi gibi çeşitli diğer uygulama alanları için de faydalıdır. Bu tespit sürecinin temel yönü, tespit hızı ve doğruluğudur. Yayaları doğru ve hızlı tespit etmek çok önemlidir, böylece tepki süresi minimuma indirilebilir. Yaya algılama büyük bir zorluk yaratıyor. Yoldaki yayalar herhangi bir kıyafet, görünüm veya duruşla olabilir ve kötü hava koşulları veya tıkanıklıknedeniyle görünmez olabilirler 10,11,12,13,14. Ayrıca, yayaların kurallara kendileri uymaması ve insan doğasını kontrol edemeyeceği oldukça mümkündür; bu yüzden en iyi yaklaşım, aracı yanlış hareketleri yönetebilecek ve ölümlerden kaçınacak zekâyla donatmaktır. Bu araştırmadaki çalışmaların tam akışı ve yaya tespitinin donanım uygulamasının motivasyonu, aşağıdaki Şekil 1'den kolayca anlaşılabilir; bu şekil, yaya algılama ihtiyacını, çeşitli uygulama alanlarını, karşılaştığı zorlukları ve sunulan avantajlardan yararlanmak için FPGA'da uygulanmayı açıklar.

figure-introduction-1
Şekil 1: Yaya tespiti. Yaya tespiti ihtiyacını, yaya tespitinin temel uygulama alanları, yaya tespitiyle ilgili zorluklar ve FPGA panosunda yaya tespitinin uygulama akışı. Bu figürün daha büyük bir versiyonunu görmek için lütfen buraya tıklayın.

Yoldaki yayaları tanımlamak için birçok algoritma mevcuttur. Bu genel görev öncelikle iki ana alt göreve ayrılabilir: İlk adım, giriş görüntüsünden özellikleri çıkarır, yalnızca önemli olanları ve ilgili bilgileri iletir, tekrarlananları ise göz ardı eder. Bir görüntüde insan veya yayaların etkili şekilde tanınması için, bu özelliklerin sahnede bir insan figürünün varlığınıgöstermesi çok önemlidir 13,14. Bu çıkarımın ardından, özellikler, tanımlanan özelliklerin bir insana karşılık gelip etmediğini belirleyebilen bir sınıflandırıcıya gönderilmelidir. Bu nedenle, algoritma bir özellik çıkarma ve açıklama aşaması, ardından giriş sahnesinde yaya varlığını belirlemek için bir sınıflandırma aşaması gerektirir. Bu amaçla çeşitli algoritmalar mevcuttur. Ancak, bugüne kadar yaya algılamada en yaygın kabul gören yöntem, yönlendirilmiş gradyanların histogramı (HoG) ile destek vektör makinesi (SVM)sınıflandırıcısı 12,13,14,15'in birleşimi olmuştur. Yazılım ilerlemelerine dair birçok örnek mevcuttur, ancak nihayetinde amaç, uygulamayı uyumlu bir donanım platformuna taşımak ve bunun gerçek zamanlı kullanım için uygulama sistemine entegre edilebilmesidir. Bu nedenle, mevcut vurgu donanım gerçekleştirme üzerindedir. Bu nedenle, uygun donanımlarla donatılmış kameraların araçlara yerleştirilip yoldaki yayaları tespit edilebileceği uygun bir yaya algılama sistemleri donanım uygulamasının geliştirilmesi gerekmektedir. Bu tür uygulamalar için hangi donanımın uygun olduğunu düşünürken, en yaygın kullanılan seçeneklerden biri, tasarım süresinin azalması, ölçeklenebilirlik, modifikasyon kolaylığı, yeniden yapılandırılabilirlik ve daha düşük enerji ile güç tüketimi gibi birçok avantajı nedeniyle alan programlanabilir kapı dizisi (FPGA)'dır 15,16,17,18,19,20,21,22.

FPGA kartları sürekli olarak gelişmiş ve temel görüntü işlemeden nesne algılamaya, artırılmış gerçekliğe ve derin öğrenmeye kadar karmaşık ve gelişmiş bilgisayar görüş uygulamalarındayaygın olarak kullanılmaktadır. Şu anda, birçok yüksek performanslı FPGA kartı, bu karmaşık uygulamalar için gereken kapsamlı işlemeyi karşılamak üzere olağanüstü mimari yetenekler sunmaktadır. Otonom araçların gelişmiş özellikleri, örneğin yaya algılama, bu donanım platformlarında uygulanırsa, bu platformlar performansı analiz etmek için hızlı prototip geliştirme için çok faydalı olabilir ve optimizasyondan sonra uygulanan algoritma, sisteme entegre edilmek üzere gerçek entegre devrelere aktarılabilir.

On yılı aşkın süredir, farklı FPGA platformlarında HoG ve SVM yöntemiyle yaya tespitinin uygulanmasına dayalı önemli yayınlar bulunmaktadır. Tablo 1, 2015–2025 yılları arasında bu alandaki makaleleri özetlemekte 15,16,17,18,19,20,21,22,23,24 olup, görüntü çözünürlüğü, veri verimliliği veya saniyede kare (FPS), sınıflandırıcı türü ve ana vurgular veya katkılar gibi temel faktörlere odaklanmaktadır. kağıt.

ReferansFPGA PlatformuGörüntü ÇözünürlüğüSınıflandırıcıÖnemli Öne Çıkanlar / Katkılar
15Xilinx Zynq640×480AdaBoostGerçek zamanlı FPGA uygulaması; kaynak verimli; optimizasyon için ikili izleyici kullanır; iyi bir tespit doğruluğu.
16Terasic'in DE1-SOC kartı640×480SVMYüksek performanslı HOG çıkarıcısı; SVM'yi entegre eder; tek ölçekli tespit; düşük gecikmeli boru hattı.
17Altera DE2-115640×480AdaBoostPerformansı birden fazla bakış açısından değerlendirir; HOG+AdaBoost'un FPGA uygulaması; Gerçek zamanlı yaya tespiti.
18Intel Stratix V640×480SVMÇok ölçekli yaya tespiti; FPGA dostu HOG+SVM boru hattı; Doğruluk ile donanım verimliliği arasındaki dengeleri vurgular.
19Zynq UltraScale+ MPSoC3840×2160SVMGerçek zamanlı UHD işleme; boru hatlı HOG+SVM; SoC FPGA uygulaması; sabit nokta optimizasyonu; ölçeklenebilir mimari.
20BelirtilmediBelirtilmediSVM%>95 tespit doğruluğuna ulaşır; gerçek zamanlı FPGA uygulaması; paralelliği kullanır; yaya tespiti için ayrıntılı HOG+SVM FPGA tasarımı.
21Zync 7000 FPGA1920×1080SVMHOG+SVM için yüksek verimli akış mimarisi; HD çözünürlüğü destekler; FPGA hızlandırması için verimli bir pipeline.
22Ultra96 (rev1)240×320SVMHLS kullanarak FPGA uygulaması; kırmızı trafik sinyallerini algılar; 891 bölgede olasılıkları hesaplar; gecikme 153.838 ile 19 döngü arasında değişir.
23Xilinx Zynq-7000 FPGA640 × 480HOG + SVMFPGA'da HOG-SVM kullanarak yaya algılama uygulandı; CPU işlemcesine, daha düşük güç tüketimiyle gerçek zamanlı performans elde edildi. Gömülü görme uygulamalarına uygun optimize edilmiş özellik çıkarma boru hattı gösterildi.
24Xilinx Virtex-6 FPGA640 × 480Sabit noktalı nesne dedektörü (Haar benzeri özellikler)Sabit nokta aritmetiği kullanılarak nesne algılamasında yüksek verimli FPGA hızlandırılması önerildi; bu hız hesaplama maliyetini azaltırken doğruluğu korurken. Verimli donanım kaynakları kullanımıyla CPU uygulamalarına göre 15× hızlanma gösterdi.

Tablo 1: FPGA'da yaya tespitine dayalı araştırmaların literatür incelemesi (2015–2025).

Tablo 1, yaya tespiti alanında kapsamlı literatür olduğunu ve donanım uygulamasının araştırmacıların ilgi alanı olduğunu özetlemektedir. Ayrıca, yaya algılama görevi için konvolüsyon sinir ağları (CNN) tabanlı dedektörler, transformatör tabanlı mimariler gibi gelişmiş derin öğrenme ve makine öğrenimi tekniklerinin olduğu da açıktır. Doğruluk açısından geleneksel HoG algoritmasından bile daha iyi performans gösterirler, ancak donanım uygulaması düşünüldüğünde, gelişmiş algoritmalar algoritmanın karmaşıklığı nedeniyle büyük kaynakkullanımına yol açar ve bu da diğer performans parametrelerini de etkileyebilir; ayrıca eklenen karmaşıklıklar nedeniyle hızın geleneksel HoGalgoritmasında biraz daha iyi olduğu gözlemlenmiştir 24, 25. Ayrıca, gelişmiş tekniklerin donanımüzerinde uygulandığında daha fazla güç tükettiği gözlemlenmiştir 24,26. Bu nedenle, bu makalede uygulanan çalışmanın amacı, FPGA donanımında geleneksel HoG ve SVM çerçevesini kullanarak yaya algılama gerçekleştirmek ve gerçek zamanlı gömme için uygun bir doğruluk-hız-kaynak ve güç dengesi sağlamaktır. Tablo 1'den, HoG ve SVM tabanlı çalışmalar analiz edildiğinde, yeni tanıtılan Zynq UltraScale+ MPSoC (Multi-Processor System On Chip) tabanlı FPGA geliştirmekartı 27'yi kullanan sınırlı sayıda yayının bu kartların mimari açıdan geliştiği yeteneklerini incelediği oldukça açıktır. ve üst düzey gerçek zamanlı bilgisayar görme uygulamasının uygulanması açısından büyük potansiyel sunar. FPGA panolarında tüm yaya tespit sistemini gerçek zamanlı olarak gerçekleştiren sınırlı sayıda yayın bulunmaktadır. Ancak, ara görevlerin verimli uygulanması veya geliştirilmesine odaklanmışlardır. Ayrıca, bu uygulamaların çoğu, donanım tanım dilleri kullanılarak tüm sistemi bir FPGA kartında gerçekleştirmeye dayanır. Çok az kişi Yüksek Seviye Sentez (HLS) araçlarının faydalarını tasarım döngüsünü hızlandırmak için kullanmıştır. Bu makale, otonom sürüş uygulamasına adanmış bir FPGA panosunda gerçek zamanlı yaya algılama tasarımı ve uygulanmasını göstermektedir. Makale, yayaların sabit görüntüler, video veya gerçek kamera girişi üzerinde tespit edilmesi amacıyla HoG ve SVM çerçevesini kullanmaktadır. Kullanılan donanım, bilgisayar görüşü, görüntü işleme, makine öğrenimi, kenar hesaplama vb. için güçlü bir platform, gelişmiş bir FPGA mimarisi olan Ultra96 v2 adlı son teknoloji ve yakın zamanda piyasaya sürülen bir FPGA kartıdır.24. Ultra96 v2, Arm tabanlı AMD Xilinx Zynq UltraScale+ MPSoC27 içeren bir geliştirme kartıdır. Bu kart, projenin yazılım yönlerini yöneten ARM tabanlı CPU çekirdeklerinden oluşan işlem sistemi (PS) segmentini ve özelleştirilebilir donanımhızlandırmalarına olanak tanıyan Programlanabilir Mantık (PL) segmentini (20,21,22) içerir. Bu bileşenler birlikte, PS kısmının harici öğelerle kontrol ve etkileşimi yönettiği, PL kısmının ise gerçek işlem mantığını yönettiği hibrit sistemin işlevselliğini artırır.

Protocol

Loading...
$$\rightleftharpoonup{xx}$$ $$\longleftharp{xx}$$, $$\longrightharp{xx}$$,

Bu araştırmada kullanılan uygulama prosedürü, FPGA panosunda HoG + SVM ile yaya tespitine dayalı ve yüksek seviyeli sentezin faydalarından yararlanarak aşağıdaki Şekil 2'de gösterilmiştir.

figure-protocol-1
Şekil 2: FPGA panosunda yaya algılama uygulama için tasarım prosedürü. Aşama 1: HLS aracında HoG+SVM kullanarak yaya algılama algoritması ve IP bloğu oluşturulması. Aşama 2: Gerçek FPGA uygulaması için HoG+SVM kullanarak yaya algılama algoritması ve bit dosyasını oluşturması. Aşama 3: Oluşturulan bit dosyasıyla kartı programlama. Bu figürün daha büyük bir versiyonunu görmek için lütfen buraya tıklayın.

1. HLS aracında HoG ve SVM kullanılarak yaya tespiti

  1. İndirme işlemi yapılan sistem özelliklerine bağlı olarak Python Entegre Geliştirme Ortamı (IDE) indirin.
    NOT: Bu çalışmada Python 3.10 sürümü kullanılmıştır.
  2. HoG algoritması ve SVM sınıflandırıcısını kullanarak bir eğitim modeli çalıştırmak için bir Python betiği çalıştırın. Senaryoya, veri setinden pozitif ve negatif örnekleri yükleyerek başlayın.
    NOT: INRIA veriseti 11'i kullanın.
  3. 64 x 128 pencere boyutu için HoG özelliklerini çıkarın.
  4. INRIA veri setinden eğitim ve test verilerini, tekrarlanabilirlik için rastgele karıştırma ile 80/20 oranına böl.
    NOT: Veri seti, veri bölünmeden önce python fonksiyonu kullanılarak rastgele karıştırılır. Tekrarlanabilirliği sağlamak ve böylece kodda bir tohum değeri sabitlendiğinde aynı bölünme yapılır.
  5. C-destek vektör sınıflandırması (SVC) SVM'yi doğrusal bir çekirdekle eğitmek.
  6. Ağırlık vektörlerini ve yanlılığı çıkar.
  7. FPGA uygulaması için SVM ağırlıklarını ve yanlılığı sabit noktalı Q8.8 formatında kaydedin.
    NOT: Dönüşüm, her bir yüzeysel nokta değerinin orijinalliğini 256 (28) katı ile ölçeklendirip sonucu bir tamsaya çevirerek yapılır.
  8. Eğitilen modeli başka bir Python betiği ile test edin ve doğruluk %95'in üzerine çıkana kadar düzenlenme parametresi C'yi ayarlayın.
    NOT: Optimize edilmiş düzenleme parametresi alındı: C = 0.05.
  9. HLS aracını açın ve parça numarası xczu3eg-sbva484-1-e olarak seçilerek yeni bir proje oluşturun.
  10. C++ gibi yüksek seviyeli dilleri kullanarak yüksek seviyeli sentez aracında yaya algılama kodu yaz.
  11. Kodda, üç farklı C++ betiği yazın: biri HoG özellik tanımlayıcısı ve SVM sınıflandırıcısı için, diğeri test tablosu için test görgelerine giriş sağlamak ve çıktı görüntülerini kaydetmek için, üçüncüsü ise kodda kullanılan parametreleri belirten başlık dosyası için.
  12. HoG özellik hesaplama kodunda, görüntüyü 640 x 480 boyutuna değiştirin ve 64 x 128 pencere boyutuna sahip bir kaydırmalı pencere mimarisi uygulayın. Her pencere için, her örtüşen 8 x 8 blok için gradyan büyüklüğü ve yönelimi hesaplanın.
    NOT: Görüntünün her alanının kapatılmasını ve her boyuttaki yayaların tanımlanmasını sağlamak için kaydırma pencere konseptinden tüm görüntüyü taramak önemlidir.
  13. Aynı kodun diğer kısmında, HoG özellik tanımlayıcısı için hesaplanan gradyanları SVM sınıflandırıcısına iletebilirsiniz. Özellikleri sınıflandırıcı ağırlıklarıyla eşleştirmek için kod yazın ve eşik eşiğiyle karşılaştırarak tespit edilen özelliği insan olarak sınıflandırıp sınıflandırmak için karşılaştırın.
  14. HLS aracında Çalıştır C Simülasyonu'na tıklayarak kodu test paneli yardımıyla simüle ederek kodun işlevselliğini kontrol edin.
  15. Koda farklı giriş görüntüleri sağlayın ve çıktı görüntülerini tespit edilen yayalarla kontrol edin.
  16. Kod sentezlemek için Run C Synthesis'e tıklayın; böylece kodu donanım dillerine eşlemek ve zamanlama ile kullanım raporlarını oluşturmak için Çalıştır.
    NOT: Araç otomatik olarak HLS sentez raporlarını açar. Bu rapor, seçilmiş FPGA platformunda kodlanmış görevin uygulanması için gereken saat frekansının tahminini gösterir ve ayrıca kullanılan kaynakların tahminini sunar. Bu bildirilen değerler sadece tahminlerdir ve gerçek parametreler ancak FPGA panosunda uygulandıktan sonra hesaplanır.
  17. Yaya algılama HoG algoritmasının Fikri Mülkiyet (IP) bloğunu dışa aktarmak için RTL İtracına tıklayın.
    NOT: Bu IP, uygulamanın sonraki aşamalarında kullanılacaktır.

2. FPGA kartının programlanması

  1. FPGA programlama aracını açın ve yeni bir proje oluşturun. Parça numarasını xczu3eg-sbva484-1-e olarak seçin ve yeni bir blok tasarımı oluşturun.
    NOT: Bu blok diyagram, PS ile FPGA kartının PL kısmı arasında entegrasyon sağlamak için oluşturulmuştur. Kullanılan iletişim protokolü Gelişmiş Eksikal Arayüz (AXI) protokolüdür.
  2. Araçta IP Kataloğunu arayın ve bulduktan sonra açın.
  3. Kullanıcı deposu oluşturun, 1.17. adımda dışa aktarılan RTL IP'nin yolunu ekleyin.
  4. Yeni blok tasarım penceresinde şimdi sağ tıklayın ve IP ekle'yi seçin. Tüm IP'ler, aracın sağladığı ve kullanıcı tarafından eklenen depolar dahil olmak üzere görünür olacaktır.
  5. Depodan Zync Ultrascale PS bloğunu ekleyin.
    NOT: Bu blok, gerekli saatleri üretmekten sorumlu olan sistemin PS bölümünü yansıtır ve ayrıca AXI bağlantı bloğu üzerinden ithal edilen HoG IP'ye bağlanmak için ana ve slave portlara sahiptir; bu blok AXI protokol temellerinde çalışır.
  6. 8 HoG IP ekleyin çünkü sistem aynı anda 8 pencereyi işleyecek ve FPGA kartının sunduğu paralellik avantajından faydalanacak.
  7. Diyagramdaki her blokta saat ve sıfırlama beslemelerini kontrol eden bir işlemci sistemi sıfırlama bloğu ekleyin.
  8. HoG IP'lerini Zync PS bloğuna bağlamak için iki axi_smart bağlantı bloğu ekleyin. Tüm blok diyagram ve tam bağlantılar Şekil 3'te gösterilmiştir.
    NOT: Şekil 3'te gösterildiği gibi, tasarıma eklenmesi gereken tüm bloklar açıkça gösterilmiştir. Şekil 3 araçtan alınmış ve her blokun iç portlarını ile farklı blokların portları arasındaki bağlantıları göstermektedir. Bu blok, PS ile FPGA kartının PL kısmı arasındaki arayüzü kurmaktan sorumlu olan ana tasarımdır.
  9. Bağlantı tamamladıktan sonra , Şekil 3'e göre tasarımı doğrulama seçeneğine tıklayın.
    NOT: Doğrulama temelde eksik bağlantıları veya bozuk bağlantıları kontrol eder, bu da sonraki aşamalarda sorunlara yol açabilir.
  10. Blok diyagramın doğrulaması başarılıolduktan sonra Synthesis'e tıklayın ve ardından Tasarımı Implement'e ekleyin.
    NOT: Sentez, tasarlanmış blok diyagramı haritalandırır ve FPGA kartında haritalar. Bu adım, tasarımın donanımda uygulanamayacağını gösterebilecek herhangi bir ihlali bildirecektir.
  11. Araç ayrıca zamanlama, kaynak kullanımı ve güç tüketimiyle ilgili raporlar da oluşturacak. Raporları dikkatlice inceleyin, herhangi bir zamanlama ihlalini kontrol edin ve tasarlanmış sistemin performansını analiz edin.
  12. FPGA kartını programlamak için gereken .bit dosyasını oluşturan bitstream dosyasını Oluştur ' seçeneğine tıklayın.

figure-protocol-2
Şekil 3: HoG + SVM ithal IP kullanarak yaya tespiti için blok diyagram. Bu şeklin daha büyük bir versiyonunu görmek için lütfen buraya tıklayın.

3. FPGA kartında nihai uygulama

  1. FPGA kartını alın ve SD kartı uygun görüntü dosyası ile kart üzerindeki yuvaya yerleştirin.
  2. Kartı bilgisayara da bağlayın.
  3. FPGA kartını SD kart modunda başlatarak Python programlamayıetkinleştirin 21,22.
  4. Karttaki jupyter platformuna wifi'ye bağladıktan sonra erişin.
  5. Bir web kamerayı panoya bağlayın.
  6. Oluşturulan bit dosyasını içe aktarmak ve kamera görüntülerine erişme görevini yerine getirmek için bir python kodu yazın.
  7. Kodda, betik yazın ki görüntü PS parçası üzerinden FPGA kartının belleğine yazılıp işleme için PL kısmına iletilir.
    NOT: HoG IP'lerine karşılık gelen PL bölümü, bu bellek konumları üzerinden görüntü piksellerine erişir, onları işler ve skorları çıktı olarak sağlar.
  8. İşlenen görüntüleri okumak ve bilgisayar ekranında göstermek için aynı Python betikinde uygun kod yazın.
    NOT: Bu tüm tasarımı tamamlamış ve sistem artık gerçek dünya uygulamalarında kullanıma hazır hale gelmiştir. Bu çalışmada kullanılan tüm kodlar ek kodlama dosyaları olarak yüklenmiştir (Ek Dosya 1 [Script_1_train_test.py], Ek Dosya 2 [Script_2_HLS_hog.cpp], Ek Dosya 3 [Script_3_HLS_test_bench.cpp], Ek Dosya 4 [Script_4_HLS_consts.h], Ek Dosya 5 [Script_5_jupyter_code.txt]).

Results

Loading...
$$\rightleftharpoonup{xx}$$ $$\longleftharp{xx}$$, $$\longrightharp{xx}$$,

HLS'de yaya tespit uygulaması
Şekil 4 , HoG + SVM kullanılarak yaya tespiti için HLS aracının simülasyon sonuçlarını göstermektedir. Bir yaya içeren giriş görüntüsü koda test girişi olarak verilir ve tespit edilen yayalarla çıktı gösterilir. Görselde iki bölüm var. İlk tespitte aynı yayanın etrafında tekrar tekrar birçok sınırlayıcı kutu var, ikinci görüntüde ise üst üste binen kutular kaldırılır ve bastırılır, geriye sadece ana tespit kutuları kalır.

figure-results-1
Şekil 4: HLS aracından simülasyon sonucu. (A,B) İki farklı giriş görüntüsü ve tespit edilen yayalarla ortaya çıkan görüntüler. Bu figürün daha büyük bir versiyonunu görmek için lütfen buraya tıklayın.

HLS aracı ayrıca zamanlama ve kaynak kullanımı için sentez raporları sağlar. Zamanlama özeti, tasarımın gerektirdiği zaman dilimini vurgular ve döngü sayısı açısından maksimum ve minimum gecikme değerlerini sunar. Bu bilgiler, tasarımın ne kadar zaman gerektirdiğini ve gerçek donanım uygulamasına geçerken saat frekansının ne olması gerektiğini tahmin etmek için faydalıdır. Aşağıdaki tablo 2 , HLS sentezinden sonraki zamanlama raporunu göstermektedir; bu raporda hedef saat süresinin 6 ns olduğu ve tasarımın hedefin daha az olduğu 5,25 ns olduğu açıkça belirtilmektedir; bu nedenle zaman dilimi 6ns veya üzeri olabilir ancak 5 ns'nin altında değildir.

Zamanlama Özeti
SaatHedefTahmini
6.00 ns5.250 ns
Kullanım Özeti
Toplam / MevcutKullanım Yüzdesi
BRAM18K22 / 4325%
DSP48E13 / 3603%
FF5611/ 1411203%
LUT9904/ 7056014%
URAM00

Tablo 2: HoG-SVM kullanılarak yaya tespiti için HLS aracından tahmini zamanlama ve kaynak kullanım raporu.

Tablo 2 ayrıca kullanım raporunu da göstermektedir. Önemli gemi içi FPGA kaynaklarının seçilen hedef tahta göre yüzde kullanımını gösterir. Bu yaya algılama tasarımı için, kullanım raporu tasarımın arama tablolarının (LUT'lar) %14'ünü, Flip Flop'ların (FF'lerin) %3'ünü, dijital sinyal işlemenin (DSP) %3'ünü ve blok rastgele erişimli belleğin (BRAM) %5'ini tükettiğini gösteriyor. Bu tahminler tam kullanım raporları değildir, ancak gerçek raporlar bu tahminlere yakındır. Bunlar sadece HLS araçları tarafından hesaplanabilecek tahminlerdir. Gerçek uygulama genellikle bu tahminlerden çok farklıdır.

Gerçek uygulama donanım programlamadan kaynaklanır
Kod bir IP'ye eşlendikten ve bu IP, FPGA programlama aracına aktarıldıktan ve tasarım gerçek FPGA donanımında uygulandıktan sonra, birkaç rapor da oluşturulur. İlki, tasarıma verilen saat frekansının yeterli olup olmadığını gösteren zamanlama özetidir. Tüm zamanlama kısıtlamaları karşılanırsa ve ihlal olmazsa, tasarım devam edebilir. Aşağıdaki tablo 3 , aracın oluşturduğu zamanlama özetini göstermektedir. Tabloda gösterildiği gibi, zamanlama özeti en kötü negatif gevşekliği gösterir; bu da 4.073 ns'dir. Bu değer pozitif olduğundan, bu kadar sürenin hâlâ mevcut olduğunu gösterir. Negatif değerler, FPGA'nın görevi tamamlamak için daha fazla zaman aldığını ve saatin hızlı çalıştığını gösterir. Çünkü bu durumda negatif değerler yoktur, bu da zamanlama kısıtlamalarının karşılandığını gösterir.

Tasarım Zamanlaması Özeti
KurulumBekleDarbe Genişliği
En Kötü Negatif Slack 4.073 nsEn Kötü Tutma Slack 0.010 nsEn Kötü Darbe Genişliği Slack 3.500 ns

Tablo 3: FPGA panosunda yaya tespiti için gerçek zamanlama özeti.

Ayrıca, araç kaynak kullanım raporlarını gösterir; bunlar FPGA panosunun seçtiği gerçek kullanım verileridir. Bu durumda, seçilen kart Zynq UltraScale+ MPSoC (Multi-Processor System On Chip) tabanlı FPGA geliştirmekartı 27'dir. Aşağıdaki tablo 4 kaynak kullanımını gösterirken, Şekil 5 kaynak kullanımının diyagramatik temsilini göstermektedir.

Kullanım özeti, paralel olarak kullanılan 8 HoG IPS olduğu ve HLS sentezi tarafından bildirilen tahminlerin tek bir HoG IP için olduğu göz önüne alındığında, gemi içi kaynakların gerçek tüketimini göstermektedir. Ancak bu kadar yoğun kullanımdan sonra bile, her kaynağın kaynak kullanımı %50'nin altındadır. Tablo 4 , çeşitli kaynaklara göre kullanım oranını ve kullanım yüzdesini açıkça göstermekte olup, bu yüzdesi Şekil 5'te resimsel olarak gösterilmiştir.

KaynakKullanımMevcutKullanım %
LUT405367056057.45%
LUTRAM73042880025.36%
FF3334214112023.63%
BRAM6821631.48%
DSP12836035.56%
BUFG21961.02%

Tablo 4: FPGA panosunda yaya tespiti için gerçek kullanım raporu.

figure-results-2
Şekil 5: Gerçek uygulamadan sonra FPGA tahtasında yaya algılama için kaynak kullanımı. Tabloları araştırın (LUT): %57, LUTRAM: %25, Flip floplar (FF): %24, Blok RAM (BRAM): %31, Dijital sinyal işlemcileri (DSP): %36, Tamponlar: %1. Bu figürün daha büyük bir versiyonunu görmek için lütfen buraya tıklayın.

Üçüncü rapor, tasarım tarafından enerji tüketimi miktarına ilişkin pano güç tahminleriyle ilgilidir. Aşağıdaki şekil 6 , toplam çip üzerindeki gücün 2.435 W olduğunu gösteren güç tüketimi raporunu göstermektedir. Bağlantı sıcaklığı ve her önemli ağ ile bileşenin tükettiği güç de gösterilmiştir. Güç ölçümleri endişe verici bir güç tüketimi göstermediği için tasarım enerji verimli olarak kabul edilebilir.

figure-results-3
Şekil 6: Gerçek uygulamadan sonra FPGA panosunda yaya algılama için güç tahmini. Araçlar tarafından üretilen güç raporu, toplam tüketilen gücü 2.435 W olarak gösterir ve ayrıca FPGA panosunda çeşitli kaynaklar arasında gücün dağılımını gösterir. Bu figürün daha büyük bir versiyonunu görmek için lütfen buraya tıklayın.

Oluşturulan blok diyagramda tek bir HoG IP'si veya 8'den fazla yerine 8 HoG IP'si kullanmanın avantajını anlamak için başka bir analiz yapılmıştır; bu da Şekil 3'te gösterilmiştir. Donanımla ilgili performans metrikleri hem tek bir HoG IP'si hem de paralel olarak 8 HoG IP'si için hesaplandı. Aşağıdaki tablo 5 karşılaştırmayı göstermektedir.

Perfromans Metriği1 IP8 IP
Zamanlama (ns)5.312~5.25
Frekans (MHz)188150
Güç (W)1.92.43
LUT'lar499840536
FF / Kayıtlar4,03133,342
DSP16128
BRAM8.568
FPS~10–1183

Tablo 5: Tek ve birden fazla HoG IP'si kullanılarak performans metriklerinin karşılaştırılması.

Tablo 5 , kaynaklar LUT, FF, DSP ve BRAM'ler gibi ele alındığında, tek HoG IP ve 8 HoG IP ile ölçeklendirmenin doğrusal olduğunu ve kullanılan kaynakların neredeyse 8 kat arttığını açıkça gösteriyor. Bu açıkça bekleniyor çünkü daha fazla IP daha fazla kaynak tüketimine yol açacak. Ayrıca, frekans gözlemlenirse, maksimum frekans da 188 MHz'den 150 MHz'e %20 oranında hafifçe düşer. Bu da bekleniyor; çünkü daha fazla blok daha fazla bağlantıya ve dolayısıyla daha uzun yollara yol açıyor ve kritik yolların artmasına neden oluyor. Ancak FPS gibi avantajlı faktörler 10'dan 83'e yükselir; bu da 8 HoG IP'si sayesinde paralellik kavramının tanıtılması nedeniyle FPS durumunda doğrusal olmayan ölçeklendirmeyi gösterir. Ayrıca, güç 1.9 W'tan 2.4 W'a kadar ölçekleniyor, bu da boru hatı yoluyla enerji verimliliğinin arttığını gösteriyor. Dolayısıyla, bu analiz 8 HoG IP'nin eklenmesinin tasarım için faydalı olduğunu ve 8'in üzerine ölçeklendirmenin kaynak tüketimine yol açabileceğini açıkça gösteriyor; Bu nedenle, 8'in üzerindeki blok sayısı avantajlı sayılmamaktadır.

FPGA uygulamasından sonra yaya tespit sonuçları
Son olarak, tüm sistem FPGA kartına entegre edilir ve bit akışı dosyası oluşturulur; bu dosya, Python programlanabilirlik özelliğiyle önyüklenen SD kart üzerinden kartta programlanır. Kart SD kartla açıldıktan sonra jupyter arayüzüne erişilebilir ve Python kodu yazılabilir ve platformda çalıştırılabilir. Python kodu, farklı giriş görüntülerinde yaya algılama için çalıştırılır ve test edilir. Birkaç görselin sonucu aşağıdaki Şekil 7'de gösterilmiştir. Bu görüntüler, INRIA veri setinden ve açık kaynak çevrimiçi kaynaklardan elde edilen rastgele yayagörüntülerinden (26,27) kullanılmıştır.

figure-results-4
Şekil 7: FPGA Panosu üzerinden yaya algılama sonuçları. Test edilen görüntüler, INRIA veri setinden görüntüleri ve Hindistan'ın kalabalık sokaklarında tespit doğruluğunu test etmek için Google'da bulunan açık kaynak görüntüleri içeriyor. Bu figürün daha büyük bir versiyonunu görmek için lütfen buraya tıklayın.

Sistem ayrıca web kamerası aracılığıyla gerçek zamanlı kare yakalama ve karedeki yayaların algılanması ile birlikte yayaların önceden kaydedilmiş video girişlerinde test edilmektedir. Bunun sonuçları Şekil 8 ve Şekil 9'da gösterilmiştir. Şekil 8 , web kamerası tarafından çekilen örnek kareler setini ve her karede yaya algılama sonuçlarını gösterirken, Şekil 9 sisteme sağlanan giriş videosunda uygulanan yaya algılama sonuçlarını gösterir.

figure-results-5
Şekil 8: FPGA panosu üzerinden gerçek zamanlı olarak kamerayla çekilen karede yaya algılama sonuçları. Web kamera 720 P ile gerçek zamanlı video kaydı ve yayaların gerçek zamanlı tespitini göstermek. Bulanık görüntüler, devam eden canlı videodan çekilen anlık görüntülerle ortaya çıkıyor. Bu figürün daha büyük bir versiyonunu görmek için lütfen buraya tıklayın.

figure-results-6
Şekil 9: FPGA Panosu'na girdi olarak sağlanan videolarda yaya algılama sonuçları. Videolar açık kaynak bağlantılardan alındı. Bu figürün daha büyük bir versiyonunu görmek için lütfen buraya tıklayın.

Performans metriklerinin tahmini
Yukarıda uygulanan tasarımın verimliliğini hesaplamak ve performansını analiz etmek için, performansı değerlendirmek için faydalı performans metriklerini hesaplamak gereklidir. Bir algılama algoritmasının verimliliğini tespit etmek için performans metrikleri temelde gerçek pozitifler (TP), gerçek negatifler (TN), yanlış pozitifler (FP) ve yanlış negatifler (FN) değerlerine bağlıdır. Bu değerlerden, hassasiyet, hatırlama, F1 puanı, görüntü başına yanlış pozitifler ve doğruluk gibi performans metrikleri aşağıda verilen denklemlere göre hesaplanabilir. Araştırma makalelerinin çoğunun tespit performansını doğruluk parametresi üzerinden raporladığı gözlemlenmiştir. Ancak TN kullanımıyla ilgili doğruluk hesaplamasının yanıltıcı bir parametre olabileceği gözlemlenmiştir; çünkü TN değeri gerçek anlamda doğru hesaplanamaz; çünkü bu, aslında yaya olmayan bir görüntüdeki tüm tespit pencerelerinin sayısını bulmayı içerir ve uygulanan algoritma da bunu tespit edilmemiş olarak bildirir. Bu sayı genellikle çok büyüktür, çünkü bir görüntüdeki toplam tespit penceresi sayısı büyüktür ve her görseldeki arka plan alanları genellikle yaya olmayan bölgelere karşılık gelir. [1] – [5] denklemlerinde gösterilen doğruluk formülünü yakından inceleyerek, TN değerinin TP+FP+FN ile karşılaştırıldığında oldukça yüksek olacağı ve doğruluk parametresinin genellikle yüksek bir değere sahip olduğu anlaşılabilir. Performansı gerçekten değerlendirmek için, TN'ye bağlı olmayan ve bu nedenle çok daha doğru olan hassasiyet, hatama ve F1 puanı gibi metrikleri raporlamak çok daha iyidir.

figure-results-7 [1]

figure-results-8 [2]

figure-results-9 [3]

figure-results-10 [4]

figure-results-11 [5]

Bu makale için TP, TN ve FN değerlerini bulmak için, durağan görüntüler üzerindeki deney çok sayıda görüntüde tekrarlandı. Her görüntünün sonuçlarından, doğru tespit edilen yaya sayısı, yanlış pozitifler, yanlış pozitifler ve gerçek yayaların fark edilmediği yanlış negatifler hesaplandı. Aşağıdaki değerler yapılan deneylerden sonra rapor edilmiş ve aşağıdaki Tablo 6'da gösterilmiştir.

Performans ÖlçütüDeğer
TP143
FP39
FN19
Precison0.786 (78.6%)
Geri Çağırma0.883 (88.3%)
F1 Puanı0.831 (83.1%)
FPPI0.867

Tablo 6: FPGA tabanlı yaya algılama algoritmasının performans metrikleri.

Yukarıdaki tablo 6 , algoritma donanım platformunda uygulandığında yaya tespit algoritmasının doğruluğunu çeşitli performans metrikleri, hassasiyet, geri çağırma, F1 puanı ve FPPI üzerinden tanımlar.

Mevcut FPGA tabanlı HoG uygulamalarıyla performans karşılaştırması
Son olarak, yürütülen çalışmalar önceki literatürle karşılaştırılıp bu araştırmanın önemli katkılarını belirtebilir. Bu karşılaştırma, aşağıdaki Tablo 7 15,16,17,21,24'te gösterilmiştir. Karşılaştırmanın yapıldığı makalelerin tamamı FPGA platformlarında uygulanan yaya algılama uygulamalarına dayanır ve bu tespitler için kullanılan algoritmalar da hepsi için aynıdır; bu da HoG ile bir sınıflandırıcı (ya Adaboost sınıflayıcısı, ya da SVM) birleştirilir. Görüntü boyutu da her biri için aynıdır (640 × 480). Karşılaştırma, hızı etkileyen saat frekansı, saniye başına kare sayı, güç tüketimi ve kaynak kullanımı gibi parametrelere dayanarak yapılır; LUT'lar, DSP'ler, Bellek, Dilimler ve Kayıtlar cinsinden. Adil bir karşılaştırma yapmak için, karşılaştırma için değerlendirilen araştırma makaleleri benzer görüntü çözünürlüğüne sahiptir ve kaynak karşılaştırmasını normalleştirmek için, kullanılan FPGA panosuna göre tüketilen kaynakların sayısının toplam mevcut kaynak sayısına bölünerek her kaynak kullanımı normalleştirilir.

ReferansGörüntü BoyutuFPGA KartıSaat FrekansıSaniyede kare (FPS)GüçPikseller /saatLUT'lar (%)DSP48'ler (%)BRAM'ler /bellek bitleri (%)Kayıtlar/FF (%)
15640×480Xilinx Zynq82.2 MHz40-14020-
24640×480Virtex 6150 MHz1019 W395322-
16640×480Cyclone V162 MHz5269 W0.99218610021
17640×480Altera DE2-11550 MHz1293.6 W-73-7260
21640×480Zync 7000100 MHz2401.6 W-133110
BU ÇALIŞMA640 X 480Ultra 96 v2150 MHz832.435W0.063257353124

Tablo 7: FPGA'da yaya algılama uygulamaları için parametreler ve performansın karşılaştırılması

Yukarıdaki Tablo 7'de görüldüğü üzere, bu araştırmadaki uygulama önceki çalışmalarla karşılaştırıldığında, karşılaştırmaların hız açısından önemli iyileşmeler gösterdiği gözlemlenmektedir. FPGA kartı 150 MHz saat frekansında çalışabilir, bu da tüm görevin tamamlanma süresinin 6 ns'den az olduğu anlamına gelir. Bazı önceki çalışmalar önemli ölçüde daha fazla FPS rapor etse de, dikkatli inceleme sonucunda bu avantajın daha yüksek güç tüketimi ve bazı kaynakların neredeyse tamamen kullanılması karşısında olduğu analiz edilebilir. Güç tüketimi dikkate alındığında, bu çalışmada bildirilen güç de daha düşüktür ve kaynak kullanımları, her kaynağın tüketiminin belirli uygulamalardan biraz fazla olduğunu, ancak %50'ye eşit veya daha az olduğunu (%57 LUT, %35 DSP ve %31 BRAM) göstermektedir; bu da bu tasarımda daha fazla görevin uygulanması için önemli bir alan göstermektedir. Genel olarak, bu makalede uygulanan çalışmaların performans, güç ve kaynak kullanımı arasında dengeli bir denge sağladığı belirtilebilir. Ayrıca, sunulan çalışma, performans parametrelerini ciddi şekilde etkilemeden birden fazla IP bloğu üzerinden ölçeklenebilir paralellik sergiledi.

Ek Dosya 1: Script_1_train_test.py.Bu dosyayı indirmek için lütfen buraya tıklayın.

Ek Dosya 2: Script_2_HLS_hog.cpp. Bu dosyayı indirmek için lütfen buraya tıklayın.

Ek Dosya 3: Script_3_HLS_test_bench.cpp. Bu dosyayı indirmek için lütfen buraya tıklayın.

Ek Dosya 4: Script_4_HLS_consts.h.Bu dosyayı indirmek için lütfen buraya tıklayın.

Ek Dosya 5: Script_5_jupyter_code.txt.Bu dosyayı indirmek için lütfen buraya tıklayın.

Discussion

Loading...
$$\rightleftharpoonup{xx}$$ $$\longleftharp{xx}$$, $$\longrightharp{xx}$$,

Bu çalışma, Zynq UltraScale+ MPSoC geliştirmekartı 24'e dayalı gelişmiş FPGA donanımında HoG + SVM algoritmasını kullanarak gerçek zamanlı yaya tespit sistemini etkili bir şekilde uygulamaktadır. Sonuçlar, geleneksel insan algılamaalgoritmasının %95'e yakın doğruluk sağladığını ve gemi içi FPGA kaynaklarının (LUT'lar, FF'ler, BRAM, DSP'ler) sadece yarısını kullandığını göstermektedir; böylece bazı farklı görevleri yerine getirmek için çok daha fazla işlem ekleme konusunda büyük bir yetenek bırakmaktadır. Tüm uygulama yaklaşımı analiz edildiğinde, çeşitli kritik adımların yer aldığı gözlemlenmektedir. Önemli adımlardan biri, SVM model 18,19,24'ü etkili yaya tespiti için uygun bir veri setiyle eğitmektir; böylece ağırlıklar çıkarılıp FPGA programlamasında kullanılacaktır. Eğitim kodu performans doğruluğunu gösterecek ve tespit eşiği, düzenleme parametresi üzerinden dikkatlice ayarlanarak %95'e yakın bir doğruluk elde edilmelidir. Eğitimde seçilen parametreler, pencere boyutu 64 x 128, blok boyutu 16 x 16, hücre boyutu 8 x 8 ve bir dizi binin 9 olarak seçildiği özel HoG tanımlayıcılarıdır. Şu anda eğitim, INRIAveri seti 11 üzerinde 2416 pozitif ve 1218 negatif görüntü ile gerçekleştirilmiştir. Artırma, yatay aynalı versiyonu sağlamak için görüntülerin döndürülmesini içerir. Modelin düşük görünürlük veya ölçek farklılıkları koşullarında değerlendirilmesi gibi diğer önemli dahil etmeler, tekrarlanabilirlik ve dayanıklılığı sağlamak için gelecekteki çalışmalarda ele alınacaktır. Eğitim için değerlendirilen veri setinde, çeşitli pozlarda yaya görüntüleri ve içinde yaya olmayan görüntülerde yer almalıdır 18,19.

Diğer kritik adım ise tüm sistem için blok diyagram oluşturmaktır ki FPGA kartının PS kısmı PL kısmıyla iletişim kurabilsin. Bu adımda, her blokun doğru portlarla parametre edilmiş olduğundan ve diğer bloklara doğru şekilde bağlandığından emin olmak gerekir. Araç ayrıca tasarımcıya yardımcı olacak önerilerle otomatik yönlendirme de sunar. Çok önemli bir adım, blok diyagramı tamamladıktan sonra adres atamasıdır. İthal edilen HoG IP'leri, derinliklerine göre adres atanmalıdır ve bu adresler herhangi iki IP için aynı olmamalıdır. Bu adresler, PS bölümünün verileri okumak/yazmak için erişmesi gereken PL adres konumunu anlamasına yardımcı olacak SD karttaki python kodunda gereklidir. Bu nedenle zorlu adım, kullanıcının giriş görüntüleri/videoları/canlı kamera akışını FPGA'ya besleyebileceği ve FPGA'dan işlenen görüntüleri aldıktan sonra çıktı görüntüsünü tespit edilen yayalarla birlikte göstermesini sağlayan arayüz geliştirmesidir. Python kodu, tasarımcının ara sonuçları görebileceği çeşitli hata ayıklama mesajlarıyla yazılmalıdır ve hata durumunda hatalar teşhis edilip düzeltilebilir. Bu araştırmada, PS ile PL kısmı arasında uygun bir arayüz oluşturmak için çok fazla zaman harcandı. Bu arayüz için Python betikleri, birkaç yinelemeden sonra HoG IP'lerinin verilerine erişebiliyordu ve ara sonuçları göstermek için birkaç ifade eklemesi, hataların giderilmesinde ve sorun giderilmesinde çok faydalı oldu.

Yöntemin gözlemlenen bir sınırlaması, FPGA'nın PS ve PL kısmı arasında arayüz kurmak için python kısmının kullanılmasıdır. Python platformu tasarım süresini büyük ölçüde azaltsa da, gerçek zamanlı performansı etkileyen ek yükler getiriyor. Donanım hızlandırmalı yaya algılama sistemi 83 FPS hız verimini bildirdi, ancak sistemin genel performansı gecikme nedeniyle etkilendi veya PS ile PL kısmı arasındaki veri transferi nedeniyle canlı kamera testlerinde tepki vermemeye başladı. Gelecek perspektifi, yazılıma bağımlı olmadan tam donanım hızlandırmalı bir sistem geliştirme olasılığını içeriyor.

Yukarıda açıklandığı sınırlamalar olsa da, geliştirilen sistem yaya algılamaları için hareketsiz görüntüler, canlı yayınlar veya video girişleri için sorunsuz şekilde uyarlanabildiği için araştırmalar önemli katkı sağlamaktadır. Üç yöntemin tamamı, Jupyter platformundaki Python kodunda yalnızca küçük değişiklikler gerektirir ve sistemin çeşitli senaryolara hızlı uyum sağlayabildiğini gösterir. Sonuçlar, gelişmiş FPGA mimarilerinde uygulanmanın teşvik edici sonuçlar verdiğini göstermektedir; çünkü performans parametreleri yüksek derecede optimize edilmiş ve bu da iyi ve kabul edilebilir değerler elde eder. Elde edilen saat frekansı, öncekiliteratür 14,15,16,20,23 ile karşılaştırılabilir; bu da hızın bozulmadığını gösterirken, minimum güç tüketimi ısınma sorunu olmadığını gösterir. Ayrıca, kaynak kullanımı tüm kaynakların %50'nin altında kullanıldığını göstermektedir ve bu da tasarım iyileştirmeleri için önemli potansiyele işaret etmektedir.

Geliştirilen sistem, insan tespit görevini gerektiren herhangi bir uygulamada kullanılabilir ve gerçek zamanlı uygulamalara uyarlanabilir. Ayrıca, gelecekteki çabalar, tüm sistemi tamamen PL kısmına yönelterek, FPGA mantığının kendisi için geliştirmesi, giriş görüntülerini okuması ve işlenen çıktı görüntülerini göstermesi gibi konularda belirtilen sınırlamaların ortadan kaldırılmasına odaklanabilir; çünkü neredeyse %50 adet adet mevcut durumda. Ayrıca, PS ve PL entegrasyonu kullanılacaksa, Yazılım Geliştirme Kiti (SDK) araçlarıyla arayüz geliştirme yapılabilir. Diğer olası uzantılar arasında, çok daha zorlu hava koşullarında veya düşük görüş koşullarında yayaları tanımlamak veya diğer nesnelerin arkasında saklanan tıkanmış yayaların tespit edilmesi olabilir; bu da algoritmada değişiklik yapılmasını gerektirir. Bu durumlarda gereken tek değişiklik, seçilen zorluk'a göre uygun antrenmandan sonra SVM tarafından eğitilen ağırlıkların değiştirilmesi ve sistemin geri kalanında başka bir değişiklik yapılması olmayacak. Bu nedenle, uygulanan sistem diğer zorlu senaryolara kolayca uyum sağlamak için oldukça uygundur. Bir diğer gelecek perspektifi, gelişmiş FPGA kartı kullanarak tamamen otonom bir araç oluşturmak için sisteme ek özellikler eklemeye odaklanmak olabilir.

Disclosures

Loading...
$$\rightleftharpoonup{xx}$$ $$\longleftharp{xx}$$, $$\longrightharp{xx}$$,

Yazarlar, çıkar çatışması olmadığını belirtir.

Materials

List of materials used in this article
NameCompanyCatalog NumberComments
PythonPythonSürüm 3.10
Ultra 96 V2 FPGA Kartı Xilinx 2018'de tanıtıldıYaya tespit algoritmasını uygulamak için kullanılan donanım uygulama platformu
Vivado AMD2019.2Ultra 96 v2 FPGA kartını yaya algılama algoritması ile programlamak için kullanılan FPGA programlama aracı;
Vivado HLS AMD2019.2Makaledeki yaya tespit kodunun yüksek seviyede programlanması için kullanılan Yüksek Seviyeli Sentez Aracı, Fikri Mülkiyet (IP) için

References

Loading...
$$\rightleftharpoonup{xx}$$ $$\longleftharp{xx}$$, $$\longrightharp{xx}$$,
  1. Nkuzo, L., Sibiya, M., Markus, E. Computer vision-based applications in modern cars for safety purposes: A systematic literature review. 2023 Conference on Information Communications Technology and Society (ICTAS), Durban, South Africa, , (2023).
  2. Nidamanuri, J., Nibhanupudi, C., Assfalg, R., Venkataraman, H. A progressive review - Emerging technologies for ADAS driven solutions. IEEE Trans Intell Veh. 7 (2), 326-341 (2021).
  3. Bathla, G., et al. Autonomous vehicles and intelligent automation: Applications, challenges, and opportunities. Mob Inf Syst. 2022, 7632892(2022).
  4. Yamamoto, R., Izumi, Y., Aono, R., Nagahara, T., Tanaka, T., Liao, W., Mitsuyama, Y. Development of autonomous driving system based on image recognition using programmable SoCs. 2021 International Conference on Field-Programmable Technology (ICFPT), Auckland, New Zealand, , (2021).
  5. Kasem, A., Reda, A., Vásárhelyi, J., Bouzid, A. A survey about intelligent solutions for autonomous vehicles based on FPGA. Carpathian J Electr Comput Eng. , (2021).
  6. Nane, R., et al. A survey and evaluation of FPGA high-level synthesis tools. IEEE Transactions on Computer-Aided Design of Integrated Circuits and Systems. 35 (10), 1591-1604 (2015).
  7. Cao, J., et al. Pedestrian detection algorithm for intelligent vehicles in complex scenarios. Sensors. 20 (13), 3646(2020).
  8. Chen, W., Zhu, Y., Tian, Z., Zhang, F., Yao, M. Occlusion and multi-scale pedestrian detection: a review. Array. 19, 100318(2023).
  9. Galvao, L. G., Abbod, M., Kalganova, T., Palade, V., Huda, M. N. Pedestrian and vehicle detection in autonomous vehicle perception systems—A review. Sensors. 21 (21), 7267(2021).
  10. Akshayaa, S., Nithin, S. Comparative study of pedestrian detection techniques for driver assistance system. 2021 Second International Conference on Electronics and Sustainable Communication Systems (ICESC), Coimbatore, India, , (2021).
  11. Dalal, N., Triggs, B. Histograms of oriented gradients for human detection. Proceedings of the 2005 IEEE Computer Society Conference on Computer Vision and Pattern Recognition (CVPR), San Diego, CA, USA, , (2005).
  12. Singh, G., Kaur, A., Bhardwaj, V., Shrivastava, S. Optimizing IoT capabilities: leveraging FPGA for superior performance, efficiency and security. 2024 5th International Conference for Emerging Technology (INCET), Belgaum, India, , (2024).
  13. Shrivastava, S., Kumar, B. V., Gupta, R., Sharma, V. Advancements in real-time image processing using Kintex and Virtex FPGAs: enhancing speed, efficiency, and versatility. 2025 IEEE International Conference on Interdisciplinary Approaches in Technology and Management for Social Innovation (IATMSI), Gwalior, India, , (2025).
  14. Rettkowski, J., Boutros, A., Göhringer, D. Real-time pedestrian detection on a Xilinx Zynq using the HOG algorithm. 2015 International Conference on Reconfigurable Computing and FPGAs (ReConFig), Riviera Maya, Mexico, , (2015).
  15. Ngo, V., Casadevall, A., Codina, M., Castells-Rufas, D., Carrabina, J. A high-performance HOG extractor on FPGA. arXiv. , 1802.02187(2018).
  16. Adiono, T., Prakoso, K. S., Putratama, C. D., Yuwono, B., Fuada, S. HOG-AdaBoost implementation for human detection employing FPGA ALTERA DE2-115. Int J Adv Comput Sci Appl. 9 (10), 353-358 (2018).
  17. Dürre, J., Paradzik, D., Blume, H. A HOG-based real-time and multi-scale pedestrian detector demonstration system on FPGA. Proceedings of the 2018 ACM/SIGDA International Symposium on Field-Programmable Gate Arrays, Monterey, California, USA, , (2018).
  18. Wasala, M., Kryjak, T. Real-time HOG+SVM based object detection using SoC FPGA for a UHD video stream. 2022 11th Mediterranean Conference on Embedded Computing (MECO), Budva, Montenegro, , (2022).
  19. Lin, Y. Research on HOG-SVM pedestrian detection method based on FPGA. Appl Computat Eng. 9, 272-281 (2023).
  20. Ranawaka, P., et al. Application specific architecture for hardware accelerating HOG-SVM to achieve high throughput on HD frames. 2019 IEEE 30th International Conference on Application-Specific Systems, Architectures and Processors (ASAP), New York, NY, USA, 2160, 131-134 (2019).
  21. Luo, J. H., Lin, C. H. Pure FPGA implementation of an HOG based real-time pedestrian detection system. Sensors. 18 (4), 1174(2018).
  22. Ma, X., Najjar, W. A., Roy-Chowdhury, A. K. Evaluation and acceleration of high-throughput fixed-point object detection on FPGAs. IEEE Transactions on Circuits and Systems for Video Technology. 25 (6), 1051-1062 (2015).
  23. Weng, G. Real-time pedestrian recognition on low computational resources. arXiv. , 2309.01353(2023).
  24. Nguyen, T. A., Tran-Thi, T. Q., Bui, D. H., Tran, X. T. FPGA-based human detection system using HOG-SVM algorithm. 2023 International Conference on Advanced Technologies for Communications (ATC), Da Nang, Vietnam, , (2023).
  25. Tarchoun, B., Khalifa, A. B., Dhifallah, S., Jegham, I., Mahjoub, M. A. Hand-crafted features vs deep learning for pedestrian detection in moving camera. Traitement du Signal. 37 (2), 209-216 (2020).
  26. Suleiman, A., Chen, Y. H., Emer, J., Sze, V. Towards closing the energy gap between HOG and CNN features for embedded vision. 2017 IEEE International Symposium on Circuits and Systems (ISCAS), Baltimore, MD, USA, , (2017).
  27. Ultra96-V2 Single Board Computer Hardware User’s Guide. , Avnet. Available from: https://www.avnet.com (2025).

Reprints and Permissions

Request permission to reuse the text or figures of this JoVE article

Request Permission

Tags

Pedestrian DetectionAutonomous DrivingField Programmable Gate ArrayFPGA ImplementationReal Time DetectionHistogram Of Oriented GradientsSupport Vector MachineHigh Level SynthesisUltra 96 V2Smart Transportation

Related Articles