想象你是一位忙碌的房主,家里请来了一位眼力极好的管家。他不需要你开口,就能顺着你的目光猜到你想拿哪本书、想开哪盏灯。一开始你觉得他神了,可很快发现麻烦来了——你只是随便看了一眼窗外的风景,管家就“唰”地拉开了窗帘;你多瞅了两秒花瓶,他就把花瓶端到你面前。光会看眼色还不够,管家还得学会分辨“看一眼”和“想要它”,配合你的点头、手势甚至语气,才能真正把事办漂亮。这套“会看眼色 + 懂确认信号”的相处之道,正是眼动追踪与注视点交互的核心逻辑。 这篇指南要带你认识这位“目光管家”背后的技术:它如何用红外光捕捉你的视线,如何把目光变成屏幕上的坐标,又如何通过多模态融合避免“好心办坏事”。我们还会聊聊怎么用它服务行动不便的用户、保护用户的隐私。读完之后,你会对下一代人机交互范式有一个系统而亲切的理解。

岗位关联

眼动追踪是多模态交互的“视觉神经”,掌握它,你就能设计出更直觉、更包容、更懂用户意图的 AI 产品——这是 AI 交互设计师与 HCI 研究员的必备技能。

目录
  1. 可视化演示
  2. 眼动追踪原理
  3. 注视点与数据
  4. 交互设计原则
  5. 多模态融合
  6. 无障碍设计
  7. 性能与隐私
  8. AI 应用场景
  9. Python 演示
  10. 常见误区
  11. 面试题

可视化演示

本节配有交互动效(进入视口后自动加载,约 3KB)。

眼动追踪原理

管家第一天上班,就先认真观察你的眼睛——他发现你瞳孔的位置和眼角膜上的一个亮斑之间,藏着你的目光方向。这个“瞳孔 + 亮斑”的组合,就是眼动追踪界大名鼎鼎的瞳孔角膜反射(PCCR)技术。红外光源照到角膜上会形成一个固定的反光点,称为“普尔钦斑”,而瞳孔在红外光下呈现为深色圆斑。当你的眼球转动时,瞳孔会移动,那枚亮斑却基本不动,两者之间的相对位置变化,就泄露了你正在看哪里。

把瞳孔中心和角膜反射点看作两个图钉,它们之间的距离和方向就是一条“目光向量”。这条向量经过数学映射,就能换算成屏幕上的坐标。这里的映射并不是天然的,而是靠校准建立起来的——就像管家需要先和你相处几天,才能准确判断“你皱眉是思考,不是生气”。校准通常要求你盯着屏幕上依次出现的圆点,系统趁机记录下不同视线方向对应的向量,从而训练出一个专属于你的映射模型。

vcr=ppupil−pcorneal,(xscreen,yscreen)=A⋅vcr+b\mathbf{v}_{cr} = \mathbf{p}_{\text{pupil}} - \mathbf{p}_{\text{corneal}}, \quad (x_{screen}, y_{screen}) = \mathbf{A} \cdot \mathbf{v}_{cr} + \mathbf{b}

1. 瞳孔中心向量:红外光下瞳孔呈黑色圆斑,算法定位其圆心坐标,记为 \( \mathbf{p}_{\text{pupil}} \)。

ppupil=[uv]\mathbf{p}_{\text{pupil}} = \begin{bmatrix} u \\ v \end{bmatrix}

2. 角膜反射点:红外光源在角膜上形成“普尔钦斑”,位置几乎不受眼球转动影响,是天然的参考锚点。

pcorneal=[u′v′]\mathbf{p}_{\text{corneal}} = \begin{bmatrix} u' \\ v' \end{bmatrix}

3. 反射向量:两个点相减,得到一个随眼球转动而变化的向量 \( \mathbf{v}_{cr} \),方向即视线朝向。

vcr=ppupil−pcorneal\mathbf{v}_{cr} = \mathbf{p}_{\text{pupil}} - \mathbf{p}_{\text{corneal}}

4. 屏幕映射:通过校准拟合出的矩阵 \( \mathbf{A} \) 与偏移 \( \mathbf{b} \),把向量换算成屏幕坐标。

(xscreen,yscreen)=A⋅vcr+b(x_{screen}, y_{screen}) = \mathbf{A} \cdot \mathbf{v}_{cr} + \mathbf{b}

硬件方案也各有千秋:消费级设备多用红外摄像头加光源,眼电图(EOG)通过皮肤表面的电极测量眼电位差,科研领域还有更精密的巩膜线圈法。无论哪种方案,校准时都需要人机配合,因为每个人的眼球曲率、角膜形状都略有不同——这位管家的“认人”功夫,正是系统的灵魂。

注视点与数据

管家站在客厅角落,手里握着一支荧光笔,默默在你视线扫过的地方涂色。涂得最多的地方颜色最深,形成一张“目光热力图”——这张图上最亮的区域,往往就是注意力停留最久的地方。原始眼动数据就是这支荧光笔的笔迹:以每秒 30 到 120 次的频率记录下的 (x, y) 坐标点,叠加了微颤、眨眼和噪声,像喝醉酒的人画线条一样抖个不停。

为了让数据可用,系统要先做平滑滤波。最常用的指数移动平均就像管家“慢半拍”的记性:新观察到的坐标只信一部分,还得参考刚才记下的位置,这样视线轨迹就不会因为一次抖动而剧烈跳变。平滑之后,数据被分类成三种事件:注视(眼球相对静止,停留较长)、扫视(两点之间飞快跳跃)、平滑追踪(盯着移动物体缓慢跟随)。这三种事件再聚合成注视簇,投影到界面上就成了热力图。

x~t=α⋅xt+(1−α)⋅x~t−1\tilde{x}_t = \alpha \cdot x_t + (1 - \alpha) \cdot \tilde{x}_{t-1}

1. 原始采样:\( x_t \) 是第 t 帧眼动设备输出的原始横坐标,噪声大、抖动明显。

xt=raw coordinate at frame tx_t = \text{raw coordinate at frame } t

2. 历史平滑值:\( \tilde{x}_{t-1} \) 是上一帧的平滑结果,相当于管家对“刚才你在看哪”的短期记忆。

x~t−1=previous smoothed value\tilde{x}_{t-1} = \text{previous smoothed value}

3. 指数加权:α 是 0 到 1 之间的平滑系数,α 接近 1 时完全信任新数据,接近 0 时几乎只看历史。

x~t=α⋅xt+(1−α)⋅x~t−1\tilde{x}_t = \alpha \cdot x_t + (1-\alpha) \cdot \tilde{x}_{t-1}

平滑之后,注视点数据从一串乱码变成了可读的“目光故事”:哪里被忽略、哪里被反复打量、用户路径怎么走。热力图、视线回放、AOI 兴趣区分析,都是在这张数据画布上作画——管家的荧光笔记,成了设计师最珍贵的素材。

交互设计原则

管家虽然眼力好,却闹过一个大笑话:你只是盯着壁炉的火焰发呆,他就把整桶柴火搬了过来。这就是眼动交互最著名的坑——Midas Touch(迈达斯之触)。传说迈达斯国王点石成金,而眼动系统如果“盯什么就触发什么”,用户连眨眨眼都不敢,因为每次随意注视都可能引发一次操作。解决思路是引入“确认门槛”:只有注视停留超过一定时长,或者配合按键、微笑等确认信号,系统才执行指令。

除了确认机制,目标尺寸也至关重要。眼动瞄准不像鼠标那样精确,用户很难稳稳盯住一个小按钮几秒钟。设计时请把可点击目标做得足够大,并把常用操作放在视线容易到达的区域。同时加入平滑容错,比如允许一定范围内的轻微漂移、在阈值边缘不急于判定,避免用户在边界处反复触发失败。最后是反馈设计:当系统识别到你在注视某元素时,立刻给出高亮、光圈等视觉反馈,让用户知道“管家接住我的目光了”。

action={1,if dwell_time≥Dmin and confirm=10,otherwise\text{action} = \begin{cases} 1, & \text{if } \text{dwell\_time} \geq D_{min} \text{ and } \text{confirm} = 1 \\ 0, & \text{otherwise} \end{cases}

1. 停留时间:dwell\_time 是目光持续停在目标区域内的累计时长,单位通常为毫秒,可由注视事件聚合得到。

dwell_time=∑Δtgaze in target\text{dwell\_time} = \sum \Delta t_{\text{gaze in target}}

2. 最小阈值:\( D_{min} \) 是设计者设定的阈值,比如 300ms,短于它被认为是“路过”而不是“选中”。

Dmin=300 ms (示例)D_{min} = 300\,\text{ms (示例)}

3. 确认信号:confirm 是 0/1 变量,来自按键、手势或语音;它为 1 时表示用户明确授权执行。

confirm∈{0,1}\text{confirm} \in \{0, 1\}

从此,管家不再“自作多情”:你盯着炉火发呆时,他只是安静地等待;当你轻轻敲一下拐杖(确认信号),他才行动。这套“注视瞄准 + 显式确认”的双保险,是眼动交互设计的第一准则。

多模态融合

管家慢慢摸索出一套服务哲学:单看眼神容易误判,单听语气容易错意,只有把目光、手势、语音放在一起参详,才能确认你的真意。这套哲学在技术上叫多模态融合。每种输入通道都有自己的优势和盲区:眼动快但意图模糊,语音意图明确但易受环境干扰,手势精准但费力气。融合的目标,是让三种信号互补,像三个证人互相印证同一个事件。

融合引擎的核心是一个加权评分模型。系统为每个候选操作分别计算眼动、手势、语音的“支持分”,再按权重相加。眼动负责快速指向候选目标,手势作为确认闹钟,语音提供语义修正——比如你说“不是那个蓝色的”,系统就知道要切换目标。时序对齐是融合的关键难点:眼球先动、手指后点、语音最后落定,三者相差几百毫秒,必须用时间窗把它们归拢到同一个事件上。若信号互相矛盾,还需要仲裁规则:通常是显式指令(语音/手势)优先于隐式线索(视线)。

S=wg⋅sgaze+wh⋅shand+wv⋅svoice,∑wi=1S = w_g \cdot s_{gaze} + w_h \cdot s_{hand} + w_v \cdot s_{voice}, \quad \sum w_i = 1

1. 单模态支持分:\( s_{gaze} \)、\( s_{hand} \)、\( s_{voice} \) 分别表示眼动、手势、语音对某个候选操作的支持程度,取值 0~1。

sgaze∈[0,1],shand∈[0,1],svoice∈[0,1]s_{gaze} \in [0,1], \quad s_{hand} \in [0,1], \quad s_{voice} \in [0,1]

2. 权重系数:\( w_g, w_h, w_v \) 是各模态的权重,和为 1,反映可靠度优先级。

wg+wh+wv=1w_g + w_h + w_v = 1

3. 融合总分:加权求和得到最终支持分 S,系统选择 S 最大的操作执行。

S=wg⋅sgaze+wh⋅shand+wv⋅svoiceS = w_g \cdot s_{gaze} + w_h \cdot s_{hand} + w_v \cdot s_{voice}

回到管家视角:他不再单凭目光行动,而是“看你的眼神、听你的语调、等你点头”,三种信号对上了才出手。这套合奏机制大幅降低了误触率,也让交互更自然——你不需要刻意忍着眼睛不乱看,因为系统知道,只有你说“开灯”并看着灯时,才是真正的指令。

无障碍设计

对管家来说,最值得骄傲的不是服务普通客人,而是照顾那些无法轻易开口、无法动手的客人。比如渐冻症患者,他们肌肉逐渐萎缩,却往往保留着眼球活动能力。眼动追踪为他们打开了一扇窗:注视着屏幕上的字母键盘,停留片刻就能“敲”下一个字母,一句“我想喝水”不再是奢望。这就是替代输入——用目光替代手和声音,成为对外沟通的唯一通道。

无障碍设计不只是把鼠标换成眼睛,更要让界面主动适应使用者。系统可以动态放大用户频繁注视的区域,把常用词汇预测到候选栏,甚至根据用户的疲劳程度调整目标大小。关键是要降低认知负荷:一次只呈现少量选项,避免密密麻麻的键盘让用户眼神无处安放。Fitts 定律告诉我们,目标越大、距离越近,选择越快——这对眼动尤其重要,因为眼睛的“瞄准”成本远高于手指。设计验证必须邀请真实的目标用户参与测试:他们与普通用户的操作习惯天差地别,只有让他们亲自用过,才知道界面够不够友好。

T=a+b⋅log⁡2(DW+1)T = a + b \cdot \log_2\left(\frac{D}{W} + 1\right)

1. 移动距离:D 是目光从当前位置到目标中心点的距离,距离越远越费时。

D=distance to targetD = \text{distance to target}

2. 目标宽度:W 是目标在视线方向上的尺寸,宽度越大,允许的瞄准误差越大。

W=target widthW = \text{target width}

3. 对数项:\( \log_2(D/W + 1) \) 是“难度指数”,目标又远又小时指数大、耗时长;a、b 是设备常数。

T=a+b⋅log⁡2(DW+1)T = a + b \cdot \log_2\left(\frac{D}{W} + 1\right)

管家常说:“客人的需求各不相同,但服务的用心是一样的。”眼动无障碍设计的本质,就是让技术的门槛降到最低,让最需要帮助的人也能享受数字世界的便利——而这,往往能催生出最有温度的产品创新。

性能与隐私

一位好管家,既要反应快,也要嘴严。眼动系统的性能瓶颈在于延迟。从你的眼球转动到界面上反馈出现,要经过摄像头采集、图像处理、注视点解算、应用响应、屏幕绘制整整五道工序,任何一环拖延都会让用户感觉“界面黏住了”。学界普遍认为,端到端延迟在 50 毫秒以内才能营造“视线即指针”的流畅感,最好不超过 100 毫秒——否则拖动、打字都会像隔着一层水。

Ltotal=Lcapture+Lprocess+Lrender≤50 msL_{total} = L_{capture} + L_{process} + L_{render} \leq 50\,\text{ms}

1. 采集延迟:\( L_{capture} \) 是摄像头曝光与传输成本,高帧率摄像头能降低这一环的时间。

Lcapture=camera exposure + transferL_{capture} = \text{camera exposure + transfer}

2. 处理延迟:\( L_{process} \) 是瞳孔检测与注视点解算的计算时间,轻量级神经网络通常更快。

Lprocess=detection + mappingL_{process} = \text{detection + mapping}

3. 渲染延迟:\( L_{render} \) 是应用与屏幕刷新的时间,往往是隐藏的延迟大头。

Ltotal=Lcapture+Lprocess+LrenderL_{total} = L_{capture} + L_{process} + L_{render}

更隐蔽的挑战是隐私。眼睛泄露的信息比你以为的多——瞳孔变化可能反映情绪,注视轨迹可能暴露正在阅读的内容、甚至疾病征兆。负责任的做法是“本地优先”:在设备端完成处理,只把脱敏后的注视点上传;必要时对原始图像做模糊化、对坐标添加噪声,并明确告知用户数据的用途与存储期限。伦理规范要求我们尊重用户的知情同意权,绝不能把眼动数据拿去做不经许可的画像。管家守住了嘴,房主才敢把所有心事袒露在目光里。

AI 应用场景

智能车载 HUD:眼动 + 语音的座舱管家

阶段:多模态输入融合与意图识别

解决的问题:开车时手不能离开方向盘、眼不能离开道路,传统触屏和按键既危险又低效。AI 融合眼动与语音,让驾驶员的视线成为“指针”,语音成为“确认键”,导航、切歌、调空调都无需动手。

具体案例:驾驶员目光扫过路边一家餐厅,随口问一句“这家店评分怎么样?”系统通过眼动追踪锁定他正在看的店铺,再结合语音指令查询评分并语音播报。若目光与语音指向不一致,以语音为准。整套交互延迟控制在 50ms 内,确保驾驶员视线尽量少离开路面。

无障碍眼控打字:渐冻症患者的沟通之桥

阶段:注视点数据处理与自适应界面

解决的问题:渐冻症患者失去手部运动能力,无法使用键盘鼠标,但多数人保留眼球活动。传统眼控输入速度慢、误触率高、易疲劳,AI 辅助的智能预测与自适应布局可将输入效率提升数倍。

具体案例:某康复机构部署眼控打字系统:用户注视屏幕上的字母超过 400ms 即输入该字母,AI 根据已输入内容实时预测下一个候选词并显示在界面底部,用户只需注视候选词即可完成整词输入,一句话只需原来三分之一的注视次数。界面还会根据用户的注视热力图自动放大高频点击区域。

电商视线热力图:用目光投票的页面优化

阶段:眼动数据可视化分析与洞察

解决的问题:传统 A/B 测试只能看到“点击了哪里”,但用户为什么没点?哪个位置压根没被注视?视线热力图提供第一手的注意力数据,帮助设计师找到问题。

具体案例:某电商平台用眼动追踪测试新版商品详情页,发现大量用户的目光在“加购按钮”上方扫过后直接移开,热力图显示按钮区域几乎无人注视。设计师据此把按钮从灰色改为高对比色并上移 200px,重新测试后注视停留时长提升 45%,加购率提升 12%。

Python 演示

python80 行
import mathimport random  class GazeAnalyzer:    """用指数平滑 + 停留检测,从原始眼动数据中识别注视点。"""     def __init__(self, alpha=0.4, dwell_threshold=0.15, radius=40):        self.alpha = alpha        self.dwell_threshold = dwell_threshold        self.radius = radius        self._smooth_x = None        self._smooth_y = None     def smooth(self, xs, ys):        """对原始坐标做指数移动平均,削减微颤噪声。"""        smoothed = []        for x, y in zip(xs, ys):            if self._smooth_x is None:                self._smooth_x, self._smooth_y = x, y            else:                self._smooth_x = self.alpha * x + (1 - self.alpha) * self._smooth_x                self._smooth_y = self.alpha * y + (1 - self.alpha) * self._smooth_y            smoothed.append((self._smooth_x, self._smooth_y))        return smoothed     def detect_fixations(self, xs, ys, ts):        """把聚集在半径范围内的点聚成注视,持续足够久才算一次注视。"""        smoothed = self.smooth(xs, ys)        fixations = []        start = 0        for i in range(1, len(smoothed)):            dist = math.hypot(smoothed[i][0] - smoothed[start][0],                              smoothed[i][1] - smoothed[start][1])            if dist > self.radius:                duration = ts[i - 1] - ts[start]                if duration >= self.dwell_threshold:                    n = i - start                    cx = sum(p[0] for p in smoothed[start:i]) / n                    cy = sum(p[1] for p in smoothed[start:i]) / n                    fixations.append((cx, cy, duration))                start = i        duration = ts[-1] - ts[start]        if duration >= self.dwell_threshold:            n = len(smoothed) - start            cx = sum(p[0] for p in smoothed[start:]) / n            cy = sum(p[1] for p in smoothed[start:]) / n            fixations.append((cx, cy, duration))        return fixations  def simulate_gaze():    """模拟 1 秒眼动数据:先注视左上角 0.5 秒,再快速扫视到右下角。"""    xs, ys, ts = [], [], []    t = 0.0    while t < 0.5:        xs.append(100 + random.uniform(-5, 5))        ys.append(100 + random.uniform(-5, 5))        ts.append(t)        t += 0.01    while t < 1.0:        p = (t - 0.5) / 0.5        xs.append(100 + 300 * p + random.uniform(-5, 5))        ys.append(100 + 100 * p + random.uniform(-5, 5))        ts.append(t)        t += 0.01    return xs, ys, ts  def main():    xs, ys, ts = simulate_gaze()    analyzer = GazeAnalyzer(alpha=0.4, dwell_threshold=0.15, radius=40)    fixations = analyzer.detect_fixations(xs, ys, ts)    print("检测到 {} 个注视点:".format(len(fixations)))    for fx, fy, dur in fixations:        print("  中心=({:.0f}, {:.0f}) 时长={:.2f}s".format(fx, fy, dur))  if __name__ == "__main__":    main()
目的:模拟一段“注视左上方→快速扫视到右下方”的眼动数据,用指数平滑去除噪声,再用半径聚类 + 停留时长判断出真正的注视点,输出注视中心与时长。
  1. xs.append(100 + random.uniform(-5, 5))模拟 1 秒内的眼动数据,注视阶段坐标在 100 附近随机抖动,产生微颤噪声。
  2. self._smooth_x = self.alpha * x + (1 - self.alpha) * self._smooth_x指数平滑公式的实现,α 取 0.4 时兼顾响应速度与平滑度。
  3. dist = math.hypot(smoothed[i][0] - smoothed[start][0], ...)计算当前点与注视簇起点的欧氏距离,超过 radius 说明开始扫视。
  4. duration = ts[i - 1] - ts[start]累计点数乘以采样间隔得到停留时长,用于与 dwell_threshold 比较。
  5. fixations.append((cx, cy, duration))把一次有效注视的中心坐标和时长存入结果,供生成热力图或统计使用。

常见误区

误区眼动追踪像读心术一样,盯着屏幕就能知道用户心里想要什么、情绪如何、有没有撒谎。

正解眼动追踪只能测量“眼睛看哪里、看了多久”,它反映的是注意力分布,不是意图和思想。瞳孔直径变化确实能间接反映认知负荷,但这是模糊的相关信号,绝非读心。科学家需要通过模型猜测意图,而模型常常猜错。

为何常见:电影和科幻作品不断渲染“眼睛是心灵的窗户”,让大众把视线位置误当成内心想法。

误区既然用眼睛当鼠标,那看一个按钮就应该马上点击它,停留时间越短越好。

正解如果看一眼就触发,用户随便扫视一下界面就会引发一连串误操作,这就是 Midas Touch 问题。正确设计必须引入确认门槛:足够长的停留时间,或者配合按键、手势、语音等显式确认信号,才能避免“目光所及之处寸草不生”。

为何常见:习惯了鼠标的单击即响应,用户天然认为视线控制也应即时触发,忽视了注视的随意性。

误区眼动追踪摄像头开机就能用,不需要任何校准步骤,像普通摄像头一样即插即用。

正解每个人的眼球曲率、角膜形状、瞳距都存在差异,同一设备在不同用户身上的映射关系完全不同。正是校准流程建立的个人映射矩阵,才让“瞳孔-角膜反射向量”能准确换算成屏幕坐标。免校准设备只是通过某种默认模型做得更智能,但精度往往不及认真校准后的效果。

为何常见:消费级设备宣传“即插即用”,让人误以为校准只是可选优化项。

误区把眼动、语音、手势的数据拼在一起或者取个平均,就是多模态融合了。

正解多模态融合需要解决三大难题:时序对齐(三种信号到达时间不同)、冲突仲裁(目光指向 A、语音却说要 B)、权重分配(哪个模态更靠谱)。简单相加不仅无法互补,反而会把噪声也叠加进来。成熟系统往往采用置信度加权、贝叶斯推理或深度学习门控机制。

为何常见:初看“融合”二字,容易从字面理解为数据拼接,忽略了模态之间的时空关系。

误区眼睛数据只是坐标数字,不像照片和语音那样敏感,可以放心上传云端。

正解眼动数据高度敏感:注视轨迹可推断你在读什么、看什么内容;瞳孔变化可能关联情绪与疾病特征。欧洲 GDPR 已将眼动轨迹视为可识别个人身份的敏感生物特征数据。业内标准做法是本地优先处理、模糊化原始图像、最小化留存,并取得用户明确同意。

为何常见:用户看不到也没法直观感受视线坐标泄露的影响,低估了长期积累的行为画像风险。

面试题

Q1. 眼动追踪中瞳孔-角膜反射向量的用途是什么?

单选题 · easy

  • A.测量屏幕亮度的变化情况
  • B.计算用户的眨眼频率值
  • C.换算成屏幕的注视坐标← 正确答案
  • D.判断用户是否正在说谎

答案:C。瞳孔中心与角膜反射点相减得到方向向量,配合校准矩阵 A 和偏移 b 即可映射为屏幕坐标,这正是 PCCR 技术的核心逻辑。A、D 与视线定向无关,B 属于眼睛状态估计而非视线方向测量。

Q2. Midas Touch 问题描述的是哪种现象?

单选题 · easy

  • A.眼神注视过久引发眼睛疲劳
  • B.只看不点也能触发界面操作← 正确答案
  • C.快速扫视导致界面频繁刷新
  • D.手指误触屏幕造成操作失误

答案:B。Midas Touch 指系统对“注视”过于敏感,用户只是随意看看,界面就执行了操作。解法是引入停留阈值与确认信号。A 是生理疲劳,C 是刷新问题,D 是触屏误触,均与视线误触发无关。

Q3. 眼动追踪设备首次使用前通常需要做什么?

单选题 · easy

  • A.擦拭红外摄像头镜头的灰尘
  • B.校准建立个人的视线映射← 正确答案
  • C.下载并安装最新的系统驱动
  • D.用瞳孔直径估算屏幕距离

答案:B。每个人的眼球曲率、角膜形状不同,出厂默认模型无法精确适配所有人,必须通过校准采集个人视线样本、拟合专属映射矩阵。A、C 是常规维护,D 属于距离估算,无法替代校准。

Q4. 注视与扫视在眼动行为中的关键区别是?

单选题 · mid

  • A.注视时眼球相对静止且停留久← 正确答案
  • B.扫视时角膜反射点完全消失
  • C.注视只发生在屏幕中心区域
  • D.扫视不受任何噪声因素影响

答案:A。注视指眼球在目标上停留较久且运动缓慢,扫视是两点间的高速跳跃。扫视时角膜反射点依然存在,注视也可发生在屏幕任意位置,扫视数据同样含噪声,故 B、C、D 错误。

Q5. 眼动与手势融合时,手势信号的核心作用是?

单选题 · mid

  • A.代替眼动完成目标的瞄准
  • B.作为确认信号避免误触发← 正确答案
  • C.提高眼动采样的刷新频率
  • D.消除瞳孔反射带来的误差

答案:B。眼动擅长快速瞄准但意图模糊,手势点击是一种显式确认,告诉系统“我确实想操作这个目标”,从而化解 Midas Touch。手势不能代替瞄准(A),也无法改变硬件采样率(C)或消除 PCCR 几何误差(D)。

Q6. 下列哪些属于常见的眼动追踪硬件方案?

多选题 · mid

  • A.红外摄像头加红外光源← 正确答案
  • B.电极测量眼电信号差值← 正确答案
  • C.电磁感应式巩膜线圈法← 正确答案
  • D.磁共振脑部扫描成像仪

答案:ABC。视频式 PCCR 用红外摄像头与光源(A)、EOG 用皮肤电极测眼电位差(B)、巩膜线圈法用电磁感应(C)都是真实方案。磁共振(D)用于脑成像,并非眼动追踪硬件。

Q7. 注视热力图在交互设计中常用于哪些用途?

多选题 · mid

  • A.优化网页内容的信息布局← 正确答案
  • B.评估广告投放的注意力效果← 正确答案
  • C.检测屏幕硬件的刷新频率
  • D.分析页面不同区域的观看时长← 正确答案

答案:ABD。热力图把注视点聚类可视化,反映注意力分布,可指导网页布局、广告效果评估与页面各区域观看时间分析。C 的刷新频率是显示器硬件参数,与热力图无关。

Q8. 指数平滑公式中 α 取值较大时的效果是什么?

单选题 · hard

  • A.历史数据权重更大曲线更平缓
  • B.新数据权重更大响应更及时← 正确答案
  • C.注视点检测阈值会自动增高
  • D.扫视速度会被计算得越来越慢

答案:B。α 是新数据权重,α 越大越信任当前采样,轨迹响应快但易受噪声影响、曲线不平缓。A 描述的恰是 α 小的效果;C、D 与平滑系数无关,α 不影响阈值或速度计算。

Q9. 多模态融合中的时序对齐需要处理哪些问题?

多选题 · hard

  • A.眼动与手部动作存在延迟差← 正确答案
  • B.不同模态信号的采样率不同← 正确答案
  • C.语音指令的语法结构歧义
  • D.视线与手势信号出现冲突← 正确答案

答案:ABD。融合前必须把到达时刻不同的模态信号对齐到同一事件,处理延迟差(A)与采样率差异(B);若视线指向与手势目标矛盾,还需仲裁规则(D)。C 属于自然语言理解范畴,不是时序对齐问题。

Q10. 关于眼动数据隐私保护,最稳妥的做法是?

单选题 · extreme

  • A.将视线轨迹上传云端长期保存
  • B.本地完成处理并模糊身份信息← 正确答案
  • C.公开数据集供研究社区共享
  • D.只保留瞳孔直径丢弃坐标数据

答案:B。眼动轨迹属于敏感生物特征,最稳妥的做法是在设备端本地处理,仅上传必要且脱敏后的结果,并对原始图像模糊化(B)。A 长期上传云端、C 公开共享都可能造成隐私泄露;D 只保留瞳孔直径舍弃坐标,会丢失核心交互信息,并不稳妥。