Method Article

设计与实现基于现场可编程门阵列的自动驾驶行人检测框架

June 12th, 2026

In This Article

Summary

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

本研究文章演示了在现场可编程门阵列硬件上实现实时行人检测算法,主要应用于自动驾驶应用。该算法结合了定向梯度直方图(HoG)与支持向量机(SVM)分类器,结果显示在速度、功耗和资源利用方面具有效率。

Abstract

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

自动驾驶为应对交通事故死亡人数的上升提供了一种有前景的方式。自动驾驶车辆具备许多功能,但检测行人的能力至关重要,具有挑战性,并且适用于各种实时情境,如监控、追踪人员和监控。准确识别行人很难,因为他们可能以不同的形状、姿势和姿态出现。他们可以穿着各种类型的衣服,有时会部分隐藏,或者与附近的物体隐蔽在一起。本文重点关注使用一种流行的硬件平台——现场可编程门阵列(FPGA),Ultra 96 v2,实现自动驾驶汽车对行人的实时检测。本研究采用了一种基于定向梯度直方图(HOG)和支持向量机(SVM)分类器相结合的行人检测方法,利用高级综合(HLS)工具识别FPGA板上的个体。该系统的有效性已通过静态图像和实时视频进行测试。结果显示,像Ultra 96 v2这样的先进FPGA板显著提升了性能指标。该系统以150 MHz的时钟频率运行,使用不到一半可用资源,功耗约2.5瓦。此外,系统报告行人检测准确率接近95%,以及其他高效的检测评估指标,如准确度(78.6%)、召回率(88.3%)和F1评分(83.1%)。总之,开发的系统能够实时检测行人,有潜力显著提升智能安全交通环境的发展。

Introduction

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

城市发展和智慧城市的兴起是全球关注的话题。所有国家都在努力建设能够以安全舒适的方式建设城市,让居民能够安全舒适。但目前观察到,随着人口增长和道路拥堵加剧,因驾驶疏忽和能见度差导致的交通事故死亡率正令人担忧地上升。解决这些问题的一个有前景的方案是全球自动驾驶汽车的出现,这激发了创新,研究人员正在努力开发能够让乘客安心放松的全自动驾驶车辆。自动驾驶车的发展需求源于即使是经验丰富的司机也可能面临压力、困境、疲劳或因恶劣天气导致环境感知困难,而这些问题最终导致交通事故。自动驾驶车辆旨在避免旅行中事故,优化发动机资源利用,并遵守交通法规,这无疑将提升交通效率2,4。自动驾驶车辆配备了多种功能、传感器和功能,能够非常精确地感知周围环境,避免碰撞和事故,因此它们现在已成为让交通安全可靠的有前景的解决方案。

在自动驾驶车辆所有功能中,行人检测是最重要的之一。强大的行人检测系统能显著降低道路交通事故的死亡人数5,6,7,8,因为大多数事故受害者是行人。行人检测包括识别路上的人员并避免与其发生碰撞。这一功能不仅对自动驾驶汽车有益,也适用于人群监测、人员识别和91011跟踪等多种应用领域。该检测过程的关键在于探测的速度和准确性。准确且迅速地发现行人至关重要,以缩短响应时间。行人检测带来了巨大的挑战。路上行人可以穿着任何服装、外貌或姿势,且因恶劣天气或阻塞而可能隐形,见1011121314。此外,行人很可能自己不遵守规则,人性无法控制,因此最好的做法是为车辆配备智能,以应对错误行为并避免死亡。本研究的完整流程及硬件行人检测实现背后的动机可从下图1轻松理解,图1解释了行人检测的必要性、其多个应用领域、所面临的挑战,以及如何在FPGA上实现以利用这些优势。

figure-introduction-1
图1:行人检测。行人检测的需求、行人检测的关键应用领域、行人检测面临的挑战,以及在FPGA板上实施行人检测流程。 请点击此处查看该图的放大版本。

为了识别路上的行人,存在许多算法。这一总体任务主要分为两个子任务:第一步从输入图像中提取特征,只保留重要且传递相关信息的特征,忽略冗余特征。为了有效识别图像中的人类或行人,这些特征必须表明场景中存在人形,这一点至关重要。13,14。提取后,特征需要发送到分类器,以判断所识别特征是否对应人类。因此,该算法需要进行特征提取和描述阶段,随后进行分类步骤以确定输入场景中的行人存在。为此目的有多种算法可用。然而,迄今为止最广泛接受的行人检测方法是将定向梯度直方图(HoG)与支持向量机(SVM)分类器12131415结合。存在许多软件进步的例子,但最终目标是将实现移植到兼容的硬件平台,然后将其集成到应用系统中以实现实时使用。因此,目前的重点是硬件实现。因此,可以说有必要开发合适的行人检测系统的硬件实现,使配备相应硬件的摄像头能够部署在车辆上,识别道路上的行人。在考虑适合此类实现的硬件时,最常用的选项之一是现场可编程门阵列(FPGA),因其诸多优点,包括缩短设计时间、可扩展性、易于修改、可重构性以及更低的能耗和功耗 15,16,17,18,19,20,21,22岁。

FPGA板一直在不断发展,如今被广泛应用于复杂、先进的计算机视觉应用,涵盖从基础图像处理到物体检测、增强现实和深度学习等领域。目前,几款高性能FPGA板具备卓越的架构能力,以适应这些复杂应用所需的大量处理。如果自动驾驶车辆的先进功能,如行人检测,能够在这些硬件平台上实现,这些平台将非常有助于快速原型开发以分析性能,优化后,实现的算法可以转移到实际集成电路中集成。

十多年来,基于HoG和SVM方法在不同FPGA平台上实现行人检测的成果,已有大量文献发表。表1总结了2015年至2025年间该领域的文章,时间为15,16,17,18,19,20,21,22,23,24,重点关注关键因素,如图像分辨率、吞吐量或帧率(FPS)、分类器类型,以及关键亮点或贡献纸张。

参考文献FPGA平台图像分辨率分类器主要亮点/贡献
15赛灵思Zynq640×480阿达增强实时FPGA实现;资源高效;使用二分化进行优化;侦测准确率很高。
16Terasic的DE1-SOC板640×480特别空间管理高性能HOG抽取器;集成SVM;单一尺度检测;低延迟流水线。
17阿尔特拉 DE2-115640×480阿达增强从多个视角评估绩效;HOG+AdaBoost的FPGA实现;实时行人检测。
18英特尔 Stratix V640×480特别空间管理多尺度行人检测;对FPGA友好的HOG+SVM流水线;强调了准确性与硬件效率之间的权衡。
19Zynq UltraScale+ MPSoC3840×2160特别空间管理实时超高清处理;流水线HOG+SVM;SoC FPGA实现;不动点优化;可扩展架构。
20未具体说明未具体说明特别空间管理实现>95%的侦测准确率;实时FPGA实现;利用并行性;详细的HOG+SVM步行检测FPGA设计。
21Zync 7000 FPGA1920×1080年特别空间管理HOG+SVM 的高吞吐量流架构;支持高清分辨率;高效的FPGA加速流水线。
22Ultra96(第一代)240×320特别空间管理利用HLS实现FPGA;检测红灯;计算891个区域的概率;延迟范围为153,838到19个周期。
23赛灵思Zynq-7000 FPGA640×480HOG + 战略定位器在FPGA上使用HOG-SVM实现行人检测,实现实时性能且相较CPU处理更低功耗。演示了适用于嵌入式视觉应用的优化特征提取流水线。
24赛灵思Virtex-6 FPGA640×480定点物体探测器(类似Haar特征)提出利用定点运算实现高通量FPGA物体检测加速,降低计算成本同时保持准确性。显示出相比CPU实现,速度提升了15×,且硬件资源利用效率高。

表1:基于FPGA行人检测的研究文献综述(2015–2025年)。

表1总结了行人检测领域已有大量文献,硬件实现是研究人员关注的领域。同样显而易见的是,存在先进的深度学习和机器学习技术,如基于卷积神经网络(CNN)的探测器如YOLO、基于变压器架构等,用于行人检测任务。它们甚至在准确性上优于传统HoG算法,但考虑到硬件实现,高级算法导致资源利用率巨大23,24 由于算法的复杂性,这也可能影响其他性能参数,同时观察到由于复杂度增加,传统HoG算法的速度略有提升2425岁。研究还发现,在硬件24,26上实现高级技术时,功耗更高。因此,本文实现的工作目标是在FPGA硬件上利用传统的HoG和SVM框架进行行人检测,并在实时嵌入时实现有利的精度、速度、资源和功耗权衡。从表1可以清楚看出,当分析基于HoG和SVM的工作时,可以观察到有限的出版物利用了新推出的基于Zynq UltraScale+ MPSoC(多处理器系统芯片)的FPGA开发板27来探索这些板的能力,因为从架构角度来看,这些板块已经不断演进。 并且在高端实时计算机视觉应用实现方面具有巨大潜力。目前已有少数文献在FPGA板上实时实现了整个行人检测系统。然而,他们更注重高效实施或改进中间任务。此外,大多数实现基于通过硬件描述语言在FPGA板上实现整个系统。很少有人利用高阶综合(HLS)工具的优势来加快设计周期。本文演示了在专用于自动驾驶应用的FPGA板上设计和实现实时行人检测的过程。论文利用HoG和SVM框架,用于对静态图像、视频或真实摄像头输入进行行人检测。所使用的硬件是一块最前沿且最近发布的FPGA板Ultra96 v2,这是一种先进的FPGA架构,是计算机视觉、图像处理、机器学习、边缘计算等领域的强大平台。Ultra96 v2 是一款开发板,搭载基于 Arm 的 AMD Xilinx Zynq UltraScale+ MPSoC27。该板包括处理系统(PS)段,由基于ARM的CPU核心组成,负责管理项目的软件部分,以及可编程逻辑(PL)段,支持可定制的硬件加速202122。这些组件共同增强了混合系统的功能,其中 PS 部分管理控制和与外部元件的交互,而 PL 部分负责实际的处理逻辑。

Protocol

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

本研究采用的实现过程基于FPGA板上HoG + SVM的行人检测,利用高层次综合的优势,如下 图2 所示。

figure-protocol-1
图2:FPGA板上行人检测实现的设计流程。第一阶段:在HLS工具上使用HoG+SVM的行人检测算法并生成IP块。第二阶段:使用HoG+SVM进行实际FPGA实现和生成位文件的行人检测算法。第三阶段:用生成的位文件对电路板进行编程。 请点击此处查看该图的放大版本。

1. 利用 HoG 和 SVM 在 HLS 工具上进行行人检测

  1. 根据下载时的系统属性,下载Python集成开发环境(IDE)。
    注意:本作品中使用了Python 3.10版本。
  2. 执行一个Python脚本,使用HoG算法和SVM分类器运行训练模型。脚本开始时,从数据集中加载正样本和负样本。
    注意:使用INRIA数据集11
  3. 提取 HoG 特征,窗口大小为 64 x 128。
  4. 将INRIA数据集中的训练和测试数据按80/20的比例拆分,并随机洗牌以保证可重复性。
    注意:数据集在拆分数据前使用Python函数随机洗牌。为了确保可重复性,使每次代码中固定种子值时都能进行相同的拆分。
  5. 使用线性核的C支持向量分类(SVC)SVM进行训练。
  6. 提取权重矢量和偏差。
  7. 将SVM权重和偏置以固定点Q8.8格式保存用于FPGA实现。
    注意:转换通过将每个浮点值的原始性缩放为256倍(28),并将结果转换为整数来完成。
  8. 通过另一个Python脚本测试训练好的模型,调整正则化参数C,直到准确率超过95%。
    注意:优化正则化参数为:C = 0.05。
  9. 打开 HLS 工具,创建一个新项目,选中零件号为 xczu3eg-sbva484-1-e。
  10. 在高级合成工具上使用像C++这样的高级语言编写行人检测代码。
  11. 在代码中,编写三种不同的 C++ 脚本:一种用于 HoG 特征描述符和 SVM 分类器,另一种用于测试平台输入测试图像并保存输出图像,第三种用于声明代码中使用参数的头文件。
  12. 在HoG特征计算代码中,将图像调整为640 x 480,并应用窗口大小为64 x 128的滑动窗口架构。对于每个窗口,计算每个重叠的8 x 8方块的梯度大小和方向。
    注意:通过滑动窗口的概念扫描整个图像非常重要,这样图像的每个区域都被覆盖,并识别出各种大小的行人。
  13. 在同一代码的另一部分,针对HoG特征描述符,将计算出的梯度传递给SVM分类器。编写代码将特征与分类器权重匹配,并与阈值进行比较,以判断检测到的特征是否属于人类。
  14. 点击 HLS 工具中的 “运行 C 模拟 ”,借助测试台模拟代码,检查代码的功能正确性。
  15. 向代码提供不同的输入图像,并与检测到的行人进行输出图像的核对。
  16. 点击“ 运行 C 综合 ”,将代码合成,将代码映射到工具的硬件语言,并生成时序和利用率报告。
    注意:该工具会自动打开HLS综合报告。本报告展示了在所选FPGA平台上实现编码任务所需的时钟频率估计,并提供了所利用资源的估计。这些报告的数值仅为估计值,实际参数仅在FPGA板上实现后计算。
  17. 点击 “导出RTL ”以导出HoG行人检测算法的知识产权(IP)块。
    注意:该知识产权将在后续实施阶段使用。

2. FPGA板的编程

  1. 打开FPGA编程工具,创建一个新项目。选择零件编号为 xczu3eg-sbva484-1-e ,并创建新的模块设计。
    注意:此框图旨在建立 PS 与 PL 部分在 FPGA 板上的集成。所使用的通信协议是高级可扩展接口(AXI)协议。
  2. 在工具中搜索 IP目录 ,找到后打开它。
  3. 通过在步骤1.17中添加导出的RTL IP路径来创建一个用户仓库。
  4. 新的块设计 窗口中,右键点击并选择 添加 IP。所有IP都会被看到,包括工具提供的IP以及用户添加的仓库。
  5. 从仓库添加 Zync Ultrascale PS模块。
    注意:该模块反映了系统的PS部分,负责生成所需的时钟,同时还包含主端口和从端口,通过AXI互连模块连接到导入的HoG IP,该模块运行在AXI协议基础上。
  6. 增加8个 HoG IP,因为系统将同时处理8个窗口,以利用FPGA板子提供的并行优势。
  7. 添加一个 处理器系统复位 块,同时控制图中每个模块的时钟和复位电源。
  8. 添加两个 axi_smart连接 块,用于连接HoG IP和Zync PS模块。完整的连接方块图如 图3所示。
    注意:如 图3所示,所有需要添加到设计中的方块都已清晰显示。 图3 是从工具中截取的,显示了每个区块的内部端口以及不同区块端口之间的互连。该模块是主要设计,负责建立 FPGA 板子中 PS 与 PL 部分之间的接口。
  9. 完成图 3所示连接后,点击 “设计验证”。
    注意:验证基本上是检查缺失或断裂连接,这可能导致后续阶段出现问题。
  10. 点击合成,然后在框图验证成功后,在 tool 实现设计
    注意:Synthesis 会将设计的框图映射到FPGA板上。此步骤将报告任何可能表明设计无法在硬件上实现的违规。
  11. 该工具还将生成与时序、资源利用率和功耗相关的报告。仔细检查报告,检查是否有时序违规,并分析设计系统的性能。
  12. 点击 生成比特流文件 ,生成编程FPGA板所需的.bit文件。

figure-protocol-2
图3:使用HoG + SVM导入IP进行行人检测的方框图。请点击此处查看该图的更大版本。

3. FPGA板上的最终实现

  1. 买FPGA主板,把带有正确映像文件的SD卡插入主板插槽。
  2. 把主板也连接到电脑上。
  3. 将FPGA板以SD卡模式启动,以启用Python编程。
  4. 连接 Wi-Fi 后,访问主板上的 Jupyter 平台。
  5. 把网络摄像头接到主板上。
  6. 写一个 Python 代码导入生成的比特文件,并执行访问相机图像的任务。
  7. 在代码中,编写脚本,使图像通过 PS 部分写入 FPGA 板块内存,然后传递给 PL 部分进行处理。
    注意:对应HoG IP的PL部分通过这些内存位置访问图像像素并处理,并输出分数。
  8. 用同一个Python脚本编写相应代码,读取处理后的图像并在电脑屏幕上显示。
    注:这完成了整个设计,系统现已准备好在实际应用中部署。本研究中使用的所有代码均作为补充编码文件上传(补充文件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])。

Results

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

HLS上的行人检测实现
图4 展示了利用HoG + SVM进行行人检测的HLS工具模拟结果。输入的行人图像作为测试输入代码,输出显示检测到的行人图像。图片中有两个部分。第一个检测显示多个边界框围绕同一行人反复出现,而在第二张图中,重叠的框被移除并被抑制,只剩下主检测框。

figure-results-1
图4:HLS工具的模拟结果。(A,B两个不同的输入图像以及与检测到的行人的图像。请点击此处查看该图的放大版本。

HLS工具还提供时间和资源利用的综合报告。时序总结突出了设计所需的时间周期,并提供了周期数中的最大和最小延迟值。这些信息有助于估算设计执行所需的时间以及实际硬件实现时应使用多少时钟频率。下 表2 显示了HLS合成后的时序报告,明确显示目标时钟周期为6纳秒,设计使用了5.25纳秒,小于目标时间,因此时间周期可为6纳秒或更高,但不能低于5纳秒。

时间总结
时钟目标估算
6.00纳秒5.250纳秒
利用情况摘要
总计 / 可用利用率
BRAM18K22 / 4325%
DSP48E13 / 3603%
FF5611/ 1411203%
低音符9904/ 7056014%
乌拉姆00

表2:利用HoG-SVM进行行人检测的HLS工具估计时机和资源利用报告。

表2 还展示了利用率报告。它显示了根据所选目标板块,重要板载FPGA资源的利用率。对于这种行人检测设计,利用率报告显示,该设计占用了14%的查找表(LUT)、3%的触发器(FF)、3%的数字信号处理(DSP)和5%的块随机存取存储器(BRAM)。这些估算并非确切的利用率报告,但实际报告与这些估算值相近。这些仅是HLS工具能计算的估计值。实际实施通常与这些估算有很大不同。

硬件编程的实际实现
代码映射到IP中,导入FPGA编程工具,并在实际FPGA硬件上实现设计后,还会生成多个报告。第一个是时序总结,显示设计所用时钟频率是否足够。如果所有时序约束都满足且无违规,则设计可以继续进行。下 表3 展示了该工具生成的时序总结。如表所示,时间总结显示了最严重的负松弛,即4.073纳秒。由于该值为正,说明仍有剩余时间。负值表示FPGA完成任务所需时间更长,且时钟运行较快。因为在这种情况下没有负值,这表明时序约束已满足。

设计时序总结
设置脉冲宽度
最差负面松弛 4.073 ns最差保持松弛 0.010 纳秒最差脉冲宽度 3.500 纳秒

表3:FPGA板上行人检测的实际时序总结。

此外,工具还显示资源利用报告,即根据所选FPGA板块对板上资源的实际利用情况。本例中,选定的主板是基于Zynq UltraScale+ MPSoC(多处理器系统芯片)的FPGA开发板27。下 表4 显示了资源利用情况, 图5 展示了资源利用率的图示表示。

利用率摘要显示了基于8个HoG IPS并行使用的实际机载资源消耗,而HLS综合报告的估计值仅针对单个HoG IP。但即使使用如此频繁,每个资源的资源利用率仍低于50%。 表4 清晰显示了各资源的利用率及其利用百分比, 图5中以图示表示。

资源利用情况可得利用率
低音符405367056057.45%
卢特拉姆73042880025.36%
FF3334214112023.63%
布拉姆6821631.48%
数字信号处理12836035.56%
BFG21961.02%

表4:FPGA板上行人检测的实际利用报告。

figure-results-2
图5:实际实现后FPGA板上行人检测的资源利用情况。查找表(LUT):57%,LUTRAM:25%,触发器(FF):24%,块内存(BRAM):31%,数字信号处理器(DSP):36%,缓冲区:1%。 请点击此处查看该图的放大版本。

第三份报告涉及电路板对设计能耗的功率估算。下 图6 显示了功耗报告,显示片上总功耗为2.435瓦。还显示了结温度以及每个重要网和元件的功耗。功率测量并未显示出令人担忧的功耗,因此该设计可被视为节能。

figure-results-3
图6:实际实现后FPGA板上行人检测的功耗估计。 工具生成的功率报告显示总消耗功率为2.435瓦,并显示FPGA板上各资源的功率分布情况。 请点击此处查看该图的放大版本。

还进行了另一项分析,以理解在创建的方块图中使用8个HoG IP而非单个HoG IP或超过8个的优势,如 图3所示。硬件相关的性能指标同时计算了单一HoG IP和8个HoG IP并行运行。下 表5 展示了对比情况。

性能指标1 IP8个知识产权
时间 (ns)5.312~5.25
频率(MHz)188150
功率(W)1.92.43
LUTs499840536
FF / 寄存器4,03133,342
数字信号处理16128
布拉姆8.568
第一人称射击~10–1183

表5:单一与多个HoG IP的性能指标比较。

表5 明确指出,当资源考虑如LUT、FF、DSP和BRAM时,单一HoG IP和8个HoG IP时,资源使用量几乎增加了8倍,扩展是线性的。这显然是预料之中的,因为更多的知识产权将导致更多资源的消耗。此外,如果观察到该频率,最大频率也会从188 MHz略微降为150 MHz 20%。随着更多区块产生更多连接,路径变长,关键路径增加,这也是预期中的。但有利因素如帧每秒(FPS)从10提升到83,这在FPS中因引入并行性概念(8个HoG IP)而实现了非线性缩放。此外,功率范围从1.9瓦到2.4瓦,显示出通过管道技术提升了能效。因此,本分析明确表明,引入8个HoG IP对设计有益,超过8个扩展可能导致资源过度消耗;因此,超过8个的区块数量不被视为有利。

FPGA实现后的行人检测结果
最后,整个系统集成在FPGA板上,生成比特流文件,然后通过具备Python可编程功能的SD卡在板上编程。一旦用SD卡启动电路板,就可以访问jupyter接口,并在平台上编写和运行Python代码。Python 代码会在不同输入图像上运行并测试行人检测。几张图像的结果如下图7所示。这些图片来自INRIA数据集,以及从开放源代码在线资源中随机获取的行人图像26,27

figure-results-4
图7:通过FPGA板对静态图像的行人检测结果。 测试图像包括来自INRIA数据集的图像,这些图片可在谷歌上公开,用于测试印度拥挤街道上的检测准确率。 请点击此处查看该图的放大版本。

系统还通过网络摄像头实时捕捉画面并检测画面中的行人,同时测试已录制的行人视频输入。结果如 图8图9所示。 图8 展示了网络摄像头捕捉的一组示例帧及每帧行人检测结果, 图9 显示了输入视频中行人检测结果。

figure-results-5
图8:通过FPGA板实时捕捉到的摄像头在帧上的行人检测结果。通过网络摄像头720 P实时拍摄视频,并演示对行人的实时检测。模糊的图像是因为从实时视频中截取快照时产生的。 请点击此处查看该图的放大版本。

figure-results-6
图9:作为FPGA板输入的视频中的行人检测结果。这些视频是从开源链接中提取的。 请点击此处查看该图的放大版本。

性能指标估计
为了计算上述设计的效率和分析性能,必须计算对评估性能有用的性能指标。检测算法效率的性能指标基本上依赖于真阳性(TP)、真阴性(TN)、假阳性(FP)和假阴性(FN)的数值。根据这些数值,可以根据下方公式计算精度、召回率、F1分数、每张图像的假阳性和准确性等性能指标。观察到大多数研究论文报告其检测性能是通过准确率参数来实现的。但有人观察到,涉及TN的准确性计算可能是一个误导参数,因为TN的数值无法真正正确计算,因为它涉及在一张没有行人的图像中查找所有检测窗口的计数,而算法也报告为无检测。这个数字通常非常大,因为图像中检测窗口的总数很大,且每幅图像的背景区域通常对应没有行人的区域。通过仔细观察方程[1]–[5]中显示的准确性公式,可以认识到由于TN值相较于TP+FP+FN相当高,准确率参数通常具有较高的值。要真正评估性能,最好报告不依赖TN、更准确的精度、召回率和F1分数等指标。

figure-results-7 [1]

figure-results-8 [2]

figure-results-9 [3]

figure-results-10 [4]

figure-results-11 [5]

为了确定本文TP、TN和FN的数值,对静态图像进行了大量图像的重复实验。从每张图像的结果中,计算出真阳性(即正确检测到的行人数量)、假阳性(错误检测的行人数量)和假阴性(实际未检测到的行人数量)。以下数值是在实验完成后报告的,见下 表6

绩效指标价值
TP143
FP39
FN19
普雷西森0.786 (78.6%)
召回0.883 (88.3%)
F1 积分0.831 (83.1%)
FPPI0.867

表6:基于FPGA的行人检测算法的性能指标。

因此,上表6描述了在硬件平台上实现算法时,行人检测算法通过各种性能指标、精度、召回率、F1分数和FPPI的准确性。

与现有基于FPGA的HoG实现的性能比较
最后,已完成的工作可以与以往文献进行比较,以说明该研究的重大贡献。该比较见下 表71516172124。进行比较的文章均基于FPGA平台实现的行人检测应用,且所有检测算法均相同,即HoG与分类器结合,分类器可能是Adaboost分类器或SVM。每个版本的图像尺寸也相同(640×480)。比较基于时钟频率等参数,这些参数会影响速度、每秒帧数、功耗以及LUT、DSP、内存、片和寄存器的资源利用情况。为了实现公平比较,所考虑比较的研究论文图像分辨率相似,而为规范资源比较,每次资源利用率均通过将消耗的资源数除以根据所用FPGA板块的可用资源总数来规范化。

参考文献图像尺寸FPGA板时钟频率帧率(FPS)动力像素/时钟LUT(%)DSP48(%)BRAM /内存位(%)寄存器/全画率(%)
15640×480赛灵思Zynq82.2 MHz40-14020-
24640×480Virtex 6150 MHz1019胜395322-
16640×480气旋五号162 MHz5269 W0.99218610021
17640×480阿尔特拉 DE2-11550 MHz1293.6 W-73-7260
21640×480Zync 7000100 MHz2401.6 W-133110
这项工作640 X 480Ultra 96 v2150 MHz832.435W0.063257353124

表7:FPGA上行人检测实现参数与性能比较

如上 表7 所示,当将本研究的实现与之前的工作进行比较时,可以发现在速度方面有显著提升。FPGA板能够以150 MHz的时钟频率运行,这意味着完成整个任务的时间周期小于6纳秒。尽管一些先前研究报告了更高的帧率,但通过仔细观察可以分析,这一优势是以更高的功耗和几乎完全利用某些资源为代价的。如果考虑功耗,则本研究报告的功耗也偏低,资源利用率表明每个资源的消耗略高于某些实现,但等于或低于50%(57%为LUT,35%为DSP,31%),这表明该设计中仍有大量空间实现更多任务。总体而言,本文所实施的工作在性能、功耗和资源利用之间实现了平衡的权衡。此外,本研究展示了通过多个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。请点击这里下载此文件。

Discussion

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

本研究有效实现了基于Zynq UltraScale+ MPSoC开发板24的先进FPGA硬件上HoG + SVM算法的实时行人检测系统。结果表明,传统的人类检测11算法准确率接近95%,且仅利用了一半的FPGA内置资源(LUT、FF、BRAM、DSP),因此有很大能力包含更多处理以完成不同任务。当分析整个实施方法时,可以发现涉及多个关键步骤。一个重要步骤是用合适的数据集训练SVM模型181924,以便有效检测行人,从而提取权重并用于FPGA编程。训练代码会显示性能准确率,检测阈值需要通过正则化参数仔细调整,以达到接近95%的准确率。训练中选定的参数是自定义的HoG描述符,窗口大小为64 x 128,块大小为16 x 16,单元格大小为8 x 8,且选择的箱数为9。目前,训练已在INRIA数据集11上进行,共获得2416张正片图像和1218张负片图像。增强包括图像的旋转,以生成水平镜像版本。其他重要内容,如在可视度差或尺度变化条件下的模型评估,将在未来工作中得到改进,以确保可重复性和鲁棒性。用于训练的数据集必须包含行人各种姿势的图像,并且必须包含没有行人的图像18,19

另一个关键步骤是绘制整个系统的方块图,使FPGA板上的PS部分能够与PL部分通信。在此步骤中,需要确保每个模块的端口参数化正确,并且与其他模块正确连接。该工具还提供自动路由并提供建议以辅助设计者。一个非常关键的步骤是完成方块图后进行地址分配。导入的HoG IP需要根据其深度分配地址,且这两个IP的地址不能完全相同。这些地址是SD卡上python代码中必不可少的,这将帮助FPGA板的PS部分理解PL中必须访问的地址位置以读写数据。因此,最具挑战性的步骤是Python平台上的界面开发,允许用户将输入的图像/视频/实时摄像头画面输入到FPGA,并在接收FPGA处理后的图像后,将输出图像与检测到的行人一起显示。Python 代码需要包含各种调试消息,以便设计者查看中间结果,并在失败时进行诊断和纠正。这项研究投入了大量时间来建立PS与PL部分之间的适当接口。该接口的 Python 脚本经过多次迭代后能够访问 HoG IP 的数据,并且包含多个语句以显示中间结果,对排查和纠正错误非常有帮助。

该方法的一个局限是利用 Python 部分建立 PS 与 PL 部分之间的接口。虽然Python平台大幅缩短了设计时间,但也带来了额外的开销,影响了实时性能。硬件加速的行人检测系统报告吞吐量为83 FPS,但由于延迟或实时摄像头测试时因PS与PL部分间数据传输导致延迟而导致系统整体性能失灵。未来展望有望开发出一个完全的硬件加速系统,无需依赖软件。

尽管如上所述存在局限性,但研究贡献显著,因为开发的系统可以无缝适应静态图像、实时画面或视频输入中的行人检测。这三种方法在Jupyter平台上只需对Python代码进行小幅修改,展示了系统对各种场景的快速适应能力。结果表明,在先进FPGA架构上的实现带来了令人鼓舞的效果,因为性能参数得到了高度优化,从而获得了良好且可接受的数值。实现的时钟频率与之前文献1415162023相当,表明速度未受影响,而最小功耗表明无发热问题。此外,资源利用率显示所有资源的利用率均低于50%,显示出进一步设计改进的巨大潜力。

开发的系统适用于任何需要检测人类任务的应用,并可适配为实时应用。未来工作可能会集中于消除上述限制,通过开发整个系统,要么完全开发PL部分,使FPGA逻辑能够自行读取输入图像并显示处理后的输出图像,因为板上资源仍有近50%可用。此外,如果需要利用 PS 和 PL 的集成,则可以通过软件开发套件(SDK)工具进行接口开发。其他可能的扩展包括识别在明显恶劣天气或低能见度时的行人,或识别隐藏在其他物体后面的遮蔽行人,这需要对算法进行修改。在这种情况下,唯一需要的修改是根据所选挑战进行适当训练后更换SVM训练的负重,系统其余部分无需其他改装。因此,该系统非常适合轻松适应其他具有挑战性的场景。另一个未来展望是将更多功能整合进系统,利用先进的FPGA板打造一款完全自动驾驶的车辆。

Disclosures

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

作者声明他们没有利益冲突。

Materials

List of materials used in this article
NameCompanyCatalog NumberComments
蟒蛇蟒蛇版本 3.10
Ultra 96 V2 FPGA板卡及nbsp;Xilinx 2018年推出用于实现行人检测算法的硬件实现平台
Vivado AMD2019.2FPGA编程工具,用于为Ultra 96 v2 FPGA板编程,采用行人检测算法;
活泼 HLS AMD2019.2用于对论文中行人检测代码进行高层编程的高级综合工具,用于导出知识产权(IP)

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