Euro NCAP 2026 儿童存在检测(CPD)详解:5分评分标准与干预要求 发布时间: 2026-06-14标签: Euro NCAP 2026, CPD, 儿童检测, 雷达融合, 车内监控来源: Smart Eye, Euro NCAP 官方协议
背景:每年 37 名儿童死于车内中暑 仅在美国,每年平均有 37 名儿童 因被遗忘在停放的车辆内而死于中暑。这些死亡悲剧的可预防性使 CPD 成为 Euro NCAP 2026 的重点。
CPD 评分变化
年份
评分地位
分值
2023
可选(加分项)
最多 3 分
2026
Occupant Monitoring 类别
最多 5 分
核心要求:直接检测而非间接推断 ❌ 不合格的方法
方法
原理
为什么不合格
后门提醒
行程开始前检测后门是否打开
无法确认儿童存在
重量传感器
检测座椅压力
无法区分儿童与物品
门锁逻辑
基于车门开关记录推断
间接推断,非直接检测
✅ 合格的方法
检测方法
原理
技术方案
运动检测
检测儿童肢体运动
摄像头 / 雷达
呼吸检测
检测胸部起伏
60GHz 雷达
心跳检测
检测心脏跳动
毫米波雷达
Euro NCAP 2026 明确要求:
“CPD 系统必须通过运动、呼吸或心跳直接检测儿童存在。”
功能要求清单 1. 检测场景
场景
描述
检测时限
遗忘儿童
儿童被遗留在锁闭车辆内
锁车后 15 秒内警告
自锁困童
儿童进入未锁车辆后被困
关门后 10 分钟内警告
2. 覆盖区域
区域
要求
所有座椅位置
包括可选和可拆卸座椅
脚坑区域
儿童可能藏身
驾驶座
可能被遗忘的婴儿座椅
行李箱
❌ 不要求
3. 检测对象
年龄: ≤6 岁(包括新生儿)
状态: 睡眠、清醒、运动、静止
警告与干预时序要求 锁闭车辆场景 1 2 3 4 5 6 7 8 9 10 11 时间线: ├─ T =0 锁车 ├─ T =15s 检测到儿童 → 初始警告开始 │ └─ 视觉/听觉信号 ≥3秒 │ └─ 可延迟一次(最多10分钟) ├─ T =90s 升级警告开始 │ └─ 每分钟重复,持续 ≥15秒 │ └─ 至少持续 20 分钟 │ └─ 车内显示 "Check the seats" └─ T =10min 干预措施启动 └─ 空调开启 / 车门解锁 / 远程通知
未锁车辆场景 1 2 3 4 5 时间线: ├─ T =0 关门(未锁) ├─ T =10min 检测到儿童 → 初始警告开始 ├─ T =11.5min 升级警告开始 └─ T =15min 干预措施启动
完整警告流程代码实现 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 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 import timefrom enum import Enumfrom dataclasses import dataclassfrom typing import Optional , List class CPDState (Enum ): """CPD 状态枚举""" MONITORING = "monitoring" CHILD_DETECTED = "child_detected" INITIAL_ALERT = "initial_alert" ESCALATION = "escalation" INTERVENTION = "intervention" @dataclass class CPDConfig : """CPD 配置参数""" child_max_age: int = 6 locked_detection_delay: int = 15 unlocked_detection_delay: int = 600 initial_alert_duration: int = 3 delay_max_duration: int = 600 escalation_start_delay: int = 90 escalation_interval: int = 60 escalation_duration: int = 15 escalation_total_time: int = 1200 intervention_delay: int = 600 class CPDSystem : """ 儿童存在检测系统 符合 Euro NCAP 2026 标准 """ def __init__ (self, config: CPDConfig = CPDConfig( ) ): self .config = config self .state = CPDState.MONITORING self .state_start_time: Optional [float ] = None self .child_detected = False self .vehicle_locked = False self .doors_closed_time: Optional [float ] = None self .alert_delayed = False self .delay_start_time: Optional [float ] = None self .escalation_count = 0 self .last_escalation_time: Optional [float ] = None def update_vehicle_state (self, locked: bool , doors_closed: bool ): """ 更新车辆状态 Args: locked: 车辆是否锁闭 doors_closed: 车门是否关闭 """ self .vehicle_locked = locked if doors_closed and self .doors_closed_time is None : self .doors_closed_time = time.time() elif not doors_closed: self .doors_closed_time = None self ._reset() def update_detection (self, child_present: bool , child_age: int = 3 ): """ 更新检测结果 Args: child_present: 是否检测到儿童 child_age: 儿童年龄 """ if child_age > self .config.child_max_age: return self .child_detected = child_present if child_present and self .state == CPDState.MONITORING: self ._transition_to(CPDState.CHILD_DETECTED) def _transition_to (self, new_state: CPDState ): """状态转换""" self .state = new_state self .state_start_time = time.time() def _reset (self ): """重置系统""" self .state = CPDState.MONITORING self .state_start_time = None self .child_detected = False self .alert_delayed = False self .delay_start_time = None self .escalation_count = 0 self .last_escalation_time = None def process (self ) -> dict : """ 处理当前状态,返回应执行的动作 Returns: 动作字典,包含警告类型、干预措施等 """ current_time = time.time() action = { 'alert_type' : None , 'alert_duration' : 0 , 'intervention' : [], 'display_message' : None , 'send_notification' : False } if self .state == CPDState.CHILD_DETECTED: if self .vehicle_locked: delay = self .config.locked_detection_delay else : delay = self .config.unlocked_detection_delay if self ._time_in_state() >= delay: self ._transition_to(CPDState.INITIAL_ALERT) elif self .state == CPDState.INITIAL_ALERT: action['alert_type' ] = 'initial' action['alert_duration' ] = self .config.initial_alert_duration action['display_message' ] = 'Child detected in vehicle' if self .alert_delayed: if self ._time_in_state() >= self .config.delay_max_duration: self ._transition_to(CPDState.ESCALATION) else : if self ._time_in_state() >= self .config.initial_alert_duration: self ._transition_to(CPDState.ESCALATION) elif self .state == CPDState.ESCALATION: action['alert_type' ] = 'escalation' action['display_message' ] = 'Check the seats' if self ._should_escalate(current_time): self .escalation_count += 1 self .last_escalation_time = current_time action['alert_duration' ] = self .config.escalation_duration action['send_notification' ] = True if self ._time_in_state() >= self .config.intervention_delay: self ._transition_to(CPDState.INTERVENTION) elif self .state == CPDState.INTERVENTION: action['alert_type' ] = 'intervention' action['intervention' ] = self ._get_intervention_actions() action['display_message' ] = 'INTERVENTION ACTIVE' return action def _time_in_state (self ) -> float : """计算在当前状态的时间(秒)""" if self .state_start_time is None : return 0 return time.time() - self .state_start_time def _should_escalate (self, current_time: float ) -> bool : """判断是否需要升级警告""" if self .last_escalation_time is None : return True time_since_last = current_time - self .last_escalation_time return time_since_last >= self .config.escalation_interval def _get_intervention_actions (self ) -> List [str ]: """获取干预措施列表""" actions = [] actions.append('activate_climate_control' ) actions.append('unlock_doors' ) actions.append('send_remote_alert' ) return actions def driver_delay (self ): """驾驶员延迟警告(仅限一次)""" if self .state == CPDState.INITIAL_ALERT and not self .alert_delayed: self .alert_delayed = True self .delay_start_time = time.time()if __name__ == "__main__" : cpd = CPDSystem() cpd.update_vehicle_state(locked=False , doors_closed=True ) time.sleep(1 ) cpd.update_vehicle_state(locked=True , doors_closed=True ) cpd.update_detection(child_present=True , child_age=3 ) for i in range (30 ): action = cpd.process() if action['alert_type' ]: print (f"[{i} s] Alert: {action['alert_type' ]} , Message: {action['display_message' ]} " ) time.sleep(1 )
干预措施要求 基础要求(必须)
措施
触发条件
时限
空调激活
车内温度危险或干预阶段
锁车后 10 分钟内
车门解锁
干预阶段启动时
警告升级后 5 分钟内
加分项(可选)
措施
分值
说明
移动应用通知
+1 分
推送到驾驶员手机
钥匙震动/蜂鸣
+0.5 分
钥匙反馈提醒
远程联系紧急联系人
+1 分
自动拨打预设联系人
第三方服务通知
+0.5 分
如 OnStar 等服务
满分路径(5分) 1 2 3 4 5 6 7 8 9 10 11 12 13 14 检测功能(2分) ├─ 所有座椅位置覆盖 ├─ 脚坑区域覆盖 └─ 运动检测 ≤15秒 警告功能(1.5分) ├─ 初始警告 ≥3秒 ├─ 升级警告每分钟一次 └─ 持续 ≥20分钟 干预功能(1.5分) ├─ 空调激活 ├─ 车门解锁 └─ 远程通知
技术方案对比 传感器选型
方案
优点
缺点
成本
60GHz 雷达
生命体征检测、不受遮挡影响
分辨率较低
中
RGB 摄像头
图像识别准确、可检测运动
光线依赖、隐私问题
低
IR 摄像头
夜间可用、隐私友好
分辨率较低
中
超声波
成本低
易受干扰、精度低
很低
压力传感器
成本低
无法区分儿童与物品
很低
推荐方案:雷达 + 摄像头融合 graph TB
A[60GHz 雷达] --> C[生命体征检测]
B[IR 摄像头] --> D[运动检测]
C --> E[传感器融合]
D --> E
E --> F[儿童存在判定]
F --> G{置信度}
G -->|高| H[触发警告]
G -->|低| I[持续监控]
融合优势:
互补性: 雷达检测呼吸/心跳,摄像头检测运动
鲁棒性: 单一传感器失效时另一传感器备份
准确性: 多传感器确认降低误报率
对 IMS 开发的启示 1. 功能优先级
优先级
功能
技术方案
P0
雷达生命体征检测
60GHz 雷达
P0
运动检测
IR 摄像头
P1
传感器融合
雷达 + 摄像头
P1
警告流程实现
状态机
P2
干预措施集成
空调/车门控制
P2
远程通知
T-Box 集成
2. 硬件配置
组件
推荐型号
参数
60GHz 雷达
TI IWR6843AOP
4发4收,60-64GHz
IR 摄像头
OV2311
2MP,全局快门
处理器
QCS8255
Hexagon NPU
3. 测试场景 Euro NCAP CPD 测试场景(部分):
场景
儿童位置
检测时限
CPD-01
前排乘客座椅
锁车后 15 秒
CPD-02
后排左侧座椅
锁车后 15 秒
CPD-03
后排右侧座椅
锁车后 15 秒
CPD-04
第三排座椅(如有)
锁车后 15 秒
CPD-05
前排脚坑
锁车后 15 秒
CPD-06
后排脚坑
锁车后 15 秒
参考资料
Euro NCAP 2026 Protocols: https://www.euroncap.com/en/for-engineers/protocols/2026-protocols/
Smart Eye CPD Blog: https://smarteye.se/blog/what-euro-ncap-2026-says-about-child-presence-detection/
NSC Hot Cars Statistics: https://injuryfacts.nsc.org/motor-vehicle/motor-vehicle-safety-issues/hotcars/
总结 Euro NCAP 2026 对 CPD 的要求:
直接检测: 必须检测运动、呼吸或心跳
全覆盖: 所有座椅位置和脚坑
快速响应: 锁车后 15 秒内警告
主动干预: 空调、解锁、远程通知
对 IMS 开发,雷达 + 摄像头融合是推荐技术路线。