Raytron热成像相机:Euro NCAP 2026夜间AEB与VRU检测解决方案

Raytron热成像相机:Euro NCAP 2026夜间AEB与VRU检测解决方案

来源: PR Newswire - Raytron Thermal Camera
日期: December 24, 2025
核心应用: 夜间AEB、VRU检测、低光场景CPD


Euro NCAP 2026夜间测试挑战

传统摄像头局限:

1
2
3
4
5
6
7
8
9
10
夜间场景痛点:
- 光照不足(<2000 lux)
- 逆光/眩光场景
- 雨雾天气
- 行人/儿童检测率下降

Euro NCAP 2026要求:
- 夜间VRU检测(行人、骑行者)
- 低光场景AEB测试
- 遮蔽场景(隧道、日落眩光)

热成像相机原理

长波红外(LWIR)技术

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

class ThermalCameraSimulation:
"""
热成像相机仿真

Raytron技术:
- 长波红外(LWIR)8-14μm
- 微测辐射热计阵列
- 锗镜头聚焦红外辐射
- 无需主动照明
"""

def __init__(self,
resolution: tuple = (640, 512),
temperature_range: tuple = (-20, 120)):
self.resolution = resolution
self.temp_range = temperature_range

def simulate_thermal_image(self,
scene_objects: list,
ambient_temp: float = 20.0) -> np.ndarray:
"""
模拟热成像

Args:
scene_objects: 场景物体列表 [{type, temp, bbox}]
ambient_temp: 环境温度

Returns:
thermal_image: 热成像图, shape=(H, W)
"""
H, W = self.resolution

# 初始化为环境温度
thermal_image = np.ones((H, W)) * ambient_temp

# 添加物体
for obj in scene_objects:
obj_type = obj["type"]
obj_temp = obj["temp"]
bbox = obj["bbox"] # (x1, y1, x2, y2)

# 映射bbox到图像
x1 = int(bbox[0] * W)
y1 = int(bbox[1] * H)
x2 = int(bbox[2] * W)
y2 = int(bbox[3] * H)

# 设置温度
thermal_image[y1:y2, x1:x2] = obj_temp

return thermal_image

def detect_living_objects(self,
thermal_image: np.ndarray,
temp_threshold: float = 30.0) -> list:
"""
检测生命体(温度高于阈值)

Args:
thermal_image: 热成像图
temp_threshold: 温度阈值

Returns:
detections: 检测列表 [{bbox, temp}]
"""
H, W = thermal_image.shape

detections = []

# 温度阈值分割
hot_mask = thermal_image > temp_threshold

# 连通区域检测
from scipy.ndimage import label

labeled, num_features = label(hot_mask)

for i in range(1, num_features + 1):
# 获取区域
region_mask = labeled == i

# 计算bbox
rows = np.any(region_mask, axis=1)
cols = np.any(region_mask, axis=0)

y_min, y_max = np.where(rows)[0][[0, -1]]
x_min, x_max = np.where(cols)[0][[0, -1]]

# 计算平均温度
region_temp = np.mean(thermal_image[region_mask])

detections.append({
"bbox": (x_min/W, y_min/H, x_max/W, y_max/H),
"temp": region_temp,
"area": np.sum(region_mask)
})

return detections

def classify_object_type(self,
detection: dict,
thermal_image: np.ndarray) -> str:
"""
分类物体类型

Args:
detection: 检测结果
thermal_image: 热成像图

Returns:
obj_type: "human", "animal", "vehicle", "unknown"
"""
temp = detection["temp"]
area = detection["area"]

# 温度范围判断
if temp > 36.0:
# 高温度 = 人体或动物
if area > 5000:
return "human" # 成人
elif area > 1000:
return "child" # 儿童
else:
return "animal" # 小动物

elif temp > 50.0:
# 极高温度 = 发热车辆
return "vehicle"

else:
return "unknown"


# 测试示例
if __name__ == "__main__":
thermal = ThermalCameraSimulation(resolution=(640, 512))

# 模拟场景:行人、儿童、车辆
scene_objects = [
{"type": "adult", "temp": 36.5, "bbox": (0.1, 0.3, 0.2, 0.7)},
{"type": "child", "temp": 36.8, "bbox": (0.5, 0.6, 0.6, 0.9)},
{"type": "vehicle", "temp": 60.0, "bbox": (0.3, 0.2, 0.5, 0.5)}
]

# 生成热成像
thermal_image = thermal.simulate_thermal_image(scene_objects, ambient_temp=20.0)

print(f"热成像形状: {thermal_image.shape}")
print(f"最高温度: {np.max(thermal_image):.1f}°C")

# 检测生命体
detections = thermal.detect_living_objects(thermal_image, temp_threshold=30.0)

print(f"\n检测到 {len(detections)} 个生命体:")
for i, det in enumerate(detections):
obj_type = thermal.classify_object_type(det, thermal_image)
print(f" {i+1}. 类型: {obj_type}, 温度: {det['temp']:.1f}°C")

Euro NCAP 2026应用场景

场景1:夜间VRU检测

场景 传统摄像头 热成像相机
夜间行人 70%检出率 95%检出率
骑行者 65%检出率 90%检出率
儿童 60%检出率 92%检出率

场景2:低光CPD

场景 传统摄像头 热成像相机
车内儿童检测(夜间) 50%检出率 85%检出率
遮蔽儿童(毯子下) 30%检出率 90%检出率

Raytron量产方案

已量产车型

OEM 车型 应用
Zeekr 9X 热成像AEB系统
BYD 多车型 夜间VRU检测
Geely 多车型 热成像感知

技术规格

参数 Raytron热成像
分辨率 640×512
波长 8-14μm LWIR
帧率 30fps
功耗 <2W
认证 AEC-Q100 Grade 2

IMS开发启示

车内热成像CPD方案

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
class InCabinThermalCPD:
"""
车内热成像儿童检测

Raytron方案扩展应用:
- 车内安装小型热成像相机
- 检测儿童体温特征
- 夜间/遮蔽场景适用
"""

def __init__(self,
camera_resolution: tuple = (320, 240)):
self.resolution = camera_resolution

def detect_child_presence(self,
thermal_image: np.ndarray,
child_temp_range: tuple = (36.0, 37.5)) -> dict:
"""
检测车内儿童

Args:
thermal_image: 车内热成像
child_temp_range: 儿童体温范围

Returns:
result: {"presence": bool, "position": tuple}
"""
# 温度分割
low_temp, high_temp = child_temp_range

child_mask = (thermal_image >= low_temp) & (thermal_image <= high_temp)

# 检测是否有儿童温度区域
presence = np.sum(child_mask) > 100

if presence:
# 计算位置
rows = np.any(child_mask, axis=1)
cols = np.any(child_mask, axis=0)

y_center = np.mean(np.where(rows)[0])
x_center = np.mean(np.where(cols)[0])

position = (x_center / self.resolution[1], y_center / self.resolution[0])
else:
position = None

return {
"presence": presence,
"position": position,
"confidence": np.sum(child_mask) / np.prod(self.resolution)
}

def detect_under_blanket(self,
thermal_image: np.ndarray) -> dict:
"""
检测毯子下儿童

毯子遮挡导致温度略有降低

Args:
thermal_image: 热成像

Returns:
result: {"presence": bool}
"""
# 毯子下温度稍低(34-36°C)
blanket_temp_range = (34.0, 36.0)

child_mask = (thermal_image >= blanket_temp_range[0]) & \
(thermal_image <= blanket_temp_range[1])

# 需要更多像素才确认为儿童(毯子遮挡导致区域变大)
presence = np.sum(child_mask) > 500

return {
"presence": presence,
"confidence": np.sum(child_mask) / np.prod(self.resolution) * 1.5
}


# 测试示例
if __name__ == "__main__":
cpd = InCabinThermalCPD(camera_resolution=(320, 240))

# 模拟车内热成像(后排有儿童)
H, W = cpd.resolution
thermal_image = np.ones((H, W)) * 25.0 # 车内环境温度
thermal_image[150:200, 100:150] = 36.8 # 儿童区域

print("=== 车内儿童检测 ===")
result = cpd.detect_child_presence(thermal_image)
print(f"儿童存在: {result['presence']}")
print(f"位置: {result['position']}")

# 模拟毯子遮挡
thermal_blanket = np.ones((H, W)) * 25.0
thermal_blanket[140:210, 90:160] = 35.0 # 毯子下儿童(温度略低)

print("\n=== 毯子下儿童检测 ===")
result_blanket = cpd.detect_under_blanket(thermal_blanket)
print(f"儿童存在: {result_blanket['presence']}")

参考资料

  1. PR Newswire - Raytron Thermal Camera
  2. IDTechEx - Infrared Thermal Cameras 2025-2035
  3. Euro NCAP 2026 Night Testing Protocol

总结

Raytron热成像核心优势:

  1. 夜间检测:95%行人检出率(传统70%)
  2. CPD适用:85%车内儿童检测(夜间)
  3. 遮蔽鲁棒:90%毯子下儿童检出
  4. 量产验证:Zeekr 9X、BYD、Geely已量产

IMS开发优先级:

  • 🔴 高:车内热成像CPD方案评估
  • 🟡 中:热成像+摄像头融合感知
  • 🟢 低:成本分析($50-100 vs $20雷达)

下一步行动:

  • 调研Raytron车内热成像方案
  • 对比热成像与雷达CPD成本/性能
  • 对齐Euro NCAP夜间测试场景

Raytron热成像相机:Euro NCAP 2026夜间AEB与VRU检测解决方案
https://dapalm.com/2026/07/09/2026-07-09-raytron-thermal-camera-nighttime-aeb-cpd/
作者
Mars
发布于
2026年7月9日
许可协议