加特兰官方公众号推文:点击访问
2024欧洲雷达会议EuRadar论文链接:https://ieeexplore.ieee.org/stamp/stamp.jsp?tp=&arnumber=10734950
一起来看看全文内容!
本文介绍了一种实时车内检测、定位和分类解决方案,该解决方案采用毫米波 (mmWave) 雷达片上系统 (SoC) Calterah CAL60S344-AE,由微型机器学习 (TinyML) 实现。
波束距离多普勒 (BRD) 特征旨在减轻干扰的影响并促进成人和婴儿的分类,我们开发了两个轻量级卷积神经网络 (CNN),并采用标签平滑(label-smoothing)技术来克服杂乱的标签并增强模型的泛化性。大量实验表明,该实现在最坏情况下可以实现超过 96% 的检测准确率和超过 90% 的定位和分类准确率,模型大小仅为 76 KB,推理时间约为 44ms(舱内应用可以接受)。比较分析还强调了模型泛化性和稳定性对于实际应用的重要性,并表明即使使用简单的 CNN 模型也可以获得令人满意的性能。(人体坐着是否会一直触发检测?)
I、概述
车内乘客检测在各种安全应用中起着至关重要的作用,例如安全带提醒器、安全气囊展开优化和儿童存在检测 (CPD) 以防止中暑事件。尽管摄像头被广泛用于检测和识别,但它们可能会侵犯个人隐私,并且在检测隐藏在障碍物后面的物体方面面临挑战。
压力传感器也可用于检测乘客的存在,但将物体放在座椅上可能会导致传感器误报。相比之下,毫米波雷达有可能克服这些限制并准确检测乘客,即使在低光环境或阳光眩光等具有挑战性的情况下也是如此。它能够检测到儿童的呼吸等细微动作,使其特别适合满足 EuroNCAP 2025 路线图规定的严格安全要求,该路线图强调了车辆中 CPD 对预防事故的重要性。
最近的研究探索了使用信号处理或新兴机器学习技术将毫米波雷达用于车内检测。陈等人[1] 提出了一种基于雷达的车内乘员监测方法,通过处理Capon和CFAR生成的点云。Abedi 等 [2] 利用机器学习方法处理距离-方位 (RA) 热图以确定占用座椅的位置。虽然基于 Capon 的方法可以实现更高的角度分辨率并有助于检测和定位车内人员,但它们可能对复杂的干扰敏感,例如手机振动、风扇和汽车的细微移动。这些干扰会产生高频分量,无法通过基于RA的处理流程中采用的零多普勒消除来消除。
此外,Capon生成RA图需要大量的矩阵乘法和求逆,因此很难在毫米波雷达 SoC 上实现。Cruz 等 [3]、Song 等 [4] 提出利用时频特征来减少推理的影响并提高检测的鲁棒性。然而,获取时频特征也需要大量的计算和内存。
此外,大多数以前的研究在开发深度学习模型时很少考虑内存和计算复杂性,这可能导致在嵌入式雷达系统上无法实现。在本文中,我们提出了一种新的处理流程,利用BRD特征代替RA域中的功率分布,以克服干扰的影响并利用不同的距离多普勒特征提供对成人和婴儿进行分类的能力。在毫米波雷达SoC上开发和部署了具有8位整数后量化的微型CNN模型。除了检测车内是否有人之外,我们还采用深度学习模型同时确定人坐在哪个座位上以及此人是成人还是婴儿。此外,我们展示了在Calterah雷达SoC上的实时实现并通过大量实验对其进行了验证。
II、方法
A、处理流程
图1:所提出的使用 TinyML 进行的舱内检测、定位和分类方法的处理流程
图 1 说明了建议的舱内检测、定位和分类处理流程。输入的是模数转换后的数据,简称ADC数据。首先对ADC数据进行沿快速采样轴的快速傅立叶变换(FFT),也称为快速处理,以获得距离信息。随后,将执行零多普勒去除(静态杂波消除),然后沿慢时间轴进行第二次FFT,以获得所有虚拟 MIMO 通道的距离多普勒 (RD) 图。与涉及非相干累积、恒定虚警率 (CFAR) 检测和到达方向 (DoA) 估计的传统雷达处理相比,我们直接应用 N 点二维数字波束形成 (DBF),如下所示:
其中,x(c,r,v)是虚拟通道c、距离索引r和多普勒索引v处的慢时FFT结果的复数值,sv(c,i)是通道c和波束i的导向矢量, P(r,v,b)是N点DBF的功率。
每个波束都定向到我们对舱内应用感兴趣的区域。例如,我们执行 6 点 DBF,这些波束指向第二排的三个座椅及其相应的脚部空间区域。由于我们设计的波束宽度相对较大,第二排的整个区域,包括两个座椅之间的区域,都被有效覆盖。经过N点DBF后,将得到一个具有距离、多普勒和角度维度的数据立方体,其中每个元素代表特定距离、多普勒频率和角度对应的功率。我们选择数据立方体的一部分,特别是本文所示实现中的 24 × 64 × 6,并使用非对称8位整数格式量化功率值,如公式(2)所示。
其中,b0和a0分别表示输入的假定偏差和比例因子,round表示舍入操作,clip(x, xmin, xmax)是将输入限定在xmin和xmax范围内的函数。
图2:BRD 特征示例:(a) 成人坐在 A 座位上不动,(b) 婴儿坐在 B 座位上且没有安全座椅。
图2显示出了A座位上没有移动的成人和B座位上没有安全座椅的婴儿的BRD特征示例。从图中可以观察到视觉差异,这保证了所提出的方法可以对成人和婴儿进行定位和分类(有视觉差异,也就是特征差异,才有可能被网络模型区分出来,否则再牛的网络都无济于事)。
然后将生成的 3 维 int8 数据输入到开发的 CNN 模型中。在这项工作中,CNN 执行7类分类任务,对应以下场景:
(1)空无干扰或无干扰,总共1类
(2)座位 A/B/C(第二排右/中/左座位)被成人占用 ,总共3类
(3)座位 A/B/C 均被婴儿占据,总共3类。
B、深度学习模型开发和部署
图3:舱内雷达CNN模型的开发和部署流程
图 3 显示了用于舱内雷达的 CNN 模型的开发和部署过程。初始化后,使用梯度下降优化对 CNN 模型进行多个时期的训练,执行验证以评估验证损失并确定是否应提前停止训练过程。
所有7种情况的数据来自三十五次独立实验,每个实验包含 1000 帧,并将它们分成训练和验证数据集,分割率为 0.3(三七开)。虽然可以毫不费力地为舱内应用标记数据,但仍然存在噪声数据。例如,一个人可能坐在座位的边缘并占据相邻座位的一小部分。此外,一个人的移动也可能会侵入另一个座位区域。因此,直接使用这些标签会使 CNN 模型混乱并降低其性能。
此外,在实际应用中可以观察到数据分布漂移,如第 IV 节所示。为了解决标签噪声问题并提高模型泛化性,我们采用了标签平滑方法 [5]。标签平滑不使用独热编码(one-hot)标签(其中真实类别的概率为 1,所有其他类别的概率为 0),而是为非目标类别分配一个小的非零概率 α,如公式3所示:
其中, yLS 是平滑标签,ytrue 是独热编码的真实标签,K 是类别数。
说明:非零概率 α一般取0.1。
图源:https://blog.csdn.net/ytusdc/article/details/128503206
学习资料:https://blog.csdn.net/wzx479/article/details/89374109
论文:https://arxiv.org/pdf/1906.02629
TinyML 技术对于在内存和计算能力有限的边缘设备上部署已建立的 CNN 模型至关重要,这项工作主要采用训练后量化来减少内存占用并加速推理。在此过程中,训练数据集被用作代表性数据集。建立的模型在该数据集上运行,收集各层参数的最小值、最大值和标准差值。
基于这些统计数据,参数从 32 位浮点缩放到 8 位整数范围,类似于 CNN 输入的量化,如公式(2)所示。最后,采用 TensorFlow Lite Micro 框架将量化模型与雷达平台 SDK 一起部署,生成可下载到毫米波雷达 SoC 的舱内雷达二进制文件。
III、实现
我们在 Calterah CAL60S344-AE 平台(也称为 RhinePro)上实施了我们提出的方法。这款 4T4R 雷达 SoC 在 59 GHz 至 64 GHz 频率范围内运行,并配备雷达基带加速器 (BBA) 以加速信号处理,它具有 300MHz 双 CPU 内核和 3MB SRAM。
我们采用半波长均匀阵列,它通过 TDM 生成 4×4 矩形虚拟阵列。SoC芯片和天线如图4所示。
图4:RhinePro 芯片和天线的照片
如图1所示,FFT和N点DBF在RhinePro的BBA中实现。然后CPU访问DBF结果并执行后续推理。
RhinePro的BBA显着加快了信号处理速度,0.4ms内即可获得DBF结果。由于与波形传输并行,快速处理的处理时间较长。我们开发了两种类型的 CNN 模型,第一个是简单的 3 层顺序 CNN,本文称为 SimpleNet。SimpleNet由三个具有最大池化和 ReLu6 激活的卷积层组成,后面是一个全连接层(ReLU6 就是普 通的 ReLU 但是限制最大输出为 6,这是为了在移动端设备 float16/int8 的低精度的时候也能 有很好的数值分辨率)。
第二个是MobileNetV2 [6],它比 SimpleNet 复杂得多,被认为是最好的轻量级 CNN 架构之一。SimpleNet 和 MobileNetV2 的大小分别约为 275KB 和 5.3MB。量化后,它们的大小减少到大约 78KB 和 1.6MB。
我们在RhinePro平台上实现int8后量化后的SimpleNet,并将在下一节中展示评估结果,而开发的MobileNetV2部署在桌面上仅用于比较。在我们的实现中,int8 量化的 SimpleNet 的推理时间约为 44 ms,而没有量化的相同模型则需要大约 855 毫秒。通过将 CNN 推理与波形传输并行化,我们开发的舱内雷达可以实现高达 20Hz 的更新率。
IV、实验评价与分析
图5:测试场景示例
为了验证我们提出的方法和实施,我们进行了一系列全面的实验。图 5 说明了实验测试用例的示例。雷达平台安装在车辆顶部中央。我们评估了三类不同的场景:
(1)有干扰的空车场景,例如运转的风扇、座位上的手机振动或外部车辆振动;
(2)成年乘员就座时有或没有身体移动;
(3)座椅上或脚坑内具有模拟呼吸功能的婴儿玩偶,其儿童安全座椅向前或向后安装,或不安装安全座椅。
图 6. 不带标签平滑的 SimpleNet、带标签平滑的 SimpleNet 和带标签平滑的 MobileNetV2 的训练和验证准确性。(a) 训练准确性,(b) 验证准确性。
图 6 展示了三种不带量化的 CNN 模型的训练和验证精度:不带标签平滑的 SimpleNet、带标签平滑的 SimpleNet 和带标签平滑的 MobileNetV2。
很明显,两个 SimpleNet 的训练准确率都超过了 95%,而 MobileNetV2 的准确率达到了约 99.6%。此外,与 SimpleNet 相比,MobileNetV2 的收敛速度明显更快。
图 7. 使用和不使用标签平滑的 SimpleNet 以及使用标签平滑的 MobileNetV2 在测试数据集上的混淆矩阵结果。
我们使用独立的测试数据集评估了这些模型,结果如图 7 所示,观察到验证结果和测试结果之间存在性能差距。在最坏情况下,没有标签平滑的 SimpleNet 的性能与验证结果相比下降了约 15%,而其他两个模型的最坏情况准确率仍然超过 89%。这种差异可归因于训练和验证数据集中的数据来自相同的实验,而测试数据集来自独立的实验。这可能会引入数据分布变化,并且在没有标签平滑的情况下过度拟合 SimpleNet 会导致性能严重恶化。
为了进一步评估两个模型具有标签平滑和量化的泛化能力,我们进行了一项额外的独立实验,稍微修改了安装位置以及不同的测试人员和婴儿模型。这样做的目的是模拟现实应用中遇到的实际情况。
图 8. 实际应用中带有标签平滑的 SimpleNet 和 MobileNetV2 的混淆矩阵结果
图 8 所示的结果表明,尽管由于测试环境的变化,本实验中模型的性能与测试数据集上的性能有所不同,但这两个模型仍然达到了约 94% 的平均准确率。
比较验证数据集上量化模型的结果,我们发现后量化几乎不会导致性能下降,相反,性能略有提高。这主要归因于后量化引入了一定程度的噪声,其作用类似于训练期间的正则化,从而防止过度拟合并增强泛化能力。图 8 和图 7 中的结果也强调了实际应用中存在的具体情况波动,表明深度学习模型的泛化性将是主要关注点。
此外,与本研究中使用简单、紧凑的 CNN(例如 SimpleNet)相比,使用相对复杂的模型(例如 MobileNetV2)可能会产生有限的改进。为了证明所提出方法的鲁棒性,我们展示了使用 SimpleNet 的推理案例的详细结果,其中一个人从外部摇动空车以模拟汽车的外部振动。
图9.空车在室外晃动情况的推理结果。(a) BRD 特征示例 (b) 预测分数,(c) 分类结果。
图 9(a) 展示了 CNN 输入特征的一个示例,(b) 和 (c) 描述了该案例研究的预测分数和分类结果。图9(a)和图2的比较显示了干扰、成人和婴儿在BRD特征上的差异,可以用来区分它们。尽管在这种情况下会出现两个误报,但可以通过采用时间平滑等逻辑策略来减轻它们。
V、结论
本文提出了一种基于加特兰雷达 SoC 平台和 TinyML 的舱内检测、定位和分类应用的实时解决方案。我们提出并实现了一种新颖的处理流程,该流程利用了多个波束方向的 BRD 特征。为了解决噪声标签并增强所开发的 CNN 的通用性,采用了标签平滑技术。此外,应用后量化来减少内存占用并加速推理。大量的实验表明实践中存在数据分布波动,因此模型的通用性将是首要考虑的问题。无论波动如何,结果表明我们的实现检测准确率超过 96%,最坏情况下的定位和分类准确率超过 90%。开发的微型 CNN 模型占用约 76 KB 内存,推理时间为 44 毫秒。