Euro NCAP 2026 CPD 儿童检测完整指南:60GHz 雷达 + 摄像头融合方案深度解析

前言

儿童遗留车内导致的中暑死亡是全球性问题。Euro NCAP 自 2025 年起将 Child Presence Detection (CPD) 纳入评分体系,且 仅接受直接感知方案(Direct Sensing),间接检测方案不再获得积分。

60GHz 毫米波雷达凭借其穿透性强、可检测呼吸心跳、隐私友好等特性,成为 CPD 检测的主流方案。本文基于 Euro NCAP 官方协议和最新技术资料,深度解析 CPD 雷达 + 摄像头融合方案的技术细节。


一、Euro NCAP CPD 检测协议详解

1.1 检测要求概述

Euro NCAP 对 CPD 系统的核心要求:

要求类别 具体内容
检测对象 0-6 岁儿童
检测状态 睡眠、清醒、被遮挡
检测位置 所有座椅、儿童安全座椅、脚部区域
检测信号 呼吸运动(必须)、肢体运动(可选)
响应时间 锁车后 60 秒内完成检测

1.2 年龄与呼吸频率要求

Euro NCAP 对不同年龄段儿童的呼吸频率检测要求:

年龄 呼吸频率 (BPM) 检测精度要求
新生儿 30 BPM ±2 BPM
1 岁 24-30 BPM ±2 BPM
3 岁 20-26 BPM ±2 BPM
6 岁 18-22 BPM ±2 BPM

关键挑战: 新生儿的呼吸运动幅度极小(胸部起伏约 1-2mm),对雷达灵敏度要求极高。

1.3 遮挡场景要求

Euro NCAP 要求 CPD 系统在以下遮挡场景下仍能检测:

场景 描述 检测要求
毛毯遮挡 儿童被毛毯完全覆盖 必须检测
座椅遮挡 儿童位于后排座椅后方 必须检测
儿童安全座椅 儿童位于 CRS 内 必须检测
侧卧/躺倒 儿童身体姿势异常 必须检测

1.4 检测区域与排除区域

必须覆盖的检测区域:

  • 所有座椅位置(前排、后排)
  • 儿童安全座椅(前向、后向)
  • 脚部区域
  • 第三排座椅(如有)

排除区域:

  • 行李舱(不可从车内直接进入)
  • 后备箱

二、60GHz 雷达 CPD 检测原理

2.1 毫米波雷达基础

60GHz 雷达特性:

参数 数值 说明
频率 60-64 GHz ISM 频段,免授权
波长 ~5mm 适合检测微小运动
带宽 4 GHz 高距离分辨率(~4cm)
穿透性 穿透毛毯、衣物 检测遮挡目标

FMCW (调频连续波) 原理:

1
2
3
4
5
6
7
8
9
发射信号:f_tx(t) = f_c + K*t
接收信号:f_rx(t) = f_c + K*(t-τ)

其中:
- f_c: 载波频率 (60GHz)
- K: 调频斜率 (Hz/s)
- τ: 往返时延 (s)

距离计算:R = c*τ/2 = c*f_beat/(2*K)

2.2 呼吸检测原理

呼吸运动产生的相位调制:

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
# 呼吸运动模型
import numpy as np

def breathing_model(t, breath_rate_bpm, amplitude_mm=2.0):
"""
呼吸运动模型

参数:
t: 时间 (秒)
breath_rate_bpm: 呼吸频率 (次/分钟)
amplitude_mm: 胸部起伏幅度 (毫米)

返回:
胸部位移 (毫米)
"""
frequency = breath_rate_bpm / 60.0 # 转换为 Hz
return amplitude_mm * np.sin(2 * np.pi * frequency * t)

# 不同年龄段的呼吸参数
breathing_params = {
'newborn': {'rate': 30, 'amplitude': 1.5},
'1_year': {'rate': 26, 'amplitude': 2.0},
'3_year': {'rate': 22, 'amplitude': 2.5},
'6_year': {'rate': 18, 'amplitude': 3.0}
}

雷达回波相位变化:

1
2
3
4
5
6
7
8
9
10
11
12
13
Δφ = 4π*ΔR/λ

其中:
- Δφ: 相位变化
- ΔR: 目标位移 (呼吸导致的胸部起伏)
- λ: 波长 (5mm @ 60GHz)

示例:
- ΔR = 2mm (呼吸幅度)
- λ = 5mm
- Δφ = 4π*2/5 = 1.6π ≈ 288°

因此,60GHz 雷达可以高灵敏度地检测呼吸运动。

2.3 信号处理流程

完整的 CPD 雷达信号处理链:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
原始 ADC 数据

Range FFT (距离维 FFT)

Doppler FFT (多普勒维 FFT)

MTI (动目标指示) 滤波

CFAR (恒虚警检测)

相位提取与解调

呼吸频率估计 (FFT / AR 模型)

目标分类 (成人/儿童)

CPD 警告判定

2.4 核心算法实现

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
import numpy as np
from scipy import signal

class CPDRadarProcessor:
def __init__(self, sample_rate=1000, num_samples=256):
self.sample_rate = sample_rate
self.num_samples = num_samples

def range_fft(self, adc_data):
"""距离维 FFT"""
return np.fft.fft(adc_data, axis=1)

def doppler_fft(self, range_data):
"""多普勒维 FFT"""
return np.fft.fftshift(np.fft.fft(range_data, axis=0), axes=0)

def extract_phase(self, range_doppler, target_bin):
"""提取目标位置的相位"""
return np.angle(range_doppler[target_bin, :])

def unwrap_phase(self, phase):
"""相位解缠"""
return np.unwrap(phase)

def estimate_breathing_rate(self, phase_signal, duration_sec):
"""估计呼吸频率"""
# 去趋势
phase_detrend = signal.detrend(phase_signal)

# FFT 分析
n = len(phase_detrend)
freq = np.fft.fftfreq(n, 1.0/self.sample_rate)
spectrum = np.abs(np.fft.fft(phase_detrend))

# 关注呼吸频率范围 (0.1-1.0 Hz = 6-60 BPM)
breath_band = (freq >= 0.1) & (freq <= 1.0)
breath_spectrum = spectrum[breath_band]
breath_freq = freq[breath_band]

# 找峰值频率
peak_idx = np.argmax(breath_spectrum)
breath_rate_hz = np.abs(breath_freq[peak_idx])
breath_rate_bpm = breath_rate_hz * 60

return breath_rate_bpm, breath_spectrum, breath_freq

def classify_occupant(self, breath_rate_bpm):
"""根据呼吸频率分类乘员"""
if breath_rate_bpm >= 28:
return 'infant', breath_rate_bpm
elif breath_rate_bpm >= 24:
return 'toddler', breath_rate_bpm
elif breath_rate_bpm >= 20:
return 'child', breath_rate_bpm
else:
return 'adult', breath_rate_bpm

# 使用示例
processor = CPDRadarProcessor(sample_rate=100, num_samples=1024)

# 模拟雷达数据 (含呼吸信号)
t = np.linspace(0, 10, 1000)
breathing_signal = 2.0 * np.sin(2 * np.pi * 0.4 * t) # 24 BPM
noise = 0.1 * np.random.randn(len(t))
simulated_phase = breathing_signal + noise

# 估计呼吸频率
breath_rate, spectrum, freq = processor.estimate_breathing_rate(
simulated_phase, duration_sec=10.0
)

print(f"检测到呼吸频率: {breath_rate:.1f} BPM")
occupant_type, _ = processor.classify_occupant(breath_rate)
print(f"乘员分类: {occupant_type}")

三、雷达 + 摄像头融合方案

3.1 融合架构

传感器融合拓扑:

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
┌─────────────────┐     ┌─────────────────┐
│ 60GHz 雷达 │ │ IR/RGB 摄像头 │
│ (呼吸/心跳检测)│ │ (姿态/位置检测)│
└────────┬────────┘ └────────┬────────┘
│ │
▼ ▼
┌─────────────────┐ ┌─────────────────┐
│ 雷达信号处理 │ │ 视觉感知 │
│ - Range/Doppler│ │ - 人脸检测 │
│ - 相位提取 │ │ - 姿态估计 │
│ - 呼吸频率估计 │ │ - 遮挡检测 │
└────────┬────────┘ └────────┬────────┘
│ │
└───────────┬───────────┘


┌─────────────────┐
│ 融合决策层 │
│ - 目标关联 │
│ - 置信度融合 │
│ - 最终判定 │
└────────┬────────┘


┌─────────────────┐
│ CPD 输出 │
│ - 儿童检测 │
│ - 位置报告 │
│ - 警告触发 │
└─────────────────┘

3.2 融合策略

多模态融合算法:

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
class CPDFusion:
def __init__(self):
self.radar_weight = 0.6
self.camera_weight = 0.4

def fuse_detections(self, radar_result, camera_result):
"""
融合雷达和摄像头检测结果

参数:
radar_result: {'detected': bool, 'confidence': float, 'breath_rate': float}
camera_result: {'detected': bool, 'confidence': float, 'position': tuple}

返回:
{'detected': bool, 'confidence': float, 'type': str}
"""
# 加权置信度
weighted_conf = (
self.radar_weight * radar_result['confidence'] +
self.camera_weight * camera_result['confidence']
)

# 检测融合
if radar_result['detected'] and camera_result['detected']:
# 两传感器都检测到 - 高置信度
detected = True
final_conf = min(weighted_conf + 0.2, 1.0)
elif radar_result['detected']:
# 仅雷达检测到 - 可能是遮挡场景
detected = True
final_conf = radar_result['confidence'] * 0.9
elif camera_result['detected']:
# 仅摄像头检测到 - 低置信度(可能误检)
detected = True
final_conf = camera_result['confidence'] * 0.5
else:
# 都未检测到
detected = False
final_conf = 0.0

return {
'detected': detected,
'confidence': final_conf,
'breath_rate': radar_result.get('breath_rate'),
'position': camera_result.get('position')
}

3.3 融合优势

维度 单一雷达 单一摄像头 雷达+摄像头融合
遮挡鲁棒性 ★★★★★ ★★☆☆☆ ★★★★★
位置精度 ★★★☆☆ ★★★★☆ ★★★★★
分类准确 ★★★★☆ ★★★☆☆ ★★★★★
隐私保护 ★★★★★ ★★☆☆☆ ★★★★☆
成本 ★★★☆☆ ★★★★☆ ★★☆☆☆

四、部署架构方案

4.1 传感器配置

典型 CPD 系统传感器配置:

传感器 数量 安装位置 视场角
60GHz 雷达 1-2 车顶中控台 120°×60°
IR 摄像头 1 车顶中控台 120°
UWB 雷达(可选) 1-4 座椅下方 全向

4.2 计算平台适配

Qualcomm QCS8255 部署方案:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
// 雷达信号处理 DSP 实现
void range_doppler_processing(
complex_float *adc_data,
complex_float *range_doppler,
int num_chirps,
int num_samples
) {
// Range FFT (使用 Hexagon DSP 加速)
for (int chirp = 0; chirp < num_chirps; chirp++) {
fft_f32(&adc_data[chirp * num_samples],
&range_doppler[chirp * num_samples],
num_samples);
}

// Doppler FFT
for (int bin = 0; bin < num_samples; bin++) {
fft_f32(&range_doppler[bin],
&range_doppler[bin],
num_chirps);
}
}

TI IWR6843AOP 部署方案:

参数 数值
天线配置 3Tx / 4Rx
最大距离 10m
距离分辨率 4cm
速度分辨率 0.1m/s
功耗 <4W
工作温度 -40°C ~ +85°C

4.3 软件架构

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
CPD 软件架构
├── 驱动层
│ ├── 雷达驱动 (SPI/I2C)
│ ├── 摄像头驱动 (MIPI CSI)
│ └── GPIO 中断
├── 中间件层
│ ├── 雷达 DSP 库
│ ├── 视觉推理引擎 (SNPE/TIDL)
│ └── 融合算法库
├── 应用层
│ ├── CPD 检测服务
│ ├── 警告管理服务
│ └── HMI 输出服务
└── 接口层
├── CAN/LIN 总线
├── Ethernet (SOME/IP)
└── OTA 升级接口

五、性能指标与测试场景

5.1 Euro NCAP CPD 测试场景

完整测试场景清单(部分):

场景编号 年龄 状态 遮挡 预期结果
CPD-01 新生儿 睡眠 检测呼吸 (30±2 BPM)
CPD-02 1岁 睡眠 毛毯 检测呼吸 (26±2 BPM)
CPD-03 3岁 清醒 检测呼吸+运动
CPD-04 6岁 睡眠 座椅后 检测呼吸 (18±2 BPM)
CPD-05 新生儿 睡眠 CRS内 检测呼吸 (30±2 BPM)
CPD-06 多儿童 混合 检测数量+位置

5.2 性能指标要求

指标 Euro NCAP 要求 行业最佳实践
检测率 ≥95% ≥99%
误检率 ≤5% ≤1%
响应时间 ≤60s ≤10s
呼吸频率误差 ≤2 BPM ≤1 BPM
工作温度 -20°C ~ +60°C -40°C ~ +85°C

5.3 鲁棒性测试

干扰场景测试:

干扰类型 测试条件 预期结果
强光干扰 阳光直射 正常工作
振动干扰 车辆怠速 正常工作
电磁干扰 手机通话 正常工作
多目标干扰 3 名成人 + 1 儿童 正确识别儿童
宠物干扰 宠物在车内 不误触发

六、IMS 开发落地指导

6.1 开发优先级

阶段一:基础能力(Q1-Q2)

任务 优先级 工作量 依赖
雷达驱动集成 P0 2周 硬件到位
Range/Doppler FFT P0 1周 DSP 库
相位提取与解调 P0 2周 信号处理算法
呼吸频率估计 P0 2周 频谱分析

阶段二:融合能力(Q3)

任务 优先级 工作量 依赖
摄像头集成 P0 1周 驱动到位
人脸/姿态检测 P0 2周 视觉模型
融合算法实现 P0 2周 多传感器同步
Euro NCAP 测试场景 P0 2周 测试环境

阶段三:优化与合规(Q4)

任务 优先级 工作量 依赖
性能优化(响应<10s) P0 2周 DSP 优化
误检率优化(<1%) P0 2周 场景测试
Euro NCAP 合规认证 P0 4周 认证机构

6.2 技术选型建议

雷达选型对比:

方案 优势 劣势 适用场景
TI IWR6843AOP 性能强、文档全 成本较高 中高端车型
Infineon BGT60ATR24 成本低、集成度高 性能一般 经济型车型
NOVELIC ACAM 车规级、成熟方案 需定制 商用车

摄像头选型:

方案 优势 劣势 适用场景
IR 摄像头 夜间有效、隐私 成本较高 全场景
RGB-IR 一颗多用途 性能折中 成本敏感

6.3 常见问题与解决方案

问题 原因 解决方案
误检宠物 呼吸频率接近儿童 增加运动模式识别
遮挡场景漏检 信号衰减 优化天线布局、增加雷达数量
高温误触发 热噪声增加 温度补偿算法
多目标混淆 目标距离近 提高距离分辨率

七、参考资料

  1. Euro NCAP Child Presence Detection Protocol v1.0

  2. TI IWR6843AOP Technical Reference Manual

  3. NOVELIC ACAM 60GHz Radar

  4. ABI Research: Vehicular Child Presence Detection Market

  5. IEEE: BSENSE In-vehicle Child Detection (ACM SenSys 2024)


总结

Euro NCAP 2026 CPD 检测要求为 IMS 开发带来新的挑战和机遇。关键要点:

  1. 直接感知强制要求:仅接受雷达、摄像头等直接检测方案
  2. 60GHz 雷达优势:穿透性强、可检测呼吸心跳、隐私友好
  3. 融合方案最优:雷达 + 摄像头融合提升鲁棒性和准确性
  4. 开发优先级:先实现雷达呼吸检测,再逐步集成融合能力

对于 IMS 团队,建议优先实现基于 60GHz 雷达的呼吸检测方案,再逐步集成摄像头融合能力,最终满足 Euro NCAP 合规要求。


发布日期: 2026-04-16
标签: Euro NCAP, CPD, 儿童检测, 60GHz雷达, 传感器融合
适用平台: Qualcomm QCS8255, TI IWR6843AOP, NOVELIC ACAM


Euro NCAP 2026 CPD 儿童检测完整指南:60GHz 雷达 + 摄像头融合方案深度解析
https://dapalm.com/2026/04/16/euro-ncap-2026-cpd-complete-guide/
作者
Mars
发布于
2026年4月16日
许可协议