Image Engineering Vega IR:DMS 摄像头 NIR 图像质量评估的标准化突破

背景

2026年8月,Image Engineering 发布了 Vega IR 光源,扩展其 Vega 平台到近红外波段(940nm),专为 DMS/OMS 摄像头的标准化图像质量测试设计。这是行业内首个针对车载 NIR DMS 摄像头的可重复、标准化测试光源。

核心问题:DMS 摄像头测试的 NIR 盲区

当前测试的缺陷

测试维度 可见光测试 NIR 测试现状 问题
分辨率 (SFR) ✅ ISO 12233 ❌ 无标准 NIR 下镜头性能不同
动态范围 (OECF) ✅ ISO 14524 ❌ 无标准 NIR 下传感器响应不同
噪声 (SNR) ✅ ISO 15739 ❌ 无标准 NIR 下读出噪声不同
畸变 ✅ ISO 17850 ❌ 无标准 镜头在 NIR 下畸变不同
闪烁抑制 ⚠️ 有方法 ❌ 无标准 LED 调制 NIR 补光影响

为什么可见光测试不够

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
# DMS 摄像头在 NIR 和可见光下的性能差异

# 1. 镜头色差
lens_performance = {
"visible": {"focal_length": "6mm", "distortion": "1.2%", "SFR_at_Nyquist": "0.35"},
"nir_940nm": {"focal_length": "6.05mm", "distortion": "1.5%", "SFR_at_Nyquist": "0.28"}, # SFR下降20%!
}

# 2. 传感器量子效率
sensor_qe = {
"visible_550nm": 0.65, # 65% QE at green
"nir_850nm": 0.25, # 25% QE at 850nm
"nir_940nm": 0.12, # 12% QE at 940nm → 需要更强补光
}

# 3. 补光调制影响
led_modulation = {
"frequency": 2000, # Hz, 常见 NIR LED 调制频率
"duty_cycle": 0.3, # 30% 占空比
"flicker_risk": "如果摄像头快门与LED不同步,会出现闪烁/条纹"
}

# 结论:仅在可见光下测试会遗漏 NIR 特有的性能退化
# SFR 在 940nm 下可能下降 20-40%
# 如果不测试,量产中可能出现检测精度不稳定

Vega IR 技术详解

关键参数

参数 规格 对 DMS 测试的意义
光谱 940nm NIR 匹配主流 DMS IR 补光波长
光源类型 DC 驱动(非调制) 高稳定性,无闪烁
辐射度量 精确定标 可重复的绝对测量
短曝光支持 支持极短曝光 测试高帧率 DMS(60-120fps)
闪烁功能 内置可调闪烁 模拟 LED 调制 NIR 补光
CTA 测量 IEEE-2020:2024 对比度传递精度
CSNR 测量 IEEE-2020:2024 对比度信噪比

IEEE-2020:2024 标准测试项

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

class DMSImageQualityTest:
"""
基于 IEEE-2020:2024 的 DMS 摄像头图像质量测试

Vega IR 支持的关键测试项
"""

def __init__(self, vega_ir_illuminance: float = 1.0):
"""
Args:
vega_ir_illuminance: Vega IR 辐照度 (W/m²)
"""
self.illuminance = vega_ir_illuminance

def measure_cta(
self,
image: np.ndarray,
target_roi: Tuple[int, int, int, int] = None
) -> float:
"""
Contrast Transfer Accuracy (CTA)
IEEE-2020:2024 定义

衡量摄像头在 NIR 下对比度还原能力

CTA = (L_max - L_min) / (L_max + L_min)

良好: CTA > 0.45
可接受: CTA > 0.30
不合格: CTA < 0.30

Args:
image: 测试图卡图像
target_roi: (x, y, w, h) 感兴趣区域

Returns:
cta: 对比度传递精度值
"""
if target_roi:
x, y, w, h = target_roi
roi = image[y:y+h, x:x+w]
else:
roi = image

if len(roi.shape) == 3:
roi = np.mean(roi, axis=2)

# 在 ROI 内查找最亮和最暗区域
h, w = roi.shape
quarter_h = h // 4
quarter_w = w // 4

l_max = np.percentile(roi[quarter_h:3*quarter_h, quarter_w:3*quarter_w], 99)
l_min = np.percentile(roi[quarter_h:3*quarter_h, quarter_w:3*quarter_w], 1)

if l_max + l_min == 0:
return 0.0

cta = (l_max - l_min) / (l_max + l_min)
return cta

def measure_csnr(
self,
image: np.ndarray,
dark_frames: np.ndarray = None,
target_roi: Tuple[int, int, int, int] = None
) -> float:
"""
Contrast Signal-to-Noise Ratio (CSNR)
IEEE-2020:2024 定义

CSNR = 20 * log10(Contrast / Noise_Std)

良好: CSNR > 35 dB
可接受: CSNR > 25 dB
不合格: CSNR < 25 dB

Args:
image: 测试图卡图像
dark_frames: 暗帧序列(用于固定模式噪声)
target_roi: ROI

Returns:
csnr_db: CSNR (dB)
"""
if target_roi:
x, y, w, h = target_roi
roi = image[y:y+h, x:x+w]
else:
roi = image

if len(roi.shape) == 3:
roi = np.mean(roi, axis=2)

quarter_h = roi.shape[0] // 4
quarter_w = roi.shape[1] // 4
center = roi[quarter_h:3*quarter_h, quarter_w:3*quarter_w]

contrast = np.mean(center) - np.std(center)
noise_std = np.std(center)

if noise_std == 0:
return float('inf')

csnr = 20 * np.log10(max(contrast, 1) / noise_std)
return csnr

def measure_sfr_nir(
self,
image: np.ndarray,
edge_roi: Tuple[int, int, int, int]
) -> Tuple[np.ndarray, float]:
"""
NIR 下的 MTF/SFR 测量

使用斜边法(ISO 12233 适配 NIR)

Args:
image: 测试图卡图像(含斜边)
edge_roi: 斜边区域

Returns:
sfr_curve: SFR 曲线
sfr_at_nyquist: Nyquist 频率处的 SFR 值
"""
x, y, w, h = edge_roi
edge_region = image[y:y+h, x:x+w]

if len(edge_region.shape) == 3:
edge_region = np.mean(edge_region, axis=2)

# 找到边缘位置
row_means = np.mean(edge_region, axis=1)
edge_position = np.argmax(np.abs(np.diff(row_means)))

# 提取边缘扩展函数 (ESF)
esf = row_means[max(0, edge_position-20):edge_position+20]

# 线性扩展函数 (LSF) = ESF 的导数
lsf = np.diff(esf)

# SFR = |FFT(LSF)| 的幅度
sfr = np.abs(np.fft.fft(lsf))
sfr = sfr / sfr[0] # 归一化

# Nyquist 频率处的值
nyquist_idx = len(sfr) // 2
sfr_nyquist = sfr[nyquist_idx]

return sfr, sfr_nyquist


# 测试套件
if __name__ == "__main__":
tester = DMSImageQualityTest(vega_ir_illuminance=1.0)

# 模拟测试图图卡图像
np.random.seed(42)
test_chart = np.random.randint(0, 255, (960, 1280), dtype=np.uint8)

# CTA 测试
cta = tester.measure_cta(test_chart, (200, 200, 400, 400))
print(f"CTA: {cta:.3f} ({'✅ 良好' if cta > 0.45 else '⚠️ 可接受' if cta > 0.30 else '❌ 不合格'})")

# CSNR 测试
csnr = tester.measure_csnr(test_chart, target_roi=(200, 200, 400, 400))
print(f"CSNR: {csnr:.1f} dB ({'✅ 良好' if csnr > 35 else '⚠️ 可接受' if csnr > 25 else '❌ 不合格'})")

# SFR 测试
sfr, sfr_nyq = tester.measure_sfr_nir(test_chart, (100, 100, 200, 800))
print(f"SFR@Nyquist: {sfr_nyq:.3f} ({'✅ 良好' if sfr_nyq > 0.3 else '⚠️ 需检查'})")

Vega IR 测试流程

与现有测试标准的关系

标准 覆盖范围 NIR 支持 Vega IR 贡献
ISO 12233 (SFR) 可见光分辨率 ❌ NIR SFR 测试
ISO 14524 (OECF) 动态范围 ❌ NIR OECF 测试
ISO 15739 (SNR) 噪声 ❌ NIR SNR 测试
IEEE-2020:2024 眼动追踪 ✅ 部分 CTA + CSNR 标准化
Euro NCAP DMS 功能测试 ⚠️ 功能级 图像质量级补充

关键价值: IEEE-2020:2024 是眼动追踪系统性能标准,Vega IR 首次将其 CTA/CSNR 测试扩展到 940nm NIR 波段。

IMS 开发启示

1. 图像质量是 DMS 算法精度的基础

图像质量问题 对 DMS 算法的影响 Vega IR 可检测
SFR 下降 瞳孔检测精度下降 → 视线估计误差↑ ✅
噪声增大 眨眼误报率↑ ✅
动态范围不足 逆光时面部过曝/欠曝 ✅
闪烁 帧间亮度波动 → PERCLOS 不稳定 ✅
畸变 面部关键点位置偏移 → gaze 误差 ✅

2. 建议的 DMS 摄像头验收标准

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
# DMS 摄像头 NIR 图像质量验收标准
acceptance_criteria = {
"resolution": {
"SFR_at_Nyquist_NIR": {"min": 0.30, "recommended": 0.40},
"SFR_at_half_Nyquist_NIR": {"min": 0.50, "recommended": 0.60},
},
"contrast": {
"CTA_NIR": {"min": 0.30, "recommended": 0.45},
"CSNR_NIR_dB": {"min": 25, "recommended": 35},
},
"dynamic_range": {
"OECF_NIR_dB": {"min": 48, "recommended": 60},
},
"noise": {
"SNR_NIR_dB": {"min": 30, "recommended": 40},
},
"temporal": {
"flicker_modulation_depth": {"max": 0.05, "recommended": 0.02},
},
"distortion": {
"TV_distortion_NIR_pct": {"max": 2.0, "recommended": 1.0},
}
}

# IMS 摄像头选型检查清单
print("=== DMS 摄像头 NIR 验收检查清单 ===")
for category, metrics in acceptance_criteria.items():
print(f"\n{category.upper()}:")
for metric, spec in metrics.items():
unit = "dB" if "dB" in metric or "csnr" in metric.lower() else ""
print(f" {metric}: min={spec['min']}{unit}, recommended={spec['recommended']}{unit}")

3. 优先行动建议

行动 优先级 预期收益
评估是否需要采购 Vega IR 或类似 NIR 测试光源 🔴 P0 确保摄像头质量可量化
建立 DMS 摄像头 NIR 验收标准 🔴 P0 供应商管理依据
对现有摄像头进行 NIR 图像质量基线测试 🟡 P1 发现潜在问题
研究闪烁对 PERCLOS 稳定性的影响 🟡 P1 提升算法鲁棒性

供应商对比:NIR 测试光源

产品 厂商 NIR 支持 价格 适合场景
Vega IR Image Engineering ✅ 940nm DC ~€15-25k 正式验收/认证
Integrating Sphere Labsphere ⚠️ 需定制 ~€20-30k 绝对辐射度
LED Light Source 自建 ✅ 可调 ~€500-2k 快速验证
Standard Light Box 各厂商 ❌ 可见光 ~€1-5k 不适合 NIR

总结: Vega IR 填补了 DMS 摄像头 NIR 图像质量测试的标准化空白。IEEE-2020:2024 的 CTA/CSNR 指标在 940nm 下的可重复测量,使 DMS 摄像头选型和验收从”看着还行”升级到”数据说话”。对 IMS 而言,建立 NIR 图像质量验收标准是保障算法精度的底层基础。