社区所有版块导航
Python
python开源   Django   Python   DjangoApp   pycharm  
DATA
docker   Elasticsearch  
aigc
aigc   chatgpt  
WEB开发
linux   MongoDB   Redis   DATABASE   NGINX   其他Web框架   web工具   zookeeper   tornado   NoSql   Bootstrap   js   peewee   Git   bottle   IE   MQ   Jquery  
机器学习
机器学习算法  
Python88.com
反馈   公告   社区推广  
产品
短视频  
印度
印度  
Py学习  »  机器学习算法

基于WiFi信号和深度学习的车内儿童检测系统——DeepCPD

汽车电子与软件 • 3 周前 • 59 次点击  


作者 | 穹宇逐光
出品 | 汽车电子与软件


大家可能都听说过,有时候家长会不小心把孩子落在车里。要知道,在高温又封闭的车内环境里,孩子特别容易中暑,严重的话甚至会丢掉性命。所以,车辆特别需要一个可靠的系统,能及时发现车里有没有被遗忘的孩子,避免这种危险情况发生。而且现在好多国家都打算在未来强制车辆配备这样的检测系统。



01 - 现有技术的问题


目前,市面上存在多种用于车内检测的技术,但都存在一定的局限性。传统的传感器,如压力传感器和温度传感器,它们只能检测一些物理量的变化,却无法准确识别“人”的存在,更不可能区分是成人还是儿童。红外或摄像头监控虽然在检测准确度上相对较高,但它们对光线环境的要求较为苛刻,并且需要额外安装硬件设备,增加了成本和部署的难度。毫米波雷达技术性能不错,但成本高昂,部署起来也比较困难,很多车辆并没有配备该技术。



图1 - UWB儿童遗留检测[1]


WiFi信号检测法倒是有点优势,不用额外设备,覆盖范围广,还能保护隐私。但以前用WiFi信号检测的方法有个大问题,就是很难分清车里是“儿童”还是“成人”,经常误报警。



02 - 真需求


为了解决上述痛点,研究团队[2]设计了一个全新的系统,该系统基于WiFi信号,专门用于检测车内是否有儿童。这个系统需要具备以下特点:能够准确识别儿童、成人和空车这三类状态;可以适应不同的天气条件、车辆类型以及座位位置;误报率低,可靠性高,并且能够快速部署在真实的车辆上。



03 - 关键技术详解


  • WiFi信号是怎么用来检测人的?


每辆车通常都配备有WiFi,WiFi信号在车厢内会不断地进行反射、折射和散射。当信号碰到人时,其传播情况就会发生改变。通过分析这些变化,我们可以了解到一些信息,比如车里是否有人,人是处于运动状态还是静止状态,以及人的呼吸频率是多少。


然而,WiFi信号容易受到环境的影响,比如车内的装饰、座椅的布局等,这些因素都会使信号发生变化,导致很难提取出稳定的特征。为了解决这个问题,研究团队采用了提取WiFi信道状态信息(CSI)的自相关函数(ACF)的方法。


CSI 是无线信号在传输过程中受到环境影响后的状态信息,它包含了信号的幅度、相位和频率响应等信息,反映了信号从发射端到接收端的路径特性,在 Wi-Fi 系统中,CSI 可以被看作是每个子载波上的复数响应,描述了信道对信号的影响。


CSI 的 ACF就是CSI 数据在不同时间点之间的相关性随时间延迟的变化情况,当前时刻的 CSI 和过去某个时刻的 CSI 有多像?这个关系就是 CSI 的 ACF。也就是说ACF 能捕捉 CSI 的周期性变化, 呼吸和心跳都是周期性生理活动,它们会在 CSI 中留下周期性变化的痕迹,ACF 能够捕捉这些周期性变化,并通过峰值位置和形状反映生理活动的频率。


而且,ACF对环境噪声不太敏感,这意味着即使车辆所处的位置发生变化,或者天气条件有所不同,它都能稳定地工作。


更重要的是,儿童和成人的动作、呼吸节奏是不一样的,ACF可以识别出这种差异。例如,成年人的呼吸相对较慢,每分钟大约12 - 20次,而小孩的呼吸更快,每分钟大约20 - 30次。通过对ACF进行分析,系统就可以“听出”这种区别,从而判断出是孩子还是大人在车内。



图2 – 某子载波提取的自相关函数(ACF)

(a)车辆A空载     (b)车辆A儿童呼吸场景

(c)车辆A成人呼吸场景    (d) 车辆B空载

(e) 车辆B儿童呼吸场景     (f) 车辆B成人呼吸场景



  • 怎么用AI模型识别儿童?


研究团队设计了一个深度神经网络模型来分析ACF数据,这个模型主要分为两个核心部分。



图3-DeepCPD System Design[2]


①用Transformer理解“时间变化”


Transformer是一种擅长理解序列变化的AI架构。它可以找出呼吸、动作的周期性,比如判断“这个人有没有规律地呼吸”、“动作的速度快不快”。在这个系统中,使用了AutoFormer的结构,它能够识别长期趋势和周期模式。


②用MLP(多层感知机)来做分类


将Transformer提取到的关键特征输入到一个分类模型中,这个模型就是MLP。MLP会输出三个选项中的一个,分别是“儿童在车里”、“成人在车里”(此时不用报警)、“车里没人”(也无需报警)。



  • 如何解决数据不足和环境差异的问题?



图4 -不同天线配置

(a)共置天线设置 (b)分布式天线设置 (c)混合天线设置


①数据增强方法


为了让模型能够学习到更多不同情况下的数据,研究团队采用了两种数据增强方法。


链路排列(Link Permutation)这种方法模拟了儿童坐在不同座位的情况,让数据看起来更加丰富多样。通过对不同天线对计算得到的自相关函数(ACF)进行排列组合,创建出合成样本,就好像儿童坐在了不同的位置一样,从而帮助模型避免对特定座位位置的过拟合,提高其对不同天线配置的泛化能力。


链路混合(Link Mix)把不同环境下的信号组合起来,让AI模型能够看到更多的“变化”,变得更加聪明。具体来说,就是从两个不同的样本中选取高灵敏度和低灵敏度的链路进行合并,生成新的、多样化的表示,从而提高模型对不同位置和设备设置的适应能力。


②两阶段训练方法



图5 – 从用户在座位1时的呼吸场景中,每个发射-接收对提取的ACF [2]


第一阶段,先教AI识别“有没有人”。使用一些简单的家庭环境数据,比如人在房间里走动的数据,进行基础训练。在这个阶段,将所有成人和儿童的数据都归为“有人”这一类,重点让模型学习基本的运动和呼吸特征。同时,为了与车内环境保持一致,排除了室内数据中的行走数据,因为在车内通常不会出现行走的步态模式。


第二阶段,在真实的车内数据中对模型进行精细调整,让它学会区分成人和儿童。通过这个阶段的训练,模型能够更有效地识别出儿童特有的特征。

通过这两个步骤,模型即使在没有太多儿童实测数据的情况下,也能够快速学习、牢固记忆,并且表现出色。



图6 – 儿童,成人与空置分类的混淆矩阵[2]



04 - 实验结果说明


研究团队在超过25种不同车型中收集数据,并且在各种天气和环境条件下进行测试,确保数据的多样性和全面性。总共使用了超过500小时的真实数据,涵盖了婴儿、儿童、成人以及空车等各种情况。


性能表现



表1 - 与基线神经网络模型的比较[2]


关键结论


  • 对于婴儿和小童的识别最为准确,识别率在99%以上。这是因为他们的动作和呼吸节奏与成人有较大的区别,更容易被模型识别。


  • 当儿童年龄接近6岁时,动作越来越像成人,识别率会略下降到约85%,但仍然处于可接受的范围。


  • 该系统在不同的环境条件下都表现稳定,无论是雨天、阳光强烈的天气,还是停车场嘈杂的环境,都不会对其性能产生太大的影响。


  • 系统具有很强的适应性,适用于不同车型和天线位置,这表明它具有广泛的应用前景。



本文介绍的基于WiFi信号和深度学习的车内儿童检测系统——DeepCPD,无需额外的传感器,仅通过车上已有的WiFi就能准确识别车内是否有儿童存在,并且能够区分成人和空车状态。它在准确性、稳定性和泛化能力方面都表现出色,是未来智能汽车安全系统的一个重要组成部分。



参考

[1] 联合汽车电子数字钥匙系统拓展应用——UWB儿童遗留检测功能

https://www.auto-made.com/news/show-16462.html

[2] DeepCPD: Deep Learning Based In-Car Child Presence Detection Using WiFi

https://arxiv.org/abs/2505.08931



 / END /



Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/182460
 
59 次点击