$$\rightleftharpoonup{xx}$$
$$\longleftharp{xx}$$,
$$\longrightharp{xx}$$,
Реализация обнаружения пешеходов на HLS
На рисунке 4 показаны результаты моделирования на инструменте HLS для обнаружения пешеходов с помощью HoG + SVM. Входное изображение с пешеходом подаётся в качестве тестового входа в код, а выход с обнаруженными пешеходами отображается. На изображении есть две часть. Первое обнаружение имеет множество ограничивающих рамок вокруг одного и того же пешехода снова и снова, а на втором изображении перекрывающиеся коробки удаляются и подавляются, остаются только основные блоки обнаружения.

Рисунок 4: Результаты моделирования с помощью инструмента HLS. (A,B) Два разных входных изображения и полученные изображения с обнаруженными пешеходами. Пожалуйста, нажмите здесь, чтобы увидеть увеличенную версию этой фигуры.
Инструмент 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% |
| URAM | 0 | 0 |
Таблица 2: Отчёт по оценке времени и использования ресурсов из инструмента HLS для обнаружения пешеходов с использованием HoG-SVM.
Таблица 2 также показывает отчёт об использовании. Он показывает процент использования важных бортовых FPGA-ресурсов согласно выбранной целевой плате. Для такого дизайна обнаружения пешеходов отчет об использовании показывает, что дизайн занимает 14% таблиц поиска (LUT), 3% тригеров (FF), 3% цифровой обработки сигналов (DSP) и 5% блочной памяти с произвольным доступом (BRAM). Эти оценки не являются точными отчётами об использовании, но реальные отчёты близки к этим оценкам. Это только те оценки, которые могут быть рассчитаны инструментами HLS. Фактическая реализация обычно сильно отличается от этих оценок.
Фактическая реализация является результатом аппаратного программирования
После того как код отображается в IP, который импортируется в инструменте программирования FPGA, и дизайн реализован на самом аппаратном обеспечении FPGA, также генерируются несколько отчетов. Первая — это сводка по времени, которая показывает, достаточно ли тактовая частота, предоставленная конструкции. Если все временные ограничения выполнены и нарушений нет, проектирование может продолжаться. Таблица 3 ниже показывает сводку по времени, сгенерированную инструментом. Как показано в таблице, сводка по времени указывает на худший отрицательный проброс — 4,073 нс. Поскольку это значение положительное, это указывает на то, что это время ещё доступно. Отрицательные значения указывают на то, что FPGA занимает больше времени на выполнение задачи, и часы идут быстро. Поскольку в этом случае нет отрицательных значений, что означает, что временные ограничения выполнены.
| Краткое описание времени проектирования |
| Настройка | Стой | Ширина импульса |
| Худший отрицательный слабый баланс 4,073 нс | Худшее удержание Слабый 0.010 нс | Наихудшая ширина импульса Слабое напряжение 3,500 нс |
Таблица 3: Фактическое сводное сводка времени для обнаружения пешеходов на FPGA-доске.
Кроме того, инструмент показывает отчёты об использовании ресурсов, которые отражают фактическое использование встроенных ресурсов согласно выбранной плате FPGA. В данном случае выбранной платой является Zynq UltraScale+ MPSoC (Multi-Processor System On Chip) FPGA-разработка27. Таблица 4 ниже показывает использование ресурсов, а рисунок 5 — диаграмматическое представление использования ресурсов.
Сводка по использованию показывает фактическое потребление бортовых ресурсов, учитывая, что параллельно используется 8 HoG IPS, а оценки, представленные синтезом HLS, касались одного IP HoG. Но даже после такого интенсивного использования использование ресурсов для каждого ресурса составляет менее 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%, тригеры (FF): 24%, RAM (BRAM): 31%, цифровые сигнальные процессоры (DSP): 36%, буферы: 1%. Пожалуйста, нажмите здесь, чтобы увидеть увеличенную версию этой фигуры.
Третий отчёт касается оценок мощности платы для объёма энергопотребления проектом. На рисунке 6 ниже показан отчёт о энергопотреблении, где общая мощность на чипе составляет 2,435 Вт. Также показаны температура перехода и энергопотребляемая каждой важной сетью и компонентом. Измерения мощности не выявляют тревожного потребления энергии, поэтому конструкцию можно считать энергоэффективной.

Рисунок 6: Оценка мощности для обнаружения пешеходов на плате FPGA после фактической реализации. Отчёт о мощности, генерируемый инструментами, показывает общее потребление энергии как 2,435 Вт, а также показывает распределение мощности между различными ресурсами на плате FPGA. Пожалуйста, нажмите здесь, чтобы увидеть увеличенную версию этой фигуры.
Проводится ещё один анализ, чтобы понять преимущество использования 8 IP HoG вместо одного IP HoG или более 8 в созданной блочной схеме, как показано на рисунке 3. Аппаратные показатели производительности рассчитывались как для одного IP HoG, так и для 8 IP 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 |
| FPS | ~10–11 | 83 |
Таблица 5: Сравнение показателей производительности с использованием одного и нескольких IP HoG.
Таблица 5 ясно показывает, что если рассматривать ресурсы, такие как LUT, FF, DSP и BRAM, то при использовании одного IP HoG и 8 IP HoG масштабирование линейное с почти 8-кратным увеличением используемых ресурсов. Это вполне ожидаемо, поскольку увеличение числа интеллектуальных собственностей приведёт к увеличению потребления ресурсов. Кроме того, если наблюдать частоту, максимальная частота также немного снижается на 20% — с 188 МГц до 150 МГц. Это также ожидаемо, поскольку больше блоков ведёт к большему количеству соединений и, следовательно, более длинным путям, что приводит к увеличению критических путей. Однако преимущества, такие как кадры в секунду (FPS), улучшаются с 10 до 83, демонстрируя нелинейное масштабирование в случае FPS благодаря введённой концепции параллелизма благодаря 8 IP HoG. Кроме того, мощность масштабируется от 1,9 Вт до 2,4 Вт, что свидетельствует о повышении энергоэффективности за счёт конвейерного прокладки. Таким образом, этот анализ ясно показывает, что внедрение 8 интеллектуальных интеллектуальных органов HoG выгодно для проектирования, а масштабирование выше 8 может привести к чрезмерному потреблению ресурсов; таким образом, количество блоков выше 8 не считается выгодным.
Результаты обнаружения пешеходов после внедрения FPGA
В конце концов, вся система интегрируется на плату FPGA, и файл битового потока генерируется, который затем программируется на плате через SD-карту, загружаемую с возможностью программирования на Python. После загрузки платы с SD-карты можно получить доступ к интерфейсу Jupyter, и на платформе можно написать и запустить код на Python. Код на Python запускается и тестируется для обнаружения пешеходов на различных входных изображениях. Результат нескольких изображений показан на рисунке 7 ниже. Эти изображения используются из набора данных INRIA, а также случайных изображений пешеходов, полученных из открытых онлайн-источников 26,27.

Рисунок 7: Результаты обнаружения пешеходов на статичных изображениях через FPGA Board. Протестированные изображения включают изображения из набора данных INRIA, открытые изображения, доступные в Google для проверки точности обнаружения на переполненных улицах Индии. Пожалуйста, нажмите здесь, чтобы увидеть увеличенную версию этой фигуры.
Система также тестируется на основе реального времени с помощью веб-камеры и обнаружения пешеходов в кадре, а также тестируется на уже записанных видеозаписях пешеходов. Результаты этого показаны на рисунках 8 и 9. На рисунке 8 показан набор примерных кадров, захваченных веб-камерой, и результаты обнаружения пешеходов в каждом кадре, тогда как на рисунке 9 показаны результаты обнаружения пешеходов, реализованные на входном видео, предоставленном системе.

Рисунок 8: Результаты обнаружения пешеходов на кадре, зафиксированном камерой в реальном времени через плату FPGA. Запись видео в реальном времени через веб-камеру 720 P и демонстрация обнаружения пешеходов в реальном времени. Размытые изображения возникают, когда снимки делаются с текущего прямого эфира. Пожалуйста, нажмите здесь, чтобы увидеть увеличенную версию этой фигуры.

Рисунок 9: Результаты обнаружения пешеходов на видео, предоставленных для FPGA Board. Видео были взяты по ссылкам с открытым исходным кодом. Пожалуйста, нажмите здесь, чтобы увидеть увеличенную версию этой фигуры.
Оценка метрик производительности
Для расчёта эффективности и анализа производительности вышереализованного дизайна необходимо рассчитать метрики эффективности, которые полезны для оценки производительности. Метрики эффективности обнаружения эффективности алгоритма обнаружения в основном зависят от значений истинных положительных (TP), истинных отрицательных (TN), ложноотрицательных (FP) и ложноотрицательных (FN). Из этих значений можно рассчитать показатели производительности, такие как точность, воспоминание, результат F1, ложные срабатывания на изображение и точность согласно приведённым ниже уравнениям. Было замечено, что большинство научных работ отражают свою эффективность обнаружения через параметр точности. Однако было замечено, что расчёт точности, связанный с использованием TN, может быть вводящим в заблуждение, поскольку значение TN невозможно правильно вычислить в истинном смысле, так как оно требует нахождения всех окон обнаружения на изображении, где на самом деле нет пешехода, а реализованный алгоритм также сообщает об этом отсутствии обнаружения. Это число обычно очень большое, так как общее количество окон обнаружения на изображении большое, а фоновые области на каждом изображении обычно соответствуют зонам без пешеходов. Внимательно изучая формулу точности, показанную в уравнениях [1] – [5], можно понять, что поскольку значение TN будет довольно высоким по сравнению с TP+FP+FN, параметр точности обычно имеет высокое значение. Чтобы действительно оценить производительность, гораздо лучше указывать такие метрики, как точность, воспоминание и результат F1, которые не зависят от TN и, следовательно, гораздо точнее.
[1]
[2]
[3]
[4]
[5]
Чтобы найти значения TP, TN и FN для этой статьи, эксперимент с неподвижными изображениями был повторён на огромном числе изображений. На основе результатов каждого изображения рассчитывалось значение истинных положительных результатов — то есть количество правильно обнаруженных пешеходов, ложноположительных, количество ошибочно обнаруженных пешеходов и ложноотрицательных — то есть количество незамеченных пешеходов. Следующие значения были представлены после проведённых экспериментов и показаны в Таблице 6 ниже.
| Метрика производительности | Ценность |
| TP | 143 |
| FP | 39 |
| FN | 19 |
| Прецисон | 0.786 (78.6%) |
| Отзыв | 0.883 (88.3%) |
| Счёт F1 | 0.831 (83.1%) |
| FPPI | 0.867 |
Таблица 6: Метрики производительности для алгоритма обнаружения пешеходов на основе FPGA.
Таблица 6 выше описывает точность алгоритма обнаружения пешеходов с помощью различных показателей производительности, точности, отзыва, оценки F1 и FPPI при реализации алгоритма на аппаратной платформе.
Сравнение производительности с существующими реализациями HoG на базе FPGA
Наконец, выполненную работу можно сравнить с предыдущей литературой, чтобы отметить значимые вклады в это исследование. Это сравнение показано в таблице 7, 15, 16, 17, 21, 24ниже. Статьи, с которыми проводится сравнение, основаны на приложениях для обнаружения пешеходов, реализованных на платформах FPGA, и алгоритмы, используемые для этих обнаружений, также одинаковы для всех — HoG в сочетании с классификатором, который либо является классификатором Adaboost, либо SVM. Размер изображения также одинаков для каждого (640 × 480). Сравнение проводится на основе таких параметров, как тактовая частота, влияющая на скорость, количество кадров в секунду, энергопотребление и использование ресурсов в виде LUT, DSP, памяти, срезов и регистров. Для справедливого сравнения исследовательские работы имеют схожее разрешение изображения, а для нормализации сравнения ресурсов каждое использование ресурсов нормализуется путём деления количества потреблённых ресурсов на общее количество доступных ресурсов в зависимости от используемой платы FPGA.
| Ссылка | Размер изображения | Совет FPGA | Тактовая частота | Кадры в секунду (FPS) | Мощность | Пиксели /такт | LUTs (%) | DSP48s (%) | BRAM /биты памяти (%) | Регистры/FF (%) |
| 15 | 640×480 | Xilinx Zynq | 82,2 МГц | 40 | - | 1 | 40 | 2 | 0 | - |
| 24 | 640×480 | Virtex 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 | Altera DE2-115 | 50 МГц | 129 | 3.6 W | - | 73 | - | 72 | 60 |
| 21 | 640×480 | Zync 7000 | 100 МГц | 240 | 1.6 W | - | 13 | 3 | 1 | 10 |
| ЭТА РАБОТА | 640 X 480 | Ultra 96 v2 | 150 МГц | 83 | 2.435W | 0.0632 | 57 | 35 | 31 | 24 |
Таблица 7: Сравнение параметров и характеристик для реализации обнаружения пешеходов на FPGA
Как видно в таблице 7 выше, можно заметить, что при сравнении реализации в данном исследовании с предыдущими работами сравнения демонстрируют значительные улучшения скорости. Плата FPGA способна работать на тактовой частоте 150 МГц, что означает, что время выполнения всей задачи составляет менее 6 нс. Хотя некоторые предыдущие работы показывают значительно более высокий FPS, при тщательном анализе можно оценить, что это преимущество достигается за счёт большего энергопотребления и почти полного использования определённых ресурсов. Если учитывать энергопотребление, то в данной работе отчетная мощность также ниже, а использование ресурсов указывает на то, что потребление каждого ресурса немного выше, чем в некоторых реализациях, но равно или меньше 50% (57% LUT, 35% DSP и 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.Пожалуйста, нажмите здесь, чтобы скачать этот файл.