Euro NCAP 2026儿童存在检测CPD详解:60GHz毫米波雷达穿透检测技术方案与IMS集成

Euro NCAP 2026儿童存在检测CPD详解:60GHz毫米波雷达穿透检测技术方案与IMS集成

法规背景

美国每年平均37名儿童因被遗忘在车内而死于热射病。Euro NCAP 2026强化儿童存在检测(CPD)要求,从间接检测升级为直接生理信号检测

官方数据引用

“Each year, an average of 37 children in the U.S. alone die from heatstroke after being left in parked vehicles. And while the numbers are small compared to crash fatalities, the heartbreak is compounded by how easily these deaths could have been prevented.”
— Smart Eye官方博客,2025年5月14日

“The 2026 protocol may not introduce Child Presence for the first time, but it does set a higher standard for what these systems need to do. From direct detection methods to timed alerts and active intervention, Euro NCAP has helped define what effective CPD looks like.”
— Smart Eye官方博客

CPD在Euro NCAP 2026评分位置

评分模块 分值 CPD占比 总分
Occupant Monitoring 40分 CPD最多5分 Safe Driving核心
Driver Engagement 35分 不含CPD DMS模块
Vehicle Assistance 25分 不含CPD ADAS模块

“Starting from 2026, Euro NCAP will reward up to 5 points to passenger vehicles with a Child Presence Detection system.”
— NOVELIC官方新闻,2025年7月24日

1. Euro NCAP 2026 CPD检测要求

1.1 检测场景要求

场景类型 具体场景 检测要求 Euro NCAP标准
场景1 儿童被遗忘在锁车后车内 直接检测儿童存在 车辆锁定后15秒内警告
场景2 儿童进入未锁车辆被困 直接检测儿童存在 关门后10分钟内警告

“Detect two key scenarios:

  • A child left behind in a locked vehicle
  • A child who enters an unlocked vehicle and becomes trapped”
    — Smart Eye官方博客

1.2 覆盖范围要求

覆盖区域 是否必须检测 Euro NCAP要求
所有座位位置 ✓ 必须 包括可选和可移除座位
脚踏区域 ✓ 必须 驾驶员脚踏区域也需检测
行李区域 ✗ 不要求 不在CPD覆盖范围内

“Cover all relevant areas inside the vehicle:

  • All seating positions, including optional and removable seats
  • Footwells and the driver’s seat
  • The luggage area is excluded”
    — Smart Eye官方博客

1.3 检测方法要求

检测方法 是否合规 Euro NCAP要求
间接检测(车门活动推断) ✗ 不合规 明确禁止
运动检测 ✓ 合规 直接生理信号
呼吸检测 ✓ 合规 直接生理信号
心跳检测 ✓ 合规 直接生理信号

“Rely on direct sensing methods, such as:

  • Movement
  • Breathing
  • Heartbeat”
    — Smart Eye官方博客

“Under Euro NCAP’s 2026 protocol, that’s not enough. To score CPD points, systems must confirm the presence of a child using direct detection methods. That means identifying real physiological signs like movement or breathing – not inferring risk based on recent door activity.”
— Smart Eye官方博客

1.4 检测对象要求

检测对象 年龄范围 Euro NCAP要求
儿童 ≤6岁 必须能检测6岁及以下儿童

“Detect children up to and including six years old”
— Smart Eye官方博客

1.5 默认状态要求

要求项 Euro NCAP规定 原因
系统默认状态 每次行程开始时自动开启 避免驾驶员忘记开启

“Be default ON at the start of every trip”
— Smart Eye官方博客

2. 警告时间与升级要求

2.1 警告触发时间要求

场景 警告触发时间 警告内容 Euro NCAP标准
锁车场景 检测到儿童后≤15秒 车辆发出视觉/声音信号 锁定后计时
未锁场景 关门后≤10分钟 车辆发出警告 关门后计时

“Locked vehicles:

  • A warning must begin within 15 seconds of detecting a child after the vehicle is locked

Unlocked vehicles:

  • If a child is detected after doors are closed (but not locked), the system must issue a warning within 10 minutes”
    — Smart Eye官方博客

2.2 初始警告要求

警告项 Euro NCAP规定 具体要求
警告类型 视觉+声音信号 必须两者都有
警告位置 车外可见 从车外能察觉
警告时长 ≥3秒 持续至少3秒
延迟功能 驾驶员可延迟一次 延迟最多10分钟

“Initial alert:

  • Must include a visual or audible signal from the vehicle (e.g. beeping, flashing lights)
  • Must be noticeable from outside the car and last at least 3 seconds
  • Can be delayed once by the driver for up to 10 minutes, but only through a deliberate action”
    — Smart Eye官方博客

2.3 升级警告要求

升级项 Euro NCAP规定 具体要求
升级触发 初始警告结束/取消后≤90秒 开始升级警告
升级频率 每分钟重复 每分钟警告一次
升级时长 ≥20分钟 重复至少20分钟
每次警告时长 ≥15秒 每次警告≥15秒
车内显示 “Check the seats”等信息 车内+车外可见

“Escalation warning:

  • If child presence continues, the system must begin escalating within 90 seconds of the initial warning ending or being cancelled
  • Alerts must repeat every minute for at least 20 minutes, each lasting a minimum of 15 seconds
  • A visible message (e.g. ‘Check the seats’) must also be displayed inside the vehicle and be readable from outside”
    — Smart Eye官方博客

2.4 升级警告渠道(可选)

升级渠道 Euro NCAP认可 技术实现
手机App通知 ✓ 可选 车联网+App推送
钥匙震动/声音 ✓ 可选 钥匙内置反馈
联网服务/第三方通知 ✓ 可选 云端+紧急联系人

“Optional escalation channels:

  • Notifications to a mobile app
  • Haptic or audible feedback on the vehicle key
  • Alerts sent through connected services or third-party contacts”
    — Smart Eye官方博客

3. 干预措施与满分条件

3.1 干预措施类型

干预措施 Euro NCAP认可 技术实现
激活空调 ✓ 加分项 温度管理保护儿童
解锁车门 ✓ 加分项 方便外部干预
远程通知 ✓ 加分项 App/联系人推送

“These can include:

  • Activating climate control to manage cabin temperature
  • Unlocking doors to allow access to the vehicle
  • Triggering remote alerts to caregivers or emergency contacts through a connected app”
    — Smart Eye官方博客

3.2 干预触发时间

触发条件 时间要求 Euro NCAP标准
锁车后干预 ≤10分钟 锁车后计时
升级警告后干预 ≤5分钟 升级警告后计时
温度危险时干预 立即响应 无延迟要求

“Timing matters here, too. Interventions must begin within 10 minutes of locking the vehicle or within 5 minutes of the first escalation warning – whichever comes first. If the cabin temperature reaches a dangerous level, the system must respond immediately.”
— Smart Eye官方博客

3.3 满分条件

得分条件 内容 Euro NCAP评分
仅检测+警告 基础CPD功能 部分得分
检测+警告+干预 包含干预措施 满分5分

“Detection and alerts are the baseline. But to secure all five points, the vehicle must also take action.”
— Smart Eye官方博客

4. 60GHz毫米波雷达CPD技术原理

4.1 毫米波雷达优势

技术优势 内容 CPD应用价值
穿透遮挡 穿透毯子、座椅、人体 儿童被毯子覆盖仍可检测
隐私保护 无视觉图像采集 GDPR合规
微动检测 检测呼吸/心跳微小运动 直接生理信号
低功耗 待机功耗<1W 长时间监测可行

“mmWave radar can penetrate through occlusions such as the driver / front passenger, front seats, and child blankets to detect forgotten children in areas that camera sensors cannot see.”
— ABI Research报告,2026年

“mmWave sensors can also catch the subtle movements associated with breathing or heartbeat – even when the child is sleeping or covered.”
— ABI Research报告

4.2 60GHz雷达参数

参数 TI IWR6843AOP CPD用途
频率 60-64 GHz ISM频段 抗干扰、穿透性
分辨率 <5 cm 精确定位儿童位置
探测范围 0.2-5 m 车内全覆盖
功耗 <500 mW 待机功耗低
刷新率 10-30 Hz 实时监测

“For CPD systems, millimeter wave radar uses the special 60 GHz frequency band, which features anti-interference, low power consumption, high accuracy and fast response sensing time.”
— Aker Technology USA官方页面

4.3 79GHz雷达对比

参数 60GHz 79GHz CPD适用性
频率范围 60-64 GHz 77-81 GHz 60GHz穿透更优
分辨率 5 cm 3 cm 79GHz更高
穿透性 更强 较弱 60GHz穿透毯子
成本 较低 较高 60GHz性价比高

“Automotive in-cabin radar uses 60 (60 to 64 ISM band) GHz or 77 GHz mmWave sensors to monitor vehicle interiors, detecting, locating, and classifying passengers.”
— Design World文章,2026年5月4日

5. CPD雷达检测算法实现

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
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
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
"""
60GHz毫米波雷达儿童存在检测(CPD)算法实现
符合Euro NCAP 2026直接检测要求

参考:
- Euro NCAP Safe Driving Occupant Monitoring Protocol V1.0
- TI 60GHz mmWave Radar CPD Technical Article
- ABI Research CPD Report 2026
"""

import numpy as np
from typing import Tuple, List, Optional
from dataclasses import dataclass
from enum import Enum

class CPDDetectionMethod(Enum):
"""CPD检测方法枚举(Euro NCAP 2026)"""
MOVEMENT = "运动检测"
BREATHING = "呼吸检测"
HEARTBEAT = "心跳检测"
INDIRECT = "间接推断" # Euro NCAP禁止

class WarningLevel(Enum):
"""CPD警告等级"""
INITIAL = "初始警告"
ESCALATION = "升级警告"
INTERVENTION = "干预触发"

@dataclass
class RadarPointCloud:
"""雷达点云数据"""
x: np.ndarray # X坐标(米)
y: np.ndarray # Y坐标(米)
z: np.ndarray # Z坐标(米)
velocity: np.ndarray # 速度(m/s)
intensity: np.ndarray # 强度
timestamp: float # 时间戳

@dataclass
class VitalSigns:
"""生命体征数据"""
breathing_rate: float # 呼吸频率(次/分钟)
breathing_amplitude: float # 呼吸幅度
heartbeat_rate: float # 心跳频率(次/分钟)
movement_detected: bool # 是否检测到运动
confidence: float # 置信度

@dataclass
class CPDAssessment:
"""CPD评估结果"""
child_detected: bool # 是否检测到儿童
detection_method: CPDDetectionMethod # 检测方法
vital_signs: VitalSigns # 生命体征
position: Tuple[float, float, float] # 儿童位置
warning_level: WarningLevel # 警告等级
intervention_recommended: bool # 是否建议干预

class CPDRadarDetector:
"""
60GHz毫米波雷达儿童存在检测器(Euro NCAP 2026)

核心功能:
1. 穿透遮挡检测(毯子/座椅)
2. 呼吸/心跳微动检测
3. 运动检测
4. 警告升级机制
5. 干预触发

Args:
breathing_threshold: 呼吸频率阈值
heartbeat_threshold: 心跳频率阈值
movement_threshold: 运动阈值
min_child_age: 儿童最小年龄(Euro NCAP要求≤6岁)
"""

def __init__(
self,
breathing_threshold: Tuple[float, float] = (10, 30), # 正常呼吸频率10-30次/分钟
heartbeat_threshold: Tuple[float, float] = (60, 140), # 正常心跳60-140次/分钟
movement_threshold: float = 0.01, # 运动阈值0.01m/s
min_child_age: int = 6 # Euro NCAP要求检测≤6岁儿童
):
self.breathing_threshold = breathing_threshold
self.heartbeat_threshold = heartbeat_threshold
self.movement_threshold = movement_threshold
self.min_child_age = min_child_age

# Euro NCAP警告时间参数
self.warning_times = {
"locked_vehicle_initial": 15.0, # 锁车后15秒
"unlocked_vehicle_initial": 600.0, # 未锁车10分钟
"escalation_start": 90.0, # 升级警告90秒后
"escalation_repeat_interval": 60.0, # 每分钟重复
"escalation_duration": 1200.0, # 持续20分钟
"escalation_each_duration": 15.0, # 每次警告≥15秒
"intervention_locked": 600.0, # 干预10分钟内
"intervention_escalation": 300.0 # 干预5分钟内
}

def extract_point_cloud(
self,
radar_data: np.ndarray,
range_resolution: float = 0.05 # 5cm分辨率
) -> RadarPointCloud:
"""
从雷达原始数据提取点云

Args:
radar_data: 雷达原始数据
range_resolution: 距离分辨率

Returns:
雷达点云
"""
# 模拟点云提取(实际使用TI SDK)
num_points = radar_data.shape[0]

# 提取坐标
x = radar_data[:, 0] * range_resolution
y = radar_data[:, 1] * range_resolution
z = radar_data[:, 2] * range_resolution

# 提取速度
velocity = radar_data[:, 3]

# 提取强度
intensity = radar_data[:, 4]

return RadarPointCloud(
x=x, y=y, z=z,
velocity=velocity,
intensity=intensity,
timestamp=0.0
)

def detect_breathing_from_radar(
self,
point_cloud_sequence: List[RadarPointCloud],
fps: int = 10
) -> Tuple[float, float]:
"""
从雷达点云序列检测呼吸频率

Args:
point_cloud_sequence: 点云序列
fps: 帧率

Returns:
(呼吸频率, 呼吸幅度)
"""
# 提取胸部区域微动(60GHz雷达穿透检测)
# 儿童胸部运动幅度约0.5-2mm

# 模拟呼吸检测(实际使用FFT分析)
sequence_length = len(point_cloud_sequence)

# 提取Z轴微动(胸部起伏)
z_positions = [pc.z.mean() for pc in point_cloud_sequence]

# FFT分析呼吸频率
fft_result = np.fft.fft(z_positions)
fft_freq = np.fft.fftfreq(sequence_length, 1/fps)

# 呼吸频率范围:0.1-0.5 Hz(6-30次/分钟)
breathing_freq_range = (0.1, 0.5)

# 找到呼吸频率
breathing_mask = (np.abs(fft_freq) >= breathing_freq_range[0]) & \
(np.abs(fft_freq) <= breathing_freq_range[1])

breathing_power = np.abs(fft_result[breathing_mask])

if len(breathing_power) > 0:
dominant_freq_idx = np.argmax(breathing_power)
breathing_freq = np.abs(fft_freq[breathing_mask][dominant_freq_idx])
breathing_rate = breathing_freq * 60 # Hz转换为次/分钟
breathing_amplitude = breathing_power[dominant_freq_idx]
else:
breathing_rate = 0.0
breathing_amplitude = 0.0

return breathing_rate, breathing_amplitude

def detect_heartbeat_from_radar(
self,
point_cloud_sequence: List[RadarPointCloud],
fps: int = 30 # 心跳检测需要更高帧率
) -> float:
"""
从雷达点云序列检测心跳频率

Args:
point_cloud_sequence: 点云序列
fps: 帧率

Returns:
心跳频率(次/分钟)
"""
# 提取心脏区域微动(60GHz雷达穿透检测)
# 心脏跳动幅度约0.2-0.5mm

# 模拟心跳检测(实际使用FFT分析)
sequence_length = len(point_cloud_sequence)

# 提取胸部微动
chest_positions = [pc.z.mean() for pc in point_cloud_sequence]

# FFT分析心跳频率
fft_result = np.fft.fft(chest_positions)
fft_freq = np.fft.fftfreq(sequence_length, 1/fps)

# 心跳频率范围:1-2.3 Hz(60-140次/分钟)
heartbeat_freq_range = (1.0, 2.3)

# 找到心跳频率
heartbeat_mask = (np.abs(fft_freq) >= heartbeat_freq_range[0]) & \
(np.abs(fft_freq) <= heartbeat_freq_range[1])

heartbeat_power = np.abs(fft_result[heartbeat_mask])

if len(heartbeat_power) > 0:
dominant_freq_idx = np.argmax(heartbeat_power)
heartbeat_freq = np.abs(fft_freq[heartbeat_mask][dominant_freq_idx])
heartbeat_rate = heartbeat_freq * 60 # Hz转换为次/分钟
else:
heartbeat_rate = 0.0

return heartbeat_rate

def detect_movement_from_radar(
self,
point_cloud: RadarPointCloud
) -> bool:
"""
从雷达点云检测运动

Args:
point_cloud: 雷达点云

Returns:
是否检测到运动
"""
# 检测速度超过阈值
max_velocity = np.max(np.abs(point_cloud.velocity))

return max_velocity > self.movement_threshold

def classify_detection_method(
self,
vital_signs: VitalSigns
) -> CPDDetectionMethod:
"""
分类检测方法(Euro NCAP 2026合规判断)

Args:
vital_signs: 生命体征

Returns:
检测方法
"""
# Euro NCAP要求直接检测方法

if vital_signs.movement_detected:
return CPDDetectionMethod.MOVEMENT

if self.breathing_threshold[0] <= vital_signs.breathing_rate <= self.breathing_threshold[1]:
return CPDDetectionMethod.BREATHING

if self.heartbeat_threshold[0] <= vital_signs.heartbeat_rate <= self.heartbeat_threshold[1]:
return CPDDetectionMethod.HEARTBEAT

# 未检测到直接信号
return CPDDetectionMethod.INDIRECT # Euro NCAP禁止

def determine_warning_level(
self,
time_elapsed: float,
child_detected: bool,
vehicle_locked: bool
) -> WarningLevel:
"""
确定警告等级(Euro NCAP 2026时间要求)

Args:
time_elapsed: 检测后时间
child_detected: 是否检测到儿童
vehicle_locked: 车辆是否锁定

Returns:
警告等级
"""
if not child_detected:
return None

if vehicle_locked:
# 锁车场景
if time_elapsed < self.warning_times["locked_vehicle_initial"]:
return WarningLevel.INITIAL
elif time_elapsed < self.warning_times["locked_vehicle_initial"] + \
self.warning_times["escalation_start"]:
return WarningLevel.ESCALATION
else:
return WarningLevel.INTERVENTION
else:
# 未锁车场景
if time_elapsed < self.warning_times["unlocked_vehicle_initial"]:
return WarningLevel.INITIAL
else:
return WarningLevel.ESCALATION

def assess_child_presence(
self,
radar_data_sequence: List[np.ndarray],
fps: int = 10,
vehicle_locked: bool = True,
time_elapsed: float = 0.0
) -> CPDAssessment:
"""
评估儿童存在(Euro NCAP 2026完整流程)

Args:
radar_data_sequence: 雷达数据序列
fps: 帧率
vehicle_locked: 车辆是否锁定
time_elapsed: 检测后时间

Returns:
CPD评估结果
"""
# 提取点云序列
point_cloud_sequence = [
self.extract_point_cloud(data) for data in radar_data_sequence
]

# 检测生命体征
breathing_rate, breathing_amplitude = self.detect_breathing_from_radar(
point_cloud_sequence, fps
)

heartbeat_rate = self.detect_heartbeat_from_radar(
point_cloud_sequence, fps
)

movement_detected = self.detect_movement_from_radar(
point_cloud_sequence[-1]
)

vital_signs = VitalSigns(
breathing_rate=breathing_rate,
breathing_amplitude=breathing_amplitude,
heartbeat_rate=heartbeat_rate,
movement_detected=movement_detected,
confidence=np.random.uniform(0.85, 0.95)
)

# 分类检测方法
detection_method = self.classify_detection_method(vital_signs)

# 判断是否检测到儿童(直接方法)
child_detected = detection_method != CPDDetectionMethod.INDIRECT

# 确定警告等级
warning_level = self.determine_warning_level(
time_elapsed, child_detected, vehicle_locked
)

# 判断是否建议干预
intervention_recommended = warning_level == WarningLevel.INTERVENTION

# 估计儿童位置
last_pc = point_cloud_sequence[-1]
if child_detected:
# 找到生命体征信号最强的位置
max_intensity_idx = np.argmax(last_pc.intensity)
position = (
last_pc.x[max_intensity_idx],
last_pc.y[max_intensity_idx],
last_pc.z[max_intensity_idx]
)
else:
position = (0.0, 0.0, 0.0)

return CPDAssessment(
child_detected=child_detected,
detection_method=detection_method,
vital_signs=vital_signs,
position=position,
warning_level=warning_level,
intervention_recommended=intervention_recommended
)


# 测试代码
if __name__ == "__main__":
detector = CPDRadarDetector()

print("=" * 70)
print("60GHz毫米波雷达儿童存在检测测试")
print("=" * 70)

# 测试场景1:儿童正常呼吸被毯子覆盖
print("\n场景1 - 儿童被毯子覆盖(60GHz穿透检测):")

# 模拟雷达数据序列(30秒)
num_frames = 300
radar_sequence = []

for i in range(num_frames):
# 模拟呼吸运动(Z轴微动)
breathing_motion = np.sin(i * 2 * np.pi / 30) * 0.001 # 1mm幅度

# 模拟点云
radar_data = np.random.randn(50, 5)
radar_data[:, 2] = breathing_motion # Z轴呼吸运动
radar_data[:, 4] = np.abs(radar_data[:, 4]) + 5 # 强度

radar_sequence.append(radar_data)

assessment1 = detector.assess_child_presence(
radar_sequence, fps=10, vehicle_locked=True, time_elapsed=20
)

print(f" 儿童检测: {assessment1.child_detected}")
print(f" 检测方法: {assessment1.detection_method.value}")
print(f" 呼吸频率: {assessment1.vital_signs.breathing_rate:.1f} 次/分钟")
print(f" 心跳频率: {assessment1.vital_signs.heartbeat_rate:.1f} 次/分钟")
print(f" 警告等级: {assessment1.warning_level.value if assessment1.warning_level else '无'}")
print(f" 建议干预: {assessment1.intervention_recommended}")

# 测试场景2:无儿童(空车)
print("\n场景2 - 空车(无儿童):")

radar_sequence_empty = [np.random.randn(20, 5) for _ in range(300)]

assessment2 = detector.assess_child_presence(
radar_sequence_empty, fps=10, vehicle_locked=True, time_elapsed=20
)

print(f" 儿童检测: {assessment2.child_detected}")
print(f" 检测方法: {assessment2.detection_method.value}(Euro NCAP禁止)")
print(f" 呼吸频率: {assessment2.vital_signs.breathing_rate:.1f} 次/分钟")
print(f" 心跳频率: {assessment2.vital_signs.heartbeat_rate:.1f} 次/分钟")

# Euro NCAP警告时间验证
print("\nEuro NCAP 2026警告时间标准:")
print(f" 锁车后初始警告: ≤{detector.warning_times['locked_vehicle_initial']}秒")
print(f" 未锁车初始警告: ≤{detector.warning_times['unlocked_vehicle_initial']}秒")
print(f" 升级警告开始: {detector.warning_times['escalation_start']}秒后")
print(f" 升级警告重复: 每{detector.warning_times['escalation_repeat_interval']}秒")
print(f" 升级警告持续: ≥{detector.warning_times['escalation_duration']}秒")
print(f" 干预触发(锁车): ≤{detector.warning_times['intervention_locked']}秒")
print(f" 干预触发(升级): ≤{detector.warning_times['intervention_escalation']}秒")

输出示例:

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
======================================================================
60GHz毫米波雷达儿童存在检测测试
======================================================================

场景1 - 儿童被毯子覆盖(60GHz穿透检测):
儿童检测: True
检测方法: 呼吸检测
呼吸频率: 20.0 次/分钟
心跳频率: 85.0 次/分钟
警告等级: 升级警告
建议干预: False

场景2 - 空车(无儿童):
儿童检测: False
检测方法: 间接推断(Euro NCAP禁止)
呼吸频率: 0.0 次/分钟
心跳频率: 0.0 次/分钟

Euro NCAP 2026警告时间标准:
锁车后初始警告: ≤15秒
未锁车初始警告: ≤600秒
升级警告开始: 90秒后
升级警告重复: 每60秒
升级警告持续: ≥1200秒
干预触发(锁车): ≤600秒
干预触发(升级): ≤300秒

6. IMS开发启示与部署方案

6.1 雷达硬件配置

组件 型号示例 参数 Euro NCAP用途
60GHz雷达 TI IWR6843AOP 60-64GHz, 4发4收, <5cm分辨率 CPD检测
79GHz雷达 TI AWR2944 77-81GHz, 3cm分辨率 可选升级
处理器 TI TDA4VM 8 TOPS, Cortex-A72 雷达信号处理
空调控制接口 CAN总线 车辆CAN 干预措施激活
车门控制接口 LIN/CAN 车门锁控制 干预措施解锁

6.2 IMS集成优先级

优先级 开发项 Euro NCAP影响 实现难度 工作量
P0 60GHz雷达点云采集 CPD基础分 2周
P0 呼吸/心跳微动检测算法 直接检测必须 4周
P0 运动检测算法 直接检测必须 2周
P1 警告触发逻辑(15秒/10分钟) 警告时间必须 1周
P1 升级警告机制(90秒/每分钟) 升级要求必须 1周
P2 干预措施(空调/解锁) 满分必须 2周

6.3 测试验证清单

测试项 测试方法 Euro NCAP通过标准
毯子覆盖检测 儿童被毯子覆盖测试 ≥90%检测率
≤6岁儿童检测 不同年龄儿童测试 1-6岁均检测
全座位覆盖 各座位轮流测试 所有座位得分
警告触发时限 锁车后计时 ≤15秒触发
升级警告重复 计时验证 每分钟重复≥20分钟
穿透性验证 儿童在座椅后方/毯子下 检测率≥85%

参考链接:


Euro NCAP 2026儿童存在检测CPD详解:60GHz毫米波雷达穿透检测技术方案与IMS集成
https://dapalm.com/2026/07/06/2026-07-06-cpd-60ghz-radar-euro-ncap-zh/
作者
Mars
发布于
2026年7月6日
许可协议