座舱热成像监控:远红外(FIR)在乘员感知中的技术路线与IMS集成方案

座舱热成像监控:远红外(FIR)在乘员感知中的技术路线与IMS集成方案

背景与市场

远红外(Far-Infrared, FIR)热成像技术在汽车座舱中的应用正在从高端选配走向规模化量产。

指标 数据
汽车热成像市场(2025) 16亿美元
预期市场(2032) 34.8亿美元
CAGR 11.75%
NHTSA数据 75%行人死亡发生在非白天
来源 360iResearch / IDTechEx

1. 热成像在座舱中的应用

1.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
"""
座舱热成像应用场景
"""
applications = {
"CPD儿童检测": {
"原理": "检测座舱内生物体温特征",
"优势": "完全被动,不依赖光照,可穿透毯子",
"法规": "Euro NCAP 2026 CPD要求",
"优先级": "🔴 高",
"成熟度": "已有量产案例"
},
"乘员热舒适": {
"原理": "测量面部/手部温度,评估热感觉",
"优势": "非接触式,实时,个性化",
"应用": "HVAC自动调节,节能13-22%",
"优先级": "🟡 中",
"成熟度": "研究中"
},
"疲劳/健康监测": {
"原理": "体温变化与疲劳/疾病相关",
"优势": "补充视觉DMS的不足",
"应用": "感冒发烧检测、疲劳体温变化",
"优先级": "🟡 中",
"成熟度": "研究阶段"
},
"情绪推断": {
"原理": "面部温度变化与情绪相关",
"优势": "补充面部表情的不足(微表情难以捕捉)",
"应用": "压力检测、愤怒预警",
"优先级": "🟢 低",
"成熟度": "前沿研究"
},
"夜间感知": {
"原理": "FIR不依赖可见光",
"优势": "夜间和恶劣天气优势明显",
"应用": "车外VRU检测",
"优先级": "🟡 中",
"成熟度": "已有量产"
}
}

print("座舱热成像应用场景:")
for app, info in applications.items():
print(f"\n{app} (优先级: {info['优先级']}):")
print(f" 原理: {info['原理']}")
print(f" 优势: {info['优势']}")
print(f" 成熟度: {info['成熟度']}")

1.2 技术对比

维度 可见光(RGB) 近红外(NIR) 远红外(FIR/热)
工作原理 反射光成像 主动IR照明+反射 被动热辐射检测
光照依赖 完全依赖 不依赖可见光 完全不依赖
穿透性 可穿透毯子/衣物
隐私性 低(清晰面孔) 中(灰度) 高(热轮廓)
生物检测 不可靠 不可靠 ✅ 体温特征
温度测量 ✅ 精确测温
分辨率 高(2-8MP) 中(0.3-2MP) 低(80×60~640×480)
帧率 30-60fps 30-60fps 9-30fps
成本 $5-15 $10-30 $150-500
功耗 <1W 1-3W(含LED) 1-5W

2. 硬件方案

2.1 FIR传感器选型

型号 分辨率 帧率 视场角 功耗 价格 适用场景
FLIR Lepton 3.5 160×120 27fps 57° 150mW ~$200 CPD/座舱
FLIR Boson 640×512 60fps 可换 2-5W ~$2000 车外VRU
ULIS MicroIR 160×120 25fps 50° 200mW ~$150 CPD
InfiRay AT10 256×192 25fps 55° 300mW ~$100 座舱
InfiRay AT384 384×288 25fps 50° 400mW ~$200 高精度

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
26
27
28
29
30
31
32
33
34
"""
座舱FIR部署方案
"""
deployment = {
"方案A: 顶置FIR": {
"位置": "车顶阅读灯区域",
"视场": "覆盖前排座椅",
"用途": "CPD + 疲劳 + 热舒适",
"传感器": "InfiRay AT10 (256×192)",
"数量": 1-2个,
"成本": "~$100-200"
},
"方案B: 仪表盘FIR": {
"位置": "仪表盘上方,对准驾驶员",
"视场": "覆盖驾驶员面部",
"用途": "疲劳 + 健康 + 情绪",
"传感器": "FLIR Lepton 3.5 (160×120)",
"数量": 1个,
"成本": "~$200"
},
"方案C: 多FIR融合": {
"位置": "顶置+后视镜+B柱",
"视场": "全座舱覆盖",
"用途": "CPD(全座) + OOP + 热舒适",
"传感器": "3× InfiRay AT10",
"数量": 3",
"成本": "~$300-600"
}
}

for plan, config in deployment.items():
print(f"\n{plan}:")
for key, val in config.items():
print(f" {key}: {val}")

3. CPD应用详解

3.1 基于FIR的儿童检测

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

class FIRCPDDetector:
"""
基于远红外热成像的儿童检测器
=================================

原理:
1. 采集座舱FIR热图像
2. 检测热源(人体体温特征: 30-38°C)
3. 区分成人与儿童(尺寸/形状)
4. 判断是否异常(儿童单独留在车内)

Euro NCAP 2026 CPD要求:
- 检测后座乘员存在
- 识别儿童特征
- 触发警报
"""

def __init__(self):
# 人体温度范围 (°C)
self.human_temp_range = (30.0, 38.0)
# 儿童特征: 面积比成人小
self.child_area_threshold = 300 # 像素数(160×120图像)
self.adult_area_threshold = 600

def detect(self, thermal_image: np.ndarray) -> dict:
"""
检测儿童存在

Args:
thermal_image: [H, W] 温度矩阵(°C)

Returns:
{
'occupant_detected': bool,
'is_child': bool,
'temperature': float,
'position': tuple,
'area': int,
'confidence': float
}
"""
# 1. 温度阈值分割
temp_mask = ((thermal_image >= self.human_temp_range[0]) &
(thermal_image <= self.human_temp_range[1]))

# 2. 形态学处理 (去除噪点)
from scipy.ndimage import binary_opening, label, center_of_mass
temp_mask = binary_opening(temp_mask, iterations=2)

# 3. 连通区域分析
labeled, num_features = label(temp_mask)

if num_features == 0:
return {
'occupant_detected': False,
'is_child': False,
'confidence': 0.99
}

# 4. 分析每个热源
results = []
for i in range(1, num_features + 1):
region = (labeled == i)
area = np.sum(region)
avg_temp = thermal_image[region].mean()
cy, cx = center_of_mass(region)

# 判断成人/儿童
if area < 50: # 太小,可能是物体
continue
is_child = area < self.child_area_threshold

results.append({
'occupant_detected': True,
'is_child': is_child,
'temperature': float(avg_temp),
'position': (float(cx), float(cy)),
'area': int(area),
'confidence': min(0.95, area / 1000)
})

# 返回最大的热源
if results:
return max(results, key=lambda x: x['area'])
return {'occupant_detected': False, 'is_child': False, 'confidence': 0.5}

# 测试
if __name__ == "__main__":
detector = FIRCPDDetector()

# 模拟热图像 (160×120, 温度范围20-40°C)
np.random.seed(42)
bg = np.random.normal(25, 2, (120, 160)) # 背景温度
test_image = bg.copy()

# 模拟儿童热源 (小区域, 35°C)
test_image[80:100, 100:130] = 35.0
# 模拟物体热源 (很小, 30°C)
test_image[20:25, 10:15] = 30.0

result = detector.detect(test_image)
print("FIR CPD 检测结果:")
for key, val in result.items():
print(f" {key}: {val}")

3.2 FIR vs 雷达 CPD对比

维度 60GHz毫米波雷达 FIR热成像 超声波
检测原理 微动呼吸检测 体温特征 距离反射
穿透毯子
区分儿童/物体 ✅(微动特征) ✅(温度)
乘员计数 中等
位置精度 <10cm ~20cm ~5cm
成本 $30-80 $100-200 $5-15
法规(Euro NCAP) ✅ 符合 ✅ 符合 ❌ 不符合
优势 穿透强、成本低 被动、直观 成本极低
局限 需要运动 需温度差 无生物检测

推荐方案: 雷达(主) + FIR(辅) 融合

4. 热舒适监测

4.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
"""
基于FIR的座舱热舒适监测
=========================
论文: Occupant-centric cabin thermal sensation assessment
来源: Building and Environment, 2024
"""

class CabinThermalComfort:
"""
座舱热舒适评估器

原理:
1. FIR测量面部温度(额头/脸颊)
2. 结合环境温度/湿度
3. 评估热感觉(-3冷~+3热)
4. 调节HVAC

论文发现:
- 面部温度变化1°C ≈ 热感觉变化1级
- 额头温度最稳定可靠
- 脸颊温度反应最快
"""

def __init__(self):
# 热感觉量表
self.sensation_scale = {
-3: "冷",
-2: "凉",
-1: "稍凉",
0: "中性(舒适)",
1: "稍暖",
2: "暖",
3: "热"
}

# 面部温度→热感觉映射 (简化模型)
self.temp_sensation_map = {
"forehead": {"neutral": 33.5, "sensitivity": 0.8},
"cheek": {"neutral": 31.0, "sensitivity": 1.2},
"nose": {"neutral": 29.5, "sensitivity": 1.5}
}

def assess_thermal_sensation(
self,
facial_temps: dict,
ambient_temp: float,
humidity: float = 0.5
) -> dict:
"""
评估热感觉

Args:
facial_temps: {"forehead": 34.0, "cheek": 32.0, "nose": 30.0}
ambient_temp: 车内温度 (°C)
humidity: 相对湿度 (0-1)

Returns:
{
'sensation': int, # -3 to +3
'sensation_label': str,
'recommend_hvac': dict,
'confidence': float
}
"""
# 计算各部位的热感觉
sensations = []
for region, temp in facial_temps.items():
if region in self.temp_sensation_map:
config = self.temp_sensation_map[region]
delta = temp - config['neutral']
sensation = delta * config['sensitivity']
sensations.append(sensation)

if not sensations:
return {'sensation': 0, 'sensation_label': '未知', 'confidence': 0.0}

# 加权平均
avg_sensation = np.mean(sensations)
sensation_int = int(np.clip(round(avg_sensation), -3, 3))

# HVAC建议
if sensation_int > 0: # 偏热
hvac = {
'action': 'cool',
'target_temp': max(20, ambient_temp - 2),
'fan_speed': min(5, 2 + abs(sensation_int)),
'air_direction': 'face'
}
elif sensation_int < 0: # 偏冷
hvac = {
'action': 'heat',
'target_temp': min(28, ambient_temp + 2),
'fan_speed': min(5, 2 + abs(sensation_int)),
'air_direction': 'feet'
}
else:
hvac = {'action': 'maintain', 'fan_speed': 1}

return {
'sensation': sensation_int,
'sensation_label': self.sensation_scale.get(sensation_int, "未知"),
'facial_temps': facial_temps,
'recommend_hvac': hvac,
'confidence': min(0.9, 0.5 + 0.1 * len(sensations))
}

# 测试
if __name__ == "__main__":
monitor = CabinThermalComfort()

# 测试1: 偏热
result_hot = monitor.assess_thermal_sensation(
facial_temps={"forehead": 35.0, "cheek": 33.5, "nose": 32.0},
ambient_temp=27
)
print("测试1 (偏热):")
print(f" 热感觉: {result_hot['sensation_label']}")
print(f" HVAC建议: {result_hot['recommend_hvac']}")

# 测试2: 舒适
result_comfy = monitor.assess_thermal_sensation(
facial_temps={"forehead": 33.5, "cheek": 31.0, "nose": 29.5},
ambient_temp=24
)
print("\n测试2 (舒适):")
print(f" 热感觉: {result_comfy['sensation_label']}")
print(f" HVAC建议: {result_comfy['recommend_hvac']}")

# 测试3: 偏冷
result_cold = monitor.assess_thermal_sensation(
facial_temps={"forehead": 32.0, "cheek": 29.0, "nose": 27.0},
ambient_temp=18
)
print("\n测试3 (偏冷):")
print(f" 热感觉: {result_cold['sensation_label']}")
print(f" HVAC建议: {result_cold['recommend_hvac']}")

5. IMS集成方案

5.1 FIR+DMS+雷达融合架构

graph TD
    subgraph 传感器层
        A1[RGB-IR DMS摄像头<br/>面部+行为]
        A2[FIR热像仪<br/>温度+CPD]
        A3[60GHz雷达<br/>呼吸+微动]
        A4[座椅压力<br/>姿态+心率]
    end
    
    subgraph 特征层
        B1[面部表情+视线+眨眼]
        B2[体温分布+CPD+热舒适]
        B3[呼吸频率+心跳+存在检测]
        B4[坐姿+压力分布]
    end
    
    subgraph 融合层
        C[多传感器融合引擎]
        B1 --> C
        B2 --> C
        B3 --> C
        B4 --> C
    end
    
    subgraph 决策层
        C --> D1[疲劳检测]
        C --> D2[CPD儿童检测]
        C --> D3[热舒适调节]
        C --> D4[健康监测]
        C --> D5[情绪推断]
    end
    
    D1 --> E[IMS安全决策]
    D2 --> E
    D3 --> F[座舱环境控制]
    D4 --> F
    D5 --> F
    E --> G[ADAS/警告/HUD]
    F --> H[HVAC/灯光/音乐]

5.2 部署成本分析

组件 型号/规格 单价 数量 总成本
DMS RGB-IR OV2311 $12 1 $12
FIR热像仪 InfiRay AT10 $100 1-2 $100-200
60GHz雷达 TI IWR6843 $40 1 $40
座椅压力 压阻阵列 $20 1-2 $20-40
处理器 QCS8255 $50 1 $50
总传感器成本 - - - $220-340
竞争方案(参考) Smart Eye - - ~$300+

6. IMS开发启示

启示 说明 优先级
FIR是CPD最优解之一 被动检测、穿透毯子、合规 🔴 高
雷达+FIR融合 雷达主检+FIR辅助确认 🔴 高
热舒适是增值功能 从安全到舒适的价值扩展 🟡 中
FIR数据量小 160×120×16bit@25fps ≈ 1MB/s 🟢 低
成本可接受 $100-200/FIR,量产可降至$50 🟡 中
隐私友好 热轮廓不暴露身份,合规性强 🟡 中

7. 总结

座舱FIR热成像的核心价值:

  1. CPD刚需 — 被动检测,穿透毯子,法规符合
  2. 热舒适增值 — 从安全到舒适的功能扩展
  3. 隐私友好 — 热轮廓不暴露身份
  4. 与DMS互补 — RGB-IR看行为,FIR看温度
  5. 成本下降中 — 从$500降至$100-200,量产可<$50

对IMS的核心价值:

  • FIR是CPD检测的推荐方案之一
  • 热舒适是DMS→OMS价值扩展的关键
  • 多传感器融合架构的FIR传感器角色
  • 成本可控,可与DMS摄像头共存

参考: IDTechEx “In-Cabin Sensing 2025-2035”
论文: “Occupant-centric cabin thermal sensation assessment” (Building and Environment, 2024)
论文: “Dual-phase prediction model of passenger thermal sensation using facial thermal imaging” (2024)


座舱热成像监控:远红外(FIR)在乘员感知中的技术路线与IMS集成方案
https://dapalm.com/2026/09/03/2026-09-03-cabin-fir-thermal-imaging-cpd-comfort-ims/
作者
Mars
发布于
2026年9月3日
许可协议