![Image](images/db25c1c0e904872c52839df80d1a18bac546b47d67294db7cd46e9bfba2f6684.jpg)

# 基于 LiDAR 的点云配准和物体识别的工业车间室内定位方法

李云智 $^{1}$ · 谭利斌 $^{1}$ · 徐向荣 $^{1}$ · 张泽群 $^{2}$

接受：2024年12月30日 / 网上发表：2025年1月24日

© 作者所有，本内容受排他许可授权给施普林格科学+商业媒体有限责任公司（施普林格自然旗下机构）2025

## 摘要

在本文中，我们旨在实现工业车间中移动机器人的房间级定位。由于工业环境的复杂性，通过常用方法获得精确的定位信息非常困难。我们的研究表明，通过基于激光雷达的点云配准和物体识别，可以实现精确的房间级定位。为此，我们将房间级定位建模为一个分类问题。配准和物体识别用于从点云中提取特征。为了克服由于特征数据有限的问题，我们采用了称为堆叠自编码器的数据增强算法，然后利用神经网络算法来解决分类问题。为此，我们收集了来自工业车间的点云数据并进行了实验验证。我们在一个冶金车间评估了算法的识别性能，并取得了良好的准确率。

关键词：移动机器人、房间级定位、配准、物体识别、数据增强、神经网络算法

## 1 引言

自主定位是移动机器人领域的一个活跃研究方向，并受到了研究人员的广泛关注 [^1]. 定位的目标是准确地确定移动机器人的位置 [^2]. 将最近的传感器信息与环境的先验信息进行匹配是实现鲁棒定位的常用方法 [^3]. 基于机器视觉的里程计 [^4] 和 LiDAR [^5] 是一种解决定位问题的流行方法。

在各种场景中，例如公寓、办公室或工业车间，室内定位的实施使机器人能够提供定制服务。 室内定位是指机器人通过传感器、控制系统和外部定位设备在封闭区域内的特定位置。 以下列出几个关键点，以说明室内定位的必要性。

首先，室内定位可以作为实现精确定位的基础。 其次，当机器人位于相似的房间中时，出现的误差会减少。 此外，可以根据机器人的具体位置采用各种导航策略。

诸多学者已对房间级定位方法开展了研究。有学者提出了一种基于RSSI的房间级指纹定位方法，该方法是一种基于受试者工作特征分析的阈值算法[^6]，通过人与设备的交互估算用户的实际位置。有研究提出了名为BFound的导航与房间级定位系统[^7]，通过对信标传感器生成的房间唯一特征进行小波变换实现房间级定位。还有研究在建筑信息建模环境中提出了一种名为面向站点室内定位的新型占用调度建模系统，能够高精度检测室内人员的房间级位置[^8]。另有研究提出了对应的室内标签轨迹推理数据结构OPTR-tree，为室内环境下达到房间级精度的多标签轨迹快速识别提供了实现途径[^9]。这些定位方法均基于环境中预先布设的设备。在满足如下条件的环境中无法定位：环境中

---

不存在可交互设备。在公寓或办公室这类简单环境中，低成本、低功耗的声呐传感器是合适的选择[^3]。自动房间级定位方法需要解决三个关键问题：

指纹的位置信息确定。

指纹位置信息的确定。

能耗问题[^10]。

然而，这些方法并不适用于多个房间具备复杂特征的场景。

到目前为止，基于摄像头和雷达的机器人定位方法也得到了广泛的研究。基于图像的定位方法[^4] [^11] [^12] 已经得到了广泛的研究和应用，并在各个领域得到应用。然而，视觉传感器容易在不同的光照或阴影条件下发生故障。最近关于基于激光雷达的定位的研究可以分为两大类：

## 基于检索的方法

## 基于配准的方法

基于检索的方法 [^13] [^14] 将定位概念化为一项搜索特定位置的专门任务。整体流程为通过特定规则获取全局描述子，再在全局数据库中搜索对应的点云。基于配准的方法 [^15] [^16] 通过点云匹配解决定位问题。一旦点云成功匹配到数据库中的对应部分，就可以准确估计出激光雷达的位置。但在大尺度环境中，这类方法可能无法实现准确定位，因为匹配过程需要大量计算来将查询点云与数据库的每一部分进行比对。

由于传统定位方法的局限性，本文提出了一种基于 LiDAR 点云配准和目标识别的机器人定位方法。我们将房间定位问题转化为一个分类问题。提取点云配准和识别的特征数据，并通过数据增强增加数据量。然后，采用神经网络算法根据特征数据进行分类。一旦确定房间，就为进一步的精确定位奠定了基础。

该论文的后续部分结构如下。第二节概述了与定位相关的文献。第三节介绍了用于房间级定位的提出的模型和方法。该方法包括两种提取点云特征的方法以及一种基于神经网络的决策方法。在第四节中，对数据集的采集以及后续的实验验证。第五节总结并展望未来。

## 2 相关工作

该方法与移动机器人的点云定位密切相关。将实时传感器信息与环境的先验信息进行匹配是机器人定位的常用方法。以往关于点云定位的研究可以分为基于检索的定位和基于配准的定位。本节简要回顾和讨论了点云定位的代表性研究。

### 2.1 基于检索的定位

基于激光雷达的定位通常被认为是点云检索，通过从现有数据中估计点云的位置。目标识别是计算机视觉的核心任务之一。近年来，基于图像的二维目标检测取得了显著进展 [^17]。因此，基于平面相机的目标识别在光照条件较差时难以发挥作用。与仅基于平面相机图像数据的二维检测不同，具有空间传感能力的传感器对于识别三维空间中的物体更有益。由于激光的指向性和能量集中，三维点云数据精确且具有高空间分辨率 [^18]。提出了一种分层配准算法 [^19]，用于基于上下文描述符对齐无序点云。提出了一种包含局部视角特征直方图 (LVFH) 和局部集合的形状函数 (LESF) 的新型特征描述符 [^20]。然而，这些方法不适用于复杂环境。

随着深度学习的巨大进步，一些研究利用神经网络来替代传统描述符。ShapeNet [^21] 旨在用于目标识别，但它只能在小规模数据集上工作。在 [^22] 中，提出了一种基于卷积神经网络 (CNN) 和图像上采样理论的对象分类方法，用于视觉和激光雷达 (LiDAR) 融合。PointNet [^23] 旨在直接处理点云，并且已成为许多后续方法的网络架构基础。现有的领先方法，如 PointNetVLAD [^24] 和 PCAN [^25]，已经取得了优异的结果。提出了一种用于 3D 对象检测的多视角语义学习网络 (MVSLN)，该网络被认为是用于 LiDAR 点云的特征区分 [^26]。提出了一种基于 YOLOv5 的高级对象检测模型，称为 YOLO-TLA [^27]。YOLO-TLA 模型在小型对象检测方面具有高效和有效的性能，以更少的精度实现了高准确性。

---

参数和计算需求。一种单目3D目标检测方法，该方法将3D目标定位问题视为配对的关键点回归问题，已在 [^28] 中得到介绍。提出了两个用于目标检测的模块，通过更详细的体素初始信息提取和上下文信息的全面融合来实现 [^29]。检索方法可以在提取点云特征时检测到粗略的位置识别。

### 2.2 基于注册的本地化

点云配准是移动激光扫描 (MLS) 和地面激光扫描 (TLS) [^30] [^31] 中最重要的主题之一。 其目的是获得转换参数，将捕获的点云转换为其正确位置。 基于激光雷达的定位通常需要精确的 6 自由度姿态，这促使开发了基于点云配准的定位方法。 大多数点云配准方法采用自下而上的策略 [^32]。 基于结构的算法采用诸如自旋图像 [^33]、点特征直方图 [^34] 和快速点特征直方图 [^35] 等特征描述符。 提出了一种轻量级且快速的点云配准方法 [^36]。 该方法通过保留内部点云的曲率特征并利用网格单元之间的空间关系以及内部点云之间的定量关系来实现初始点云配准。 提出了一种基于平面原态群的室内环境大范围点云和小范围点云的配准策略 [^37]，为两个点云坐标系初始位置提供完全独立的定位解决方案。 提出了一种使用频谱域通用特征提取算子的配准方法 [^38]，其中频谱使用了各种小波变换。 提出了一种基于随机森林算法的基于三维 (3D) 激光点云数据的室外移动机器人的定位和导航方法 [^39]。

在获得特征向量的基础上，通过 RANSAC 中的特征匹配建立 3D–3D 对应关系。 首先应用粗配准算法来计算大约六个自由度的方向以及相邻点云之间的平移参数 [^40]。 除了特征之外，迭代最近点算法 [^41] 用于通过最小二乘优化估计点对应关系，这是一种用于成对精细配准的最常用方法。 近年来，基于深度学习的方法取得了优异的性能。 提出了一种用于多模态遥感图像配准的深度特征相关学习网络 (CNet) [^42]。 参考文献 [^43] 提出了一种基于深度学习回归网络的遥感图像配准新方法。 最近，一些研究结合了这两种方法进行定位。 PR–NET 描述了一种自下而上的工作流程，用于逐步定位篡改区域 [^44]。

我们从两个方面回顾了点云定位的研究：

基于检索的定位。

基于配准的定位。

然而，这些方法大多基于对其中一个方面的研究，并且基于深度图像，与 3D 点云相比，2D 点云的研究更为广泛。 本文提出的基于激光雷达的定位方法，结合了基于双向算法和基于配准的特征，用于 3D 点云的定位。

## 3 提出的模型

本文提出了一种基于 LiDAR 点云配准和物体识别的机器人定位方法。主要示意图如图 1 所示。机器人位于多个位置，并获取多组原始点云数据。从数据中提取的特征用于确定其位置。

本节，在图 2 中展示了该方法的框架。它包含三个主要组件：

点云配准。

点云物体识别。

区域分类。

详细而言，通过当前点云与全局点云之间的粗略和精细配准，可以获得点云的重叠率。接下来，将当前点云分割并聚类，并确定识别的物体数量。在结合上述两种方法的数据后，进行数据增强。最后，使用神经网络算法对获取的数据进行分类，以确定机器人的位置。这些方法的详细描述如图 2 所示。

列出了一些关键点，以说明所提出的框架的必要性。一方面，机器人可以将实时地图与全局地图进行匹配以进行定位。将当前点云的数据与环境的先验数据进行匹配，是一种用于在部分和整体之间建立联系的方法。另一方面，机器人根据环境中的物体确定其位置。将当前点云的物体信息与环境的先验物体信息进行匹配，是另一种在

---

<div style="text-align: center;">Fig. 1 Principle illustration of the problem. Raw point clouds of robots at different positions are collected, and their features are extracted to determine the room-level locations of the robots</div>

![Image](images/d6482cae3c66142a70f85f7fc863947e8482abc777b588a33216ba17a102c5c8.jpg)

部分和整体之间建立联系的方法。将两种方法获得的信息用作定位的基础。神经网络算法可能是一种适合对上述数据进行分类的方法。考虑到神经网络算法需要大量的原始数据，因此采用了数据增强来增加可用数据的量。

### 3.1 点云配准

为了获取位置信息，必须在当前点云和全局点云之间建立相关性。

当前点云是机器人当前位置通过 LiDAR 系统采集的 3D 点云数据。全局点云是在机器人可以移动的整个 3D 点云数据。点云配准有助于确定这两个实体之间的位置关系。

#### 3.1.1 粗略配准

在从 LiDAR 系统获取当前点云数据后，第一步是提取用于配准的特征点。对于大量的点云数据点，根据提取的特征建立当前点云与全局点云之间的相关性，可以提高效率和准确性。

内禀形状特征 (ISS) 称为内禀形状特征 (ISS) 的方法用于描述点云的几何形状。 该算法是一种区域点云特征提取方法，它通过计算点云数据的曲率和法线变化来衡量点的重要性。 该方法可以获取各种几何特征，这些特征可用于配准。 点云 P 包含 i 个点 $p_i$ ($x_i, y_i, z_i$). 为每个点 $p_i$ 建立坐标系，并设置搜索半径 $r_{frame}$。 将 $p_i$ 视为中心，选择半径为 R 的所有点，并计算权重 $w_{ij}$。

 $$ w_{ij}=1\bigg/\left\|p_{i}-p_{j}\right\|,\left|p_{i}-p_{j}\right|<r_{frame} $$

然后，计算范围内的每个点的协方差矩阵。

 $$ \mathrm{cov}\left(p_{i}\right)=\sum_{\left|p_{i}-p_{j}\right|<r_{frame}}w_{ij}\left(p_{i}-p_{j}\right)\left(p_{i}-p_{j}\right)^{T}\Bigg/\sum_{\left|p_{i}-p_{j}\right|<r_{frame}}w_{ij} $$

计算 $\mathrm{cov}\left(p_{i}\right)$ 的特征值，从大到小排列为 $\{\lambda_{i}^{1},\lambda_{i}^{2},\lambda_{i}^{3}\}$。 设置阈值 $\varepsilon_{1}$ 和 $\varepsilon_{2}$。 满足条件 $\lambda_{i}^{2}/\lambda_{i}^{1}\leq\varepsilon_{1}$ 和 $\lambda_{i}^{3}/\lambda_{i}^{2}\leq\varepsilon_{2}$ 的点云 P 中的点是所需的关键点。

快速点特征直方图 快速点特征直方图 (FPFH)，通常用于描述围绕一个点的几何特征，随后采用这些直方图以获取特征点描述符。 通过参数化特征点与相邻点之间的空间差异，点特征直方图 (PFH) 形成一个多维直方图，以几何方式描述点的最近邻。 搜索半径为 r 的域点用于特征点 $P_{i}$，其定义为 $P_{k}$。 建立 $P_{i}$ 的局部坐标系如下：

 $$ \left\{\begin{aligned}d&=\left\|p_{k}-p_{i}\right\|_{2}\\ \mathbf{u}&=\mathbf{n}_{i}\\ \mathbf{v}&=\mathbf{u}\times\left(p_{k}-p_{i}\right)\big/d\\ \mathbf{w}&=\mathbf{u}\times\mathbf{v}\end{aligned}\right. $$

如图 3 所示，d 是两个点之间的欧几里得距离。 $n_i$ 和 $n_k$ 是点 $P_i$ 和 $P_k$ 的单位法向量。

---

<div style="text-align: center;">Fig. 2 Framework of the position recognition method</div>

![Image](images/4d475cf900c912ab26ec433f95b1b9157a137b2f80fcbb9bc2be5382982096c4.jpg)

<div style="text-align: center;">Fig. 3 Coordinate system parameters of feature points</div>

![Image](images/eaf29a4114f23f9eccdab400dc8b0054e64254b900dd8a280008173c58ad154b.jpg)

---

计算 $P_{i}$ 和其每个域点的元素特征。

 $$ \left\{\begin{aligned}\alpha&=\mathbf{v}\cdot\mathbf{n}_{k}\\ \phi&=\mathbf{u}\cdot\left(p_{k}-p_{i}\right)\big/d\\ \theta&=\arctan\left(\mathbf{w}\cdot\mathbf{n}_{k},\mathbf{u}\cdot\mathbf{n}_{k}\right)\end{aligned}\right. $$

计算点 $P_{i}$ 及其k邻域内每个点 $P_{k}$ 的上述特征元素值，经统计得到简化点特征直方图（SPFH），可记为SPFH( $P_{i}$)。

然后，分别计算 $P_{k}$ 在 k 邻域中的每个点的 SPFH，并将所有 SPFH 进行加权统计。 FPFH 不仅涉及特征点与半径 r 范围内的点之间的关系，还涉及半径 r 范围内的点与额外点对之间的关系。

 $$ \mathrm{FPFH}(P_{i})=\mathrm{SPFH}(P_{i})+\frac{1}{k}\sum_{m=1}^{k}\frac{1}{d_{k}}\cdot\mathrm{SPFH}(P_{k}) $$

SPFH $(P_{k})$ 是 $P_{k}$ 和其每个域点的特征。 $d_{k}$ 是 $P_{i}$ 和 $P_{k}$ 之间的距离。 如图 4 所示，FPFH 涉及不仅是特征点与半径 r 范围内的点之间的关系，还包括半径 r 范围内的点与额外的点对之间的关系。

将三组特征统计输入到一个直方图中。 这三个特征都是角度，与法向量相关，可以放在同一个区间内。 根据范围，将每个特征的值划分为几个子区间。 统计每个子区间内落入的点的数量，该数量是点特征直方图。

![Image](images/f9daa79653c102b9c37be91e3228e3687c6440b65c3e6618da4389042d2286f0.jpg)

<div style="text-align: center;">Fig. 4 PPFH of the feature points</div>

通过 FPFH 匹配当前点云的特征点与全局点云的点，找到最近点对，即对应点。

随机样本共识 (Random sample consensus)。上述所有方法都旨在找到两个云之间的对应点。接下来，随机样本共识 (RANSAC) 可以实现点云的粗略配准。该算法是一种用于稳健地从数据集估计模型参数的迭代算法。在点云处理方面，RANSAC 可用于找到一对点云的匹配点。

从当前点云的特征点中随机选择三个非共线的点，并用 $(p_{1}, p_{2}, p_{3})$ 表示。定义全局点云为 Q，找到 $(p_{1}, p_{2}, p_{3})$ 的对应点，称为 $(q_{1}, q_{2}, q_{3})$。此组点对用于计算当前点和全局点云的空间变换矩阵 R 和 T。

R 和 T 用于变换 P 中的剩余点，并计算变换后的 P 点与 Q 中对应点之间的距离误差。如果点对的误差小于阈值 $\delta$，则将其放入点集 I。此过程重复进行，直到 I 中的点数达到阈值或迭代次数达到最大值。选择 I 中点数最多的变换矩阵 R 和 T，作为实现粗略配准的最佳变换。

#### 3.1.2 精确配准

由RANSAC算法得到的空间变换矩阵是通过三对特征点计算得到的，在整个点云的配准结果中可能存在误差。如果直接对原始点云进行粗配准，得到的结果精度难以满足要求。因此，需要进一步优化才能实现精确配准。

迭代最近点（ICP）算法 [^45] [^46] 是一种精确高效的方法，可用于解决此问题，并且可以解决刚性配准问题。ICP 的目标是找到两个数据集的最佳空间变换。本质上，该算法基于最小二乘法来求解最佳变换矩阵。在当前点云 P 中，每个点定义为 $\{P_m, m=1,2,...,N_p\}$，其中 $N_p$ 是当前点的数量。在全局点云 Q 中，每个点定义为 $\{Q_m, m=1,2,...,N_q\}$，其中 $N_q$ 是全局点的数量。在 k 次迭代计算中，点集 Q 和点集 P 的对应点集为 $\{Q_{km}, m=1,2,...,N_p\}$。对齐变换的目标是最小化以下方程的目标函数。

---

 $$ E(R,t)=\sum_{m=1}^{N_{p}}\left\|\boldsymbol{Q}_{m}-\left(R\boldsymbol{P}_{m}+t\right)\right\|^{2} $$

取当前点集 $P_m$ 中的每个点以及点集 Q 中的对应点，从而最小化 $\|Q_m^k - P_m^k\|$。计算旋转矩阵 $R_k$ 和平移向量 $t_k$，从而最小化 $E(R, t) = \sum_{m=1}^{N_p} \left\|Q_m^k - \left(R_m^k P_m^k + t_m^k\right)\right\|^2$。然后，定义变换坐标 $P_m^{k+1}$ 为 $P_m^{k+1} = R_m^k P_m^k + t_m^k$。如果 $d^{k+1} = 1/N_p \sum_{m=1}^{N_p} \left\|P_m^{k+1} - Q_m^k\right\|^2$ 小于定义的 dm，则开始下一次迭代。

通过比较当前点云和全局点云，可以获得当前点云和全局点云之间的精确坐标变换矩阵。配准过程如图 5 所示。为了进一步提高当前点云和全局点云之间的接近度，比较当前点云和全局点云，然后计算当前点云的重叠率，从而实现精确配准。

重叠率定义为 c，它反映了当前点云和全局点云之间的重叠程度。计算每个当前点云中的点与全局点云中最近点的距离，并将其表示为 $d_{p}$。如果 $d_{p}$ 小于设定的值 $d_{min}$，则将其标记为重叠点。

重叠率如下。

 $$ c=\frac{N_{pc}}{N_{p}} $$

其中，$N_{p}$ 是当前点云的数量，$N_{pc}$ 是满足距离要求的点的数量。

![Image](images/f6dfc096fb002afdb55f7da0c38be61aa75f843b6f5bced87f021e8935872ecc.jpg)

<div style="text-align: center;">Fig. 5 Registration of the current and global point clouds</div>

### 3.2 点云对象识别

#### 3.2.1 用于识别的预处理

从点云中获取对象信息，预处理至关重要。在当前的 点云中，很难从地面点云中获取有效信息。通常，环境特征主要集中在地面上的物体。过滤地面点云是一种基本的 LiDAR 预处理操作，并且很容易影响对象的聚类。

布料模拟过滤 为了减轻现场环境中噪声的影响，对点云数据进行初始过滤。地面过滤算法，称为布料模拟过滤 (CSF) [^47]，源自于“布料”的物理模型模拟。在计算机图形学中，可以将布料概念化为由相互连接的粒子组成的网格，这些粒子具有质量，形成所谓的质量-弹簧模型。布料的位置和形状由三维空间中粒子的位置决定。根据胡克定律和牛顿第二定律，位置和力的关系如下：

 $$ m\frac{\partial X(t)}{\partial t^{2}}=F_{ext}(x,t)+F_{int}(x,t) $$

其中，x 表示粒子的时间 t 时的位置，$F_{ext}(x,t)$ 表示外部力，由重力和碰撞力组成，$F_{int}(x,t)$ 表示粒子在位置 x 和时间 t 时的内部力。

CSF 算法的流程图如图 6 所示，可以理解为：

(1) 最初对原始点云进行反转。

![Image](images/ba47d5ff2d53328856a90e41df9e53999c7ea7e86acbf3e6c2266859e9a7b215.jpg)

<div style="text-align: center;">Fig. 6 Flowchart of the CSF algorithm</div>

---

(2) 随后，将布料模型叠加到反转的点云上。

(3) 然后，分析布料节点的约束条件，以模拟和确定地面的形状和位置。

基于密度的空间聚类算法 (DBSCAN) 是一种基于密度的聚类算法。该算法假设可以通过样本分布的紧密度来确定聚类结构。根据样本密度的视角，研究样本之间的连续性，并不断扩展聚类以获得最终结果。

DBSCAN算法中，半径（EPS）和密度阈值（MinPts）是定义参数。对于每个点 $P_m$，绘制一个以该点为中心，以EPS为半径的圆。这个圆被称为 $P_m$ 的邻域。如果圆内的点数超过密度阈值MinPts，则该圆的中心被认为是核心点。$P_M$ 邻域内的所有点被称为 $P_M$ 的密度直接点。如果 $P_i$ 和 $P_j$ 都是 $P_m$ 密度上的直接点，则 $P_i$ 与 $P_j$ 密度相连。通过连接这些相连的密度点，形成一个簇。在这个过程中，当前的点云被划分为几个不同的部分。

#### 3.2.2 基于PointNet的对象识别

在提出PointNet [^23] 之前，由于3D点云的特性，无法直接处理点云。如果改变点集中的点顺序，仍然可以表示相同的点云。在对点云进行刚性变换（旋转和平移）后，输出的分类结果保持不变。通过解决点云的分类任务，从点云数据集提取特征。PointNet的结构如图7所示。

对于每个 $N \times 3$ 个点云输入数据集，使用T-Net来学习点云的旋转变换，以便校准和在这个维度上对齐。接下来，使用多层感知器（MLP）将图像映射到64维。每个 $1 \times 3$ 个向量点通过两个MLP层被提升为一个 $1 \times 64$ 个向量。$N \times 3$ 个输入数据变为 $N \times 64$ 个数据，并在这个维度上再次对齐。然后，以相同的方式使用MLP将数据映射到1024维。每个点目前由一个包含1024维的向量表示，这对于3维点云数据来说是冗余的。引入最大池化操作以保留1024维中所有通道的最大值。$1 \times 1024$ 个向量是N个点云的全局特征。

使用全局特征作为输入，通过训练的多层MLP获得每个对象的概率。点云被标记为对应于最大概率值的对象。计算聚类后每个子点云中对应对象的数量，并定义为 $\{o_{kn}, n=1,2,...,N_{o}\}$。

### 3.3 基于SAE和BPNN的定位

在本节中，我们提出了一种基于获取的数据来识别当前位置的方法。首先，将注册和对象识别数据结合起来。下面描述了使用堆叠自编码器（SAE）增强数据的过程。最后，给出了反向传播神经网络（BPNN）的结构和整个分类过程。

BPNN是一种基于神经网络的机器学习模型，它可以从模式中自动提取特征并解决非线性问题。BPNN模型的优点是过程相对简单，计算量小。神经网络算法总是需要大量的数据进行训练。然而，从冶金车间获得的数据量有限。在本研究中，使用SAE来增加一维原始训练数据。SAE的解码和编码过程在损失数据提取的过程中提取原始数据的特征。

![Image](images/5043443f33d43dead1b1369cb4ffad54fd1521377c80874b31bd1bde9c6d04d6.jpg)

<div style="text-align: center;">Fig. 7 Structure of PointNet</div>

---

![Image](images/07d8505e2ff94531a6716ff576b64e66fe94ec9df649838f48592e84d69ed42d.jpg)

<div style="text-align: center;">Fig. 8 Structure of the AE</div>

数据压缩，并根据保留的数据特征生成新的数据集。自编码器可以直接训练原始数据以生成类似的数据，这比生成对抗网络（GAN）更有效。

#### 3.3.1 通过自编码器进行数据增强

自编码器（AE），是一种无监督学习算法，是自编码器的基本单元。对于自编码器，无需对数据进行标注。它是一个前馈神经网络，由输入层、输出层和隐藏层组成。自编码器由两个组件组成，分别是编码器和解码器，如图 8 所示。编码器将输入数据映射到隐藏层以提取数据特征。解码器将隐藏层的数据恢复到原始数据，并重构数据。

自编码器的基本结构与普通神经网络相同。由于输出数据是基于输入数据的重构，因此理想情况下，输出应等于输入。因此，自编码器的输出不是标记数据，而是输入数据本身。

训练数据集定义为 $\{x=x_1, x_2, \ldots, x_n\}$。其中，$x_n\in\mathbb{R}^{m*1}$。编码过程如下。

 $$ \mathbf{h}_{n}=\sigma(\mathbf{W}_{1}\mathbf{x}_{n}+\mathbf{b}_{1}) $$

解码过程如下。

 $$ \hat{\mathbf{x}_{n}}=\sigma(\mathbf{W}_{2}\mathbf{h}_{n}+\mathbf{b}_{2}) $$

<div style="text-align: center;">Fig. 9 Structure of the SAE</div>

![Image](images/bc7ecc6a254fc904f046ab10718bde92a985a3dc6077e42cc6468a023d0aaf59.jpg)

---

<div style="text-align: center;">Fig. 10 Framework of position recognition. Combining raw and generated data as a dataset for neural network algorithms</div>

![Image](images/97f3d0d7f43ca9e4b2dd80cb05ec4f8f4519edd0cce08d78940e1356be9b8037.jpg)

$h_n$ 是与 $x_n$ 对应的隐藏层向量，$\hat{x}_n$ 是与 $h_n$ 对应的输出层向量。$\sigma$ 是激活函数，W 和 b 分别是权重和偏置。

误差函数如下，通常用二阶范数表示。

 $$ L\big(\mathbf{x}_{n},\widehat{\mathbf{x}_{n}}\big)=\left\|\mathbf{x}_{n}-\widehat{\mathbf{x}_{n}}\right\|^{2} $$

使用均方误差函数来计算自编码器的重构误差。

 $$ \mathrm{MSE}=\frac{1}{N}\sum_{n=1}^{N}L\big(\mathbf{x}_{n},\widehat{\mathbf{x}_{n}}\big) $$

为了最小化均方误差函数，使用随机梯度下降（SGD）来找到最佳参数配置。

如图 9 所示，自编码器是由两个或多个自编码器堆叠而成。它通过增加隐藏层的数量，从复杂输入数据中学习抽象向量的不同维度。随着神经网络层的增加，可以获得更深层次的特征，但训练时间会迅速增加。三层自编码器可以在确保计算效率的同时，提取更具代表性的特征。

![Image](images/cd01c9840dce6b7f3ff51d5d4eb62f5be1d005d09bdd43104785577a4e0dce9e.jpg)

<div style="text-align: center;">Fig. 11 Robot platform with LiDAR</div>

---

![Image](images/89a45cea03be499fa0e6490a35c386880489fec9929011558bd55694fdaed908.jpg)

<div style="text-align: center;">(A)</div>

![Image](images/2be93b25482a750d2e14504302a13fed335ffb031e7f4d3a65b1213156b5be43.jpg)

<div style="text-align: center;">(B)</div>

![Image](images/d901841153003c9dfc92d1fb3375c8c0d72fc791e051f3ce264a3640ab641ba5.jpg)

<div style="text-align: center;">(C)</div>

![Image](images/b41b15b47cac2fb565d463803cd46441360241274797a02a64c5a333378d8bab.jpg)

<div style="text-align: center;">(D)</div>

<div style="text-align: center;">Fig. 12 Several different areas in the steel plant</div>

![Image](images/6e498dcf0f54f9813002420558451ec370158f107f004c4b2d300148792a6c0c.jpg)

<div style="text-align: center;">Fig. 13 Global point cloud. It is divided into the steel plant, the waste area, continuous casting workshop A, and continuous casting workshop B.</div>

<div style="text-align: center;">Fig. 14 Current point clouds</div>

![Image](images/2dca1b932e5e95e80952e5a992c9ca93072737105116878d4ced71c4c4102e17.jpg)

---

<div style="text-align: center;">Fig. 15 Registration of the current and global point clouds</div>

![Image](images/3a1e51a87bd9131c6680bdfdd15e50a40e167e208637fab1a5f13af59c56e7cc.jpg)

![Image](images/a1be66494b0efcfee66a9df6fbe57768bbf7387decda40d95414d48d20714b79.jpg)

<div style="text-align: center;">Table 1 Overlap rates of the current point cloud</div>

<table border=1 style='margin: auto; word-wrap: break-word;'><tr><td style='text-align: center; word-wrap: break-word;'>No.</td><td style='text-align: center; word-wrap: break-word;'>Area 1</td><td style='text-align: center; word-wrap: break-word;'>Area 2</td><td style='text-align: center; word-wrap: break-word;'>Area 3</td><td style='text-align: center; word-wrap: break-word;'>Area 4</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>$c^{(1)}$</td><td style='text-align: center; word-wrap: break-word;'>86.29%</td><td style='text-align: center; word-wrap: break-word;'>7.34%</td><td style='text-align: center; word-wrap: break-word;'>14.60%</td><td style='text-align: center; word-wrap: break-word;'>17.45%</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>$c^{(2)}$</td><td style='text-align: center; word-wrap: break-word;'>79.51%</td><td style='text-align: center; word-wrap: break-word;'>16.46%</td><td style='text-align: center; word-wrap: break-word;'>14.02%</td><td style='text-align: center; word-wrap: break-word;'>19.45%</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>$c^{(3)}$</td><td style='text-align: center; word-wrap: break-word;'>85.55%</td><td style='text-align: center; word-wrap: break-word;'>13.07%</td><td style='text-align: center; word-wrap: break-word;'>10.98%</td><td style='text-align: center; word-wrap: break-word;'>9.92%</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>$c^{(4)}$</td><td style='text-align: center; word-wrap: break-word;'>92.37%</td><td style='text-align: center; word-wrap: break-word;'>8.08%</td><td style='text-align: center; word-wrap: break-word;'>11.00%</td><td style='text-align: center; word-wrap: break-word;'>4.53%</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>$c^{(5)}$</td><td style='text-align: center; word-wrap: break-word;'>80.53%</td><td style='text-align: center; word-wrap: break-word;'>18.39%</td><td style='text-align: center; word-wrap: break-word;'>19.23%</td><td style='text-align: center; word-wrap: break-word;'>13.61%</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>...</td><td style='text-align: center; word-wrap: break-word;'>...</td><td style='text-align: center; word-wrap: break-word;'>...</td><td style='text-align: center; word-wrap: break-word;'>...</td><td style='text-align: center; word-wrap: break-word;'>...</td></tr></table>

通过训练堆叠自编码器，输入原始数据通过多个编码器层提取特征，并通过解码器生成新数据。生成的与原始数据不同的数据，在保留特征的同时，可以用于弥补样本不足的情况。

#### 3.3.2 基于反向传播神经网络的定位识别

基于反向传播神经网络的定位识别框架如图 10 所示。

通过点云配准获得重叠率 c。考虑到配准过程中的误差以及神经网络输入数据的维数统一，将配准结果定义为 $\{c_{km}, m=1,2,\ldots,N_{w}\}$。此数组评估当前点云和每个车间点云的配准结果程度。$N_{w}$ 定义为车间数量，k 是当前点云的数量。我们获得当前点的物体列表，定义为 $\{o_{kn}, n=1,2,\ldots,N_{o}\}$。$N_{o}$ 定义为物体类型的数量。

BPNN 的输入通常是单维数组。为了保留注册和对象识别功能，我们将两个数组组合起来，定义为 $\{c_1, ..., c_{km}, o_1, ..., o_{kn}\}$，可以用 $\{F_k = f_1, f_2, ..., f_{kM}, M = N_w + N_o\}$ 替换。

![Image](images/a95d679c9d9863e9aaf8ee72d41665b0ec712f1a06f23bd0dfbeb3699052aa83.jpg)

<div style="text-align: center;">Fig. 16 Labelling of the point cloud. Most of the point cloud data involve the construction of structures and massive equipment</div>

训练后的编码器和解码器使用 $F_k$ 作为原始输入数据生成新的数据。生成的数据定义为 $\{y_k = y_{k1}, y_{k2}, \ldots, y_{kM}, M = N_w + N_o\}$。$F_k$ 和 $y_k$ 合并为 BPNN 的训练数据集。

根据训练数据，位置识别问题可以转换为位置分类问题。不同的工作坊定义为 1 到 $N_{w}$ 的数字，训练数据用工作坊的编号进行标注。由于本研究是一个分类问题，因此必须采用交叉熵损失作为指定的损失函数。该公式可以表示如下。

 $$ E=-\sum_{i=1}^{M}\hat{y}_{i}\ln y_{i} $$

在每次迭代中，为了最小化 L，使用反向传播算法来更新网络参数 $(w, b)$。公式如下。

---

![Image](images/b8304af3fb4f570e446ff07c09d65966a072011f57e8018f9786b6a811d5bbd1.jpg)

<div style="text-align: center;">Fig. 17 Accuracy and loss of PointNet</div>

![Image](images/8bf3c6193df23d6a0c922c334b571e987a10a04167be4c16f48f86fe9c4d4055.jpg)

<div style="text-align: center;">Table 2 Quantification of object recognition</div>

<table border=1 style='margin: auto; word-wrap: break-word;'><tr><td style='text-align: center; word-wrap: break-word;'>No.</td><td style='text-align: center; word-wrap: break-word;'>Steel furnace</td><td style='text-align: center; word-wrap: break-word;'>Crane bracket</td><td style='text-align: center; word-wrap: break-word;'>Wall</td><td style='text-align: center; word-wrap: break-word;'>Steel frame</td><td style='text-align: center; word-wrap: break-word;'>Rail car</td><td style='text-align: center; word-wrap: break-word;'>Digger</td><td style='text-align: center; word-wrap: break-word;'>Rigging</td><td style='text-align: center; word-wrap: break-word;'>Semi-finished product</td><td style='text-align: center; word-wrap: break-word;'>...</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>$o^{(1)}$</td><td style='text-align: center; word-wrap: break-word;'>3</td><td style='text-align: center; word-wrap: break-word;'>15</td><td style='text-align: center; word-wrap: break-word;'>6</td><td style='text-align: center; word-wrap: break-word;'>0</td><td style='text-align: center; word-wrap: break-word;'>0</td><td style='text-align: center; word-wrap: break-word;'>0</td><td style='text-align: center; word-wrap: break-word;'>0</td><td style='text-align: center; word-wrap: break-word;'>0</td><td style='text-align: center; word-wrap: break-word;'>...</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>$o^{(2)}$</td><td style='text-align: center; word-wrap: break-word;'>3</td><td style='text-align: center; word-wrap: break-word;'>13</td><td style='text-align: center; word-wrap: break-word;'>4</td><td style='text-align: center; word-wrap: break-word;'>2</td><td style='text-align: center; word-wrap: break-word;'>0</td><td style='text-align: center; word-wrap: break-word;'>0</td><td style='text-align: center; word-wrap: break-word;'>0</td><td style='text-align: center; word-wrap: break-word;'>0</td><td style='text-align: center; word-wrap: break-word;'>...</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>$o^{(3)}$</td><td style='text-align: center; word-wrap: break-word;'>3</td><td style='text-align: center; word-wrap: break-word;'>6</td><td style='text-align: center; word-wrap: break-word;'>1</td><td style='text-align: center; word-wrap: break-word;'>0</td><td style='text-align: center; word-wrap: break-word;'>0</td><td style='text-align: center; word-wrap: break-word;'>0</td><td style='text-align: center; word-wrap: break-word;'>0</td><td style='text-align: center; word-wrap: break-word;'>0</td><td style='text-align: center; word-wrap: break-word;'>...</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>$o^{(4)}$</td><td style='text-align: center; word-wrap: break-word;'>3</td><td style='text-align: center; word-wrap: break-word;'>8</td><td style='text-align: center; word-wrap: break-word;'>1</td><td style='text-align: center; word-wrap: break-word;'>1</td><td style='text-align: center; word-wrap: break-word;'>0</td><td style='text-align: center; word-wrap: break-word;'>0</td><td style='text-align: center; word-wrap: break-word;'>0</td><td style='text-align: center; word-wrap: break-word;'>0</td><td style='text-align: center; word-wrap: break-word;'>...</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>$o^{(5)}$</td><td style='text-align: center; word-wrap: break-word;'>5</td><td style='text-align: center; word-wrap: break-word;'>6</td><td style='text-align: center; word-wrap: break-word;'>1</td><td style='text-align: center; word-wrap: break-word;'>1</td><td style='text-align: center; word-wrap: break-word;'>0</td><td style='text-align: center; word-wrap: break-word;'>0</td><td style='text-align: center; word-wrap: break-word;'>0</td><td style='text-align: center; word-wrap: break-word;'>0</td><td style='text-align: center; word-wrap: break-word;'>...</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>...</td><td style='text-align: center; word-wrap: break-word;'>...</td><td style='text-align: center; word-wrap: break-word;'>...</td><td style='text-align: center; word-wrap: break-word;'>...</td><td style='text-align: center; word-wrap: break-word;'>...</td><td style='text-align: center; word-wrap: break-word;'>...</td><td style='text-align: center; word-wrap: break-word;'>...</td><td style='text-align: center; word-wrap: break-word;'>...</td><td style='text-align: center; word-wrap: break-word;'>...</td><td style='text-align: center; word-wrap: break-word;'>...</td></tr></table>

<div style="text-align: center;">Table 3 Dataset after fusion</div>

<table border=1 style='margin: auto; word-wrap: break-word;'><tr><td style='text-align: center; word-wrap: break-word;'>No.</td><td style='text-align: center; word-wrap: break-word;'>Overlap rate</td><td style='text-align: center; word-wrap: break-word;'>Object recognition quantity statistics</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>$y^{(1)}$</td><td style='text-align: center; word-wrap: break-word;'>$\mathsf{c}^{(1)}$</td><td style='text-align: center; word-wrap: break-word;'>$o^{(1)}$</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>$y^{(2)}$</td><td style='text-align: center; word-wrap: break-word;'>$\mathsf{c}^{(2)}$</td><td style='text-align: center; word-wrap: break-word;'>$o^{(2)}$</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>$y^{(3)}$</td><td style='text-align: center; word-wrap: break-word;'>$\mathsf{c}^{(3)}$</td><td style='text-align: center; word-wrap: break-word;'>$o^{(3)}$</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>$y^{(4)}$</td><td style='text-align: center; word-wrap: break-word;'>$\mathsf{c}^{(4)}$</td><td style='text-align: center; word-wrap: break-word;'>$o^{(4)}$</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>$y^{(5)}$</td><td style='text-align: center; word-wrap: break-word;'>$\mathsf{c}^{(5)}$</td><td style='text-align: center; word-wrap: break-word;'>$o^{(5)}$</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>......</td><td style='text-align: center; word-wrap: break-word;'>...</td><td style='text-align: center; word-wrap: break-word;'>...</td></tr></table>

<div style="text-align: center;">Table 4 Loss rates with the structure</div>

<table border=1 style='margin: auto; word-wrap: break-word;'><tr><td rowspan="2">Test No.</td><td colspan="3">Number of neurons in each layer of the SAE</td><td rowspan="2">Loss rate</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>Layer 1</td><td style='text-align: center; word-wrap: break-word;'>Layer 2</td><td style='text-align: center; word-wrap: break-word;'>Layer 3</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>1</td><td style='text-align: center; word-wrap: break-word;'>14</td><td style='text-align: center; word-wrap: break-word;'>30</td><td style='text-align: center; word-wrap: break-word;'>60</td><td style='text-align: center; word-wrap: break-word;'>0.5993</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>2</td><td style='text-align: center; word-wrap: break-word;'>14</td><td style='text-align: center; word-wrap: break-word;'>50</td><td style='text-align: center; word-wrap: break-word;'>80</td><td style='text-align: center; word-wrap: break-word;'>0.5883</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>3</td><td style='text-align: center; word-wrap: break-word;'>14</td><td style='text-align: center; word-wrap: break-word;'>20</td><td style='text-align: center; word-wrap: break-word;'>26</td><td style='text-align: center; word-wrap: break-word;'>0.2511</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>4</td><td style='text-align: center; word-wrap: break-word;'>14</td><td style='text-align: center; word-wrap: break-word;'>13</td><td style='text-align: center; word-wrap: break-word;'>12</td><td style='text-align: center; word-wrap: break-word;'>0.0874</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>5</td><td style='text-align: center; word-wrap: break-word;'>14</td><td style='text-align: center; word-wrap: break-word;'>12</td><td style='text-align: center; word-wrap: break-word;'>10</td><td style='text-align: center; word-wrap: break-word;'>0.0744</td></tr></table>

 $$ \Delta w=-\eta*\frac{\partial E}{\partial w},\Delta b=-\eta*\frac{\partial E}{\partial b} $$

### 3.4 方法总结

全局点云定义为 $P_g$，并根据封闭空间划分为多个房间点云 $P_m$。每个房间收集到的不同位置的当前点云表示为 $P_i$，并标注房间编号。在粗略和精细配准后，计算当前点云 $c_n$ 与 $P_i$ 之间的重合率 $P_m$。此外，通过 PointNet 对当前点云 $P_i$ 进行预处理以进行对象识别。当前点云中的对象数量表示为 $o_m$。数据集 $y_{m+n}$ 通过数据增强方法，将 $o_m$ 和 $c_n$ 组合得到。所有数据集被用作 BPNN 的输入数据集，并分为训练集和测试集。通过训练获得的模型参数在测试集上进行验证。

## 案例研究

在本节中，进行了一系列实验，以通过 LsLiDAR -C32 获得的点云数据集来验证模型的性能。该实验中使用的配备

---

![Image](images/a7e55393956acd1aab3ef23f48c2199c860bed853f3a7214d27f6e5ed695d748.jpg)

<div style="text-align: center;">Fig. 18 Grey images of the original and reconstructed data. The resemblance between the original data and the reconstructed data can be visually demonstrated more intuitively.</div>

<div style="text-align: center;">Fig. 19 Results of the object recognition data</div>

![Image](images/57b903dae20bb46ed239ffe18b15168e40aeb2bb41750db0af53b240a64eba30.jpg)

<div style="text-align: center;">Fig. 20 Results of the overlap rate data</div>

![Image](images/cd71633df392f25f8cd7e1228a014582fff29d90ed76dca4aa285faa6b780f11.jpg)

---

<div style="text-align: center;">Fig. 21 Results of the combined data</div>

![Image](images/09579c817d72a1aaa400b8b66c3387385d9b0d109460bf8342efb7c9820bea5f.jpg)

LiDAR 的机器人平台如图 11 所示。该模型在 Python 3.8 中实现，并在配备 GTX 3060ti GPU 的 Windows 10 系统上运行。

根据数据集，评估所提出的定位方法的有效性。在本节中，首先介绍如何处理原始点云数据集。随后，将详细描述神经网络和评估标准。最后，对该方法进行实验验证。

### 4.1 点云数据集预处理

我们从马斯泰尔特特钢厂的多个不同功能区域收集了样本。这些区域的体量和设备也各不相同，如图 12 所示。首先，为了获得全局点云数据，必须将扫描的点云合并，因为存在物理限制。激光雷达设备安装在移动机器人平台上，该平台按照预定的顺序系统地遍历整个工厂。随后构建了冶金厂的全局点云数据。冶金厂的不同车间可以被视为更大范围内更“房间”，每个房间都有其功能。因此，冶金厂的全局点云数据被划分为 1 到 4 号房间，分别是转炉钢厂、废料区、连续铸造车间 A 和连续铸造车间 B（图 13）。

当机器人到达某个区域或启动时，它会获取当前位置的点云数据。机器人原地旋转一次，获取的点云数据是当前点云数据。实验人员在每个房间的 15 个随机位置收集样本，每小时采集 3-4 次。如果机器人位于某些房间内，我们将使用其传感器的数据，并将其标记为相应的房间号。在工厂的几个位置收集的当前点云数据如图 14 所示。

为了建立当前点云数据和全局点云数据之间的关联，采用一种逐步的粗到精的配准方法，如图 15 所示。可以将当前点云数据视为全局点云数据的子集。考虑到不同区域之间的潜在相似性和固有的配准误差，子集与全局地图上的相应区域对齐。当前点云数据的重叠率在表 1 中，如下所示。

在点云识别之前，进行预处理步骤以消除离群点并降低数据的密度。通过移除地面点来对当前点云数据进行聚类，并将分类点云的每个部分视为一个独立的物体。点云数据是手动标记的，如图 16 所示。

经过处理后获得的标记点云数据，既作为深度学习中的 PointNet 的训练集，又作为测试集。准确率和损失如图 17 所示。

在完成 PointNet 训练后，使用 PointNet 计算对每个分割的点云进行评估。每个点云组中部分物体的数量在下表 2 中。

---

<div style="text-align: center;">Table 5 Results of several datasets</div>

<table border=1 style='margin: auto; word-wrap: break-word;'><tr><td rowspan="2">Datasets</td><td colspan="2">No. 1</td><td colspan="2">No. 2</td><td colspan="2">No. 3</td><td colspan="2">No. 4</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>Accuracy</td><td style='text-align: center; word-wrap: break-word;'>Loss</td><td style='text-align: center; word-wrap: break-word;'>Accuracy</td><td style='text-align: center; word-wrap: break-word;'>Loss</td><td style='text-align: center; word-wrap: break-word;'>Accuracy</td><td style='text-align: center; word-wrap: break-word;'>Loss</td><td style='text-align: center; word-wrap: break-word;'>Accuracy</td><td style='text-align: center; word-wrap: break-word;'>Loss</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>$c^{(n)}$</td><td style='text-align: center; word-wrap: break-word;'>0.9781</td><td style='text-align: center; word-wrap: break-word;'>0.7535</td><td style='text-align: center; word-wrap: break-word;'>0.9635</td><td style='text-align: center; word-wrap: break-word;'>0.7573</td><td style='text-align: center; word-wrap: break-word;'>0.9745</td><td style='text-align: center; word-wrap: break-word;'>0.7522</td><td style='text-align: center; word-wrap: break-word;'>0.9671</td><td style='text-align: center; word-wrap: break-word;'>0.7522</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>$o^{(n)}$</td><td style='text-align: center; word-wrap: break-word;'>0.887</td><td style='text-align: center; word-wrap: break-word;'>0.8596</td><td style='text-align: center; word-wrap: break-word;'>0.8953</td><td style='text-align: center; word-wrap: break-word;'>0.8645</td><td style='text-align: center; word-wrap: break-word;'>0.8733</td><td style='text-align: center; word-wrap: break-word;'>0.8661</td><td style='text-align: center; word-wrap: break-word;'>0.8833</td><td style='text-align: center; word-wrap: break-word;'>0.8495</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>$y^{(n)}$</td><td style='text-align: center; word-wrap: break-word;'>0.9917</td><td style='text-align: center; word-wrap: break-word;'>0.753</td><td style='text-align: center; word-wrap: break-word;'>0.9908</td><td style='text-align: center; word-wrap: break-word;'>0.7466</td><td style='text-align: center; word-wrap: break-word;'>0.9981</td><td style='text-align: center; word-wrap: break-word;'>0.7466</td><td style='text-align: center; word-wrap: break-word;'>0.9963</td><td style='text-align: center; word-wrap: break-word;'>0.7456</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>Datasets</td><td style='text-align: center; word-wrap: break-word;'>No. 5</td><td style='text-align: center; word-wrap: break-word;'>No. 6</td><td style='text-align: center; word-wrap: break-word;'>No. 7</td><td style='text-align: center; word-wrap: break-word;'>No. 8</td><td style='text-align: center; word-wrap: break-word;'>No. 8</td><td style='text-align: center; word-wrap: break-word;'>No. 8</td><td style='text-align: center; word-wrap: break-word;'>No. 8</td><td style='text-align: center; word-wrap: break-word;'>No. 8</td></tr><tr><td style='text-align: center; word-wrap: break-word;'></td><td style='text-align: center; word-wrap: break-word;'>Accuracy</td><td style='text-align: center; word-wrap: break-word;'>Loss</td><td style='text-align: center; word-wrap: break-word;'>Accuracy</td><td style='text-align: center; word-wrap: break-word;'>Loss</td><td style='text-align: center; word-wrap: break-word;'>Accuracy</td><td style='text-align: center; word-wrap: break-word;'>Loss</td><td style='text-align: center; word-wrap: break-word;'>Accuracy</td><td style='text-align: center; word-wrap: break-word;'>Loss</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>$c^{(n)}$</td><td style='text-align: center; word-wrap: break-word;'>0.9652</td><td style='text-align: center; word-wrap: break-word;'>0.7421</td><td style='text-align: center; word-wrap: break-word;'>0.9525</td><td style='text-align: center; word-wrap: break-word;'>0.7453</td><td style='text-align: center; word-wrap: break-word;'>0.9865</td><td style='text-align: center; word-wrap: break-word;'>0.7328</td><td style='text-align: center; word-wrap: break-word;'>0.9655</td><td style='text-align: center; word-wrap: break-word;'>0.7472</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>$o^{(n)}$</td><td style='text-align: center; word-wrap: break-word;'>0.876</td><td style='text-align: center; word-wrap: break-word;'>0.8656</td><td style='text-align: center; word-wrap: break-word;'>0.8825</td><td style='text-align: center; word-wrap: break-word;'>0.8325</td><td style='text-align: center; word-wrap: break-word;'>0.8733</td><td style='text-align: center; word-wrap: break-word;'>0.8551</td><td style='text-align: center; word-wrap: break-word;'>0.8644</td><td style='text-align: center; word-wrap: break-word;'>0.8475</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>$y^{(n)}$</td><td style='text-align: center; word-wrap: break-word;'>0.9912</td><td style='text-align: center; word-wrap: break-word;'>0.753</td><td style='text-align: center; word-wrap: break-word;'>0.991</td><td style='text-align: center; word-wrap: break-word;'>0.7376</td><td style='text-align: center; word-wrap: break-word;'>0.9901</td><td style='text-align: center; word-wrap: break-word;'>0.7467</td><td style='text-align: center; word-wrap: break-word;'>0.9893</td><td style='text-align: center; word-wrap: break-word;'>0.7427</td></tr></table>

接下来，将重叠率、重叠率以及物体识别数据组合在一起，用作定位的训练集。表 3 显示了融合后的数据集，表示为 $\mathbf{y}^{(n)} = [\mathbf{c}^{(n)}, \mathbf{o}^{(n)}]$。

### 4.2 超参数优化

为了提高 SAE 和 BPNN 模型的性能并优化实验结果，本研究对模型的每个参数进行了仔细优化。测试准确率和损失率通常用作衡量模型性能的标准。在本研究中，通过调整参数对精度的影响来选择最佳参数。由于神经网络的训练受到其随机初始值的影响，因此在许多实验中，最终结果存在轻微波动。因此，为了减少实验误差和结果的不确定性，使用在相同条件下进行的十次模拟实验的平均结果，作为所有列出的最终数据。

上述每个点云组的数据被融合为训练集。每个数据集可以表示为 $\{F_k = f_{kl}, f_2, \ldots, f_M, M = N_w + N_o\}$。 为了在后续使用增强数据集的训练中产生更显著的影响，采用了各种神经元数量的组合，如表 4 所示。 通过调整神经元的各种配置以增加生成数据的多样性，可以提高神经网络模型的鲁棒性和精度。

图 18 比较了原始数据和重构数据，它们以像素格式呈现。通过展示灰度图像，可以更直观地展示原始数据和重构数据之间的相似性。

### 4.3 不同数据集的结果

为了验证模型的性能，进行了多次比较实验，将该模型与其他数据集进行比较。训练过程首先仅使用目标识别数据。然后，重叠率仅用于进一步训练。最后，将融合的数据纳入全面的训练集中。下图说明了此细致训练过程的准确性和损失率。（图 19、20 和 21）

由于神经网络算法对随机初始值非常敏感，因此在完全相同的条件下进行了总共 8 次实验。重复进行八组实验，以选择具有低波动性和平均值的​​数据，以减少误差。细化的结果见表 5。

---

<div style="text-align: center;">Table 6 Results of several datasets</div>

<table border=1 style='margin: auto; word-wrap: break-word;'><tr><td rowspan="2">Datasets</td><td colspan="2">No. 1</td><td colspan="2">No. 2</td><td colspan="2">No. 3</td><td colspan="2">No. 4</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>Accuracy</td><td style='text-align: center; word-wrap: break-word;'>Loss</td><td style='text-align: center; word-wrap: break-word;'>Accuracy</td><td style='text-align: center; word-wrap: break-word;'>Loss</td><td style='text-align: center; word-wrap: break-word;'>Accuracy</td><td style='text-align: center; word-wrap: break-word;'>Loss</td><td style='text-align: center; word-wrap: break-word;'>Accuracy</td><td style='text-align: center; word-wrap: break-word;'>Loss</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>$y_{{0}}$</td><td style='text-align: center; word-wrap: break-word;'>0.8756</td><td style='text-align: center; word-wrap: break-word;'>0.8325</td><td style='text-align: center; word-wrap: break-word;'>0.8953</td><td style='text-align: center; word-wrap: break-word;'>0.8741</td><td style='text-align: center; word-wrap: break-word;'>0.8622</td><td style='text-align: center; word-wrap: break-word;'>0.8774</td><td style='text-align: center; word-wrap: break-word;'>0.8996</td><td style='text-align: center; word-wrap: break-word;'>0.8335</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>$y_{{1l}}$</td><td style='text-align: center; word-wrap: break-word;'>0.9781</td><td style='text-align: center; word-wrap: break-word;'>0.7911</td><td style='text-align: center; word-wrap: break-word;'>0.9755</td><td style='text-align: center; word-wrap: break-word;'>0.7878</td><td style='text-align: center; word-wrap: break-word;'>0.9645</td><td style='text-align: center; word-wrap: break-word;'>0.7822</td><td style='text-align: center; word-wrap: break-word;'>0.9782</td><td style='text-align: center; word-wrap: break-word;'>0.7822</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>$y_{{12}}$</td><td style='text-align: center; word-wrap: break-word;'>0.9852</td><td style='text-align: center; word-wrap: break-word;'>0.7724</td><td style='text-align: center; word-wrap: break-word;'>0.9855</td><td style='text-align: center; word-wrap: break-word;'>0.7573</td><td style='text-align: center; word-wrap: break-word;'>0.9723</td><td style='text-align: center; word-wrap: break-word;'>0.7713</td><td style='text-align: center; word-wrap: break-word;'>0.9871</td><td style='text-align: center; word-wrap: break-word;'>0.7723</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>$y_{{13}}$</td><td style='text-align: center; word-wrap: break-word;'>0.9891</td><td style='text-align: center; word-wrap: break-word;'>0.7635</td><td style='text-align: center; word-wrap: break-word;'>0.9843</td><td style='text-align: center; word-wrap: break-word;'>0.7611</td><td style='text-align: center; word-wrap: break-word;'>0.9864</td><td style='text-align: center; word-wrap: break-word;'>0.7656</td><td style='text-align: center; word-wrap: break-word;'>0.9833</td><td style='text-align: center; word-wrap: break-word;'>0.7695</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>$y_{{14}}$</td><td style='text-align: center; word-wrap: break-word;'>0.9982</td><td style='text-align: center; word-wrap: break-word;'>0.7624</td><td style='text-align: center; word-wrap: break-word;'>0.9855</td><td style='text-align: center; word-wrap: break-word;'>0.7973</td><td style='text-align: center; word-wrap: break-word;'>0.9865</td><td style='text-align: center; word-wrap: break-word;'>0.7622</td><td style='text-align: center; word-wrap: break-word;'>0.9872</td><td style='text-align: center; word-wrap: break-word;'>0.7638</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>$y_{{15}}$</td><td style='text-align: center; word-wrap: break-word;'>0.9881</td><td style='text-align: center; word-wrap: break-word;'>0.7535</td><td style='text-align: center; word-wrap: break-word;'>0.9855</td><td style='text-align: center; word-wrap: break-word;'>0.7673</td><td style='text-align: center; word-wrap: break-word;'>0.9965</td><td style='text-align: center; word-wrap: break-word;'>0.7677</td><td style='text-align: center; word-wrap: break-word;'>0.9982</td><td style='text-align: center; word-wrap: break-word;'>0.7645</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>$y_{{1c}}$</td><td style='text-align: center; word-wrap: break-word;'>0.9921</td><td style='text-align: center; word-wrap: break-word;'>0.7513</td><td style='text-align: center; word-wrap: break-word;'>0.9914</td><td style='text-align: center; word-wrap: break-word;'>0.7356</td><td style='text-align: center; word-wrap: break-word;'>0.9967</td><td style='text-align: center; word-wrap: break-word;'>0.7652</td><td style='text-align: center; word-wrap: break-word;'>0.9963</td><td style='text-align: center; word-wrap: break-word;'>0.7531</td></tr></table>

上述数据表明，融合数据集的准确率明显高于所有融合之前的数据集。此外，收敛速度更快，损失率更低。最后，该模型在测试中实现了高达 99% 的令人印象深刻的准确率，同时损失值保持在 0.75。

根据先前的 SAE 中神经元数量的不同组合，获得了不同的数据集，分别用 $y_{t}$ 到 $y_{t5}$ 表示。未增强的原始数据集用 $y_{0}$ 表示。此外，从 5 组数据中提取相同数量的数据并组合，该组合用 $y_{tc}$ 表示。通过将不同的组合应用于 BPNN 计算，可以获得准确率和损失率，如表所示。（表 6）

根据表格中的准确率和损失率，数据增强可以提高计算精度。不同的神经元组合具有不同的计算精度。融合各种组合的数据集进一步提高了算法的精度。换句话说，在样本数据不足的情况下，本文提出的方法为工业车间中的精确定位提供了一种模型。

另一篇论文的作者旨在为室内移动机器人实现鲁棒且经济的房间级定位 [^3]. 提出了一种机器人房间级定位方法，并针对收集的声纳测量数据集评估了不同编码策略的性能。从大学建筑内的十个不同功能区域收集了多个样本。

设置了不同的难度级别，并独立评估了不同情况下的性能。三种情况下的准确率分别为 0.92、0.81 和 0.78。然而，干扰的引入会对识别产生重大影响。在本文中，通过使用在冶金厂不同车间收集的数据来计算所提出方法的定位精度。

表 7 显示了两种机器人定位方法的比较。CSP、CSWA、CSWB 和 WA 分别代表转炉钢厂、连续铸造车间 A、连续铸造车间 B 和废弃区域。HSF、KIT、CAF、INF、STO、HFF 和 GYM 分别代表二楼大厅、厨房、咖啡厅、信息台、储藏室、一楼大厅和体育馆。

与上述方法相比，我们的方法涉及在工业车间的几个功能区域收集多个样本。工业车间比办公楼大得多。此外，其中的设备和物体经常移动和变化，并且存在许多干扰因素。在此基础上，本文提出的方法的精度仍然优于其他方法。

### 4.4 讨论

算法的准确性通过上述实验进行评估，但许多方面值得进一步研究。激光雷达在获取当前位置点云时，需要收集一定的数据，才能进行识别和定位。因此，获取准确的定位信息需要时间，计算结果存在一定的延迟。数据增强过程需要对输入数据进行编码和解码，这会消耗一定的计算资源。当点云数据的量超过一定水平时，机器人上安装的硬件设备可能无法及时完成计算，从而影响算法的实时性能。如果样本数量太少，即使使用数据增强，也可能引入过拟合问题。其次，在缺乏明确路线和典型建筑结构的非结构化工厂环境中，该方法的应用可能会面临重大挑战。此外，我们仅使用单个激光雷达设备来收集点云数据，没有考虑可能影响结果的因素，例如梯度、距离和密度，这可能导致点云数据不完整或不准确。此外，本文仅收集了 4 个冶金车间的点云数据，识别更多房间和更多变化的环境需要进一步研究。

针对上述不足，未来我们将对以下方面进行进一步研究。首先，

---

<div style="text-align: center;">Table 7 Comparison of the two robot localization methods</div>

<table border=1 style='margin: auto; word-wrap: break-word;'><tr><td style='text-align: center; word-wrap: break-word;'>Rooms</td><td style='text-align: center; word-wrap: break-word;'>CSP</td><td style='text-align: center; word-wrap: break-word;'>CSWA</td><td style='text-align: center; word-wrap: break-word;'>CSWB</td><td style='text-align: center; word-wrap: break-word;'>WA</td><td style='text-align: center; word-wrap: break-word;'>HSF</td><td style='text-align: center; word-wrap: break-word;'>KIT</td><td style='text-align: center; word-wrap: break-word;'>CAF</td><td style='text-align: center; word-wrap: break-word;'>INF</td><td style='text-align: center; word-wrap: break-word;'>STO</td><td style='text-align: center; word-wrap: break-word;'>HFF</td><td style='text-align: center; word-wrap: break-word;'>GYM</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>Accuracy</td><td style='text-align: center; word-wrap: break-word;'>0.99</td><td style='text-align: center; word-wrap: break-word;'>0.98</td><td style='text-align: center; word-wrap: break-word;'>0.99</td><td style='text-align: center; word-wrap: break-word;'>0.98</td><td style='text-align: center; word-wrap: break-word;'>0.83</td><td style='text-align: center; word-wrap: break-word;'>0.85</td><td style='text-align: center; word-wrap: break-word;'>0.83</td><td style='text-align: center; word-wrap: break-word;'>0.83</td><td style='text-align: center; word-wrap: break-word;'>0.92</td><td style='text-align: center; word-wrap: break-word;'>0.80</td><td style='text-align: center; word-wrap: break-word;'>0.88</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>Size (m)</td><td style='text-align: center; word-wrap: break-word;'>100 $\times$ 250</td><td style='text-align: center; word-wrap: break-word;'></td><td style='text-align: center; word-wrap: break-word;'></td><td style='text-align: center; word-wrap: break-word;'></td><td style='text-align: center; word-wrap: break-word;'>4.8 $\times$ 21</td><td style='text-align: center; word-wrap: break-word;'></td><td style='text-align: center; word-wrap: break-word;'></td><td style='text-align: center; word-wrap: break-word;'></td><td style='text-align: center; word-wrap: break-word;'></td><td style='text-align: center; word-wrap: break-word;'></td><td style='text-align: center; word-wrap: break-word;'></td></tr></table>

我们通过减少 LiDAR 扫描时间来获取当前位置的点云数据。我们将研究如何在数据不足的情况下处理点云数据，以确保在提高实时性能的前提下实现准确的定位。我们将研究该算法的潜在局限性。我们将研究数据增强如何具体影响计算成本，并确定可保证算法使用的最大数据量。我们将研究如何减轻或避免在数据不足的情况下出现过拟合问题，以及确保算法实施所需的最小数据量。我们还将进一步确定环境中的大小和混乱程度如何影响该方法的实施。其次，我们将增加用于获取各种环境信息的传感器类型和数量，以解决原始数据不足的问题。然后，我们将进一步改进现有的模型，并调整必要的参数，以提高操作效率，从而使该方法能够实现更好的实时定位。此外，未来我们将从更大规模的工业厂区收集数据，这些厂区拥有更多的车间和更复杂的作业环境。所提出的方法通过增加实验难度得到了进一步的改进。

## 5 结论

本文提出了一种基于点云配准和目标识别的移动机器人在房间级别的定位方法。该方法基于两种3D激光雷达定位方法，即基于检索的方法和基于配准的方法。两种方法都以特征数据为基础进行定位，并通过数据增强来增加原始数据量，以解决原始数据不足的问题。将定位问题转化为分类问题，并使用反向传播神经网络算法进行识别。在此基础上，我们收集了来自冶金厂的原始点云数据，并进行了实验，以验证所提出方法的准确性。

本文提出的方法为移动机器人在复杂环境中的定位提供了一种可行的方法。移动机器人在复杂工业环境中的定位至关重要。由于该方法的局限性，我们进一步研究了算法的效率和准确性，从算法的实时性、多传感器信息融合以及算法在更复杂环境下的效果等方面进行研究。

数据可用性：本研究的数据集已上传到GitHub，可以通过以下链接访问：<https://github.com/lanfengzhiwuZ/Robot_localization>。

---

## 声明

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

数据使用的伦理和知情同意：本研究由作者进行，除了作者之外，没有其他人类参与者。已从所有作者处获得知情同意。

## 参考文献

1. Chung M-A, Lin C-W (2022) An improved localization of mobile robotic system based on AMCL Algorithm. IEEE Sens J 22(1):900–908. <https://doi.org/10.1109/JSEN.2021.3126605>

2. Yu S, Wang C, Yu Z, Li X, Cheng M, Zang Y (2021) 密集城市区域基于激光雷达定位的深度回归。ISPRS J Photogramm Remote Sens 172:240–252. <https://doi.org/10.1016/j.isprsjprs.2020.12.013>

3. Liu H, Sun F, Fang B, Zhang X (2017) Robotic room-level localization using multiple sets of Sonar measurements. IEEE Trans Instrum Meas 66(1):2–13. <https://doi.org/10.1109/TIM.2016.2618978>

4. Yang N, von Stumberg L, Wang R, Cremers D (2020) D3VO: Deep depth, deep pose and deep uncertainty for monocular visual odometry. In: 2020 IEEE/CVF Conference on Computer Vision and Pattern Recognition (CVPR). IEEE, Seattle, WA, USA. pp 1278–1289. <https://doi.org/10.1109/CVPR42600.2020.00136>

5. Rozenberszki D, Majdik AL (2020) LOL: Lidar-only odometry and localization in 3D point cloud maps. In: 2020 IEEE International Conference on Robotics and Automation (ICRA). IEEE, Paris, France, pp 4379–4385. <https://doi.org/10.1109/ICRA40945.2020.9197450>

6. Bianchi V, Ciampolini P, De Munari I (2019) RSSI-based indoor localization and identification for zigbee wireless sensor networks in smart homes. IEEE Trans Instrum Meas 68(2):566–575. <https://doi.org/10.1109/TIM.2018.2851675>

7. Niu J, Wang B, Cheng L, Rodrigues JJPC (2015) WicLoc: An indoor localization system based on WiFi fingerprints and crowdsourcing. In 2015 IEEE International Conference on Communications (ICC). IEEE, London, pp 3008–3013. <https://doi.org/10.1109/ICC.2015.7248785>

8. Yoo W、Kim H、Shin M (2020) 面向站点的室内定位（SOIL）：一种基于BIM的占用进度建模系统。《建筑环境》（Build Environ）168:106520。 <https://doi.org/10.1016/j.buildenv.2019.106520>

9. Li S, Lu J, Chen S (2020) 基于多天线 RFID 读写器，提出了一种基于房间级别的标签轨迹识别系统。Comput Commun 149:350–355. <https://doi.org/10.1016/j.comcom.2019.10.025>

10. Liu X, Zhan Y, Cen J (2018) 开发了一种基于能量效率的基于众包的室内自动定位系统。IEEE Sens J 18:6009–6022. <https://doi.org/10.1109/JSEN.2018.2842239>

11. Wang B, Chen C, Xiaoxuan LuC, Zhao P, Trigoni N, Markham A (2020) AtLoc: 基于注意力机制的相机定位。AAAI 34(06):10393–10401. <https://doi.org/10.1609/aaai.v34i06.6608>

12. Zhang Z, Zhao J, Huang C, Li L (2023) 提出了一种用于自动驾驶车辆松散多传感器融合定位的基于视觉语义地图匹配的学习方法。IEEE Trans Intell Veh 8(1):358–367. <https://doi.org/10.1109/TIV.2022.3173662>

[^13]: Cheong H, Kim E, Park S-K (2019) Indoor global localization using depth-guided photometric edge descriptor for mobile robot

导航。IEEE Sensors J 19(22):10837–10847. <https://doi.org/10.1109/JSEN.2019.2932131>

14. Dubé R et al (2020) SegMap: 基于数据驱动描述符的基于分割的地图和定位。Int J Robot Research 39(2–3):339–355. <https://doi.org/10.1177/0278364919863090>

15. Li W, Wang C, Lin C, Xiao G, Wen C, Li J (2020) 通过超体素引导和博弈论优化，提出了一种用于点云配准的内点提取方法。ISPRS J Photogramm Remote Sens 163:284–299. <https://doi.org/10.1016/j.isprsjprs.2020.01.021>

16. Li J, Zhan J, Zhou T, Bento VA, Wang Q (2022) 提出了一种基于体素平面特征的点云配准和定位方法。ISPRS Journal of Photogrammetry and Remote Sensing 188:363–379. <https://doi.org/10.1016/j.isprsjprs.2022.04.017>

17. Yan B, Fan P, Lei X, Liu Z, Yang F (2021) 提出了一种基于改进 YOLOv5 的实时苹果目标检测方法，用于采摘机器人。Remote Sens 13(9):1619. <https://doi.org/10.3390/rs13091619>

18. Wu Y, Wang Y, Zhang S, Ogai H (2021) 综述了使用 LiDAR 数据的深度 3D 目标检测网络。IEEE Sens J 21(2):1152–1171. <https://doi.org/10.1109/JSEN.2020.3020626>

19. Dong Z, Yang B, Liang F, Huang R, Scherer S (2018) 提出了一种基于二元形状上下文描述符的无序 TLS 点云分层配准方法。ISPRS J Photogrammet Remote Sens 144:61–79. <https://doi.org/10.1016/j.isprsjprs.2018.06.018>

20. Han X-F, Yan X-Y, Sun S-J (2021) 提出了一种用于基于 3D 点云的对象识别的新方法。Multimed Tools Appl 80(17):26121–26143. <https://doi.org/10.1007/s11042-021-10794-3>

21. Zhirong Wu et al (2015) “3D ShapeNets: 用于体积形状的深度表示”。In: 2015 IEEE Conference on Computer Vision and Pattern Recognition (CVPR). IEEE, Boston, MA, USA. pp 1912–1920. <https://doi.org/10.1109/CVPR.2015.7298801>

22. Gao H, Cheng B, Wang J, Li K, Zhao J, Li D (2018) 提出了一种基于 CNN 融合视觉和 LiDAR 的物体分类方法，用于自动驾驶环境。IEEE Trans Ind Inf 14(9):4224–4231. <https://doi.org/10.1109/TII.2018.2822828>

23. Charles RQ, Su H, Kaichun M, Guibas LJ (2017) PointNet: 用于 3D 分类和分割的基于点的深度学习。In: 2017 IEEE Conference on Computer Vision and Pattern Recognition (CVPR). IEEE, Honolulu, HI. pp 77–85. <https://doi.org/10.1109/CVPR.2017.16>

24. Uy MA, Lee GH (2018) PointNetVLAD: 用于大规模地点识别的基于点云的深度检索。In: 2018 IEEE/CVF Conference on Computer Vision and Pattern Recognition. IEEE. Salt Lake City, UT, USA, pp 4470–4479. <https://doi.org/10.1109/CVPR.2018.00470>

25. Zhang W, Xiao C (2019) PCAN: 利用上下文信息进行 3D 注意力图学习，用于基于点云的检索。In: 2019 IEEE/CVF Conference on Computer Vision and Pattern Recognition (CVPR). IEEE. Long Beach, CA, USA, pp 12428–12437. <https://doi.org/10.1109/CVPR.2019.01272>

26. Yang Y, Chen F, Wu F, Zeng D, Ji Y, Jing X-Y (2020) 用于基于点云的三维物体检测的多视角语义学习网络。神经计算 397:477–485. <https://doi.org/10.1016/j.neucom.2019.10.116>

27. Ji C-L, Yu T, Gao P, Wang F, Yuan R-Y (2024) YOLO-TLA：一种基于YOLOv5的轻量级小型物体检测模型。实时图像处理杂志 21(4):141. <https://doi.org/10.1007/s11554-024-01519-4>

28. Ji C, Liu G, Zhao D (2022) 通过估计配对的关键点进行单目三维物体检测，用于自动驾驶。多媒体工具应用 81(4):5973–5988. <https://doi.org/10.1007/s11042-021-11801-3>

## [^29]: Liu B, Tian B, Wang H, Qiao J, Wang Z (2022) FuseNet: 3D object detection network with fused information for lidar point

---

点云。神经网络前馈 54(6):5063–5078. <https://doi.org/10.1007/s11063-022-10848-z>

30. Dong Z 等 (2020) 大型地面激光扫描点云的配准：综述与基准。ISPRS 光学遥感杂志 163:327–342. <https://doi.org/10.1016/j.isprsjprs.2020.03.013>

Nguyen HL, Belton D, Helmholz P (2019) 审查使用改进误差指标的移动激光扫描无目标配准方法，用于城市区域。摄影测量记录 34(167):282–303. <https://doi.org/10.1111/phor.12293>

Wei P, Yan L, Xie H, Huang M (2022) 基于平面原始形状描述符和拓扑图投票的自动粗配准点云。自动化施工 134:104055. <https://doi.org/10.1016/j.autcon.2021.104055>

Johnson AE, Hebert M (1999) 使用自旋图像在混乱的三维场景中进行高效物体识别。IEEE 模式分析与机器智能杂志 21(5):433–449. <https://doi.org/10.1109/34.765655>

Rusu RB, Blodow N, Marton ZC, Beetz M (2008) 使用持久特征直方图对齐点云视图。2008 年 IEEE/RSJ 智能机器人与系统国际会议。IEEE，尼斯，第 3384–3391 页。<https://doi.org/10.1109/IROS.2008.4650967>

Rusu RB, Blodow N, Beetz M (2009) 3D 配准的快速点特征直方图 (FPFH)。2009 年 IEEE 机器人与自动化国际会议。IEEE，神户，第 3212–3217 页。<https://doi.org/10.1109/ROBOT.2009.5152473>

Zhao Z, Zhang W, Gu J, Yang J, Huang K (2019) 基于轻量级语义分割的激光雷达制图优化。IEEE 智能车辆交易 4(3):353–362. <https://doi.org/10.1109/TIV.2019.2919432>

Lin L, Zhang W, Cheng M, Wen C, Wang C (2022) 基于平面原始组的点云配准，用于地下停车场中自动驾驶车辆定位。IEEE 地球科学与遥感字母 19:1–5. <https://doi.org/10.1109/LGRSR.2021.3053252>

Guevara J, Gene-Mola J, Gregorio E, Auat Cheein F (2022) 3D 谱图小波点特征在预处理阶段的应用，用于结构不规则果园环境中的移动激光扫描点云配准。IEEE 传感器杂志 22(2):1720–1728. <https://doi.org/10.1109/JSEN.2021.3129340>

周 B, 何 Y, 黄 W, 于 X, 方 F, 李 X (2022) 基于随机森林学习的 3D LiDAR 的室外移动机器人的定位和导航。智能机器人系统杂志 104(4):72. <https://doi.org/10.1007/s10846-021-01545-5>

Xu Z, Xu E, Zhang Z, Wu L (2019) 嵌入多尺度稀疏特征的 4 点共轭集，用于全局点云配准。IEEE 地球科学与遥感字母 16(2):286–290. <https://doi.org/10.1109/LGRS.2018.2872353>

Besl PJ, McKay ND (1992) 一种 3 维形状配准方法。IEEE 模式分析与机器智能杂志 14(2):239–256. <https://doi.org/10.1109/34.121791>

Quan D 等 (2022) 用于多模遥感图像配准的深度特征相关性学习。IEEE 地球科学与遥感交易 60:1–16. <https://doi.org/10.1109/TGRS.2022.3187015>

43. Li L, Han L, Ding M, Liu Z, Cao H (2022) 基于深度学习回归模型的遥感图像配准. IEEE 地球遥感字母 19:1–5. <https://doi.org/10.1109/LGRS.2020.3032439>

44. Shi Z, Chang C, Chen H, Du X, Zhang H (2022) PR-NET: 用于图像操作定位的逐步优化神经网络. 智能系统国际期刊 37(5):3166–3188. <https://doi.org/10.1002/int.22822>

45. Du S, Zheng N, Ying S, Liu J (2010) 用于点集配准的仿射迭代最近点算法. 模式识别字母 31(9):791–799. <https://doi.org/10.1016/j.patrec.2010.01.020>

46. Du S, Zheng N, Xiong L, Ying S, Xue J (2010) 用于 m 维点集配准的缩放迭代最近点算法. 图像表示与视觉通信期刊 21(5–6):442–452. <https://doi.org/10.1016/j.jvcir.2010.02.005>

47. Zhang W 等 (2016) 基于布料模拟的易于使用的机载 LiDAR 数据过滤方法. 遥感 8(6):501. <https://doi.org/10.3390/rs8060501>

出版商声明：斯普林格自然保持中立，不偏袒任何管辖权声明或机构隶属关系。

斯普林格自然或其许可方（例如，一个学会或其他合作伙伴）根据与作者或其他权利人签订的出版协议，对本文拥有独家权利；本文的接受稿版本由作者自行存档，仅受该出版协议和适用法律的约束。

![Image](images/fd7db0e842bf257ca8621ad767c08acc3937a69e4e785dac5ea0bb22cd4883f8.jpg)

李云志是安徽科技大学的博士生，参与了多个国家级的研究项目。他的主要研究方向是智能设备的开发以及人工智能在工业领域的应用。

![Image](images/b3b100a864b4dea461dce3341c6572b61d3eb78db26613af16d2c32da3639844.jpg)

谭利斌是安徽科技大学的硕士导师。他的主要研究领域是智能设备开发、数字设计与制造以及人工智能在工业领域的应用。他主导并参与了多个国家级的科研项目，包括国家重点研发计划和国家自然科学基金。

---

![Image](images/1ce65ce3bd5459212a0b56d5935a932b8ca3f07ade64f95559cd15273fa771c0.jpg)

徐祥荣是安徽科技大学的博士生导师，是电气和电子工程师协会（IEEE）和 ASME 协会的成员，并担任多个国际学术期刊和会议的审稿人。他的研究兴趣包括仿生学、飞行机器人、机器人轨迹规划与控制、生物力学等。他主导并参与了多个国家级的科研项目，包括国家重点研发计划和国家自然科学基金。

![Image](images/4697f27ed64b243dc9b5454945686d12d96dc1f711fd4af389d64b708d466556.jpg)

张泽群是南京航空航天大学的博士后和硕士导师。他的主要研究领域是智能制造系统和人工智能。他主导并参与了多个国家级的科研项目，包括国家重点研发计划、国家自然科学基金和国家国防基础研究项目。
