$$\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.

Ş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 |
| Saat | Hedef | Tahmini |
| 6.00 ns | 5.250 ns |
| Kullanım Özeti |
| Toplam / Mevcut | Kullanım Yüzdesi |
| BRAM18K | 22 / 432 | 5% |
| DSP48E | 13 / 360 | 3% |
| FF | 5611/ 141120 | 3% |
| LUT | 9904/ 70560 | 14% |
| URAM | 0 | 0 |
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 |
| Kurulum | Bekle | Darbe Genişliği |
| En Kötü Negatif Slack 4.073 ns | En Kötü Tutma Slack 0.010 ns | En 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.
| Kaynak | Kullanım | Mevcut | Kullanım % |
| LUT | 40536 | 70560 | 57.45% |
| LUTRAM | 7304 | 28800 | 25.36% |
| FF | 33342 | 141120 | 23.63% |
| BRAM | 68 | 216 | 31.48% |
| DSP | 128 | 360 | 35.56% |
| BUFG | 2 | 196 | 1.02% |
Tablo 4: FPGA panosunda yaya tespiti için gerçek kullanım raporu.

Ş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.

Ş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ği | 1 IP | 8 IP |
| Zamanlama (ns) | 5.312 | ~5.25 |
| Frekans (MHz) | 188 | 150 |
| Güç (W) | 1.9 | 2.43 |
| LUT'lar | 4998 | 40536 |
| FF / Kayıtlar | 4,031 | 33,342 |
| DSP | 16 | 128 |
| BRAM | 8.5 | 68 |
| FPS | ~10–11 | 83 |
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.

Ş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.

Ş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.

Ş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.
[1]
[2]
[3]
[4]
[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 |
| TP | 143 |
| FP | 39 |
| FN | 19 |
| Precison | 0.786 (78.6%) |
| Geri Çağırma | 0.883 (88.3%) |
| F1 Puanı | 0.831 (83.1%) |
| FPPI | 0.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.
| Referans | Görüntü Boyutu | FPGA Kartı | Saat Frekansı | Saniyede kare (FPS) | Güç | Pikseller /saat | LUT'lar (%) | DSP48'ler (%) | BRAM'ler /bellek bitleri (%) | Kayıtlar/FF (%) |
| 15 | 640×480 | Xilinx Zynq | 82.2 MHz | 40 | - | 1 | 40 | 2 | 0 | - |
| 24 | 640×480 | Virtex 6 | 150 MHz | 10 | 19 W | | 39 | 53 | 22 | - |
| 16 | 640×480 | Cyclone V | 162 MHz | 526 | 9 W | 0.99 | 21 | 86 | 100 | 21 |
| 17 | 640×480 | Altera DE2-115 | 50 MHz | 129 | 3.6 W | - | 73 | - | 72 | 60 |
| 21 | 640×480 | Zync 7000 | 100 MHz | 240 | 1.6 W | - | 13 | 3 | 1 | 10 |
| BU ÇALIŞMA | 640 X 480 | Ultra 96 v2 | 150 MHz | 83 | 2.435W | 0.0632 | 57 | 35 | 31 | 24 |
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.