基于激光雷达的现场可编程门阵列可驱动区域分割网络设计

摘要

随着自动驾驶系统的持续发展,可驱动区域分割问题已成为自动驾驶汽车不可或缺的一部分。可驱动区域分割技术为自动驾驶汽车技术引入了许多功能,例如提供关于周围环境的信息、辅助决策机制、选择适当的驾驶路径以及避免障碍物。除此之外,准确的可驱动区域分割对于提升自动驾驶导航和避免障碍物至关重要。为在环境信息的基础上有效识别可驱动区域,本研究设计了一个名为 DASNet 的可驱动区域分割网络。所提出的 DASNet 利用 depthwise separable convolution 作为特征提取的基础/平台,使特征能够被高效提取,从而降低计算负荷和所需网络参数。除此之外,所提出的 DASNet 在保持高精度的同时提升了网络推理速度。为了在不损失重要信息的前提下降低点云密度,我们在数据预处理过程中对笛卡尔坐标和球坐标空间中的点云进行采样与融合。融合后的点云作为 DASNet 的输入,输出为可驱动区域图。最后,将所提出的 DASNet 部署到现场可编程门阵列,实现实时可驱动区域检测。本研究使用公开的 KITTI 数据集和所提出的树林环境数据集进行实验评估。通过在两个不同数据集上评估模型,我们旨在展示其在三种类型的城市道路场景和更为密集树林环境下的能力。实验结果表明,DASNet 在 KITTI 数据集上取得了 0.9449 的 F1-score,并实现了 9.32 ms 的推理速度。此外,所提出的 DASNet 已应用于在树林环境中运行的自动驾驶车辆,实现了 98.64% 的 F1-score。

作者

Xue-Qian Lin 国立成功大学计算机科学与信息工程系, 台南, 台湾 ORCID: 0009-0000-6020-162X

Jyun-Yu Jhang 国立台中科技大学计算机科学与信息工程系, 台中, 台湾 ORCID: 0000-0001-6179-9125

Cheng-Jian Lin 国立勤益科技大學計算機科學與資訊工程系, 台中, 台湾 ORCID: 0000-0002-8709-2715

Sheng-Fu Liang 国立成功大学计算机科学与信息工程系, 台南, 台湾 ORCID: 0000-0002-6347-5017

出版信息

期刊: IEEE Access 年份: 2025 卷: 13 页码: 130535-130548 DOI: 10.1109/ACCESS.2025.3591974 文章编号: 11091303 ISSN: 电子期刊号: 2169-3536

指标

总下载量: 79


关键词

IEEE 关键词: 点云压缩, 可编程门阵列, 道路, 激光雷达, 特征提取, 卷积, 摄像头, 实时系统, 逻辑门, 深度学习

索引词条: Light Detection And Ranging, Drivable Area Segmentation, Point Cloud, Coordination Sphere, Autonomous Vehicles, Computational Load, Inference Speed, Urban Scenes, KITTI Dataset, Depthwise Separable Convolution, Coordinate System, Power Consumption, Feature Maps, Graphics Processing Unit, Convolution Operation, Semantic Segmentation, Segmentation Task, Output Feature Map, Spherical Coordinate System, Point Cloud Data, Cylindrical Coordinate System, Convolution Module, Parameter Count, Traditional Convolution, Width Of The Feature Map, Hardware Accelerators, Unstructured Environments, Dice Loss

作者关键词: Drivable area segmentation, deep learning network, depthwise separable convolution, field programmable gate array, coordinate system

未定义

第一节. 引言

自主驾驶系统(ADSs)的快速发展正在推动汽车行业的技术革命。根据美国国家公路交通安全管理局(NHTSA)的信息 1,美国高达94%的交通事故是由人为错误导致的。许多研究集中在ADS的发展,以降低人为错误的频率,从而减少交通事故的发生;然而,实现安全高效的ADS仍面临诸多挑战。自主驾驶任务包含两个子任务: (1) 目标检测/跟踪; (2) 可行驶区域分割/规划。与目标检测技术相比,可行驶区域分割技术更为复杂。该技术为ADS提供丰富的环境信息,可用于规划安全行驶路径,从而避免与障碍物碰撞。传感器对于获取环绕自主车辆的环境信息至关重要。大多数ADS通过使用来自摄像头的二维(2D)图像或来自激光雷达(LiDAR)的点云数据来分析环境信息。 如Chan等人 2 的研究,已使用摄像头图像模拟人类视觉系统。通过对摄像头捕获的图像进行分析,使用算法提取环境信息。 然而,摄像头易受各种因素(例如雾、雨和光照)的干扰,导致在某些条件下感知结果相对不可靠。相比之下,Xue等人 3 提出了基于LiDAR的可行驶区域分割算法。与包含色彩和纹理信息的二维图像不同,LiDAR生成的点云表示球坐标系中的位置。通过计算光速与光反射返回所需时间的比值,可以确定物体与LiDAR传感器之间的距离。 在恶劣天气条件下,LiDAR提供关键信息;但它也带来了需要处理大量点云数据的挑战。然而,一个定义良好的点云坐标系统能够有效采样点云,从而提升计算效率。因此,点云坐标系统已成为学者们频繁讨论的话题。

最常见的点云坐标系统包括笛卡尔坐标系、圆柱坐标系和球坐标系。Bia 等人 4 使用笛卡尔坐标系,作为一种常用的描述环境中物体位置的系统,用于点云分布。Zhu 等人 5 采用圆柱坐标系记录点云坐标,这可以模拟全景摄像头,捕捉围绕自动驾驶车辆的环境深度相关信息。最后,Li 等人 6 构造了包含距离信息的图像,用于对象检测、跟踪和识别。由于点云已经从 LiDAR 映射到球坐标系,计算过程中的坐标变换可以最小化,从而提高处理效率。

数据采集是自动驾驶系统(ADS)的起点。实现智能驾驶功能需要多个阶段。因此,许多研究人员已开始基于其领域知识开发道路检测方法。确定自动驾驶车辆可行驶区域的检测过程可分为四个步骤:预处理、特征提取、检测和后处理。Hata 等人 7 使用最小截尾平方法处理边缘检测中的不连续遮挡,然后采用蒙特卡罗方法识别道路边缘。Kumar 等人 8 将高程、强度和脉冲宽度信息转换为二维栅格图像,再输入研究者提出的蛇形模型以提取道路边界和可行驶区域。该蛇形模型随后在乡村、城市和主干道场景中进行了测试,以验证其稳定性。Azizi 等人 9 使用逆距离加权法对点云进行插值,并通过数字表面模型、数字地形模型和数字非地形模型构建道路层。最后,该研究利用支持向量机将道路层信息划分为道路和非道路类别。虽然这些方法在可行驶区域任务中取得了稳健的评估结果,但在复杂且具有挑战性的道路条件下仍需要专家设计的特征提取方法。

与基于领域知识的传统方法不同,深度学习提供了更优的特征提取能力,使其在各个领域得到广泛应用。深度学习技术的快速发展促成了众多语义分割模型的出现(例如,全卷积网络(FCN)10、U-Net 11、用于语义像素级分割的深度全卷积神经网络架构(SegNet)12、反卷积网络(DeConvNet)13、DeepLab 14、多路径细化网络(RefineNet)15、金字塔场景解析网络(PSPNet)16和门控形状卷积神经网络(GSCNN)17)用于执行图像分割任务。虽然这些技术适用于可行驶区域分割任务,但许多研究者提出了多种方法来提升自动驾驶系统(ADS)的性能。在 Milioto 等人18中,点云被用作 RangeNet++ 的输入来执行语义分割任务;实验结果表明 RangeNet++ 的准确率高于传统机器学习方法。Aksoy 等人19设计了一种深度编码-解码网络(SalsaNet),用于检测环境中的车辆和道路,使用三维(3D)点云作为模型输入数据,以实现令人满意的分割性能。SalsaNet 模型在 Karlsruhe Institute of Technology 和 Toyota Technological Institute at Chicago(KITTI)公开数据集上进行评估,以确定其有效执行语义分割任务的能力。He 等人20开发了一个用于户外 LiDAR 点云的地面分割框架(SectorGSnet),用于执行户外环境中的地面分割任务。SectorGSnet 采用深度可分离卷积以减少模型参数数量,并使用卷积块注意模块增强特征提取能力,从而实现性能与计算复杂度之间的优秀平衡。因此,深度学习已成为实现自动驾驶系统高效准确结果的不可或缺的核心技术。

深度学习因网络参数众多和计算时间较长而受到批评。然而,通过减少网络参数数量或将模型实现于现场可编程门阵列(FPGA)硬件平台进行高速计算,可以实现优化。Xu 等人 21 提出了一个名为局部二值卷积神经网络(LBCNet)的模型架构。在 LBCNet 中,卷积运算仅使用三种权重值(−1、0 和 1),从而显著降低了计算时间和参数数量。Howard 等人 22 设计了一种名为 MobileNet 的轻量级网络,用于在嵌入式设备上部署神经网络。MobileNet 引入了深度可分离卷积(DWConv)和逐点卷积(PWConv)操作,以减少网络权重并提高计算速度。Lin 等人 23 开发了一种 LBCNet,以最小化计算单元使用的内存访问点数量,并将其实现于 FPGA;与其他最先进的方法相比,该方法将内存使用量降低了 39.41%。Lin 等人 24 提出了一个高性能的 FPGA 加速器,用于深度可分离 CNN。该加速器降低了计算和内存空间需求,从而实现了相对较低的功耗和实时计算。Lyu 等人 25 提出了一个基于 FPGA 的网络 ChipNet,用于可驾驶区域分割;实验结果显示,激光雷达扫描数据可以在 17.59ms 内处理。Baczmanski 等人 26 提出了用于可驾驶区域分割的 MultiTaskV3,并在自动驾驶车辆上验证了该网络。与中央处理单元(CPU)实现相比,基于 FPGA 的平台仅消耗 5 瓦特,并在目标检测中实现了 97% 的平均精度(mAP),在图像分割准确度中实现了 90% 的平均交并比(MIoU)。因此,与 CPU 和 GPU 相比,FPGA 在功耗效率和实时处理方面具有更优的性能,使其特别适用于自动驾驶系统(ADS).

虽然以前的研究在可行行驶区域分割任务中具有较强的软件性能,但它们常常忽视了现实应用中的实际挑战,例如实时处理和功耗限制。本文提出了 DASNet,以在真实森林环境以及 KITTI 公共数据集上实现可行行驶区域分割任务的高效快速完成,基于先前的研究 2728。在 DASNet 中,首先将 LiDAR 获取的点云数据转换为笛卡尔坐标系和球坐标系,并将两者融合,作为 DASNet 网络的输入数据。与传统的点云融合方法不同,我们的方法使模型能够有效捕捉来自笛卡尔和球坐标系的局部和全局特征。DASNet 采用深度可分离卷积作为特征提取的核心,既降低了计算负荷,又减少了参数数量。DASNet 的结果通过后处理算法映射到笛卡尔坐标,用于实际的自动驾驶车辆控制。最后,DASNet 在 FPGA 平台上实现,以达到 ADS 所需的实时性能和低功耗。在实验评估阶段,使用了 KITTI 公共数据集 29 以及我们实验室采集的林地数据集进行测试和评估。为促进透明度和可重复性,所有实现细节已在 GitHub 上公开:https://github.com/Th0rnLin/DASNet. 本研究的具体贡献如下:

  1. 提出用于可行行驶区域分割的 DASNet 网络架构,以为 ADSs 提供道路环境信息。

  2. 通过使用深度可分离卷积优化网络架构,以提升 DASNet 在推理过程中的效率和性能。

  3. 将来自笛卡尔和球坐标系的点云数据融合,以保留关键空间信息,同时最小化采样点数量。

  4. 在 FPGA 上实现 DASNet,以最大化推理速度并满足实际环境需求。

  5. 使用具有挑战性的林地环境来验证所提出的 DASNet 的鲁棒性。

  6. 通过使用 KITTI 公共数据集验证 DASNet 模型,以展示模型的性能和推理速度。

SECTION II. 拟议的驾驶区分割系统

本节介绍所提出的可行驶区域分割系统。图 1 显示了可行驶区域分割系统的架构。LiDAR 主要用于感知周围环境并将信息传输给 NVIDIA® Jetson AGX。AGX 随后对接收到的点云数据进行预处理,并以笛卡尔坐标系和球坐标系呈现。处理后的点云数据随后可提供给 DASNet,并在 FPGA 上实现以执行可行驶区域分割任务。值得注意的是,DASNet 在球视图中生成预测;这些预测随后被传回 AGX 并转换为前视图,以获得更清晰、更方便的观察和验证。本论文的本节分为五个小节,聚焦于以下主题:(1)点云数据在坐标系中的预处理算法,(2)DASNet 网络架构,(3)计算负载和参数量的模型优化分析,(4)可行驶区域分割的转换方法,以及(5)FPGA 硬件实现。

Figure 1

图 1. 驾驶区分割系统架构.

A. 点云数据在坐标系中的预处理算法

在自动驾驶系统(ADS)中,通常使用以下三种坐标系之一:直角坐标系、圆柱坐标系和球面坐标系。 此外,还采用四种图像视角:摄像头视角、鸟瞰视角、圆柱视角和球面视角。 摄像头视角和鸟瞰视角是基于直角坐标系的常见图像视角,使其相对直观易于人类解释。 然而,直角坐标系中的点云数据往往稀疏,这意味着可行驶区域分割系统需要额外的计算资源来处理大量零值数据点。 与直角坐标系相比,球面坐标系可以更准确地表示物体在三维空间中的位置和姿态,从而提升图像中点云的覆盖率并提高分割效率。 直角坐标系更适合表示局部结构,而球面坐标系则捕捉全局空间上下文。 因此,本研究采用两种坐标系,以克服仅使用单一坐标系的局限性,并为模型提供更丰富、更具信息量的空间特征。 在DASNet架构中,直角坐标系和球面坐标系中的点云数据作为输入,为DASNet提供丰富的环境信息。 DASNet的输出是以球面坐标系表示的可行驶区域。

数据预处理的伪代码如算法1所示。通过 LiDAR 获得与周围环境相关的信息,包括物体的三维坐标 (\gamma,\theta,\varphi) 及其反射率 (r),其中 \gamma 表示径向距离,\theta 表示极角,\varphi 表示方位角。随后将这些数据从球坐标系和笛卡尔坐标系转换为物体坐标 (x, y, z),选取方位角范围 [−45°, 45°) 作为关注区域,并按 0.5° 的间隔对方位角进行分组,以覆盖自动驾驶车辆的可行驶区域并具有良好的分辨率。极角划分基于 LiDAR 所使用的 64 个激光角度,得到 64 组。对每组,在组内采样最大值和最小值来代表传感器测得的最远和最近距离。本研究既将 LiDAR 数据投影到球坐标系,也将笛卡尔坐标作为额外特征通道,以增强模型对局部和全局环境特征的感知。通过整合两个坐标系的数据,非结构化点云可转换为 180\times 64\times 14 点云特征图,如图2所示。为解决 LiDAR 在遇到低反射率物体时出现的扫描空隙,本文引入插值方法以提升数据完整性并减少信息损失。

Figure 2

图2. 点云数据预处理流程图: (a) DASNet 的输入数据处理步骤, (b) DASNet 的输出数据处理步骤。

算法1 点云数据预处理

1:

输入: 点云数据 X=\left ({{ \gamma,\theta,\varphi, r }}\right),感兴趣区域角度范围 \left [{{ -R, R }}\right],激光束数量 L

2:

初始化: Y=\emptyset

3:

\left ({{ x,y,z }}\right)\leftarrow 通过方程 (1)、(2) 与 (3)

4:

Y\leftarrow \left ({{ x,y,z,\gamma,\theta,\varphi,r }}\right)

5:

\tilde {Y} \leftarrow 按感兴趣区域角度范围 \left [{{ -R, R }}\right] 和激光束数量 LY 进行分组

6:

\acute {Y} \leftarrow 通过方程 (4) 对 \tilde {Y} 进行降采样

7:

\hat {Y} \leftarrow 通过方程 (5) 对 \acute {Y} 进行插值

8:

输出: \hat {Y}

直角坐标系与球坐标系之间的关系如下:

\begin{align*} \gamma & =\sqrt {x^{2}+y^{2}+z^{2}}. \tag {1}\\ \theta & ={tan}^{-1}\left ({{ \frac {\sqrt {x^{2}+y^{2}}}{z} }}\right). \tag {2}\\ \varphi & ={\tan }^{-1}\left ({{ \frac {y}{x} }}\right). \tag {3}\end{align*}

其中 \gamma 表示原点与红点之间的径向距离;\theta 表示从原点到红点的连线与 z 轴之间的极角;\varphi 表示从原点到红点的连线与 x 轴之间的方位角。

在每组数据中,采样是基于最大值和最小值进行的。公式如下:

\begin{align*} \acute {Y}=\left \{{{\begin{array}{l} \max \left ({{ x }}\right)\!,\min \left ({{ x }}\right)\!,\max \left ({{ y }}\right)\!,\min \left ({{ y }}\right)\!, \\ \max \left ({{ z }}\right)\!,\min \left ({{ z }}\right)\!,\max \left ({{ \gamma }}\right)\!,\min \left ({{ \gamma }}\right)\!, \\ \max \left ({{ \theta }}\right)\!,\min \left ({{ \theta }}\right)\!,\max \left ({{ \varphi }}\right)\!,\min \left ({{ \varphi }}\right)\!, \\ \max \left ({{ r }}\right)\!,\min \left ({{ r }}\right) \\ \end{array}}}\right \}. \tag {4}\end{align*}

在 LiDAR 的点云生成过程中,可能会由于扫描角度限制、激光反射不良以及强光干扰等因素导致数据损失。如果采样的特征图出现数值丢失,则采用插值操作根据光学雷达上下角度的数值来补偿丢失的数值。插值操作公式如下:

\begin{align*} & \!\!\!\hat {Y}_{j}=\begin{cases} \displaystyle \frac {{(\acute {Y}}_{j-1}+\acute {Y}_{j+1})}{2},& \acute {Y}_{j-1}\gt 0~and~\acute {Y}_{j+1}\gt 0 \\ \displaystyle \acute {Y}_{j},& otherwise \end{cases} \\ & \qquad \qquad \qquad \qquad \qquad \qquad \qquad \quad for~j=0, \ldots,L. \tag {5}\end{align*}

B. DASNet 网络架构

本研究的重点之一是针对有限的硬件资源优化网络架构。所提出的 DASNet 包含三个不同的卷积模块:EnConvBlock、DSConvBlock 和 DeConvBlock,图 3 所示。

Figure 3

图 3. DASNet 网络架构。

所提出的 DASNet 的架构详见表 1。预处理后,点云数据首先通过 EnConvBlock 进行维度扩展,随后通过多个 DSConvBlock 进行特征提取,最终由 DeConvBlock 进行维度压缩。值得注意的是,为了提升 DASNet 在资源受限的嵌入式设备上的特征提取能力,我们增加了 DSConvBlock 的数量。这些模块在 FPGA 计算过程中被重用,以优化资源利用率。此外,由于嵌入式系统的内存有限,DASNet 的所有计算均使用 (180, 64) 大小的特征图。硬件实现细节见第 II-E 节。

Figure 4

表 1

这三个卷积模块的描述如下。

1) 编码器卷积块

EnConvBlock 使用 1\times 1 卷积核进行卷积操作。 EnConvBlock 的目的是增加输入特征图的数量,以为后续处理提供更丰富的特征信息。 EnConvBlock 的计算公式如下:

\begin{equation*} F_{k, l,n}^{EnC}=\sum \nolimits _{m} {W_{m,n}^{EnC}\ast X_{k, l,m}}. \tag {6}\end{equation*}

其中 F^{EnC} 表示 EnConvBlock 的输出特征图,W^{EnC} 表示 EnConvBlock 的权重,X 是输入特征图,n 是输出特征图的索引,kl 是输出特征图值的索引,m 是输入特征图的索引,* 是卷积运算符。

2) 下采样卷积块

DSConvBlock 是一种利用深度可分离卷积原理优化的特征提取卷积模块。深度可分离卷积是一种在嵌入式系统中经常使用的卷积操作。该操作将传统卷积拆分为两步:DWConv 和 PWConv。该设计大大降低了计算负荷和处理过程中所需的参数数量。DSConvBlock 的架构如图 4 所示,涉及四个操作:DWConv、PWConv、修正线性单元(ReLU)激活和批归一化。

Figure 5

图 4. DSConvBlock 架构图.

深度卷积(F^{DWC})输出特征图的计算公式如下:

\begin{equation*} F_{k, l,m}^{DWC}=\sum \nolimits _{i,j} {W_{i,j,m}^{DWC}\ast F^{EnC}_{k+i, l+j,m}}. \tag {7}\end{equation*}

其中 W^{DWC} 表示深度卷积的权重;F^{EnC} 是 EnConvBlock 的输出特征图;kl 是输出特征图值的索引;m 是输入特征图的索引;ij 是输入特征图值的索引。点卷积(F^{PWC})输出特征图的计算公式如下:

\begin{equation*} F_{k, l,n}^{PWC}=\sum \nolimits _{m} {W_{m,n}^{PWC}\ast F_{k,l,m}^{DWC}}. \tag {8}\end{equation*}

其中 W^{PWC} 表示点卷积的权重;F^{DWC} 是深度卷积的输出特征图;n 是输出特征图的索引。

ReLU(R)输出特征图的计算公式如下:

\begin{align*} R=\begin{cases} \displaystyle 0,& for~F^{PWC}\lt 0 \\ \displaystyle F^{PWC},& for~F^{PWC}\ge 0. \end{cases} \tag {9}\end{align*}

批量归一化(B)的输出特征图的计算公式如下:

\begin{equation*} B=\frac {\alpha \left ({{ R-\mu }}\right)}{\sqrt {\sigma ^{2}+\epsilon }}+\beta. \tag {10}\end{equation*}

其中 \muR 的均值; \sigma ^{2}R 的方差; \alpha\beta 是可训练权重。

3) 反卷积块

DeConvBlock 融合了 DSConvBlock 生成的特征图。DSCNet 的输出为 180\times 64。DeConvBlock (F^{DeC}) 的输出特征的计算公式如下:

\begin{equation*} F_{k, l}^{DeC}=\sum \nolimits _{m} {W_{m}^{DeC}\ast B_{k, l,m}}. \tag {11}\end{equation*}

其中 W^{DeC} 代表 DeConvBlock 的权重。

C. 模型优化分析

为证明所提出的 DSConvBlock 在卷积操作中具有相对较低的计算成本和相对较少的所需参数,本小节将传统卷积操作的计算负载和参数量与 DSConvBlock 进行比较。传统卷积操作的计算负载和参数量的计算表达式如下:

\begin{align*} T^{O}& =W\times H\times K\times K\times M\times N. \tag {12}\\ T^{W}& =K\times K\times M\times N. \tag {13}\end{align*}

其中 T^{O}T^{W} 分别表示传统卷积的计算负载和参数量;WH 分别表示输入特征图的宽度和高度;MN 分别表示输出特征图的宽度和高度;K 表示核尺寸。

DSConvBlock 的计算负载和参数量计算表达式如下:

\begin{align*} D^{O}& =W\times H\times K\times K\times M+W\times H\times M\times N. \tag {14}\\ D^{W}& =K\times K\times M+M\times N. \tag {15}\end{align*}

其中 D^{O}D^{W} 分别表示 DSConvBlock 的计算量和参数量;WH 分别表示输入特征图的宽度和高度;MN 分别表示输出特征图的宽度和高度;而 K 则表示核大小。

传统卷积与 DSConvBlock 之间的计算量和参数量比值的计算方法如下:

\begin{align*} P^{O}& =\frac {T^{O}}{D^{O}}=\frac {1}{N}+\frac {1}{K^{2}}. \tag {16}\\ P^{W}& =\frac {T^{W}}{D^{W}}=\frac {1}{N}+\frac {1}{K^{2}}. \tag {17}\end{align*}

其中 P^{O}P^{W} 分别表示传统卷积与 DSConvBlock 在计算负载和参数量方面的比值。如所示,DSConvBlock 在计算负载和参数量上均优于传统卷积。

D. 可行驶区域真实场景图像的转换

DASNet网络的输出是一个以球坐标系表示的可行驶区域地图。在后处理阶段,该输出被转换为笛卡尔坐标地图。然后将图像的视角从球面视图调整为相机视图,以更有效地与真实场景图像集成。后处理算法的详细工作流程如图5所示,涉及四个步骤:二值化、坐标系转换、膨胀和映射到真实场景。

Figure 6

图5. 将可行驶区域集成到真实场景图像中的流程图.

数据后处理的伪代码如算法2所示。DASNet 输出的可行驶区域以球坐标系表示,并根据阈值 \tau 进行二值化。数值二值化的计算公式如下:

\begin{align*} P=\begin{cases} \displaystyle X,& X\gt \tau \\ \displaystyle 0,& otherwise. \end{cases} \tag {18}\end{align*}

算法2 可行驶区域后处理

1:

输入:基于球坐标系 X 的可行驶区域分割,ROI 角度范围 \left [{{ -R, R }}\right],激光束数 L,阈值 \tau,转换矩阵 K\in R^{3\times 4},膨胀率 D

2:

初始化P=\emptyset

3:

P \leftarrow 根据阈值 \tau 进行二值化,公式见 Eq. (18)

4:

\tilde {P}\leftarrow KP

5:

\acute {P}\leftarrow 按膨胀率 D 膨胀 \tilde {P}

6:

输出\acute {P}

为方便观察与验证,结果使用变换矩阵 (K) 显示为笛卡尔坐标系。最后,算法3 的伪代码展示了使用膨胀率 (D) 对点云结果进行膨胀,以得到完整的可行驶区域。

第3章 膨胀算法

输入:

基于笛卡尔坐标系 X 的可行驶区域分割,ROI 角度范围为 \left [{{ -R, R }}\right],激光束数量为 L,膨胀率为 D

初始化: \acute {P}=\emptyset

i\leftarrow -RR

j\leftarrow 0L

如果X_{i,j}=1那么

m\leftarrow -DD

n\leftarrow -DD

\acute {P}_{i+m,j+n}\leftarrow 1

结束循环

结束循环

否则

\acute {P}_{i,j}\leftarrow 0

结束如果

结束循环

结束循环

输出:

\acute {P}

E. FPGA 硬件实现

所提出的 DASNet 网络在 FPGA 平台上实现,以实现实时性能和低功耗。硬件系统架构如图 6 所示。该架构分为两大部分:处理系统(PS)和可编程逻辑(PL)。PS 负责数据处理和系统控制功能,PL 是实现 DASNet 的关键硬件加速器。Advanced eXtensible Interface 协议负责 PS 与 PL 之间的通信。该协议在数据传输前需要 PS 与 PL 之间的握手确认,以确保数据传输准确。输入数据到神经网络以及输出结果通过直接内存访问和双数据速率同步动态随机存取内存进行访问和写入。

Figure 7

图 6. DASNet 硬件系统架构图.

Fig. 7. 说明了 DASNet 硬件加速器的架构,架构包括输入特征图缓冲区、交错缓冲区、EnConvBlock、DSConvBlock 和 DeConvBlock。 在 DASNet 的推理过程中,控制流程基于有限状态机。 输入数据存储在外部存储器中,然后按顺序传输到输入特征图缓冲区,等待 EnConvBlock 处理。 交错缓冲区用于在计算过程中管理特征图的访问。 DeConvBlock 获得的结果被发送回外部存储器进行存储,见 Fig. 8。 下面提供每个计算模块的详细说明。

Figure 8

FIGURE 7. DASNet 硬件加速器.

Figure 9

FIGURE 8. DASNet 数据流.

1) EnConvBlock 硬件模块

Fig. 9. 说明 EnConvBlock 的硬件模块。 EnConvBlock 的处理单元(PE)由一个 1\times 1 卷积阵列模块、一个 ReLU 模块和一个批归一化模块组成。 EnConvBlock 从输入特征图缓冲区获取输入特征图。 PE 在权重和输入特征图上执行 1\times 1 卷积操作,从而增加特征图数量。 随后将产生的输出传回交错缓冲区进行存储。

Figure 10

FIGURE 9. EnConvBlock 硬件模块.

2) DSConvBlock 硬件模块

Fig. 10. 说明 DSConvBlock 的硬件模块。 DSConvBlock 的处理单元(PE)由一个 7\times 7 DWConv 阵列模块、一个 1\times 1 PWConv 阵列模块、一个 ReLU 模块和一个批归一化模块组成。 DSConvBlock 从存放在交错缓冲区的 EnConvBlock 输出数据中读取数据,执行必要的计算操作,然后将结果传回交错缓冲区进行存储。

Figure 11

FIGURE 10. DSConvBlock 硬件模块.

3) DeConvBlock 硬件模块

图 11. 展示了 DeConvBlock 的硬件模块。DeConvBlock 的 PE 仅由一个 1\times 1 卷积阵列模块组成。DeConvBlock 从 ping-pong 缓冲区中存储的 DSConvBlock 读取数据,然后将处理后的结果传回外部内存,作为 DASNet 的输出。

Figure 12

图 11. DeConvBlock 硬件模块.

4) 行缓冲区

行缓冲区用于 DSConvBlock 的硬件架构,其硬件架构如图 12 所示。在 7\times 7 卷积操作中,如果不使用行缓冲区,DSConvBlock 的硬件架构需要 49 个缓冲区进行数据访问,且数据会被反复读取和计算,导致访问资源大量浪费。行缓冲区按顺序读取 X_{in} 的值,并在缓冲区中开启 7 个不同的输出接口,等待 PE 的卷积操作。输出接口分别是 X_{1}, X_{2}, X_{3}, X_{4}, X_{5}X_{6}

Figure 13

图 12. 行缓冲区硬件架构.

5) Ping-Pong 缓冲区

Ping-Pong 缓冲区的架构图如图 13 所示。当写信号 (Wr) 为高电平时,ping 缓冲区将被设置为写状态,等待 D_{in} 数据写入。与此同时,pong 缓冲区被设置为读状态,等待 D_{out} 读取数据。如果写信号 (Wr) 为低电平,则 ping 缓冲区和 pong 缓冲区的工作状态互换。

Figure 14

图 13. Ping-Pong 缓冲区硬件架构.

第 III 节. 实验结果

为评估所提出可行驶区域分割系统的有效性,本研究进行了实验,使用 KITTI 公共数据集 30 以及本实验室收集的林地区域数据集来验证分割结果。实验结果在下列四个小节中给出。

A. 实验设备与参数设置

本研究的实验使用 Intel Core i7-11700 CPU、16GB 内存和 NVIDIA GeForce RTX 2060 6GB 显卡(GPU)作为 DASNet 的训练设置。此外,为了提高神经网络的推理速度并降低功耗,DASNet 被移植到 ZCU104 FPGA。DASNet 网络使用 TensorFlow 和 Keras 框架分别进行模型训练和验证。Verilog 硬件描述语言(HDL)用于 FPGA 设计的硬件实现,使用 Xilinx 的 Vivado 设计套件完成。最后,Vitis 用于实现外围设备与 FPGA 芯片之间的数据通信。

DASNet 训练期间使用的超参数设置列在表 2 中。网络训练了 200 个周期,批量大小为 4。所使用的优化器是自适应矩估计(Adam)。均方误差被用作损失函数。

Figure 15

表 2

B. 评估指标

在道路分割任务中,像素级分类是一个关键目标,即模型判断每个像素是否属于道路。为评估 DASNet 的性能,采用四个指标——准确率、召回率、精确率和 F1 分数——来比较模型的表现。准确率衡量整体正确预测的比例。高精确率表明模型在标记像素为道路时更为谨慎,最小化了将非道路像素误分类的情况。高召回率意味着模型成功识别了大部分真实的道路像素,尽管可能包含一些非道路像素。F1 分数,即精确率与召回率的加权调和平均,为这两个指标提供了平衡的评估。这些指标的计算方式如下:

\begin{align*} Accuracy& =\frac {TP+TN}{TP+TN+FP+FN}. \tag {19}\\ Recall& =\frac {TP}{TP+FP}. \tag {20}\\ Precision& =\frac {TP}{TP+FN}. \tag {21}\\ F1-score& =\frac {2\times Recall\times Precision}{Recall+Precision}. \tag {22}\end{align*}

其中 TP 代表“真阳性”,表示模型正确识别为道路像素的数量;TN 代表“真阴性”,表示模型正确识别为非道路像素的数量;FP 代表“假阳性”,指模型错误地将非道路区域识别为道路区域的情况;而 FN 代表“假阴性”,指模型错误地将道路区域识别为非道路区域的情况。

C. 森林环境数据集

该森林环境数据集是在白天收集的。然而,由于树木遮蔽,整体图像亮度相对较低。森林环境中有树木和若干大石块,增加了无人驾驶车辆的障碍物规避难度。此外,斜坡和不平坦地形的存在进一步给自动导航带来挑战。本研究基于以往研究 31, 32 构建了森林环境数据集,如图 14 所示。该数据集包含 135 份点云数据以及 LiDAR 与相机的图像。在模型训练之前,点云根据算法 1 进行预处理,作为 DASNet 的输入,并使用图像中标记的可行驶区域进行监督学习,以提升 DASNet 的训练效果。

Figure 16

FIGURE 14. 森林环境中无人驾驶车辆的数据采集.

在 DASNet 训练过程中,我们将收集到的树林数据集按 8:2 的比例划分为训练集和测试集,并根据子节 III-A 中提供的训练参数训练模型。实验结果表明,所提出的 DASNet 模型的准确率和 F1 分数分别为 0.9877 和 0.9864。 此外,在本实验中,将所提出的 DASNet 与基于 RGB 的 DASNet (RGB_DASNet)、深度融合三边网络 (DTN) 模型 33 以及 RoadSeg 模型 [^31] 进行比较。比较结果如表 3 所示。RGB_DASNet 模型以分辨率为 360\times 512 的 RGB 图像作为输入。实验结果显示,在道路分割任务中,其准确率为 0.6663,F1 分数为 0.7656。DTN 模型 34 分为空间路径和上下文路径,分别从图像和 LiDAR 中提取特征,然后融合并上采样这些特征。实验结果表明,DTN 模型的准确率和 F1 分数分别为 0.9650 和 0.9615。RoadSeg 模型 [^31] 使用多层卷积层从数据中提取特征,并采用类残差架构来保留原始特征的纹理信息。实验结果显示,RoadSeg 模型的准确率和 F1 分数分别为 0.9609 和 0.9572。 因此,所提出的 DASNet 模型的准确率和 F1 分数优于 RGB_DASNet、35 以及 [^31] 提出的相关方法。

Figure 17

表3

DASNet 在林地区域行驶空间上的预测结果如图 15 所示。该模型在评价指标方面表现良好,如图 15 场景 (a) 和场景 (b) 所示。在 DTN 和 RoadSeg 的实验结果中,尽管这两种模型能区分场景 (a) 与场景 (b) 中的大部分行驶空间,但对树木周围区域的分割仍有遗漏。然而,由于光学雷达稀疏,DASNet 在图 15 场景 (c) 中误判了树木之间的行驶空间。图 15 场景 (d) 中,因物体距离过远导致点云数据丢失,导致 DASNet 对行驶空间的预测结果不尽如人意。然而,与将非行驶空间划分为行驶空间的 DTN 和 RoadSeg 相比,所提出的 DASNet 在行驶安全性方面更适用于林地区域。RGB_DASNet 在四个测试场景中显示了道路与障碍物之间的平滑边界。然而,由于基于视觉的模型易受照明条件变化的影响,可能导致障碍物被误判为行驶空间。这在狭窄且复杂的森林环境中尤为棘手,因为此类误判可能导致自动驾驶车辆发生潜在碰撞。因此,本研究提出的基于 LiDAR 的 DASNet 更适合在照明受限的森林环境中使用,因为它能有效降低由照明变化引起的误判风险。

Figure 18

图 15. 具有林地区域行驶空间的各模型预测结果比较.

D. KITTI公共数据集

KITTI公共数据集 36 在自动驾驶和计算机视觉研究领域被广泛使用,并被认可为拥有丰富多样环境传感器数据的标准数据集。该数据集包含来自激光雷达、相机、全球定位系统以及惯性测量单元的数据。它涵盖了三种类型的城市道路场景——即城市未标记、城市已标记和城市多标记场景,共计289个训练样本和290个测试样本。在本次实验中,使用KITTI公共数据集来验证所提出的DASNet在多平台上的性能。

所提出的DASNet架构还与在多个计算平台上实现的其他可驾驶区域分割方法进行了比较,参考文献为37、[^32]、[^33]、[^34]、[^35]、[^36]、[^37]、[^38]、[^39]、[^40]、[^41]。如表4所示,在基于GPU的方法中,Caltagirone等人提出的方法 [^38] 具有最佳性能,F1分数为0.9603;然而,推理时间为0.15秒,这对需要低功耗和实时处理的自动驾驶系统(ADS)在实际应用中构成挑战。Lyu等人将其方法实现于FPGA进行硬件加速,将推理时间降低到0.017秒;然而,尽管如此,该方法的性能和速度仍然落后于所提出的DASNet,原因在于模型架构缺乏优化。所提出的DASNet在Xilinx UltraScale ZCU104 FPGA开发板上实现。在性能方面,其F1分数、精确率和召回率分别为0.9449、0.9428和0.9520。此外,推理时间为0.009秒,明显短于其他方法。对应于KITTI公开数据集的可驾驶区域分割结果见图16,进一步表明DASNet搭载ZCU104能够有效分割可驾驶区域。

Figure 19

表4

Figure 20

图16. 使用ZCU104的DASNet可驾驶区域分割操作实验结果.

E. 可驾驶区域分割分析

为了全面验证我们所提出方法中每个设计选择的有效性和贡献,我们开展了一系列消融实验。这些实验旨在探究不同组件和技术如何影响模型的整体性能,从而深入了解每个要素在可行驶区域分割任务中的作用。具体而言,我们系统地分析了网络优化架构、点云预处理方法、坐标系选择的影响以及损失函数的选择。通过这些消融实验,我们旨在验证每个设计决策是否真正提升了模型的精度和实际可用性。

不同的优化方法会以不同的方式影响可行驶区域分割模型的性能,参数数量直接影响模型的推理速度。所提出的 DASNet 与传统 CNN 和 LBCNet 在表 5 中进行了实验比较。结果表明,三种方法在四项评估指标上都表现良好。在参数量方面,DASNet 仅包含 9,409 个参数,远低于传统 CNN 的 101,313 个以及 LBCNet 的 820,033 个。此结果展示了 DASNet 在参数效率方面的显著优势。此外,在分割性能方面,DASNet 获得了 94.88% 的 F1 分数,超过了传统 CNN 和 LBCNet 的表现。

Figure 21

表 5

当 LiDAR 扫描周围环境时,它会受到透明或反射表面的影响,导致信息损失。除此之外,如果目标物体距离传感器过远或角度不合适,LiDAR 可能无法正确捕捉目标信息,从而影响自动驾驶车辆的感知能力。因此,本研究中的点云预处理算法旨在补偿 LiDAR 扫描过程中可能出现的信息损失,其性能评估结果如表 6 所示。实验结果表明,插值方法在可行驶区域分割中表现更佳,F1-score 高达 98.33%。所提出的插值方法相较于原始方法和 GussianBlur 方法,准确率分别提升了 0.5% 和 0.8%。

Figure 22

表 6

不同坐标系赋予模型不同的物理意义。笛卡尔坐标系模拟人类生活中点云在物体上的反射,而球面坐标系更接近 LiDAR 的工作原理。因此,本研究在不同坐标系上进行了消融实验,如表 7 所示。所提出的坐标系融合的准确率、精确率、召回率和 F1-score 分别为 0.9833、0.9501、0.9476 和 0.9488。实验结果表明,坐标系融合相比单一坐标系获得了最佳性能。在单一坐标系中,笛卡尔坐标系略优于球面坐标系。

Figure 23

表 7

在可行驶区域分割任务中,损失函数的选择在空间边界处理和类别判别方面起着关键作用。在本研究中,我们通过消融实验评估了三种不同的损失函数——均方误差、Dice 损失和交叉熵损失,如表 8 所示。尽管交叉熵损失和 Dice 损失分别在分类和分割任务中常用。我们的消融实验结果显示,均方误差在 F1-score 上分别比交叉熵损失和 Dice 损失高出 1.38% 和 0.45%。

Figure 24

表 8

F. FPGA 硬件实现结果

在本研究中,ZCU104 被用作加速平台,神经网络通过 Verilog HDL 部署。时钟约束为约200MHz的频率。DASNet 在 ZCU104 上的资源利用情况详见表9。为了在 ZCU104 内高效存储输入特征图以及计算过程中生成的特征图,使用了大量块 RAM (BRAM) 来进行特征图访问。结果显示 BRAM 利用率为 98.88%。在卷积运算过程中,数字信号处理器 (DSP) 被反复用于乘加运算,以提升特征提取效率。这种结构设计将 DSP 的使用限制在 832 单元,利用率为 48.15%。

Figure 25

表 9

GPU 与 FPGA 都提供高效的计算能力,并广泛用于人工智能领域。这两种加速平台在精度处理方面存在明显差异。GPU 主要设计用于处理大量浮点运算。相比之下,FPGA 具有更快的输入/输出 (I/O) 访问速度,在实时计算中实现高性能。为减少硬件资源消耗,采用定点算术来执行浮点运算。虽然此方法降低了浮点计算的复杂性,但涉及到计算精度的权衡。本研究比较了 32 位 GPU 浮点运算与 18 位 FPGA 定点运算,见表10,结果表明相较于 GPU 平台,所设计系统仅降幅 0.05% 的精度和 0.39% 的 F1 分数。

Figure 26

表 10

为展示 FPGA 在计算速度和功耗方面的优势,本实验比较了 Intel Core i7-11700 CPU、NVIDIA RTX 2060 GPU 和 NVIDIA Jetson Xavier NX 的性能,如表11所示。评估指标计算方式如下:

\begin{align*} T_{r}& =\frac {T_{\frac {C}{G}}}{T_{F}}. \tag {23}\\ P_{r}& =\frac {P_{\frac {C}{G}}}{P_{F}}. \tag {24}\end{align*}

其中 T_{r}P_{r} 分别代表时间与功耗比率,且 C, G, 与 F 分别代表 CPU、GPU、NX 与 FPGA。

Figure 27

表 11

在计算速度方面,CPU、GPU 和 NX 分别需要 44.11、34.87 和 137.01 毫秒,显著慢于 FPGA 的 9.32 毫秒。除此之外,在功耗方面,CPU、GPU 和 NX 分别消耗 45、102、17.1 瓦特。因此,CPU、GPU 和 NX 的功耗分别是 FPGA 的 12.17、27.58 和 4.62 倍。综上所述,在计算速度和功耗方面,FPGA 在 CPU、GPU 和 NX 之上表现更好。

第四节 结论

本研究开发了一种轻量级神经网络,专门用于 ADS(自动驾驶系统)以分割可行驶区域并提供自驾车周围环境信息。通过使用 FPGA 硬件加速,DASNet 架构的性能在我们实验室采集的林地数据集和 KITTI 公共数据集上进行了评估。除了在结构化(KITTI)和非结构化(林地)环境中均取得卓越的分割性能外,该工作还强调了将笛卡尔坐标系与球面坐标系相结合进行特征表示的优势。这些融合方法提升了自驾车对局部和全局环境的感知与识别能力。实验结果表明,所提出的模型在林地数据集和 KITTI 公共数据集上的 F1 分数分别为 0.9864 和 0.9449,均优于许多现有方法。此外,借助 FPGA 硬件加速,推理速度降至 9.32 毫秒。DASNet 的实时性能得到了显著提升。本文提出的方法使自驾车能够准确分割可行驶区域并实现实时响应,因而非常适合用于 ADS。

在未来的研究中,我们打算将重点转向无监督学习方法。更具体地说,我们将探索包括领域对抗学习、自训练和协同训练等技术,以使 DASNet 模型能够从无标签数据中提取关键特征,从而进一步促进可驾驶区域的有效分割。尽管我们收集的 KITTI 数据集和森林数据集足够证明基于 LiDAR 的 DASNet 在有结构和无结构环境中的有效性,现有的公开可驾驶区域分割数据集主要以图像为主,缺乏对 LiDAR 数据的关注。我们认为这也是未来工作的重要方向。我们计划扩充 LiDAR 数据集,涵盖不同天气条件,并在这些多样化场景中开展可驾驶区域分割任务。这将有助于评估并展示模型在不同环境条件下的鲁棒性和有效性。

参考文献

额外参考文献