Euro NCAP 2026 CPD儿童检测要求深度解读

Euro NCAP 2026 CPD儿童检测要求深度解读

概述

Euro NCAP(欧洲新车评估计划)自2025年起将**儿童存在检测(Child Presence Detection, CPD)**纳入安全评级,2026年进一步强化要求,成为OMS(乘员监控系统)重要组成部分。本文深度解读协议细节,为IMS开发提供落地指导。


一、政策背景

1.1 热射病悲剧数据

地区 年均儿童死亡案例 主要原因
美国 38例/年 遗忘车内
欧洲 约20例/年 短时离开
中国 数据缺失(未统计) 高温季节

核心问题:

  • 儿童体温调节能力弱,体温上升速度比成人快3-5倍
  • 车内温度10分钟可上升10°C
  • 70%的悲剧发生在”短时间离开”场景

1.2 Euro NCAP时间线

timeline
    title Euro NCAP CPD政策演进
    2022 : 提出CPD概念
    2023 : 自愿加分项
    2024 : 技术验证期
    2025 : 强制要求(间接检测)
    2026 : 强制要求(直接检测)

1.3 评分体系

年份 CPD分数 检测方式 备注
2025 2分 间接检测(车门逻辑) 过渡期
2026 5分 直接检测 强制要求

直接检测定义:

  • 必须通过物理信号(呼吸、心跳、微动)检测儿童
  • 禁止仅依赖车门开关/座椅压力等间接逻辑

二、技术要求详解

2.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
def cpd_detection_targets():
"""
Euro NCAP CPD检测目标定义
"""
targets = {
'呼吸频率': {
'范围': '0.1 - 0.5 Hz',
'对应': '12 - 30 次/分',
'优先级': '🔴 高'
},
'心跳频率': {
'范围': '0.8 - 2.0 Hz',
'对应': '48 - 120 次/分',
'优先级': '🟡 中'
},
'微动': {
'振幅': '> 0.1 mm',
'穿透': '毯子/安全座椅套',
'优先级': '🔴 高'
},
'检测时延': {
'要求': '< 60秒',
'建议': '< 30秒',
'优先级': '🔴 高'
}
}

return targets

2.2 覆盖区域

座椅位置 检测要求 备注
前排乘客座 ✅ 必须 正向儿童座椅
后排外侧左 ✅ 必须 最常见位置
后排外侧右 ✅ 必须 最常见位置
后排中央 ⚠️ 建议 空间受限
后备箱 ❌ 不要求 不在检测范围

2.3 警告等级

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
def warning_levels():
"""
Euro NCAP CPD警告等级定义
"""
levels = {
'一级警告': {
'触发': '检测到儿童存在',
'方式': '车内显示+声音',
'时延': '立即',
'目的': '提醒驾驶员'
},
'二级警告': {
'触发': '驾驶员离开车辆90秒',
'方式': '手机APP推送',
'时延': '90秒后',
'目的': '远程通知'
},
'三级警告': {
'触发': '车内温度>40°C',
'方式': '紧急呼叫(eCall)',
'时延': '温度超标后',
'目的': '生命救援'
}
}

return levels

三、测试协议解读

3.1 测试工具

官方认证工具:

工具名称 厂商 功能 认证状态
CRABI 12月 TASS 儿童假人(呼吸模拟) ✅ 已认证
CRABI 18月 TASS 儿童假人(呼吸模拟) ✅ 已认证
Breathing Simulator 各厂商 呼吸模拟器 ✅ 需G003认证

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
def cpd_test_scenarios():
"""
Euro NCAP CPD测试场景清单
"""
scenarios = {
'基础场景': [
'儿童假人在后排座椅(无遮挡)',
'儿童假人在后排座椅(毯子覆盖)',
'儿童假人在安全座椅内',
'儿童假人在地板区域'
],
'边界场景': [
'极端温度(-10°C / +50°C)',
'强光直射(阳光干扰)',
'儿童假人睡眠姿态(最小运动)',
'儿童假人哭闹姿态(最大运动)'
],
'干扰场景': [
'车内风扇开启',
'宠物在场',
'成人驾驶员在座',
'手机振动干扰'
]
}

return scenarios

3.3 通过标准

指标 要求 备注
检测准确率 ≥ 90% 10次测试≥9次成功
误报率 ≤ 5% 空车时误触发
检测时延 ≤ 60秒 从锁车到警告
温度范围 -10°C ~ +50°C 覆盖四季

四、技术方案对比

4.1 检测方式分类

graph TD
    A[CPD检测方式] --> B[间接检测]
    A --> C[直接检测]
    
    B --> B1[车门开关逻辑]
    B --> B2[座椅压力传感器]
    B --> B3[重量感应]
    
    C --> C1[60GHz雷达]
    C --> C2[红外摄像头]
    C --> C3[超声波传感器]
    
    B1 --> D[2025年允许]
    B2 --> D
    B3 --> D
    
    C1 --> E[2026年要求]
    C2 --> E
    C3 --> E

4.2 方案详细对比

方案 原理 优点 缺点 Euro NCAP评级
60GHz雷达 检测呼吸微动 穿透强、隐私友好 视场受限 ✅ 最佳
红外摄像头 热成像 直观、可识别身份 遮挡敏感、成本高 ✅ 良好
超声波 多普勒效应 成本低 干扰大 ⚠️ 一般
车门逻辑 开关信号 零成本 误报高 ❌ 2026禁用
座椅压力 压力传感器 简单 无生命体征 ❌ 2026禁用

4.3 60GHz雷达方案详解

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
def radar_cpd_solution():
"""
60GHz雷达CPD方案技术参数
"""
solution = {
'传感器': {
'型号': 'TI IWR6843AOP',
'频率': '60-64 GHz',
'发射功率': '10 dBm',
'天线配置': '3Tx / 4Rx(12虚拟天线)',
'封装': 'AOP(Antenna-on-Package)'
},
'检测能力': {
'最小运动': '0.1 mm',
'呼吸检测': '0.1-0.5 Hz',
'心跳检测': '0.8-2.0 Hz',
'穿透材料': '毯子/安全座椅套(<5mm)'
},
'部署位置': {
'方案A': '顶棚中央(单雷达)',
'方案B': 'B柱左右(双雷达冗余)',
'方案C': '顶棚+后挡风(全覆盖)'
},
'功耗': {
'待机': '< 50 mW',
'检测中': '< 200 mW',
'唤醒时延': '< 100 ms'
}
}

return solution

五、IMS开发落地指导

5.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
def ims_cpd_architecture():
"""
IMS中CPD模块架构设计
"""
architecture = {
'输入层': {
'雷达ADC': 'TI IWR6843AOP原始数据',
'车门信号': 'CAN总线(锁车/解锁)',
'温度': '车内温度传感器'
},
'处理层': {
'Range FFT': '距离-方位定位',
'CFAR检测': '目标存在判断',
'相位提取': '生命体征信号',
'VMD降噪': '分离呼吸/心跳',
'FFT频谱': '频率特征提取'
},
'决策层': {
'阈值判断': 'HR/BR是否在正常范围',
'置信度计算': '综合多帧结果',
'异常检测': '呼吸停止/心率异常'
},
'输出层': {
'一级警告': 'HMI显示+声音',
'二级警告': 'T-Box推送手机',
'三级警告': 'eCall紧急呼叫'
}
}

return architecture

5.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
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
94
95
96
97
import numpy as np
from scipy.signal import butter, filtfilt

class CPD_Detector:
"""
Euro NCAP CPD检测器

满足要求:
- 呼吸检测:0.1-0.5 Hz
- 心跳检测:0.8-2.0 Hz
- 检测时延:< 60秒
"""

def __init__(self, fs=30, detection_threshold=0.3):
"""
Args:
fs: 帧率 (fps)
detection_threshold: 检测阈值(归一化能量)
"""
self.fs = fs
self.threshold = detection_threshold

# 定义频段范围
self.breathing_band = (0.1, 0.5) # Hz
self.heartbeat_band = (0.8, 2.0) # Hz

def process(self, phase_signal):
"""
处理相位信号,检测儿童

Args:
phase_signal: 相位时间序列 (N_frames,)

Returns:
result: 检测结果字典
"""
# 带通滤波(保留生命体征频段)
filtered = self._bandpass_filter(phase_signal, 0.05, 3.0)

# FFT频谱分析
spectrum = np.abs(np.fft.fft(filtered))
freqs = np.fft.fftfreq(len(filtered), 1/self.fs)

# 提取呼吸频段能量
breathing_mask = (freqs >= self.breathing_band[0]) & (freqs <= self.breathing_band[1])
breathing_energy = np.sum(spectrum[breathing_mask] ** 2)

# 提取心跳频段能量
heartbeat_mask = (freqs >= self.heartbeat_band[0]) & (freqs <= self.heartbeat_band[1])
heartbeat_energy = np.sum(spectrum[heartbeat_mask] ** 2)

# 总能量
total_energy = breathing_energy + heartbeat_energy

# 判断是否存在儿童
child_detected = total_energy > self.threshold

# 提取具体频率
breathing_freq = freqs[breathing_mask][np.argmax(spectrum[breathing_mask])]
heartbeat_freq = freqs[heartbeat_mask][np.argmax(spectrum[heartbeat_mask])]

result = {
'child_detected': child_detected,
'confidence': min(total_energy / (self.threshold * 2), 1.0),
'breathing_rate': breathing_freq * 60, # 次/分
'heartbeat_rate': heartbeat_freq * 60, # 次/分
'breathing_energy': breathing_energy,
'heartbeat_energy': heartbeat_energy
}

return result

def _bandpass_filter(self, signal, lowcut, highcut):
"""
带通滤波
"""
nyq = self.fs / 2
low = lowcut / nyq
high = highcut / nyq
b, a = butter(4, [low, high], btype='band')
return filtfilt(b, a, signal)

# 测试示例
detector = CPD_Detector(fs=30, detection_threshold=0.5)

# 模拟60秒相位信号(包含呼吸+心跳)
t = np.linspace(0, 60, 1800)
breathing = 0.05 * np.sin(2 * np.pi * 0.25 * t) # 15次/分
heartbeat = 0.01 * np.sin(2 * np.pi * 1.2 * t) # 72次/分
phase_signal = breathing + heartbeat + np.random.randn(1800) * 0.01

# 检测
result = detector.process(phase_signal)
print(f"儿童检测: {result['child_detected']}")
print(f"置信度: {result['confidence']:.2f}")
print(f"呼吸率: {result['breathing_rate']:.1f} 次/分")
print(f"心率: {result['heartbeat_rate']:.1f} 次/分")

5.3 警告逻辑实现

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
94
95
96
97
98
99
100
101
102
103
104
105
106
class Warning_Manager:
"""
Euro NCAP CPD警告管理器
"""

def __init__(self):
self.child_detected_time = None
self.driver_exit_time = None
self.current_temperature = 25.0

def update(self, child_detected, driver_present, temperature):
"""
更新状态并触发警告

Args:
child_detected: 儿童检测结果
driver_present: 驾驶员是否在车内
temperature: 车内温度(°C)

Returns:
warning_level: 警告等级 (0-3)
"""
import time
current_time = time.time()

# 更新温度
self.current_temperature = temperature

# 一级警告:检测到儿童
if child_detected and self.child_detected_time is None:
self.child_detected_time = current_time
return 1

# 二级警告:驾驶员离开90秒
if child_detected and not driver_present:
if self.driver_exit_time is None:
self.driver_exit_time = current_time
elif current_time - self.driver_exit_time > 90:
return 2

# 三级警告:温度超标
if child_detected and temperature > 40:
return 3

return 0

def execute_warning(self, level):
"""
执行对应等级的警告动作
"""
if level == 0:
return

actions = {
1: self._level1_warning(),
2: self._level2_warning(),
3: self._level3_warning()
}

return actions.get(level, None)

def _level1_warning(self):
"""一级警告:车内显示"""
return {
'type': 'HMI Display',
'message': '检测到儿童在车内!',
'sound': True,
'action': '提醒驾驶员检查'
}

def _level2_warning(self):
"""二级警告:手机推送"""
return {
'type': 'Mobile Push',
'message': '儿童可能被遗忘车内,请立即检查!',
'channel': 'APP + SMS',
'action': '远程通知'
}

def _level3_warning(self):
"""三级警告:紧急呼叫"""
return {
'type': 'Emergency Call',
'message': '车内温度过高,儿童生命危险!',
'channel': 'eCall + 110',
'action': '自动报警'
}

# 测试流程
manager = Warning_Manager()

import time

# 场景1:检测到儿童,驾驶员在座
level1 = manager.update(child_detected=True, driver_present=True, temperature=30)
print(f"场景1 警告等级: {level1}") # 应为1

# 场景2:驾驶员离开
time.sleep(1)
manager.driver_exit_time = time.time() - 100 # 模拟已离开100秒
level2 = manager.update(child_detected=True, driver_present=False, temperature=35)
print(f"场景2 警告等级: {level2}") # 应为2

# 场景3:温度超标
level3 = manager.update(child_detected=True, driver_present=False, temperature=42)
print(f"场景3 警告等级: {level3}") # 应为3

5.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
def qualcomm_cpd_integration():
"""
高通8255/8295平台CPD集成方案
"""
integration = {
'传感器接口': {
'雷达': 'IWR6843 via SPI/CAN',
'数据格式': 'ADC原始数据或相位信号',
'频率': '10-30 fps'
},
'算法部署': {
'Range FFT': 'Hexagon DSP(低功耗)',
'相位提取': 'HVX向量加速',
'FFT频谱': 'FFT库优化',
'决策逻辑': 'CPU(实时)'
},
'性能估算': {
'CPU占用': '< 5%',
'DSP占用': '< 20%',
'内存': '< 10 MB',
'功耗': '< 150 mW'
},
'接口协议': {
'输入': 'CPD_DetectionInput_t',
'输出': 'CPD_DetectionOutput_t',
'频率': '10 Hz(CPD模式)'
}
}

return integration

六、竞品方案分析

6.1 主流方案对比

OEM 方案 传感器 特点 Euro NCAP评级
Volvo EX90 雷达 3×60GHz 全舱覆盖 ⭐⭐⭐⭐⭐
Mercedes S级 雷达+摄像头 1×77GHz + IR 融合方案 ⭐⭐⭐⭐
BMW iX 雷达 1×60GHz AOP封装 ⭐⭐⭐⭐
Tesla Model Y 摄像头 RGB-IR 视觉方案 ⭐⭐⭐
BYD 汉 压力传感器 座椅压力 间接检测 ⭐⭐

6.2 供应链格局

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
def cpd_supply_chain():
"""
CPD供应链分析
"""
chain = {
'芯片厂商': {
'TI': 'IWR6843AOP (60GHz)',
'Infineon': 'BGT60ATR24C (60GHz)',
'NXP': 'MR3003 (77GHz)'
},
'Tier 1': {
'Valeo': 'Cabin雷达',
'Bosch': '全栈方案',
'Continental': '传感器+算法'
},
'算法公司': {
'Smart Eye': '多模态融合',
'Seeing Machines': 'DMS+CPD',
'Novelic': '60GHz专用方案'
}
}

return chain

七、合规性检查清单

7.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
31
32
33
34
35
36
37
38
39
def cpd_compliance_checklist():
"""
Euro NCAP CPD合规性自检清单
"""
checklist = {
'检测能力': [
'✅ 支持呼吸检测(0.1-0.5 Hz)',
'✅ 支持心跳检测(0.8-2.0 Hz)',
'✅ 支持微动检测(> 0.1 mm)',
'✅ 支持毯子/安全座椅穿透'
],
'覆盖区域': [
'✅ 前排乘客座',
'✅ 后排外侧左',
'✅ 后排外侧右',
'⚠️ 后排中央(建议)',
'❌ 后备箱(不要求)'
],
'警告系统': [
'✅ 一级警告(车内显示)',
'✅ 二级警告(手机推送)',
'✅ 三级警告(紧急呼叫)',
'✅ 90秒延迟逻辑'
],
'测试验证': [
'✅ 通过CRABI假人测试',
'✅ 覆盖极端温度(-10~+50°C)',
'✅ 误报率<5%',
'✅ 检测时延<60秒'
],
'文档准备': [
'✅ Dossier技术文档',
'✅ 测试报告',
'✅ 功能安全分析',
'✅ 用户手册'
]
}

return checklist

八、总结与建议

8.1 核心要点

类别 要点
技术选型 优先选择60GHz雷达(TI IWR6843AOP)
部署位置 顶棚中央单雷达或B柱双雷达冗余
算法核心 Range FFT + 相位提取 + VMD降噪
警告逻辑 三级警告体系(车内→手机→紧急)
合规要求 2026年起必须直接检测生命体征

8.2 开发路线图

gantt
    title IMS CPD开发路线图
    dateFormat  YYYY-MM-DD
    section 2026 Q1
    需求分析         :a1, 2026-01-01, 30d
    架构设计         :a2, after a1, 30d
    section 2026 Q2
    算法开发         :b1, 2026-04-01, 60d
    硬件集成         :b2, after b1, 30d
    section 2026 Q3
    测试验证         :c1, 2026-07-01, 60d
    Euro NCAP认证    :c2, after c1, 30d
    section 2026 Q4
    量产准备         :d1, 2026-10-01, 60d

8.3 成本估算

项目 数量 单价 总价
雷达芯片 1 $80 $80
安装支架 1套 $10 $10
线束 1套 $5 $5
算法授权 1 $20 $20
测试认证 1 $30 $30
合计 - - $145

参考文献:

  1. Euro NCAP, “Child Presence Detection Test and Assessment Protocol v1.3”, 2025.
  2. Euro NCAP, “Roadmap 2030: In-Cabin Safety”, 2024.
  3. TI, “Meet Euro NCAP CPD Requirements with 60GHz Radar”, SSZT046, 2025.
  4. Smart Eye, “What Euro NCAP 2026 Says About Child Presence Detection”, Blog, 2025.

Euro NCAP 2026 CPD儿童检测要求深度解读
https://dapalm.com/2026/08/18/2026-08-18-euro-ncap-cpd-2026-requirements/
作者
Mars
发布于
2026年8月18日
许可协议