快速且准确的部分缩放深度估计:基于SPAD LiDAR读取的FPGA实现

摘要

基于单光子雪崩二极管(SPAD)的激光雷达(LiDAR)技术已成为一种广泛适用的技术。基于时域数字转换器(TDC)的全直方图方法能够获得高精度,但需要大量存储空间。采用异步计数器的紧凑全缩放方法消除了对TDC的使用,并实现了全分辨率直方图。然而,它会增加估计误差和延迟。本文提出了一种快速且精确的部分缩放方法。本文首次对全缩放方法导致深度误差增加的原因进行了数学分析,并通过引入两个辅助异步计数器来提升精度。通过减少缩放阶段的数量,提升了速度,而不降低精度。与全缩放方法相比,所提出的部分缩放方法在获得更好精度的同时需要更少的激光周期,降低了 42% 的激光周期和 58% 的均方根误差(RMSE)。此外,该部分缩放方法已在 FPGA 上实现,相比全直方图方法实现了 92% 的存储空间、80% 的功耗和 55% 的延迟降低。

作者

Lichen Feng 西安电子科技大学模拟集成电路与系统重点实验室(西安电子科技大学),教育部,集成电路学院,西安电子科技大学,西安,中国

Hongwei Shan 西安电子科技大学模拟集成电路与系统重点实验室(西安电子科技大学),教育部,集成电路学院,西安电子科技大学,西安,中国

Rundong Cai 西安电子科技大学模拟集成电路与系统重点实验室(西安电子科技大学),教育部,集成电路学院,西安电子科技大学,西安,中国

Zhangming Zhu 西安电子科技大学模拟集成电路与系统重点实验室(西安电子科技大学),教育部,集成电路学院,西安电子科技大学,西安,中国

出版信息

期刊: 2024 IEEE 17th International Conference on Solid‑State & Integrated Circuit Technology (ICSICT) 年份: 2024 页码: 1-3 DOI: 10.1109/ICSICT62049.2024.10831791 文章编号: 10831791 ISSN: 电子 ISSN: 2835-7620, Print on Demand(PoD) ISSN: 2835-7612

指标

总下载量: 112

资助


关键词

IEEE 关键词: 集成电路技术, 直方图, 估计误差, 准确性, 激光雷达, 半导体激光器, 深度测量, 距离测量, 现场可编程门阵列, 单光子雪崩二极管

索引词: 深度估计, 单光子雪崩二极管, 快速方法, 激光检测, 雪崩二极管, 深度误差, 时间数字转换器, 距离区间, 迭代阶段

作者关键词: SPAD激光雷达, 深度估计, 异步计数器, 局部变焦

未定义

第一节. 引言

基于单光子雪崩二极管(SPAD)的激光雷达(LiDAR)在具有深度信息的环境检测中具有有效性。如图 1(a) 所示,除了用于将光子转换为电流的 SPAD 数组外,系统中还可以集成相应的处理和存储单元,形成全固态 LiDAR。一般而言,高时间分辨率的多通道时数字转换器(TDC)持续工作,以获取皮秒级光子的直接飞行时间(dToF)。这些 dToF 被计数并存储在内存中以获得直方图。为减轻功耗和面积需求,已经提出了许多研究 1–​2,如图 1(b) 所示。在这些方案中,基于放大(zoom)的方法获得了最佳面积效率,因为仅需要一个异步计数器,而不需要内存阵列来支持一个 SPAD 像素。然而,对于降级的深度精度尚无明确的理论分析,且大的处理延迟仍待解决(例如,1024 个 bin 需要 9 个迭代阶段)。为在深度精度、延迟和面积之间取得平衡,本文提出了一种快速而准确的部分放大(partial-zoom)方法来解决上述挑战。本文的主要贡献总结如下:

**Fig. 1. **(a) spad LiDAR 的系统架构;(b) 三种常见的缓解高内存需求的方案。Show All

SECTION II. 快速而准确的部分放大方法

A. 计数器基础缩放方法的有效性

我们假设发射和接收光子序列差值的 dToFs 服从高斯分布 4,其参数为 \boldsymbol{\mu}(实时间隔,1 < =\mu < =T)\boldsymbol{\sigma} 为:

\begin{equation*} P_{G a u}(t=x)=\frac{1}{\sqrt{\boldsymbol{2 \pi} \sigma}} e^{\frac{-(x-\mu)^2}{2 \sigma^2}} \tag{1} \end{equation*}

随后我们设计了一个启用的双计数器,工作范围从 \boldsymbol{t}_1\boldsymbol{t}_2,它既可作为递增计数器(称为状态 \boldsymbol{A})在 \boldsymbol{t}_{\mathbf{1}}\mathbf{0.5}^{*}(\boldsymbol{t}_{\mathbf{2}}-\boldsymbol{t}_{\mathbf{1}}) 之间计数,也可作为递减计数器(称为状态 \boldsymbol{B})在 \mathbf{0.5}^{*}(\boldsymbol{t}_{\mathbf{2}}-\boldsymbol{t}_{\mathbf{1}})\boldsymbol{t}_{\mathbf{2}} 之间计数。也就是说,当接收光子在 \boldsymbol{t}_{\mathbf{1}}\boldsymbol{0.5}^{*}(\boldsymbol{t}_{\mathbf{2}}-\boldsymbol{t}_{\mathbf{1}}) 期间到达时,计数器加一;相反,计数器减一。由于每个接收光子都是独立事件并遵循高斯分布,我们可以计算在一次激光周期内计数器处于状态 \boldsymbol{A}\boldsymbol{B} 的概率为:

\begin{align*} & P(A)=\int_{t 1}^{0.5 *(t 2-t 1)} P_{G a u} d(t) \tag{2}\\ & P(B)=\int_{0.5 *(t 2-t 1)}^{t 2} P_{G a u} d(t) \tag{3} \end{align*}

Figure 1

Fig. 2. 四个迭代阶段相对于不同 bin 的准确率。CV 是每个阶段的控制值,即粗分箱的中间值。

Figure 2

Fig. 3. 在不同 \boldsymbol{N} 值下的总体成功概率。

假设接收的光子序列长度为 \boldsymbol{N},我们可以根据二项分布计算状态 \boldsymbol{A} 的数量 \boldsymbol{X} 发生为 \boldsymbol{k}(初始值设为零)在 \boldsymbol{N} 次激光周期后的概率:

\begin{equation*} P_{Bin}(X=k)=C_{N}^{k}\times P(A)^{k}\times P(B)^{N-k} \tag{4} \end{equation*}

根据二分搜索在缩放 5 方法的基本原理,我们应计算 \mathrm{k} > =0 的概率(称为状态 \boldsymbol{C},表示状态 \boldsymbol{A} 的出现次数大于 \boldsymbol{N/2})和 \mathrm{k} < 0 的概率(称为状态 \boldsymbol{D},表示状态 \boldsymbol{A} 的出现次数少于 \boldsymbol{N}/\mathbf{2})为:

\begin{align*} & P(C)=\int_{N / 2}^N P_{{Bin }} d(k) \tag{5}\\ & P(D)=\int_1^{N / 2} P_{B i n} d(k) \tag{6} \end{align*}

基于上述定义和推导,我们生成了一个数据集,并使用以下参数进行概率仿真:\boldsymbol{T}=\boldsymbol{1024}, \boldsymbol{N}=\boldsymbol{1000}, \boldsymbol{\sigma}=\mathbf{8}。如果 P(C) > P(D),计数器的使能时间将从 \boldsymbol{t}_{\mathbf{1}} 调整到 \mathbf{0.5}^{*}(\boldsymbol{t}_{\boldsymbol{2}}-\boldsymbol{t}_{\boldsymbol{1}});相反,它是从 \boldsymbol{0.5}^{*}(\boldsymbol{t}_{\mathbf{2}}-\boldsymbol{t}_{\mathbf{1}}) 调整到 \boldsymbol{t}_{\mathbf{2}}。我们将此过程重复四次,以逐步减小使能时间范围,即目标区间(称为粗区间)的范围。每一次放大中正确的概率(最大值为 \boldsymbol{P}(\boldsymbol{C})\boldsymbol{P}(\boldsymbol{D})) 如图 2 所示)表明,基于计数器的缩放方法在搜索目标区间的粗位置方面具有很高的准确性,因此是有效的。

B. 提议的部分缩放直方图方法

参考文献 6 提出了全缩放方法以减少区间数,该方法需要 9 个迭代阶段来处理 1024 个区间。该方法由于区间尺寸仅为 1,内存尺寸减小,但需要足够的激光循环数以获得更好的精度。因此,我们基于全缩放方法开发了一个快速且准确的部分缩放方法。

Figure 3

图 4. 在最后迭代阶段引入两个辅助计数器并计数边缘区间的有效性

对于具有 1024 个区间的深度估计任务,我们使用四个而不是九个迭代阶段来缩小区间范围,即将范围从 1024 缩小到 64。随后,在第五个迭代中,TDC 用于计算发射光子和接收光子的 dToF,并将其存储在存储器中。存储器中最大数值对应的索引即为所需值。该方法结合了全缩放和全直方图的优点,实现了较小的存储器尺寸,同时提升了精度和延迟。

现在我们将参数 \boldsymbol{A}\boldsymbol{c}\boldsymbol{c} 定义为四次缩放均正确的概率,并在不同的 \boldsymbol{N} 值下进行模拟,如图 3 所示。我们可以得出两个结论。首先,边缘 bin(在本例中为 16 的倍数)更容易出错,因为 \boldsymbol{P}(\boldsymbol{A}) 接近 \boldsymbol{P}(\boldsymbol{B}),因此 \boldsymbol{P}(\boldsymbol{C})\boldsymbol{P}(\boldsymbol{D}) 之间的差异更小。其次,随着 \boldsymbol{N} 的增大,成功率会提高,因为更大的 \boldsymbol{N} 能放大 \boldsymbol{P}(\boldsymbol{A})\boldsymbol{P}(\boldsymbol{B}) 之间的差异,然而,这会导致由于需要更多激光周期而速度下降。基于这两个结论,我们提出两项优化策略。首先,在第五次迭代阶段,除了 16 个粗 bin 之外,还计数边缘 bin。其次,使用另外两个辅助计数器(称为 \boldsymbol{C}_{\mathbf{1}}\boldsymbol{C}_{\mathbf{2}})与主计数器(称为 \boldsymbol{C}_{\mathbf{0}})一起工作。例如,如果 \boldsymbol{C}_{\mathbf{0}} 的粗 bin 范围从 \boldsymbol{t}_{\mathbf{1}}\boldsymbol{t}_{\mathbf{2}},则 \boldsymbol{C}_{\mathbf{1}}\boldsymbol{C}_{\mathbf{2}} 的粗 bin 分别从 \boldsymbol{t}_{\mathbf{1}}\boldsymbol{0.5}^{*}(\boldsymbol{t}_{\mathbf{2}}-\boldsymbol{t}_{\mathbf{1}}),以及 \boldsymbol{0.5}^{*}(\boldsymbol{t}_{\mathbf{2}-} \boldsymbol{t}_{1}) to \boldsymbol{t}_{\mathbf{2}}。在下一次迭代阶段,\boldsymbol{C}_{\mathbf{0}} 的初始值不是零,而是上一迭代中 \boldsymbol{C}_{\mathbf{1}}\boldsymbol{C}_{\mathbf{2}} 的计数结果,取决于 \boldsymbol{C}_{\mathbf{0}} 计数结果的极性。这样,每个迭代阶段(除首次外)的激光周期数从 \mathbf{2}^{*}\boldsymbol{N} 变为 \boldsymbol{N},从而在不牺牲速度的前提下提高准确性。

C. 准确性验证

为了测试快速且准确的局部缩放方法,我们生成了一个数据集,包含 \boldsymbol{T}=\mathbf{1024} 个类别,每个类别 \boldsymbol{n}=\boldsymbol{1000} 个样本。每个样本基于高斯分布并以 \boldsymbol{N}=\mathbf{400} 次激光周期生成。性能指标为相对平均期望绝对深度误差(RMDE)和均方根深度误差(RMSE) 7,定义为:

\begin{equation*} \begin{cases} \quad \text{RMDE}=\frac{1}{T} \sum_{j=1}^T \frac{1}{n} \sum_{i=1}^n\left\vert\mu_{e, i j}-\mu_{o, i j}\right\vert \\ \text{RMSE}=\frac{1}{T} \sum_{j=1}^T \sqrt{\frac{1}{n} \sum_{i=1}^n\left(\mu_{e, i j}-\mu_{o, i j}\right)^2} \end{cases} \tag{7} \end{equation*}

其中 \boldsymbol{\mu}_{\boldsymbol{e},\boldsymbol{i}\boldsymbol{j}}\boldsymbol{\mu}_{\boldsymbol{o},\boldsymbol{i}\boldsymbol{j}} 分别是 \boldsymbol{j}_{\boldsymbol{t}\boldsymbol{h}} 类别的 \boldsymbol{i}_{\boldsymbol{t}\boldsymbol{h}} 样本的估计值与实际值的时间间隔。

Figure 4

Fig. 5 (a) 部分放大方法的电路块图。 (b) tdc 的计算 (c) tdc 的电路设计。

Figure 5

Fig. 6. (a) 部分放大系统的时序图。 (b) full-histogram 方法的功耗分析。 (c) patrial-zoom 方法的功耗分析。

这两项指标的模拟结果如图 4 所示。可见所提出的两种优化策略是有效的,分别在全局和局部(边缘区间)上降低了 RMSE 和 RMDE。与不计边缘区间的一计数器方法相比,RMSE 和 RMDE 分别下降了 49.4% 和 52.9%。

第三节:在 FPGA 上的硬件实现

所提出的快速且精确的部分放大方法的电路块图(包括 TDC 设计)和时序图如图 5 与 6 所示。

在图示的电路框图中,control 模块可以生成不同的使能信号(startend 信号)来控制计数器在 \boldsymbol{A}\boldsymbol{B} 模式下运行,以获取三个计数器。 当一个迭代阶段完成后,counter1 的计数结果将与 ref 信号进行比较。 比较结果不仅决定下一轮迭代的使能信号,还决定下一轮比较的新 ref 信号。 具体而言,当比较结果为正时,新 ref 信号为 -cnt2;相反,则为 -cnt3。 当四个迭代全部完成后,zoom 模块停止工作,接收到的光子将被送往 TDC 模块计算估计的 dToF,并在满足所需粗区间时存储到 Hist-ram 模块中。 在完成五个迭代阶段后(每个阶段包含 \boldsymbol{N} 次激光脉冲),Peak-find 模块被激活以寻找最大计数的索引,并将其送往 Memory-out 模块,作为深度估计的结果。 在 TDC 电路的设计中,我们采用了二阶插值结构,第二阶段基于 Tapped delay line(TDL)架构 8

在时序图中,我们以 \boldsymbol{t}=\mathbf{150} 为例进行说明。整个流水线操作可以分为五个阶段,前四个阶段使用基于计数器的缩放操作,最后一个阶段使用基于 TDC 的直方图操作。\boldsymbol{C}_{\boldsymbol{j},\boldsymbol{i}} 表示 \boldsymbol{j}_{\boldsymbol{t}\boldsymbol{h}} 计数器在 \boldsymbol{i}_{\boldsymbol{t}\boldsymbol{h}} 迭代中的使能工作时间(状态 \boldsymbol{A} 和状态 \boldsymbol{B}),而 \boldsymbol{S}_{\boldsymbol{j},\boldsymbol{i}} 表示 \boldsymbol{j}_{\boldsymbol{t}\boldsymbol{h}} 计数器在 \boldsymbol{i}_{\boldsymbol{t}\boldsymbol{h}} 迭代中的使能递增时间(仅状态 \boldsymbol{A})。当第一次迭代完成时,比较结果很可能为正,因此将 \boldsymbol{C}_{\boldsymbol{1,2}} 调整为 \boldsymbol{S}_{\boldsymbol{1,1}} 以启动第二个迭代阶段。当前四个迭代阶段全部完成后,\boldsymbol{C}_{\boldsymbol{j},5} 全部拉低以关闭三个计数器。随后,TDC 模块开始计算 dToF 并将其发送到 Hist-ram 模块。

Figure 6

表 I

我们的模型已在 Xilinx xc7z020 FPGA 上实现。性能及与先前工作的对比已在表 I 中总结。与 9 相比,所提出的部分缩放方法将 RMSE/RMDE 减少 58%/98%,延迟降低 42%。与 10 相比,还降低了 92% 的内存、55% 的延迟和近 80% 的功耗。如图 6(b) 与 (c) 所示,由于使用低功耗计数器,功耗下降。

本文提出了一种快速准确的部分缩放方法用于 SPAD LiDAR 的深度估计,该方法相较于全缩放方法实现了显著的速度和精度提升,并相较于全直方图方法实现了资源消耗的显著降低。相应的紧凑电路系统设计已在 FPGA 上实现,以验证其电路性能。

第四节. 结论

脚注

. 三个算法都在同一个 FPGA 上重新实现,

参考文献

附加参考文献

  1. D. Stoppa, “一种可重构的 QVGA/Q3VGA 直接飞行时间 3D 成像系统,配备芯片内深度图计算,采用 45/40 nm 三维堆叠 BSI SPAD CMOS ”, Proc. Int. Image Sensor Workshop, pp. 53–56, 2021.