车内儿童检测60GHz雷达突破:2025研究进展与Euro NCAP合规路径

车内儿童检测60GHz雷达突破:2025研究进展与Euro NCAP合规路径

来源:ResearchGate (September 2025)
链接:https://www.researchgate.net/publication/397083687_In-Vehicle_Child_Presence_Detection_Using_60GHz_Radar

核心创新

首次系统性验证60GHz雷达在车内儿童检测中的应用

  • 检测准确率:96.5%
  • 覆盖场景:婴儿座椅/毯子覆盖/极端温度
  • 法规符合:Euro NCAP 2026 CPD要求

技术背景

Euro NCAP 2026 CPD强制要求

检测对象 检测时限 警告方式 得分权重
婴儿(<1岁) 锁车后≤30s 车内蜂鸣+手机推送 5分
儿童(1-12岁) 锁车后≤60s 车内蜂鸣+手机推送 3分
宠物 锁车后≤90s 手机推送 1分

技术路线要求(2025年起):

  • 直接感知:雷达/摄像头/超声波
  • 间接推断:车门开关逻辑/重量传感器/压力传感器

60GHz雷达技术优势

graph LR
    A[60GHz雷达] --> B[穿透性<br/>穿透毛毯/衣物]
    A --> C[隐私性<br/>无图像采集]
    A --> D[全天候<br/>不受光照影响]
    A --> E[低功耗<br/><500mW]

方法详解

硬件架构

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
class CPD_Radar_System:
"""
60GHz CPD雷达系统

硬件配置:
- TI AWRL6844: 60GHz FMCW雷达
- 4发4收天线阵列
- 算力: 200MHz DSP
- 功耗: <500mW
"""

def __init__(self):
# 雷达参数
self.freq_band = '60GHz' # 57-64GHz
self.bandwidth = 4GHz # 分辨率 ≈ 4cm
self.update_rate = 10 # Hz
self.num_tx = 4
self.num_rx = 4

# 信号处理链
self.range_fft_size = 256
self.doppler_fft_size = 64

def configure_for_cabin(self, cabin_dims):
"""
根据座舱尺寸配置雷达参数

Args:
cabin_dims: (length, width, height) in meters
"""
# 距离范围
max_range = max(cabin_dims) * 1.2
self.max_range = max_range

# 距离分辨率
self.range_resolution = 0.3e9 / (2 * self.bandwidth * 1e9) # meters

# 速度分辨率(检测呼吸运动)
self.velocity_resolution = 0.1 # m/s(呼吸约0.3m/s)

信号处理管道

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
import numpy as np
from scipy import signal

class CPD_Signal_Processor:
"""
CPD信号处理器

检测链:
1. Range-Doppler Map生成
2. 静态杂波去除
3. 生命体征提取(呼吸/心跳)
4. 儿童分类
"""

def __init__(self, num_range_bins=256, num_doppler_bins=64):
self.num_range_bins = num_range_bins
self.num_doppler_bins = num_doppler_bins

def process_frame(self, adc_data):
"""
处理单帧雷达数据

Args:
adc_data: (num_chirps, num_samples) ADC数据

Returns:
detection_map: (H, W) 检测热力图
vital_signs: {'respiration': float, 'heartbeat': float}
"""
# 1. Range FFT
range_fft = np.fft.fft(adc_data, n=self.num_range_bins, axis=1)

# 2. Doppler FFT
rd_map = np.fft.fftshift(
np.fft.fft(range_fft, n=self.num_doppler_bins, axis=0),
axes=0
)

# 3. 静态杂波去除(MTI滤波)
rd_map_filtered = self._remove_static_clutter(rd_map)

# 4. 提取生命体征
vital_signs = self._extract_vital_signs(rd_map)

# 5. 生成检测图
detection_map = np.abs(rd_map_filtered)

return detection_map, vital_signs

def _remove_static_clutter(self, rd_map):
"""
去除静态杂波(座椅/车内饰)

留下动态信号(呼吸运动)
"""
# 时域高通滤波
doppler_axis = 0
b, a = signal.butter(4, 0.1, 'high')
filtered = signal.filtfilt(b, a, rd_map, axis=doppler_axis)
return filtered

def _extract_vital_signs(self, rd_map):
"""
从RD图提取生命体征

检测:
- 呼吸频率: 0.2-0.5 Hz (12-30次/分钟)
- 心跳频率: 1.0-2.0 Hz (60-120次/分钟)
"""
# 在低速区域寻找峰值
low_velocity_region = rd_map[
self.num_doppler_bins//2-5:self.num_doppler_bins//2+5, :
]

# 对距离维度积分
velocity_profile = np.sum(np.abs(low_velocity_region), axis=1)

# 时域FFT得到频率成分
freq_spectrum = np.fft.fft(velocity_profile)
freqs = np.fft.fftfreq(len(velocity_profile), d=0.1) # 100ms间隔

# 寻找呼吸频率
resp_band = (freqs > 0.2) & (freqs < 0.5)
resp_freq = freqs[resp_band][np.argmax(np.abs(freq_spectrum[resp_band]))]

# 寻找心跳频率
heart_band = (freqs > 1.0) & (freqs < 2.0)
heart_freq = freqs[heart_band][np.argmax(np.abs(freq_spectrum[heart_band]))]

return {
'respiration': resp_freq * 60, # 次/分钟
'heartbeat': heart_freq * 60 # 次/分钟
}

儿童检测分类器

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
class Child_Classifier:
"""
儿童存在分类器

区分:
- 空座
- 成人
- 儿童
- 物体
"""

def __init__(self):
# 特征阈值(需根据实际标定)
self.respiration_child_range = (25, 40) # 次/分钟
self.respiration_adult_range = (12, 20)
self.size_child_range = (0.3, 0.6) # 米(RCS估计)

def classify(self, detection_map, vital_signs):
"""
分类检测结果

Returns:
label: 'empty' | 'adult' | 'child' | 'object'
confidence: 0.0-1.0
"""
# 1. 检查是否有运动信号
max_signal = np.max(detection_map)
if max_signal < self.signal_threshold:
return 'empty', 0.9

# 2. 提取呼吸特征
resp_rate = vital_signs['respiration']

# 3. 基于呼吸频率分类
if self.respiration_child_range[0] <= resp_rate <= self.respiration_child_range[1]:
return 'child', 0.85
elif self.respiration_adult_range[0] <= resp_rate <= self.respiration_adult_range[1]:
return 'adult', 0.90
else:
# 异常呼吸或物体
return 'object', 0.5

实验结果

检测性能(不同场景)

场景 准确率 误检率 漏检率
正常坐姿 98.5% 0.5% 1.0%
毯子覆盖 96.5% 1.5% 2.0%
婴儿座椅(后向) 97.0% 1.0% 2.0%
极端温度(-10°C) 95.0% 2.0% 3.0%
极端温度(50°C) 94.5% 2.5% 3.0%

与其他技术对比

技术 穿透性 隐私 成本 准确率 Euro NCAP推荐
60GHz雷达 ⭐⭐⭐⭐⭐ ⭐⭐⭐⭐⭐ ⭐⭐⭐ 96.5% ⭐⭐⭐⭐⭐
79GHz雷达 ⭐⭐⭐⭐ ⭐⭐⭐⭐⭐ ⭐⭐⭐ 95.0% ⭐⭐⭐⭐
摄像头 ⭐⭐ ⭐⭐⭐⭐ 92.0% ⭐⭐⭐
超声波 ⭐⭐⭐ ⭐⭐⭐⭐⭐ ⭐⭐⭐⭐⭐ 85.0% ⭐⭐
压力传感器 ⭐⭐⭐⭐⭐ ⭐⭐⭐⭐⭐ 70.0% ❌(间接)

覆盖检测测试

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
def test_coverage_scenarios():
"""
覆盖场景测试

验证雷达穿透性
"""
scenarios = [
{'name': '毛毯覆盖', 'thickness': '5mm', 'result': 'PASS'},
{'name': '冬季厚衣', 'thickness': '10mm', 'result': 'PASS'},
{'name': '婴儿安全毯', 'thickness': '15mm', 'result': 'PASS'},
{'name': '多层覆盖', 'thickness': '20mm', 'result': 'WARN(衰减)'},
]

for s in scenarios:
print(f"{s['name']}: {s['result']}")

Euro NCAP合规路径

测试场景清单

场景编号 描述 检测要求 验证方法
CPD-01 婴儿座椅-后向 ≤30s 真人/假人测试
CPD-02 儿童座椅-前向 ≤60s 真人/假人测试
CPD-03 儿童单独坐 ≤60s 真人测试
CPD-04 儿童覆盖毯子 ≤60s 真人测试
CPD-05 婴儿睡眠状态 ≤30s 真人测试
CPD-06 宠物(狗) ≤90s 真动物测试

系统架构设计

graph TB
    A[60GHz雷达传感器] --> B[信号预处理DSP]
    B --> C[Range-Doppler Map]
    C --> D[生命体征提取]
    D --> E[儿童分类器]
    E --> F{检测到儿童?}
    F -->|Yes| G[触发警告]
    F -->|No| H[持续监测]
    G --> I[车内蜂鸣]
    G --> J[手机推送]
    G --> K[云通知紧急服务]

集成到车辆网络

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
class CPD_Vehicle_Integration:
"""
CPD系统集成到车辆网络

接口:
- CAN/LIN: 接收锁车信号
- OTA: 云端通知
- IVI: 信息娱乐显示
"""

def __init__(self):
self.radar = CPD_Radar_System()
self.processor = CPD_Signal_Processor()
self.classifier = Child_Classifier()

def on_vehicle_lock(self, event):
"""
锁车后启动CPD检测

Euro NCAP要求:
- 锁车后30秒内完成检测
- 持续监测10分钟
"""
import time

start_time = time.time()

# 持续监测10分钟
while time.time() - start_time < 600:
# 获取雷达数据
adc_data = self.radar.acquire_frame()

# 处理
detection_map, vital_signs = self.processor.process_frame(adc_data)

# 分类
label, confidence = self.classifier.classify(detection_map, vital_signs)

if label in ['child', 'adult']:
# 触发警告
self._trigger_alert(label, confidence)
break

# 等待下一帧
time.sleep(0.1)

def _trigger_alert(self, occupant_type, confidence):
"""触发警告"""
# 1. 车内蜂鸣
self._activate_buzzer()

# 2. 手机推送
self._send_mobile_notification(occupant_type, confidence)

# 3. 云端日志
self._log_to_cloud(occupant_type, confidence)

IMS应用启示

1. 芯片选型

芯片 通道数 功耗 价格 推荐度
TI AWRL6844 4T4R 450mW $15 ⭐⭐⭐⭐⭐
Infineon BGT60TR13C 1T3R 350mW $12 ⭐⭐⭐⭐
TI AWRL6432 2T2R 300mW $10 ⭐⭐⭐(低成本)

2. 天线布局

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
def design_antenna_placement(cabin_dims):
"""
天线布局设计

目标:覆盖所有座位

方案:
- 前排顶置:覆盖前排座椅
- 后排顶置:覆盖后排座椅
- B柱侧置:补充覆盖
"""
length, width, height = cabin_dims

# 建议布局
placements = [
{'position': (length * 0.3, width / 2, height - 0.1), 'coverage': '前排'},
{'position': (length * 0.7, width / 2, height - 0.1), 'coverage': '后排'},
]

return placements

3. 与DMS融合

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
class DMS_CPD_Fusion:
"""
DMS + CPD 融合系统

共享硬件:
- 同一雷达芯片
- 同一DSP
"""

def __init__(self):
self.radar = CPD_Radar_System()

def dual_mode_operation(self):
"""
双模态运行

模式1(驾驶中):DMS优先
模式2(锁车后):CPD优先
"""
mode = self._get_vehicle_mode()

if mode == 'driving':
# DMS模式:检测驾驶员疲劳/分心
return self._run_dms_mode()
elif mode == 'locked':
# CPD模式:检测儿童遗留
return self._run_cpd_mode()

def _run_dms_mode(self):
"""DMS模式实现"""
# 高速更新(30fps)
# 关注驾驶员位置
pass

def _run_cpd_mode(self):
"""CPD模式实现"""
# 低速更新(10fps)
# 扫描全座舱
pass

4. 开发测试矩阵

测试项 方法 通过标准 状态
空座基线 无乘客 无误检 ⬜ 待测
成人检测 成人坐各座位 无误检为儿童 ⬜ 待测
儿童检测 儿童坐各座位 检测率>95% ⬜ 待测
覆盖测试 毛毯覆盖儿童 检测率>90% ⬜ 待测
温度测试 -10°C~50°C 性能稳定 ⬜ 待测

参考文献

  1. Nazri, M. et al. (2025). In-Vehicle Child Presence Detection Using 60GHz Radar. ResearchGate.
  2. Euro NCAP (2026). Safe Driving Occupant Monitoring Protocol v1.1.
  3. TI (2026). AWRL6844 60GHz Radar Technical Reference Manual.

总结: 60GHz雷达是目前最符合Euro NCAP 2026要求的CPD技术方案。建议优先验证极端温度和覆盖场景,然后与DMS系统融合共享硬件。


车内儿童检测60GHz雷达突破:2025研究进展与Euro NCAP合规路径
https://dapalm.com/2026/08/03/2026-08-03-in-vehicle-child-presence-detection-60ghz-radar-research-2025/
作者
Mars
发布于
2026年8月3日
许可协议