基于自编码器的鲁棒压缩直方图化:面向SPAD直接ToF LiDAR挑战性场景
摘要
高分辨率单光子雪崩二极管(SPAD)传感器阵列芯片在光检测与测距(LiDAR)中因使用时相关单光子计数(TCSPC)而面临处理高速数据流的挑战。片上部分直方图化方法存在压缩率(CR)低、延迟高的问题。计数/直方图无关方法噪声敏感度高。直接对接收光子进行压缩已实现高CR,但依赖手工设计的分析码本(CBs),缺乏鲁棒性。本文提出一种基于自编码器的鲁棒数据驱动压缩直方图化方法,在准确性提升方面优于先前的压缩方法,能够覆盖挑战性成像场景。此外,提出并在FPGA上实现了一个可处理至少每次照射64个时间戳的紧凑4位量化压缩引擎。将该引擎与我们之前的SPAD阵列芯片连接后,构建了一个线扫描LiDAR系统。与基于TCSPC的全直方图电路相比,内存尺寸减小了3.76\times,同时保持类似的深度精度。与基于扫频的部分直方图电路相比,所提设计实现了4\times 的CR提升和65%的均方根深度误差(RMSE)。
作者
Lichen Feng 西安电子科技大学集成电路学院模拟集成电路重点实验室,西安,中国 ORCID: 0000-0002-7685-2141
Yimeng Liu 西安电子科技大学集成电路学院模拟集成电路重点实验室,西安,中国 ORCID: 0009-0008-7342-170X
Dong Li 西安电子科技大学集成电路学院模拟集成电路重点实验室,西安,中国 ORCID: 0000-0002-0368-3017
Yaoqi Bao 西安电子科技大学集成电路学院模拟集成电路重点实验室,西安,中国 ORCID: 0000-0002-7560-5990
Rui Ma 西安电子科技大学集成电路学院模拟集成电路重点实验室, 中国西安 ORCID: 0000-0001-5015-4989
Zhangming Zhu 西安电子科技大学集成电路学院模拟集成电路重点实验室, 中国西安 ORCID: 0000-0002-7764-1928
出版信息
期刊: IEEE Sensors Journal 年份: 2025 卷: 25 期: 14 页码: 27701-27711 DOI: 10.1109/JSEN.2025.3575784 文章编号: 11028946 ISSN: Print ISSN: 1530-437X, Electronic ISSN: 1558-1748, CD: 2379-9153
指标
总下载量: 202
资助
国家科学技术重大项目(资助号: 2021ZD0114403)
中国国家自然科学基金(资助号: 62474128, 62134005, 62021004 和 62204181)
关键词
IEEE 关键词: 直方图, 单光子雪崩二极管, 光子学, 自编码器, 激光雷达, 编码, 片上系统, 成像, 准确性, 照明
索引术语: 激光雷达, 挑战场景, 单光子雪崩二极管, 照明, 数据速率, 时间相关单光子计数, 内存大小, 准确深度, 深度误差, 神经网络, 成像结果, 深度图像, 成像条件, 明显峰值, 光子计数, 挑战条件, 完整方法, 深度估计, 头部形状, 直方图方法, 时域数字转换器, 格雷码, 编码方法, 场景变化, 帧间, 计数值, 工艺节点, 直方图形式, 自编码器模型
作者关键词: 自编码器, 直方图压缩, 激光雷达 (LiDAR), 单光子雪崩二极管 (SPAD), 时间相关单光子计数 (TCSPC)
未定义
第一节. 引言
光学探测与测距(LiDAR)系统 1 支持广泛的视觉应用,特别是汽车驾驶的长距离感知 2,这涉及具有挑战性的成像场景。基于单光子雪崩二极管(SPAD)的 LiDAR 具有更优的优势,例如光子级灵敏度 3、皮秒级分辨率 4、快速门控 5,以及与成熟的 CMOS 工艺 6 的兼容性,具有成本效益。
在直接飞行时间(D-ToF)LiDAR 中,检测到的光子会产生一个脉冲,然后通过时域到数字转换器(TDC)转换为时间戳。为了补偿如环境光 7 等非理想效应,时相关单光子计数(TCSPC)方法 8 被广泛用于构建时间戳直方图,以进行表面深度估计。在 30 帧/秒、四分之一视频图形阵列(QVGA)分辨率下运行的 LiDAR 将产生 18 Gb/s 的数据速率(假设每个 SPAD 像素 1\times 10^{3} 个箱子,每个箱子 1 字节),这对数据读取提出了重大挑战。基于完整直方图的直接片上深度计算可以将数据速率降低 10^{3}\times(将 10^{3} 个箱子减少到一个深度),但所需的内存尺寸相当大。假设扫描方案每个周期处理一行 240 像素,缓存一行的直方图需要 1.92 Mb,这占用了相当大的硅面积。
在闪光雷达中,配备定制像素内TDC的芯片内部分直方图方法已被硅验证 9、10、11、12、13、14。
“Zooming” 技术可自适应地调整时间窗口大小,以减少箱数 15、16、17。
Gyongy 等人 18 提出了一种位移方法,用于定位和跟踪峰值。
在 19 中实现了一种基于扫描的方案,采用 FIR 滤波器进行芯片内峰值提取。
然而,这些间接方法需要在每一次照明周期内开启一个收窄的时间窗口。
当光子被接收但处于时间窗口之外时,照明功率被浪费。
需要更多曝光步骤,导致延迟增加 20。
最近,提出了一种无计数方法 21,可即时更新比较阈值。
它每像素需要两个寄存器,但在苛刻条件下的精度有限。
Tontini 等人 22 提出了一种无直方图方法,仅需要每像素两个计数器和一个累加器,但在每次深度估计前记录背景噪声的额外阶段会增加其延迟。
递归神经网络,例如长短时记忆 23 和尖峰勒让德记忆单元 24,也被用于通过时间步长 25 或检测到的 SPAD 脉冲 26 以数据驱动方式估计深度。
然而,它们无法被 SPAD 像素共享的高复杂性,在应用于高分辨率 SPAD 数组之前仍需简化。
压缩感知策略 27、28、29、30,其码本 (CBs) 可在 SPAD 之间共享,已成功应用于完整直方图而无需缩小时间窗口。 每个照明周期内接收的时间戳被编码到周期内的压缩表示中,从而在运行时减少所需的内存大小和数据传输速率。 Sheehan 等人 31 将直方图编码到傅里叶域,并基于最大似然估计重建 D-ToF。 Gutierrez-Barragan 等人 32 提出并评估了不同的编码方案,并通过低深度误差的基于格雷码的编码实现了高达 128 的压缩比 (CR)。 Poisson 等人 33 引入伪随机投影用于直方图压缩。 一般而言,这些方法使用硬件友好的 CB 对接收的光子进行解析编码。 然而,针对特定场景进行定制时,它们手工设计的解析 CB 对成像条件的变化敏感。
人工神经网络 34 的近期成功大幅降低了对手工解析 CB 的需求,并在极具挑战性的成像条件下提升了性能。 然而,尚未对在芯片上应用基于学习的压缩直方图进行明确讨论。 本文借鉴编码方案 35 与数据驱动神经网络 36,设计并评估了用于高效芯片内 SPAD 直方图压缩的自动编码器 37。 自动编码器是一类旨在学习输入数据(本文中的 SPAD 直方图)压缩表示的神经网络。 从该表示中可以极小误差解码输入,这与现有的压缩直方图方法 38、39、40、41 一致。 因此,我们可以利用自动编码器实现基于学习的压缩直方图。 本研究的主要贡献可总结如下。
本研究首次将自编码器应用于直方图压缩。提出了定制自编码器,以同时降低片上计算量并提高深度估计精度。该方法在多种成像场景(包括极具挑战性的场景)中进行评估,展示了此数据驱动模型相较于以往方法的卓越鲁棒性。
基于上述方法,设计了一种能够每次照明处理至少64个时间戳的紧凑压缩引擎,并在FPGA上实现。通过将该引擎与我们的SPAD阵列芯片 42 连接,构建了LiDAR系统。与基于TCSPC的电路相比,在保持相似深度精度的前提下,内存尺寸缩减了 3.76\times。与扫频式电路相比,CR提升了 4\times,同时均方根深度误差(RMSE)下降了65%。
本文其余部分的组织结构如下:第II节描述基于自编码器的压缩单光子直方图化;第III节展示定量指标分析及成像结果,论证了性能与鲁棒性的提升;第IV节阐述紧凑压缩引擎,并呈现FPGA实现结果,与先前方法进行对比;第V节给出结论。
第II节. 基于自编码器的压缩直方图生成
A. 基于TCSPC的SPAD D-ToF LiDAR直方图化概述
图 1 展示了使用 TCSPC 的简化 SPAD D-ToF LiDAR 系统示意图。激光在起始脉冲触发下向场景发射光子脉冲波。接收芯片上的 SPAD 像素检测到单个反射光子。若存在单个光子,SPAD 产生雪崩放电,产生可直接探测的停止脉冲。随后 TDC 将起始脉冲与停止脉冲之间的时间差转换为数字时间戳,该时间戳即 D-ToF,代表 2\times 的反射面深度。
图 1. SPAD D-ToF LiDAR 的简化系统级示意图.
在一般场景中,具有单一明显的反射面时,反射光子呈现与激光脉冲相同的包络形状,为简化起见,假设其服从正态分布 N(\mu,\sigma ^{2})。由于存在环境光,接收芯片上的 SPAD 也会随机接收到不需要的光子,以满足在低环境光条件下的均匀分布 \textbf {U}'。在关注的时间范围内,离散化时间戳区间的数量记为 N。设 \tau 表示物理时间戳,因此离散化时间戳为 t = \tau/\Delta,其中 \Delta 表示 TDC 的时间分辨率。记 T 为时间戳范围,其等于激光脉冲重复周期,然后,{N} = T/\Delta.
对于任意像素,离散时间戳 t =0,1,..., {N} -1 处的光子计数 y_{t} 可被建模为
\begin{equation*}y_t \mid\left(\mu, \sigma, \pi_n, \pi_u\right) \sim \pi_n \mathbf{N}\left(\mu, \sigma^2\right)+\pi_u \mathbf{U}^{\prime} \tag {1}\end{equation*}
其中期望值 \mu 对应于反射面深度,\pi _{n} 与 \pi _{u}(\pi _{n}+\pi _{u}=1)分别为正态分布和均匀分布的权重参数。假设光子数量保持恒定,通过调整 \pi _{n} 与 \pi _{u} 的比例,可确定不同的信噪比(SBR)。由于无法判断接收光子是来自激光还是环境光,TCSPC 方案被用于对 \mu 进行统计估计。SPAD 传感器可通过噪声滤波 43 或多事件模式 44 来最小化堆积失真,保证 y_{t} 成为混合分布的合适近似。
如图 2 所示,光子发射检测与时转数转换过程对 Cyl (\sim 10^{3}) 个周期重复进行,时间戳被用于在线更新各个区间的统计量。时间戳的完整直方图 {\mathbf { Y}} ={(y_{t})}_{t=0}^{N-1}\in {\mathbf { R}}^{N} 被构造出来,近似混合分布 45。直方图生成过程产生一个 3‑D 直方图图像,每个像素对应一个直方图。在高分辨率的新兴 SPAD D-ToF LiDAR 中,构建直方图图像并将图像离线传输用于后处理,会产生从几十 Gbit/s 到 Tbps 的数据速率,这正是上述系统的瓶颈。
Fig. 2. 根据接收的光子构建的完整直方图形成过程.
B. 基于自编码器的压缩直方图化
正如 Gutierrez-Barragan 等人所观察到的 46,如果压缩计算能够线性地应用于单个光子时间戳,那么我们仅需一次看到光子及其时间信息,即可在飞行中压缩直方图,而无需显式构建整个 Y。
一般来说,这种压缩直方图的形成可以表示为如下形式。设 y_{j}^{c} 为在第 c 个周期第 j 个时间戳检测到光子的 one‑hot 向量,即 y_{j}^{c} = [0,..., 0, \underbrace {1}\limits _{\text {jth}}, 0,..., \underbrace {0}\limits _{\text {Nth}}]。在第 j 个直方图箱测得的光子计数 y_{j} 可重写为 y_{j}=\sum _{c=1}^{cj\vert Cyl} y_{j}^{c},其中 c_{j} 是在第 j 个箱检测到光子的周期。
在这种情况下,给定编码矩阵 C \in ~{\mathbf { R}}^{K \times N}= [C1;...; Ck;...; CK],k=1,2,..., K,y_{j} 在 {C}_{k}=[C_{0}^{k},C_{1}^{k},..., C_{N-1}^{k}] 上的投影可以写成
\begin{equation*} \mathrm {p}_{k}=\sum _{j=\mathrm {0}}^{N-1} \sum _{c=1}^{cj\vert Cyl} C_{j}^{k} y_{j}^{c}. \tag {2}\end{equation*}
通过预存编码矩阵 C,上述方程在每个光子发射-检测周期内只是一次简单的相加,和原始直方图生成过程相同。通过选择合适的 C,完整直方图 {\mathbf { Y}}~\in {\mathbf { R}}^{N} 可以被压缩为 {\mathbf { P}} = [p_{1},p_{2},..., p_{K}]\in {\mathbf { R}}^{K},压缩率为 (N/K)。潜在表达式 P 没有物理意义。K 越小,能实现的压缩率越大。然而,K 越小,压缩导致的信息损失越大,因此深度估计误差会更大。在选择 K 时,应考虑压缩率与深度误差之间的折衷 47。请注意,该压缩直方图过程在每个接收光子都生成时间戳(即 SPAD 以 D-ToF 模式运行并配备 TDC)时有效。对 SPAD 传感器类型或架构没有额外限制。
Gutierrez-Barragan 等人 48 设计并评估了多种用于 SPAD 直方图压缩的编码方案,包括在草图框架中的傅里叶域编码 49。他们使用涉及脉冲响应函数的零均值归一化互相关方法 50 来解码深度。然而,解析矩阵设计需要专业的编码知识和技术,线性手工解析投影的性能(深度精度)、鲁棒性和可迁移性有限。
在本工作中,我们首次将端到端的数据驱动自编码器用于直方图压缩。自编码器是一类人工神经网络,训练目标是将输入数据编码为压缩且降维的表示(潜在空间),然后再解码回原始数据。其主要目标是为一组数据学习一种表示(编码),通常用于降维或特征提取。此外,基于神经网络的自编码器可以利用成熟的量化方法轻松部署在硬件上 51。
如图 3(a) 所示,基于自动编码器的压缩通常使用编码器 E(\cdot) 和解码器 G(\cdot) 52, [^31] 进行建模。 为编码输入 Y,逐层相连的层(蓝色矩形中的 Layer 1~\sim x)尺寸逐渐减小,构造以执行潜在变量 {\mathbf { P}} =E(Y)。 通过根据所需压缩率 (CR) 控制 P 的维度,即可实现压缩。 使用解码器 {\mathbf { Y}}' =G(P) 可以实现 Y 的有损重构。 压缩会产生失真 d(Y, {\mathbf { Y}}'),例如 d= MSE(Y, {\mathbf { Y}}')。 该失真可用作损失函数,在无监督的方式下训练自动编码器模型。
图 3. (a) 自动编码器的基本结构. (b) 提议的非对称自动编码器.
要将自编码器用于直方图压缩,输入 Y 设为完整直方图。通过寻找 {\mathbf { Y}}' 的 argmax,可估计深度。为根据 (2) 成功且高效地实时且在芯片上实现此类自编码器,图 3(a) 中的编码器 E(\cdot) 应由尽可能少的层组成,并且应排除非线性激活层。为满足此要求,我们提出了如图 3(b) 所示的非对称倒置自编码器。该模型由仅包含一个全连接层的编码器和层数逐步增大的解码器组成。编码器的第一层是全连接层,其为线性,以与 (2) 中的操作保持一致。我们可以读取第一层的输出并将其视为编码结果。其余操作在芯片外处理,在那里非线性层可用于表示高层特征。如此可以将大规模计算卸载。
第三节:与先前方法的定量性能比较
A. 模拟设置与性能指标定义
为了在性能和复杂性之间做权衡,我们在不同尺寸和激活函数的反向自动编码器上应用了蒙特卡洛模拟,遵循53中的流程。
为公平比较,我们在两种 SBR(0.01 和 0.5)下,依据 (1) 对 64 个深度生成了 1000 个直方图样本, 每个样本包含 {N} =1024(含 N_{p} =1000 每个样本接收 1000 个光子),深度间隔与 54 中相同。SBR 定义为 \left(\sum \mathrm{y}(\mathrm{~N}) / \sum \mathrm{y}(\mathbf{U})^{\prime}\right),与 55 中相同,用于评估自动编码器在不同场景下的模型性能。因此,每个 SBR 有 64,000 个样本;其中 70% 随机选取用于训练,损失函数为 Loss = MSE(Y, G[E(Y)],其余用于测试。在模拟中,直方图直接作为输入编码,不考虑 (2) 所示的累积过程。该设置与灰度编码及其他压缩直方图方法 56 相同,足以评估这些压缩直方图方法的性能。
估计的深度 \mu _{e}'s 通过在自动编码器重建的直方图中寻找最大 y_{t} 的 t 来确定。我们在相同数据集上重新实现并测试了纯 TCSPC(使用完整直方图)、四元缩放 57、基于扫描(16 个子范围)58、无直方图 59 以及灰度编码 60 方法。
所使用的性能指标为相对均值期望绝对深度误差(RMDE)和 RMSE,与 61 中所述相同,定义为
\begin{align*} \begin{cases} \displaystyle \mathrm {RMDE}=\frac {1}{n\times N}\sum _{iu=1}^{n} | \mu _{e,iu}-\mu _{o,iu} | \\ \displaystyle \mathrm {RMSE}=\sqrt {\frac {1}{n}\sum _{iu=1}^{n} {\left ({{\mu _{e,iu}-\mu _{o,iu}}}\right )^{2}}} \end{cases} \tag {3}\end{align*}
其中 \mu _{o} 是嵌入数据集中的原始深度,n 是测试样本的总数,iu 表示样本的索引。 此外,我们使用额外的准确率指标 (Acc5),定义为 (\text {The number of}~\text {samples with}~| \mu e-\mu o |{\lt 5~\text {bins}}/\text {The total}~\text {number of samples})\times 100%,以更全面地评估这些方法。 请注意,SBR 和 RMDE 的定义考虑了背景光的整个范围,这与传统定义不同,仅用于与使用相同指标定义的其他方法进行公平比较。 估计深度 \mu _{e} 与原始深度 \mu _{o} 被定义为峰值所在的 bin 的索引,因此在仿真过程中不考虑具有物理意义的实际单位。 RMSE 以“bin”为单位表示。 在仿真过程中不考虑任何真实距离或物理深度。
接收的高斯脉冲宽度 WG 被设置为 \Delta,即 {\exp }^{-(t-\mu)^{2}/\Delta },这与 62 中的值相同,以便公平比较。 两个对应于 SBR=0.01 和 0.5 的完整直方图示例如图 4(a) 所示。 可以观察到,即使在 SBR=0.01 时,{W}_{\mathrm {G}}=\Delta 的设置也使任务相对简单,因为峰值易于从直方图中区分。
*图 4. (a) 1024-bin 完整直方图,包含 {N}_{p}=1000 与 ${W}{\text {G}}={\mathsf {\Delta }} $ 。 (b) 1024-bin 完整直方图,包含 {N}_{p}=6000 与 ${W}{\text {G}}= 4{\mathsf {\Delta }} $ 。 (c) 1024-bin 完整直方图,包含 {N}_{p}=6000 与 ${W}{\text {G}}= 6{\mathsf {\Delta }} $ 。 由于极端条件,多峰存在。 (d) 1024-bin 完整直方图在使用 {N}_{p}=6000 与 ${W}{\text {G}}= 6{\mathsf {\Delta }} $ 进行 FIR 滤波后。伪峰已被消除。
这些深度估计方法的表现如表 I 所示。在 SBR =0.5 时,几乎所有方法都实现了 100% 的 Acc5,且 RMSE 和 RMDE 较小,这进一步证明了成像条件的理想性 ({W}_{\mathrm {G}}=\Delta)。在 SBR =0.01 时,四分量放大、扫频、无直方图和 Gray 编码的表现大幅下降,Acc5 低于 65%,RMSE 超过 200,远逊于普通完整直方图方法。如 63 所示,将 FIR 滤波器加入扫频方法,可提升 RMDE 2.65\times、RMSE 1.71\times,以及 Acc5 14.58%。具有 16 个子区间的扫频技术每个子区间仅能使用约 63 个光子,导致尽管使用 FIR 滤波器,性能仍不理想。
表 I
另一方面,所提出的自编码器在不使用 FIR 滤波器的情况下实现了更好的性能。我们已变更每一层的神经元数量和激活函数,以寻找最佳的自编码器配置。使用 Hardtanh 激活函数的自编码器实现了 97.13% 的 Acc5(CR 为 128 [(1024)-8-128-1024])以及 99.97% 的 Acc5(CR 为 64 [(1024)-16-128-1024]),这显示了数据驱动学习所带来的优越性能提升;(1024)-8-128-1024 表示具有 1024 个输入神经元的全连接神经网络模型,第一层和第二层隐藏层分别包含 8 和 120 个神经元,且 1024 个输出神经元。
为在硬件上高效实现所提出的方法,我们根据先进的后训练量化方法 64,将编码器模型(1024)–16-128-1024 量化为定点算术,以评估量化的影响。需要将权重和激活层的输出转换为定点,以实现高效的硬件实现。在包含 N=1024,N_{p}=1000、{W}_{\mathrm {G}}=\Delta 和 SBR=0.01 的数据集上,RMDE 与 RMSE 随位宽变化的结果如图 5 所示。将激活的位宽从浮点降低到 2 位定点时,RMDE 与 RMSE 会逐步增大。当权重位宽从 8 位降至 2 位时,性能会有所变化。我们为激活和权重都选用 4 位位宽,以在性能与硬件复杂度之间取得平衡。
图 5. 在包含 {N}={1024} , $ {N}{p}=1000$ , ${W}{\text {G}}={\mathsf {\Delta }} $ , 以及 SBR =0.01 的数据集上,性能随量化位宽变化。
然而,正如上文所示,这种成像条件设置仍然是过于理想化的成像条件。 WG 很难与典型激光发射器等同于 \Delta。 为了进一步评估这些深度估计方法的鲁棒性,我们将 WG 扩展到 4\Delta 与 6\Delta,并保持相同的 SBR,以模拟更具挑战性的低 SBR 场景且峰值不明显的情况。 为适应挑战性的成像场景 65,接收光子数增至 6000。 脉冲扩展后的直方图如图 4(b) 与 (c) 所示。 当 SBR=0.01 时,出现 {W}_{\mathrm {G}}= 6\Delta 的多峰现象,这是一个极端成像条件,导致纯全直方图方法产生误差。
这些深度估计方法在此具有挑战性的数据集上的性能显示在表 II。 在 SBR =0.01 且 {W}_{\mathrm {G}}= 6\Delta 的数据集上训练并测试的自编码器模型 (1024)–16-128-1024 实现了 Acc5 超过 80%,这与完整直方图方法相近。 将 CR 增加至 128 会显著将 Acc5 降低到 44.20%。 该模型 [(1024)-16-128-1024 在 SBR =0.01 且 {W}_{\mathrm {G}}= 6\Delta 的数据集上训练] 也在 SBR =0.5 且 {W}_{\mathrm {G}}= 6\Delta 的数据集上进行测试,以检验其可迁移性。 实现了 RMDE =0.002%、RMSE =0.04、Acc5=100%,进一步显示了所提出的自编码器方法对 SBR 变化的鲁棒性。 在加入 FIR 滤波后,即使在具有 {W}_{\mathrm {G}}= 6\Delta 且 SBR =0.01 的极端场景中,伪峰也能被消除,Fig. 4(d) 所示。 因此,采用 FIR 滤波的扫频方法(见 66)在极端照明场景下的 RMSE/RMDE/Acc5 指标上,表现远优于放大、无直方图和灰度编码方法。
表 II
上述自编码器的训练使用一台配备 NVIDIA GeForce RTX 3060 GPU、Intel Core i7-12700H CPU 和两块三星 8-GB DDR 内存的笔记本完成。为使这些自编码器在不同大小、各种 SBR、N_{p}' 和 {W}_{\mathrm {G}}' 训练收敛,最多需要 200 个周期(1647.54 秒)。
B. 成像结果与比较
在本节中,我们通过将该自编码器应用于两个照明数据集来评估其成像性能。
第一组数据由使用 MitsubaToF [^32] 渲染的物理上准确的直方图图像组成(\Delta =50 ps 与 N=2000)。为适应该数据集中具有 N=2000 个 bin 的完整直方图,我们已将模型扩展到 (2000)-20-160-2000 的形状。正如表 II 所示,完整直方图方法、带 FIR 过滤的扫频方法 67 以及所提出的自编码器在挑战性条件(N_{p}=6000、{W}_{\mathrm {G}}= 6\Delta 和 SBR=0.01,且无明显峰值)下表现更佳。因此,在本次成像实验中,我们重点比较所提出的自编码器与完整直方图方法以及带 FIR 过滤的扫频方法。由于所提出的 autoencoder 方法是一种压缩直方图方法,最先进的压缩直方图方法——灰度编码 68 也被实现用于对比,以展示在压缩直方图方面的性能提升。使用 4 位量化自编码器的成像结果也已包含,其中显示精度损失可以忽略。估计的深度图与数据集中嵌入的原始深度进行比较,以展示深度误差。
从五种方法获得的深度图和深度误差,分别针对厨房场景在 SBR =0.01 和 0.5 的情况如图 6 所示。所提出的自编码器在两种 SBR(0.01 和 0.5)下的四种方法中均实现了最佳 RMDE/RMSE/Acc5。对于 SBR =0.5,四种方法都生成了 Acc5\gt 95% 的优秀深度图,而对于 SBR =0.01,只有自编码器和完整直方图方法输出了质量良好的深度图,这表明所提出的自编码器对 SBR 变化具有更优的鲁棒性。
Fig. 6. 成像比较。针对厨房场景在 SBR =0.01 与 0.5 条件下,使用完整直方图、带 FIR 的扫频方法 [14]、基于灰度编码 [22] 以及所提出的自编码器(浮点与定点)所得到的深度图与深度误差,分别展示。四种方法中最佳的 RMDE/RMSE/Acc5 用红色标记。还包含四个代表性直方图示例。
正如四个直方图示例所示,图像中的像素可分为两类:生成具有明显峰值的直方图的像素以及不具明显峰值的像素。
根据完整直方图方法的 Acc5 结果,分别有 17.76% 和 3.15% 的像素在
SBR=0.01 和 0.5 时产生绝对深度误差大于 5 个箱。
然而,通过应用所提出的具有高阶表示的自编码器,这些比例分别下降至
16.39% 和
2.99%,这表明所提出的数据驱动与学习驱动方法在一定程度上可以消除伪峰的影响。
为进一步评估自编码器在压缩直方图方法中对场景变化所带来的鲁棒性提升,本文在聚丙烯头部数据集上进行测试,该数据集由在赫瑞-瓦特大学用扫描
LiDAR 捕获的包含聚丙烯头部场景的图像组成 [^33]。
数据立方体的宽度和高度均为 141 像素,总共有 N=4613 个时间戳。
每个像素的总采集时间为 100 ms,导致平均光子计数为 337,SBR 约为
6.82。
这比先前合成的厨房数据集具有更清晰的数据和显著更少的光子计数。
首先,我们将训练于厨房数据集 [^32] 的自编码器 (2000)-20-160-2000
直接(不重新训练或改变参数)应用于此新数据集 [^33]。
输入层和输出层的神经元数量(2000)被扩展至 2560,以实现 CR 为
128,其中额外的 560 个神经元的连接权重为
0,以确保新模型与原模型保持相同。
由于没有嵌入真实深度,采用使用全分辨率直方图得到的估计深度图作为基准,用于计算性能指标。
同样应用了 4
位量化的自编码器,以展示固定点自编码器相较于浮点实现的行为。
图 6 中的基于灰度的 CB
也直接应用于此聚丙烯头部数据集,且未更改参数。
这些方法的三维图像如图 7 所示。所提出的自动编码器在 RMDE/RMSE/Acc5 上表现良好,并且头部形状定义清晰。量化对成像结果的影响可以忽略。直接对先前数据集使用基于 Gray 的 CB 进行三维绘图显示,头部的形状和深度未定义清晰,表明基于 Gray 的方法的迁移性较低。使用已发布的基于草图的 CB(已在 69 公开)绘制的三维图像结果也包含在图 7 中,以展示在仔细参数调整后 Gray 编码方法可能的性能提升,因为基于草图的编码方法(在 70 中记为截断傅里叶编码)被证明优于 Gray 编码方法,如 71 所示。
图 7. 照明压缩成像。使用自编码器(浮点和定点)以及基于灰度的方法,对聚苯乙烯头部进行光子计数 =337,SBR =6.82 的 3-D 绘图。两种方法的 CB 来源于图 6 中的成像实验。来自草图式 CB 的结果(发布于[20]并适配到聚苯乙烯头部数据集)也已包含。
值得考虑的是,聚苯乙烯头部记录的数据中光子更为稀疏(<1200 光子(平均 337 光子)分布在 4613 个 bin 中)。典型的直方图示例包含在图 7 中,与图 4 和图 6 中的直方图有很大不同。成像结果证明了所提出的基于数据驱动的自编码器的鲁棒性:我们的自编码器方法可以直接并成功地应用于具有不同 SBR 和不同直方图包络的另一场景。需要注意的是,自编码器对场景变化的鲁棒性与运动伪影无关,这与先前的工作 72、73、74、75、76、77、78、79、80、81 一致。
根据这些结果,我们可以得出结论,所提出的自编码器能够压缩直方图并重构深度图像,在极其具有挑战性的成像场景中,误差水平与完整直方图方法相似,并且在鲁棒性方面优于扫掠式和灰度式压缩方法。紧凑型自编码器引擎的电路设计在第四节中有详细说明。
第四节:紧凑型压缩自编码器引擎的电路设计
A. 压缩引擎的电路设计
根据 (2),压缩直方化过程可以根据像素接收到的每个光子即时实现。根据时间戳 (y_{j}^{c}) 计算最新的编码直方图箱值(p_{k}^{\text {new}} , k = 0 ~K −1)是对 p_{k}^{\text {new}}=p_{k}^{\text {old}}+y_{j}^{c}C_{j}^{k} 的累加操作。在电路实现中,y_{j}^{c} 是第 j 个时间戳(TDC 的输出)的索引,可用作地址来读取第 j 行 K 个 CB 存储器(C_{j}^{k})中的 K 个代码。将 K 个代码逐个加到先前存储的编码直方图箱值(p_{k}^{\text {old}} , k = 0 ~K−1)中,以顺序更新 p_{0\sim K-1}。
因此,所提出的紧凑型自编码器引擎的架构如图 8 所示。这个简单的压缩引擎由深度为 N 的 K 个共享 CB 存储器、一个控制器(“Ctrl.” 块)、一个地址生成器(“K Addr. Gen.” 块)、一个累加器(“Accum.” 块)以及 N_{\text {px}} 编码直方图(cH)存储器(深度为 K)组成。这样,N_{\text {px}} 时间戳(即接收到的光子)可以在一次照明周期内在引擎中处理。
图 8. 基于紧凑型自编码器的直方图压缩引擎的电路设计.
引擎的处理时序图如图 9 所示。N_{\text {px}} 时间戳按顺序读取到引擎中。通过多路复用器读取一个时间戳 “Tstp#i” (i=1,...,N_{\text {px}})时,K 个共享 CB 存储器的读使能信号 “Rd” 以及地址生成器的 “Trig” 信号均有效。对于 K 个共享 CB 存储器,时间戳 “Tstp#i” 用作地址,按顺序读取该地址下的 K 个码。在 K Addr. Gen. 区块中,地址从 1 到 K(A1~AK 如图 9 所示)被顺序生成,以读取 cH Mem.#i 中的 K 个原始编码直方图。通过同时使能 “Rd” 与 “Trig” 信号,来自 CB 存储器的 K 个码以及来自 cH Mem.#i 的 K 个原始编码直方图 bin 对齐,从而可以一一相加得到 K 个更新后的编码直方图 bin,实现式 (2) 所示的压缩直方图生成过程。在生成 AK 后,编码直方图的更新过程完成。随后,新的时间戳 “Tstp#(i+1)” 被读取,以重复上述过程,更新 cH Mem.#(i+1)。
Fig. 9. 压缩直方图引擎的时序图.
拟议的引擎将 N_{\text {px}} 时间戳顺序编码到每个照明周期内的编码直方图中,因此不需要限制这些 N_{\text {px}} 时间戳是否来自同一或不同的 SPAD(SPAD 检测器的类型)。如果 N_{\text {px}} 时间戳来自 N_{\text {px}}'(\lt N_{\text {px}})SPAD(在 N_{\text {px}}' SPAD 中拥有多事件 SPAD),则在一次照明期间,一些 N_{\text {px}} 编码直方图存储器未被使用。在我们的硬件实验中,N_{\text {px}} 时间戳来自 N_{\text {px}} 不同的 SPAD(单事件 SPAD),以适配我们之前的传感器芯片 82,该芯片即使在单事件模式下也能抑制堆积效应。此设置最大化了编码直方图存储器的使用数量,并最小化了单个 SPAD 消耗的平均内存。假设 CB 内存和 cH 内存的位宽均为 bw,则处理 N_{\text {px}} 像素所需的总位数为 [(K\times N +K\times N_{\text {px}}) \times bw]。需要 (K\times N/N_{\text {px}}+K)\times bw 位/像素。以实现每个照明处理 64 个像素的 4 位量化(1024)–16-128-1024 自动编码器模型为例,N=1024,K=16,N_{\text {px}}=64,并且 bw =4bit,因此需要 68 kb 来存储所有内容,每像素需要 1.0625 kb。请注意,CR =N/K 的定义表示如果 CB 被数千个像素共享时的理论内存缩减极限(N_{\text {px}}\gg N)。对于上述例子,如果全直方图方法使用 4 位 bin 值(68 kb 与 256 kb = 64\times 1024\times 4 位),则所需内存大小可减少 3.76\times。
由于直方图编码过程顺序更新编码直方图,读取所有编码直方图所需时间相同。因此,在第 N_{i} 次照明期间,预留 1/2 周期用于读取所有编码直方图。N_{i} 可以是任意值,以满足各种实验设置,这是一种保守设计,可在固定 N_{i} 时进一步改进。
假设帧间速率 [^34](照明重复率)为 180 kHz,允许最多 6k 帧间适应上述具有挑战性的场景(低 SBR 场景和不明显峰值),并获得真实帧率 30 帧/秒,压缩引擎的“CLK”时钟频率为 2\times 180\times K\times N_{\text {px}} kHz。由于扫描读取方法需要半个照明周期来读取 cH Mem.#1\sim N_{\text {px}},因此乘以 2。对于深度分辨率为 1024、CR 为 64 (K=16) 的编码器模型,368.64 MHz 的时钟频率保证 N_{\text {px}} 为 64。请注意,频率计算假设 180 kHz 的照明重复率和 6k 帧间,以适应极低 SBR 场景。在相对较高 SBR 场景下降低帧间数量(即激光重复率)可以在保持相同 CR 的前提下,增加在一个照明周期内可处理的像素数。由于 3D 堆叠的基于 SPAD 的 LiDAR 可以轻松应对这一挑战,CMOS-SPAD 使用 90–180 nm 技术节点,压缩引擎使用 28 nm 技术节点,368.64 MHz 的时钟频率并不是该方法的瓶颈。
B. 在 FPGA 中的量化实现
将 4 位定点压缩引擎与 N=1024 和 K=16 一起编写为 Verilog HDL 并在 Xilinx KC705 FPGA 上实现。与 III-B 节中的成像实验类似,我们专注于将所提出的压缩引擎与基于 TCSPC 的完整直方图方法和基于扫频的部分直方图方法的电路进行比较。为了公平比较,在两种电路中使用 4 位 bin 值。实际上,完整直方图和扫频方法的 bin 值应更大(8\sim 10 位),以便在具有挑战性的场景中记录足够的光子计数。
三种电路的资源利用情况如表 III 所示。 从逻辑资源角度看,三种电路在每次照明下处理最大 64 个光子(来自 64 个像素)时,使用的查找表(LUT)和触发器(FF)的数量相似。 当在一个周期内处理的像素(光子)数量增加时,所提出的压缩引擎所需的 LUT 与 FF 数量保持不变。 然而,完整直方图电路和扫频电路所消耗的逻辑资源随在一次照明周期内处理的像素(光子)数量线性增加。 如表 III 所示,通过将帧间速率从 6 kHz 降至 3 kHz、1.5 kHz 和 750 Hz,分别可以在一次照明周期内处理 128、256 和 512 个像素(光子),仅需增加存储需求。 从存储容量角度看,所提出的引擎在一次照明周期内存储编码直方图所需的存储空间分别为 64、128、256 和 512 个光子时,需 4、8、16 和 32 kb。 另一方面,完整直方图电路分别需要 256 kb、512 kb、1 Mb 和 2 Mb。 即使考虑到共享权重存储(固定大小 64 kb),压缩引擎的存储大小相较完整直方图也压缩了 3.76\times(68 kb = (64 k + 64\times 16 \times 4) bits for the autoencoder versus 256 kb = 64\times 1024 \times 4 bits for full histogram when processing 64 pixels (photons) within one illumination cycle)。 在一次照明周期内处理 512 个像素(光子)时,存储大小压缩了 21.33\times(96 kb versus 2 Mb)。 扫频电路在每周期处理 \le 341 个光子时需要的存储空间最小。(For N_{\text {px}}' \times 64\times 4bits <64 k+N_{\text {px}}' \times 16\times 4bits such that N_{\text {px}}'~\lt 341.3.)。 然而,当光子数量大于 341 时,所提出的引擎需要更小的存储空间,因为其存储增速相对于光子数量的降低为 4\times(与扫频电路相比,64 b/pixel (photon) versus 256 b/pixel (photon))。 另一方面,所提出的引擎在准确性和鲁棒性方面远优于扫频电路,正如第三节所评估的那样。 总之,所提出的压缩引擎在逻辑和存储方面更为高效。
所提出的直方图压缩引擎在每次照明下处理64个像素时的功耗为73 mW,其中4 mW由逻辑电路消耗,69 mW由68 kb内存消耗。随着每次照明下处理像素数的增加,所需的内存尺寸仅随之增大。因此,逻辑电路的功耗始终为4 mW,而内存的功耗则随处理像素数线性增加。
表 III
C. 实时深度成像与压缩引擎的深度精度评估
在将提出的压缩引擎(实现于FPGA)与我们之前的 32\times 32 SPAD 传感器芯片 83 连接后,线扫描 LiDAR 系统被构建,如图10所示。该传感器芯片每个像素都有噪声过滤电路,可抑制强背景光导致的堆叠效应。图10中包含了一张典型场景示例的 RGB 照片以及其 32\times 32 通过编码直方图重建的深度图像,用以展示使用所提出压缩引擎的系统的良好成像质量。
图10. LiDAR系统构建与实时成像。
为进一步评估 FPGA 中 4 位定点引擎的定量性能,在 LiDAR 接收器视场内以 10–14 m(共 5 个距离点)等间距放置一个可移动白板(反射率 80%),如图 11 所示。实际距离使用行走器测量作为地面真值。在每个距离下,收集 30 组直方图,分别在两种不同场景下:一种场景代表相对理想的成像条件,特征为 {N} _{p}=1000,WLE(发射激光脉冲宽度)=5 ns,SBR=0.1;另一种场景代表具有挑战性的成像条件,特征为 N_{p}=1000,{W}_{\mathrm {LE}}=10 ns,SBR=0.01。实验结果表明,所提出的压缩引擎在 CR=64 的高压缩比下与基于 TCSPC 的全直方图方法实现了相当的深度精度。与扫频式部分直方图方法相比,所提方法在深度精度上得到提升,并在 CR 上实现了 4\times 的改进,与仿真结果一致。
图 11. 深度精度评估设置。重建的深度图像示例。深度精度摘要与比较表。
第 V 节 结论
本文提出了一种基于自编码器的鲁棒、数据驱动压缩直方图方法。对深度估计性能与编码器尺寸之间的关系进行了全面评估。该方法在 64 的压缩比下,在多种成像条件下实现了与全直方图方法相当的定量性能,优于手工设计的解析 CB,并且在场景变化,尤其是在低信号与背景比的挑战性场景中保持鲁棒性。还提出了一种紧凑的压缩引擎设计,量化为 4 位并实现于 FPGA。与全直方图电路相比,所提引擎实现了 3.76\sim 21.33\times 的内存尺寸缩减。与扫频式部分直方图电路相比,CR 提升了 4\times,并且 RMSE 降低了 65%。