$$\rightleftharpoonup{xx}$$
$$\longleftharp{xx}$$,
$$\longrightharp{xx}$$,
تنفيذ اكتشاف المشاة على نظام HLS
يوضح الشكل 4 نتائج المحاكاة على أداة HLS لاكتشاف المشاة باستخدام HoG + SVM. يتم إدخال صورة إدخال مع مشاة كمدخل اختبار للرمز، ويتم عرض المخرج مع المشاة المكتشفين. هناك قسمان في الصورة. الكشف الأول يحتوي على العديد من الصناديق المحيطة بنفس المشاة مرارا وتكرارا، وفي الصورة الثانية، تزال الصناديق المتداخلة ويتم قمعها، لتبقى فقط صناديق الكشف الرئيسية.

الشكل 4: نتيجة المحاكاة من أداة HLS. (أ، ب) صورتان مختلفتان للإدخال والصور الناتجة مع المشاة المكتشفين. يرجى الضغط هنا لعرض نسخة أكبر من هذا الشكل.
توفر أداة HLS أيضا تقارير توليف للتوقيت واستخدام الموارد. يبرز ملخص التوقيت الفترة الزمنية المطلوبة للتصميم ويوفر أقصى وأقل قيم زمن استجابة من حيث عدد الدورات. هذه المعلومات مفيدة لتقدير مقدار الوقت الذي يتطلبه التصميم لتنفيذ وتردد الساعة عند الانتقال إلى التطبيق الفعلي للأجهزة. يوضح الجدول 2 أدناه تقرير التوقيت بعد توليف HLS، والذي يوضح بوضوح أن فترة الساعة المستهدفة كانت 6 نانوثانية وأن التصميم استغرق 5.25 نانوثانية، وهو أقل من الهدف، وبالتالي يمكن أن تكون الفترة الزمنية 6 نانوثانية أو أكثر ولكن ليست أقل من 5 نانوثانية.
| ملخص التوقيت |
| الساعة | الهدف | تقديرات |
| 6.00 نانوثانية | 5.250 نانوثانية ثانية |
| ملخص الاستخدام |
| إجمالي / متوفر | نسبة الاستخدام |
| BRAM18K | 22 / 432 | 5% |
| DSP48E | 13 / 360 | 3% |
| FF | 5611/ 141120 | 3% |
| LUT | 9904/ 70560 | 14% |
| أورام | 0 | 0 |
الجدول 2: تقرير تقديري لتوقيت واستخدام الموارد من أداة HLS لاكتشاف المشاة باستخدام HoG-SVM.
يوضح الجدول 2 أيضا تقرير الاستخدام. يظهر نسبة استخدام موارد FPGA المهمة على متن السفينة حسب اللوحة المستهدفة المختارة. بالنسبة لهذا التصميم الخاص باكتشاف المشاة، يظهر تقرير الاستخدام أن التصميم يستهلك 14٪ من جداول البحث (LUTs)، و3٪ من فليب فلوب (FFs)، و3٪ من معالجة الإشارات الرقمية (DSP)، و5٪ من ذاكرة الوصول العشوائي الكتل (BRAM). هذه التقديرات ليست تقارير الاستخدام الدقيقة، لكن التقارير الفعلية قريبة من هذه التقديرات. هذه فقط التقديرات التي يمكن حسابها بواسطة أدوات HLS. عادة ما يكون التطبيق الفعلي مختلفا جدا عن هذه التقديرات.
التنفيذ الفعلي ناتج عن برمجة الأجهزة
بعد أن يتم تعيين الكود إلى عنوان IP، والذي يتم استيراده في أداة برمجة FPGA، وتنفيذ التصميم على جهاز FPGA الفعلي، يتم أيضا توليد عدة تقارير. الأول هو ملخص التوقيت، الذي يوضح ما إذا كان تردد الساعة المقدم للتصميم كافيا أم لا. إذا تم استيفاء جميع قيود التوقيت ولم تكن هناك مخالفات، يمكن للتصميم المضي قدما. يوضح الجدول 3 أدناه ملخص التوقيت الذي تم إنشاؤه بواسطة الأداة. كما هو موضح في الجدول، يشير ملخص التوقيت إلى أسوأ تراخي سلبي، وهو 4.073 نانوثانية. وبما أن هذه القيمة إيجابية، فهذا يشير إلى أن هذا الوقت الكبير لا يزال متاحا. تشير القيم السلبية إلى أن FPGA يستغرق وقتا أطول لإتمام المهمة، وأن الساعة تعمل بسرعة. وبما أنه في هذه الحالة لا توجد قيم سالبة، فهذا يعني أن قيود التوقيت قد تحققت.
| ملخص توقيت التصميم |
| الإعداد | انتظر | عرض النبضة |
| أسوأ سلبي Slack 4.073 نانوثانية | أسوأ تثبيت للترخي 0.010 نانوثانية | أسوأ عرض نبضي Slack 3.500 نانوثانية |
الجدول 3: ملخص التوقيت الفعلي لاكتشاف المشاة على لوحة FPGA.
أيضا، تعرض الأداة تقارير استخدام الموارد، وهي الاستخدام الفعلي للموارد على متن السفينة حسب لوحة FPGA المختارة. في هذه الحالة، اللوحة المختارة هي لوحة تطوير FPGA27 المعتمدة على Zynq UltraScale+ MPSoC (نظام متعدد المعالجات على الشريحة). يوضح الجدول 4 أدناه استخدام الموارد، والشكل 5 يوضح التمثيل المخططي لاستخدام الموارد.
يشير ملخص الاستخدام إلى الاستهلاك الفعلي للموارد على متن السفينة نظرا لوجود 8 أنظمة HoG IPS مستخدمة بالتوازي، وكانت التقديرات المبلغ عنها من توليف HLS لنظام HoG IP واحد. ولكن حتى بعد هذا الاستخدام المكثف، فإن استخدام الموارد لكل مورد أقل من 50٪. يوضح الجدول 4 بوضوح الاستخدام بالنسبة للموارد المختلفة ونسبة استخدامها، والتي تظهر بشكل مصور في الشكل 5.
| المصدر | الاستخدام | متوفر | نسبة الاستخدام |
| LUT | 40536 | 70560 | 57.45% |
| لوترام | 7304 | 28800 | 25.36% |
| FF | 33342 | 141120 | 23.63% |
| برام | 68 | 216 | 31.48% |
| DSP | 128 | 360 | 35.56% |
| BUFG | 2 | 196 | 1.02% |
الجدول 4: تقرير الاستخدام الفعلي لاكتشاف المشاة على لوحة FPGA.

الشكل 5: استخدام الموارد لاكتشاف المشاة على لوحة FPGA بعد التنفيذ الفعلي. ابحث عن الجداول (LUT): 57٪، LUTRAM: 25٪، Flip Flops (FF): 24٪، ذاكرة بلوك RAM (BRAM): 31٪، معالجات الإشارة الرقمية (DSP): 36٪، المخازن: 1٪. يرجى الضغط هنا لعرض نسخة أكبر من هذا الشكل.
التقرير الثالث يتعلق بتقديرات الطاقة التي تصدرها اللوحة لكمية استهلاك الطاقة في التصميم. يوضح الشكل 6 أدناه تقرير استهلاك الطاقة، الذي يظهر أن إجمالي الطاقة على الشريحة هو 2.435 واط. كما يتم عرض درجة حرارة الوصلة والطاقة المستهلكة لكل شبكة ومكون مهم. لا تبرز قياسات الطاقة أي استهلاك طاقة مقلق، وبالتالي يمكن اعتبار التصميم موفرا للطاقة.

الشكل 6: تقدير القدرة لاكتشاف المشاة على لوحة FPGA بعد التنفيذ الفعلي. تقرير الطاقة الناتج عن الأدوات يعرض إجمالي استهلاك الطاقة ب 2.435 واط، كما يظهر توزيع الطاقة بين الموارد المختلفة على لوحة FPGA. يرجى الضغط هنا لعرض نسخة أكبر من هذا الشكل.
يتم إجراء تحليل آخر لفهم ميزة استخدام 8 عناوين HoG بدلا من عنوان IP واحد أو أكثر من 8 في مخطط الكتلة المنشأ، كما هو موضح في الشكل 3. تم حساب مقاييس الأداء المتعلقة بالأجهزة لكل من عنوان IP واحد ل HoG و8 عناوين HoG بالتوازي. يوضح الجدول 5 أدناه المقارنة.
| مقياس الأداء | 1 IP | 8 حقوق IP |
| التوقيت (ns) | 5.312 | ~5.25 |
| التردد (ميغاهرتز) | 188 | 150 |
| القوة (W) | 1.9 | 2.43 |
| LUTs | 4998 | 40536 |
| FF / السجلات | 4,031 | 33,342 |
| DSP | 16 | 128 |
| برام | 8.5 | 68 |
| ألعاب التصويب من منظور الشخص الأول | ~10–11 | 83 |
الجدول 5: مقارنة مقاييس الأداء باستخدام عناوين IP فردية مقابل متعددة من HoG.
يوضح الجدول 5 بوضوح أنه عند النظر في الموارد مثل LUTs وFFs وDSPs وBRAM، فإن مع IP واحد من HoG و8 عناوين HoG IP، يكون التكبير خطيا مع زيادة تقارب 8 أضعاف في الموارد المستخدمة. وهذا متوقع بوضوح، حيث أن المزيد من حقوق الملكية الفكرية سيؤدي إلى استهلاك المزيد من الموارد. أيضا، إذا تم رصد التردد، فإن التردد الأقصى ينخفض قليلا بنسبة 20٪ من 188 ميجاهرتز إلى 150 ميجاهرتز. وهذا متوقع أيضا لأن المزيد من الكتل يؤدي إلى المزيد من الوصلات وبالتالي مسارات أطول، مما يؤدي إلى زيادة المسارات الحرجة. لكن العوامل المفيدة مثل الإطارات في الثانية (FPS) تتحسن من 10 إلى 83، مما يظهر تحجيما غير خطي في حالة FPS بسبب مفهوم التوازي المقدم بسبب 8 عناوين HoG. كما أن القدرة تتراوح من 1.9 واط إلى 2.4 واط، مما يشير إلى تحسين كفاءة الطاقة عبر التبطين. لذا، يشير هذا التحليل بوضوح إلى أن إدخال 8 عناوين HoG مفيد للتصميم، وأن التوسع فوق 8 قد يؤدي إلى الإفراط في استهلاك الموارد؛ لذا، لا يعتبر عدد الكتل التي تتجاوز 8 مفضلا.
نتائج اكتشاف المشاة بعد تنفيذ FPGA
وأخيرا، يتم دمج النظام بالكامل على لوحة FPGA، ويتم توليد ملف تدفق البت، والذي يتم برمجته بعد ذلك على اللوحة عبر بطاقة SD المجهزة بقدرة برمجة بايثون. بمجرد إقلاع اللوحة باستخدام بطاقة SD، يمكن الوصول إلى واجهة jupyter ويمكن كتابة كود بايثون وتشغيله على المنصة. يتم تشغيل واختبار كود بايثون لاكتشاف المشاة على صور إدخال مختلفة. تظهر نتيجة بعض الصور في الشكل 7 أدناه. تستخدم هذه الصور من مجموعة بيانات INRIA بالإضافة إلى صور عشوائية للمشاة تم الحصول عليها من مصادر مفتوحة المصدرعبر الإنترنت 26,27.

الشكل 7: نتائج اكتشاف المشاة على الصور الثابتة عبر لوحة FPGA. تشمل الصور التي تم اختبارها صورا من مجموعة بيانات INRIA، وهي صور مفتوحة المصدر متاحة على جوجل لاختبار دقة الكشف في شوارع الهند المزدحمة. يرجى الضغط هنا لعرض نسخة أكبر من هذا الشكل.
كما يختبر النظام على التقاط الإطارات في الوقت الحقيقي عبر كاميرا ويب واكتشاف المشاة في الإطار، كما يتم اختبار النظام على مدخلات الفيديو المسجلة مسبقا للمشاة. تظهر نتائج ذلك في الشكل 8 والشكل 9. يعرض الشكل 8 مجموعة من الإطارات النموذجية التي التقطتها كاميرا الويب ونتائج اكتشاف المشاة في كل إطار، بينما يوضح الشكل 9 نتائج اكتشاف المشاة المنفذة على فيديو إدخال مقدم للنظام.

الشكل 8: نتائج اكتشاف المشاة على الإطار الذي تلتقطه الكاميرا في الوقت الحقيقي عبر لوحة FPGA. التقاط الفيديو في الوقت الحقيقي عبر كاميرا ويب 720 P وإظهار الكشف اللحظي للمشاة. الصور الضبابية ناتجة عن التقاط لقطات من الفيديو المباشر المستمر. يرجى الضغط هنا لعرض نسخة أكبر من هذا الشكل.

الشكل 9: نتائج اكتشاف المشاة على الفيديوهات المقدمة كمدخل للوحة FPGA. تم أخذ الفيديوهات من روابط مفتوحة المصدر. يرجى الضغط هنا لعرض نسخة أكبر من هذا الشكل.
تقدير مقاييس الأداء
لحساب الكفاءة وتحليل أداء التصميم المطبق أعلاه، من الضروري حساب مقاييس الأداء المفيدة لتقييم الأداء. تعتمد مقاييس الأداء لاكتشاف كفاءة خوارزمية الكشف أساسا على قيم الإيجابيات الحقيقية (TP)، والسلبيات الحقيقية (TN)، والإيجابيات الكاذبة (FP)، والسلبية الكاذبة (FN). من هذه القيم، يمكن حساب مقاييس الأداء مثل الدقة، الاسترجاع، درجة F1، الإيجابيات الكاذبة لكل صورة، والدقة وفقا للمعادلات الموضحة أدناه. لوحظ أن معظم الأوراق البحثية تنقل أدائها في الكشف من خلال معامل الدقة. لكن لوحظ أن حساب الدقة الذي يتضمن استخدام TN يمكن أن يكون معاملا مضللا، حيث لا يمكن حساب قيمة TN بشكل صحيح بالمعنى الحقيقي، لأنها تتضمن إيجاد عدد جميع نوافذ الكشف في صورة لا يوجد بها مشاة فعليا، كما أن الخوارزمية المطبقة تبلغ أيضا عن عدم وجود كشف. عادة ما يكون هذا العدد كبيرا جدا، حيث أن إجمالي نوافذ الكشف في الصورة كبير، والمناطق الخلفية في كل صورة عادة ما تتوافق مع مناطق لا يوجد بها مشاة. من خلال النظر عن كثب إلى صيغة الدقة المعروضة في المعادلات [1] – [5]، يمكن إدراك أنه بما أن قيمة TN ستكون مرتفعة جدا مقارنة ب TP+FP+FN، فإن معامل الدقة عادة ما يكون له قيمة عالية. لتقييم الأداء بشكل حقيقي، من الأفضل الإبلاغ عن مقاييس مثل الدقة، والاستدعاء، ودرجة الفورمولا 1 التي لا تعتمد على TN وبالتالي فهي أكثر دقة.
[1]
[2]
[3]
[4]
[5]
لإيجاد قيم TP وTN وFN لهذه الورقة، تم تكرار التجربة على الصور الثابتة على عدد هائل من الصور. من نتائج كل صورة، تم حساب قيمة الإيجابيات الحقيقية، وهي عدد المشاة الذين تم اكتشافهم بشكل صحيح، والإيجابيات الكاذبة، وعدد المشاة الذين تم اكتشافهم بشكل خاطئ، والسلبية الكاذبة، وهي المشاة الفعليين الذين لم يتم اكتشافهم. تم الإبلاغ عن القيم التالية بعد إجراء التجارب وموضحة في الجدول 6 أدناه.
| مقياس الأداء | القيمة |
| TP | 143 |
| FP | 39 |
| FN | 19 |
| بريسيسون | 0.786 (78.6%) |
| الاستدعاء | 0.883 (88.3%) |
| نتيجة الفورمولا 1 | 0.831 (83.1%) |
| FPPI | 0.867 |
الجدول 6: مقاييس الأداء لخوارزمية اكتشاف المشاة المبنية على FPGA المنفذة.
لذا يصف الجدول 6 أعلاه دقة خوارزمية كشف المشاة من خلال مقاييس الأداء المختلفة، والدقة، والاستدعاء، ودرجة F1، وFPPI، عندما يتم تنفيذ الخوارزمية على منصة الأجهزة.
مقارنة الأداء مع تطبيقات HoG القائمة على FPGA الحالية
وأخيرا، يمكن مقارنة العمل المنفذ مع الأدبيات السابقة لتوضيح أي مساهمات مهمة لهذا البحث. هذا المقارنة موضح في الجدول 715، 16، 17، 21، 24أدناه. المقالات التي تجرى من خلالها المقارنة كلها تعتمد على تطبيقات اكتشاف المشاة المطبقة على منصات FPGA، والخوارزميات المستخدمة لهذه الاكتشافات هي نفسها للجميع، وهو HoG مع مصنف، وهو إما مصنف Adaboost أو SVM. حجم الصورة أيضا نفسه لكل واحد (640 × 480). يتم إجراء المقارنة بناء على معايير مثل تردد الساعة التي تؤثر على السرعة، والإطارات في الثانية، واستهلاك الطاقة، واستهلاك الموارد من حيث LUTs، وDSPs، والذاكرة، والقطع، والسجلات. لتحفيز مقارنة عادلة، فإن الأوراق البحثية التي تم النظر فيها للمقارنة لها دقة صور متشابهة، ولتطبيع مقارنة الموارد، يتم تطبيع كل استخدام للموارد عن طريق قسمة عدد الموارد المستهلكة على إجمالي الموارد المتاحة وفقا للوحة FPGA المستخدمة.
| المرجع | حجم الصورة | مجلس FPGA | تردد الساعة | الإطارات في الثانية (FPS) | القوة | البكسلات /الساعة | LUTs (٪) | DSP48s (٪) | ذاكرة BRAMs / بتات الذاكرة (٪) | السجلات/القواعد (FF) (٪) |
| 15 | 640×480 | زيلينكس زينك | 82.2 ميجاهرتز | 40 | - | 1 | 40 | 2 | 0 | - |
| 24 | 640×480 | فيرتكس 6 | 150 ميجاهرتز | 10 | 19 W | | 39 | 53 | 22 | - |
| 16 | 640×480 | إعصار V | 162 ميجاهرتز | 526 | 9 W | 0.99 | 21 | 86 | 100 | 21 |
| 17 | 640×480 | ألتيرا DE2-115 | 50 ميجاهرتز | 129 | 3.6 وايت | - | 73 | - | 72 | 60 |
| 21 | 640×480 | Zync 7000 | 100 ميجاهرتز | 240 | 1.6 وايت | - | 13 | 3 | 1 | 10 |
| هذا العمل | 640 × 480 | ألترا 96 v2 | 150 ميجاهرتز | 83 | 2.435W | 0.0632 | 57 | 35 | 31 | 24 |
الجدول 7: مقارنة المعلمات والأداء لتنفيذ اكتشاف المشاة على FPGA
كما هو موضح في الجدول 7 أعلاه، يمكن ملاحظة أنه عند مقارنة التنفيذ في هذا البحث مع الأعمال السابقة، تظهر المقارنات تحسنا كبيرا من حيث السرعة. لوحة FPGA قادرة على العمل بتردد ساعة 150 ميجاهرتز، مما يعني أن الفترة الزمنية لإتمام المهمة بأكملها أقل من 6 نانوثان. على الرغم من أن بعض الأعمال السابقة أبلغت عن معدل إطارات أعلى بكثير، إلا أنه من خلال الفحص الدقيق يمكن تحليل أن هذه الميزة تأتي على حساب استهلاك طاقة أعلى وكذلك الاستخدام شبه الكامل لبعض الموارد. إذا أخذنا استهلاك الطاقة في الاعتبار مقارنة بهذا العمل، فإن الطاقة المبلغ عنها أيضا أقل من الجانب المطلوب، وتشير استخدامات الموارد إلى أن استهلاك كل مورد أكبر قليلا من بعض التنفيذات، لكنه يساوي أو أقل من 50٪ (57٪ LUTs، 35٪ DSPs، و31٪ BRAM)، مما يدل على مساحة كبيرة لتنفيذ المزيد من المهام في هذا التصميم. بشكل عام، يمكن القول إن العمل المنفذ في هذه الورقة يحقق موازنة متوازنة بين الأداء والطاقة واستخدام الموارد. بالإضافة إلى ذلك، أظهر العمل المعروض توازيا قابلا للتوسع عبر عدة كتل IP دون التأثير بشكل كبير على معايير الأداء.
الملف التكميلي 1: Script_1_train_test.py.يرجى الضغط هنا لتحميل هذا الملف.
الملف الإضافي 2: Script_2_HLS_hog.cpp. يرجى الضغط هنا لتحميل هذا الملف.
الملف التكميلي 3: Script_3_HLS_test_bench.cpp. يرجى الضغط هنا لتحميل هذا الملف.
الملف التكميلي 4: Script_4_HLS_consts.h.يرجى الضغط هنا لتحميل هذا الملف.
الملف التكميلي 5: Script_5_jupyter_code.txt.يرجى الضغط هنا لتحميل هذا الملف.