2. 计算机辅助设计与图形学国家重点实验室(浙江大学), 浙江 杭州 310058
2. State Key Laboratory of CAD & CG(Zhejiang University), Hangzhou 310058, China
随着计算机支持的协同工作(computer supported cooperative work)、社会计算(social computing)等相关技术及应用的迅速发展, 人机交互活动已不再局限于以单个用户为中心的交互空间, 交互任务往往需要在多用户协同环境下才能完成.在多人协同交互过程中, 信息的共享机制不仅有助于协作者了解彼此的任务完成情况, 还可以促进协同工作效率的提升.针对与视觉认知相关的协同交互, 如何将多用户的视觉注意资源形成一个有机的协作体, 通过共享机制让个人用户根据自身的目标、意图、偏好等因素, 匹配其他用户的视觉注意资源, 从而降低自身认知负荷, 提高交互效率和主观体验, 已成为一个新的研究课题.由于眼动跟踪(eye tracking)数据可以表征用户的交互意图, 且基于眼动跟踪的交互具有“所见即所得”的特点[1], 所以在文本、语音、手势等形式的交互语义无法准确表达的情况下, 通过眼动跟踪数据及其可视化在多用户之间表征视觉行为和交互语义, 可以降低语义歧义性, 提高多人协同交互质量水平与效率.然而, 目前多用户协同交互环境下的视觉认知研究相对匮乏, 尤其是缺少基于眼动跟踪的协同交互方法和关键技术.具体而言就是, 如何在协同环境下简单、有效地记录眼动跟踪数据, 并在协作者之间传输、分享和表达, 进而提高交互质量和效率的相关机制目前还没有展开加以深入研究.
为此, 在上述研究背景下, 本文提出面向多用户协同交互的眼动跟踪技术, 实时获取、计算和传输协同环境下不同用户的眼动跟踪数据, 并通过分析与可视化眼动跟踪数据, 实现多用户协作过程中视觉注意行为和交互意图的协同感知.设计与开发了一个面向程序代码协同审查的多用户眼动跟踪交互应用系统, 通过用户实验, 验证了本文方法能够有效地促进多用户协作效率的提升.
1 相关工作已有的相关研究主要集中在以下3个方面.
(1) 基于联合注意理论的协同交互基础研究.联合注意(joint attention)是指社会协作者聚焦于一个共同的参考对象(例如, 物体、人或者事件), 并且观察其他协作者对该对象的注意力[2].在这个过程中, 注视起着十分重要的作用, 使得协作者共享对感兴趣事物或事件的注意[3].联合注意不仅强调协作个体同时同步关注同一个对象, 而且更强调协作者能够互相感知出他们的视觉关注存在共同性[4].表征联合注意的具体行为主要包括[5]:注视追随(gaze following), 即追随其他人的注视从而注意到对方关注的对象; 指向关注对象的模仿(object-directed imitation), 即模仿其他人对关注对象所施加的动作; 社会参照(social referencing), 即根据其他人来调整自己对场景的知觉, 从而做出更合理的反应.参与联合注意的方式包括两种, 一种是被动地对其他人的注意指引做出反应, 另一种是主动发起联合注意, 这两种方式都可促进个体对外部环境的理解和生成互动的动机[5].联合注意可以促进协同交互, 例如, 通过在协同式搜索任务过程中分享注视点, 可以提高任务绩效[6].特别是在分布式的协同环境下, 由于语言在描述空间信息时经常具有模糊性而影响交流效率, 而联合注意通过分享注视点信息可以起到更加明确的指示作用, 一定程度上消除了语义模糊性, 从而强化分散在不同地域协作者之间的交流, 使其在复杂的协同式空间搜索任务中可显著提高效率[7, 8].
(2) 眼动数据特征可视化研究.近年来, 进一步对联合注意中所涉及的眼动数据特征参数开展可视化分析研究.例如, 用矩阵散点图来显示随时间变化的协同注意数据, 分析协作群体中联合注意行为在时序上的演进, 例如, 不同用户一开始很难同步, 但会逐渐建立起与其他人的高度协调; 或者一个团队开始有很好的同步性, 但随着时间的延续, 逐渐产生分歧或冲突, 而丧失视觉注意行为上的协调性[9].这种可视化方法的缺点是它只适合表达时序信息, 无法表达交互过程中联合注意行为产生的位置等空间信息.力导向网络图节点表示单个用户在每一个感兴趣区域内的注视点数目, 边表示在这些感兴趣区域之间的眼跳, 可以表达空间维度相关的信息[2].比较不同用户的力导向网络图可以发现, 不同的视觉注意分布和转换模式与矩阵散点图形成互补.但是这些可视化形式仍存在表达不直观、普通用户不易于理解的缺点.还有研究人员针对解谜和模拟拆装任务, 给一个用户显示另一个用户在执行任务过程中的单个注视点和注视点轨迹, 设计了基于注视点的区域缩放指示和动态轨迹指示等可视化形式[10].此外, 我们前期开展的研究, 记录了专家用户在阅读文档时的眼动数据, 然后通过生成可视化批注分享给新手用户, 指导其把握文档重点内容和全文结构, 可有效提高阅读理解水平[11].然而, 如何根据视觉注意机制特征对联合注意行为本身的相关眼动数据进行处理和可视化, 提高用户在协同交互中的认知水平和操作绩效, 则有待深入研究.
(3) 应用研究.面向教育、汽车驾驶、医疗影像分析及培训[12]等不同领域开展了具体的应用研究, 实现了代替语音交互、协助用户合作与分工、增强群体认知等.例如, 在课堂教学场景下, 用两个眼动跟踪系统记录两两配对学生的眼动数据, 并作为联合注意资源进行分享, 实验结果表明, 对于概念性知识的学习内容, 联合注意资源越多, 学习效果越好[13, 14].在汽车驾驶场景下, 坐在副驾驶位置的乘客可以给驾驶员提供路况信息, 以弥补驾驶员由于视线盲区造成的信息获取不充分的缺陷, 因此, 记录副驾驶座位上乘客的注视点, 并通过可视化方式呈现给驾驶员, 可帮助其察觉相关路况信息, 提高驾驶安全性[15, 16].在远程医疗场景下, 国际化的医疗会诊和手术团队中的成员来自不同国家和地区, 可能会产生语言沟通障碍, 为此, 在模拟手术过程中综合使用语言、眼动发出协作指令, 使不同成员合作完成目标选取任务, 实验结果表明, 眼动比语言协作的准确率和效率都会更高[17].在协同工作场景下, 使用眼动仪记录多用户协同完成搜索任务时的眼动注视点并在公共屏幕上显示, 使得用户可以看到协作者正在搜索的区域, 从而有意识地避免重复和冗余搜索, 提高效率[18]; 分析多个用户完成协同搜索任务时的眼动注视点分布规律, 发现在不同交互方式下, 用户眼动注视点的分布情况差异较大, 尤其是在眼动数据可视化共享的情况下, 不同用户的眼动注视点分布呈相互弥补趋势, 分工意识更加明确, 任务完成时间更短; 而在其他方式下, 不同用户的注视点则呈相互重叠趋势, 分工意识不明显[19].
上述研究工作对协同人机交互的具体实践支持不够, 绝大多数工作只涉及不同用户眼动数据的可视化方法, 以及协同工作质量的预测和评估[20], 尚未针对目标搜索、跟踪、识别、图像分析等具体任务的特征, 从协同交互方式和用户界面设计, 以及具体应用系统架构和实现机制的角度来展开具体研究工作.
2 多用户协同眼动跟踪标定是实现眼动跟踪的重要环节, 每位用户在使用眼动跟踪设备前都需要进行标定, 以建立起个人的眼动跟踪映射模型.本文使用基于瞳孔-普尔钦斑(Pupil center-cornea reflection, 简称PCCR)向量的9点标定法[21].该方法需要先生成9个位置已知的标定点, 然后在用户注视这些标定点时, 求解眼动跟踪注视点映射模型, 用于后续注视点的计算.在多用户协同环境下, 随着用户的增多, 如果对每位用户都进行9点标定, 将会增加用户的工作负荷和系统的计算资源消耗, 并导致系统复杂性和不确定性升高.因此, 本文在前期工作[22]基础上提出协同式标定方法, 简化标定过程, 并在此基础上提出多用户协同眼动跟踪的计算架构.
2.1 基于梯度优化的协同标定模型为了了解个体差异对眼动跟踪效果的影响, 相关研究通过实验发现, 不同的用户在同一位置注视同一目标的情况下, 眼动跟踪注视点的位置具有较高的一致性[23].因此, PCCR向量的方向也大致相同, 其中的差异性主要是由用户个体的视线和眼球光轴夹角不同引起的[24], 进而导致眼动跟踪映射模型无法通用.为此, 本文提出基于梯度优化的协同标定模型:首先利用标准的9点标定方法得到一个用户的眼动跟踪映射模型, 然后利用其他用户的少量标定数据, 基于梯度优化算法, 对该映射模型进行校正, 使其具有更好的通用性.具体而言, 就是对协作团队中某位用户进行标定, 得到跟踪精度较高的眼动跟踪映射模型, 然后将该模型分发给其他协作者, 并利用梯度优化算法对此模型进行优化, 得到适应各协作者个体差异性的眼动跟踪映射模型.主要工作可以分成两部分:获取基本眼动跟踪映射模型和训练协同眼动跟踪映射模型.下面进行详细阐述.
(1) 获取基本眼动跟踪映射模型.
让用户佩戴眼动跟踪系统依次注视屏幕上的9个点, 完成标定过程, 然后计算得到该用户的眼动跟踪映射模型系数.进一步地, 在协同环境下实现基本眼动跟踪映射模型在多用户之间的传输和共享.如图 1所示, 用户1完成标定并得到基本眼动跟踪映射模型之后, 触发分发事件, 依次将该模型分发给协同环境中的其他注册用户.
![]() |
Fig. 1 Distribution mechanism of basic eye tracking model in the collaboration environment 图 1 协同环境下基本眼动跟踪映射模型分发机制 |
(2) 训练协同眼动跟踪映射模型.
本文利用涅斯捷罗夫梯度加速方法(Nesterov accelerated gradient, 简称NAG)[25]对基本眼动跟踪映射模型系数进行优化和校正.该方法的优点是通过增加动量项参数, 加快了计算过程, 并且在计算参数梯度时, 在损失函数中也减去了动量项, 进一步提高了计算速度.具体而言, 先获取来自某个用户的眼动跟踪映射模型(基本眼动跟踪映射模型), 然后要求当前用户在屏幕上做4点标定.将每个标定点的屏幕坐标和相应的PCCR向量作为一组数据, 然后利用NAG方法进行协同眼动跟踪映射模型的训练.计算步骤如下.
● Step 1.确认优化模型的假设函数和损失函数.本文设计的协同眼动跟踪映射模型的函数如下:
$\left\{ {\begin{array}{*{20}{l}} {{h_\theta }(P{X_0},P{X_1}) = {\theta _0}P{X_0} + {\theta _1}P{X_1} + {\theta _2}} \\ {{h_\theta }(P{Y_0},P{Y_1}) = {\theta _3}P{Y_0} + {\theta _4}P{Y_1} + {\theta _5}} \end{array}} \right..$ |
hθ(PX0, PX1), hθ(PY0, PY1)是注视点坐标的计算函数, θ0…θ5是最终的计算值, 即协同眼动跟踪映射模型的系数.其中,
$ P{X_0} = {a_0} + {a_1}x + {a_2}y,\;P{X_1} = {a_3} + {a_4}{x^2} + {a_5}{y^2},\;P{Y_0} = {b_0} + {b_1}x + {b_2}y,\;P{Y_1} = {b_3}xy + {b_4}{x^2} + {b_5}{y^2} $ |
的系数a0, ..., a5和b0, ..., b5是基本眼动跟踪映射模型系数, x是用户的PCCR向量X轴方向的向量, y是用户的PCCR向量Y轴方向的向量.上述的协同眼动跟踪映射模型函数, 以hθ(PX0, PX1)为例, 其损失函数为
$J({\theta _0},{\theta _1},{\theta _2}) = \sum\limits_{i = 0}^m {{{({h_\theta }(P{X_0},P{X_1}) - X)}^2}} ,$ |
其中, m为训练数据的数量, 在本文中取m=4.X为用户标定时真实的屏幕X轴标定点;
● Step 2.相关参数初始化.初始化θ0, θ1, θ2的值和设置迭代次数, 通过多次实验比较, 本文取迭代次数为10万次, 并将θ0, θ1, θ2的值都设为0;
● Step 3.确定当前的损失函数的梯度表达式, 对于θi, 其表达式为
$\frac{{\partial J({\theta _0}{\rm{,}}{\theta _1}{\rm{,}}{\theta _2})}}{{\partial {\theta _i}}}.$ |
● Step 4.用步长
$\eta \frac{{\partial J({\theta _0},{\theta _1},{\theta _2})}}{{\partial {\theta _i}}}.$ |
● Step 5.累计得到迭代次数, 如果迭代次数到达预设阈值, 则停止计算; 否则, 转到下一步;
● Step 6.更新所有的θ, 对于θi, 用如下表达式进行更新, 更新完毕后转入步骤Step 1继续执行, 直到迭代次数累计达到预设阈值.
${\theta _i} = {\theta _i} - \eta \frac{{\partial J({\theta _0},{\theta _1},{\theta _2})}}{{\partial {\theta _i}}}.$ |
根据上述步骤, 可以求得协同眼动跟踪映射模型的系数θ0, θ1, θ2, θ3, θ4, θ5, 进而准确计算当前用户注视点的坐标值.
(3) 模型测试.
为了验证协同眼动跟踪映射模型的标定效果, 本文邀请了5名被试用户(年龄24岁~28岁, 无色盲, 视力良好), 在电脑上进行眼动跟踪测试.使用的电脑屏幕尺寸为35.5cm×30.5cm, 屏幕分辨率为1366×786, CPU频率为1.7GHz, 内存为8GB.屏幕上依次显现4个标定点, 待完成标定之后, 采用21个测试点测试跟踪精度(为了保证测试精度的准确性, 测试点与标定点处于不同位置).计算用户在测试点的注视点坐标, 然后计算其与实际坐标值之间的误差.设定了40cm、60cm、80cm这3个测试视距(用户眼睛到屏幕之间的距离), 测试结果表明, 在视距为80cm时, 平均精度最高, 为0.69°(标准差为0.32°); 在视距为40cm时, 平均精度最低, 为1.37°(标准差为0.44°); 在视距为60cm时, 平均精度为0.96°(标准差为0.30°).此外, 已有9点标定法, 在测试视距相近的情况下, 得到眼动跟踪平均精度为0.8°~2.0°[26], 而其中精度比本文方法较高的方法, 都在硬件配置上比本文方法更复杂, 如加装了红外光源以提高眼部图像成像质量和图像处理效果[27].
2.2 多用户协同眼动跟踪的计算框架对于协同眼动跟踪的计算架构, 已有研究开展了初步尝试, 例如让两位用户完成搜索任务, 通过两台眼动跟踪设备连接到一台电脑主机实现多用户眼动跟踪[18], 但其不足在于:(1)硬件接口受到限制, 导致能接入的眼动跟踪设备数量有限, 从而限制了协同环境下的用户人数, 扩展性较差; (2)由于不同用户眼动跟踪数据的记录和处理都集中在一台主机上进行, 导致主机计算负荷较大, 计算性能受到影响.
因此, 为了将眼动跟踪数据记录和处理产生的计算负荷合理地进行分配, 并且尽可能地扩充协同环境下的用户人数, 本文的多用户协同眼动跟踪计算采用客户端/服务器(client/sever, 简称C/S)结构, 其中, 服务器负责记录客户端的眼动跟踪数据, 并且进行处理、控制和转发; 客户端则负责眼动跟踪数据的计算、请求和可视化.所有的客户端只与服务器连接通信, 客户端之间彼此不直接相连, 而是通过服务器进行数据转发, 实现相互通信.这种计算架构的优点是服务器提供了统一的数据转发模式, 并且客户端所有的数据在服务器端汇聚, 方便服务器进行统一的处理和分发.客户端则支持眼动跟踪标定、眼动跟踪数据计算等具体工作, 然后发送到服务器.系统框架如图 2所示.
![]() |
Fig. 2 Computing framework of multi-user collaborative eye tracking 图 2 多用户协同眼动跟踪计算框架示意图 |
此外, 上述计算架构基于传输控制协议/Internet互联协议(transmission control protocol/Internet protocol, 简称TCP/IP)传输层设计了新的网络应用层通信协议, 用于支持眼动跟踪协同交互的需求.眼动跟踪注视点数据的传输共分为两类.
(1) 当客户端计算出眼动跟踪注视点数据之后, 把数据封装进相应的数据包发送到服务器;
(2) 当服务器处理好眼动跟踪注视点数据之后, 把数据封装进相应的数据包再发送回客户端.本文的通信协议使用的数据包结构如图 3所示, 由一个数据头、若干个数据块和校验位组成.其中, 数据头中的命令代码表示该数据包的作用; 数据类型描述数据内容的数据格式; 数据块大小表示每个数据块的字节数量; 数据总长度指的是该数据内容包含的数据块个数.数据块存储着眼动跟踪注视点坐标.校验位则主要是为了确保数据包的完整性和准确性.
![]() |
Fig. 3 Packet structure of communication protocol in the network application layer 图 3 网络应用层通信协议下的数据包结构 |
3 眼动跟踪数据协同可视化
相关已有研究在多人视频会话[28, 29]、问题探索[30, 31]和指令交流[32]等领域使用了眼跳轨迹、注视点光标等可视化形式, 在本地和远程协同交互环境下, 为用户提供在线帮助、传递信息和指令、促进协作者之间的互相感知和理解.这些研究关注了协同交互中眼动跟踪数据的可视化设计, 但未深入研究具体可视化形式作为指示线索在可视性和视觉干扰性方面的矛盾[18], 即忽视了联合注意资源在视觉表现上对用户感知和认知活动的负面影响.例如, 不合理的可视化形式不仅不能向协作者提供有效信息, 还会造成用户本身的视觉不适感, 分散注意力和降低操作效率.因此, 设计合理的眼动跟踪数据可视化表现形式对于协同交互显得尤为重要.
3.1 眼动跟踪数据协同可视化设计相关研究提出了眼动数据可视化形式的设计原则, 如既要吸引用户注意力, 准确表达眼动特征, 又要防止对用户产生视觉干扰, 并进行了相关实验, 结果表明, 类似于光标形式的眼动注视点可视化形式效果最佳[18].为此, 本文设计了3种注视点可视化表现形式:圆点、散点和轨迹.如图 4所示, 圆点具体表现为一个半透明的圆形(例如圆形半径设为15像素, 透明度设置为50%), 这种表现形式简单明了, 指向性强, 所表示的视线指示范围集中; 散点具体表现为若干聚集在一起的红色圆形(例如, 圆形半径设为5像素, 4个圆形排布在一个半径为20像素的圆形范围内), 这种表现形式覆盖范围广, 使用户更容易关注到注视点的周围信息; 轨迹具体表现为前一个注视点和后一个注视点之间的连线, 使得原本没有关联的注视点有了直观的时间顺序和空间关联.
![]() |
Fig. 4 Eye tracking data visualization 图 4 眼动跟踪数据可视化表现形式 |
3.2 实验与分析
我们设计了用户实验, 探索可视化形式对协同交互环境下用户视觉行为的影响, 以及具体哪种可视化形式能够提高协同交互效率.
(1) 实验设计.实验招募了6位被试用户(5位男生, 1位女生, 平均年龄在25岁), 两人一组开展实验.如图 5所示, 两位用户协同完成一个视觉搜索任务:图片中一共有510个圆, 6个椭圆, 用户需要在所有圆中找出这6个椭圆, 椭圆全部找到之后, 记录任务完成时间.每一组实验中, 两个用户电脑上显示的内容相同, 当其中一个用户找出椭圆时, 单击鼠标左键进行确认, 系统会自动用矩形圈出该椭圆, 这一过程也同时显示在另一位用户的电脑上, 使其了解相关情况.
![]() |
Fig. 5 Experiment of collaborative visual search task 图 5 协同视觉搜索任务实验 |
(2) 效率分析.在具体实验过程中, 不仅进行了无注视点共享和有注视点共享的对比, 还针对注视点不同的可视化形式进行了对比.实验结果表明, 不同的眼动跟踪注视点可视化形式对用户完成视觉搜索任务的效率有不同程度的影响.如图 6所示, 在共享情况下, 圆点可视化形式条件下任务完成时间最短, 相比没有眼动注视点共享的情况提高了搜索效率; 而其他注视点可视化形式延长了视觉搜索时间, 其原因是, 散点和轨迹形式理解起来较为困难, 且对用户的视觉干扰较大, 从而影响了视觉搜索效率.相反, 圆点覆盖范围小, 可以直观显示对方的注视点信息, 所产生的视觉干扰也较小.此外, 结合搜索任务实验结果, 对被试用户进行了访谈, 90%的用户认为圆点形式的可视化共享能够显著提高搜索效率.因此, 本文最终选择圆点作为眼动跟踪数据协同可视化的表现形式.
![]() |
Fig. 6 Average task completion time (error bars are standard deviation) 图 6 任务平均完成时间(误差线为标准差) |
(3) 行为分析.进一步地, 分析眼动跟踪数据协同可视化对用户视觉行为的影响.首先, 在屏幕上划分用户感兴趣区域(area of interest, 简称AOI), 并选择圆点形式显示协作者的注视点, 同时记录各自用户的注视点数据; 然后, 在考察用户视觉行为时, 基于交叉重复度[33]方法分析协同双方在同一时间、同一区域的注视驻留时间与任务完成时间的关系.交叉重复度越大, 表明协同双方在任务过程中同一时刻对相同区域共同关注的时间越长; 反之, 表明协同双方在任务过程中同一时刻对相同区域共同关注的时间越短.根据已有工作提出的区域划分方法来分析注意力分布叠加特征[33], 本文计算用户交叉重复度的具体步骤是:把显示屏幕共分成两行两列4个相同面积的矩形区域, 首先判断注视点是否位于屏幕的有效区域内, 然后再判断注视点所属具体哪个区域, 并附加相应的区域标签.再依据注视点的时间戳和注视点的区域标签得到两位用户在同一区域的停留时间, 记为t1; 依据任务开始和结束的时间戳得到任务完成总时间, 记为t2.t1和t2的比值即为用户交叉重复度c(用百分比形式表示).进一步地, 计算4个区域的交叉重复度, 结果见表 1.可知, 无注视点共享时用户之间的交叉重复度总体上高于有注视点共享时的交叉重复度.
![]() |
Table 1 Calculation example of cross-recurrence 表 1 交叉重复度计算结果示例 |
图 7和图 8分别给出任务过程中一段时间内有注视点共享和无注视点共享时每个区域的交叉重复度, 其中, 红线和蓝线分别表示两位用户注视点随时间推移在4个区域内的转移情况; 虚线区域表示两位用户注视点在此区域重合.可见, 无注视点共享时, 用户在4个区域之间的转换频率较高, 用户之间的注释点覆盖范围重合区域多; 而有注视点共享时, 用户在4个区域之间的转换频率较低, 用户之间的注视点覆盖范围重合区域较少, 表明用户的分工意识相对明确.
![]() |
Fig. 7 Example of cross-recurrence for each AOI with shared gaze visualization 图 7 有注视点共享时各区域的交叉重复度示例 |
![]() |
Fig. 8 Example of cross-recurrence for each AOI without shared gaze visualization 图 8 无注视点共享时各区域的交叉重复度示例 |
此外, 通过绘制热区图对有注视点共享和无注视点共享条件下的用户注视点覆盖范围作更加直观的分析.用户注视点形成的热区图如图 9所示, 其中, 左右两边分别是两个用户各自注视点形成的热区图.
![]() |
Fig. 9 Heat map based on gaze fixation 图 9 用户眼动跟踪注视点热区图 |
结果表明, 在有注视点共享情况下, 用户之间的注视点覆盖范围呈互补趋势; 而在无注视点共享情况下, 用户之间的注视点覆盖范围呈重叠趋势.这进一步说明, 在无注视点共享时, 用户的分工意识相对薄弱, 会依据自己的情况完成任务; 但有了注视点共享之后, 用户的分工意识会加强, 会依据对方的注视点分布情况动态规划自己的目标搜索过程.这与前述基于交叉重复度所分析的结论相一致, 进一步验证了合理的眼动跟踪数据可视化能够对协同交互中多用户的分工起到促进作用, 从而能够提高协同工作的质量和效率[18].
4 应用实例在软件工程领域, 利用多个眼动跟踪系统同步记录程序员们如何对同一段代码进行编程工作, 进而通过比较合作方式质量水平的高低, 可以发现具有较好效果的协作编程工作与更多的联合视觉注意相关[9].受此启发, 本文以代码协同审查为应用场景, 使用多用户眼动跟踪及眼动跟踪数据可视化促进协同工作中的多用户协作与分工, 提高代码审查效率.
4.1 基于眼动跟踪的代码协同审查系统系统主要包括两类可视化功能, 一类是实时注视点, 即根据第3节的研究, 通过圆点形式实时显示协作者的注视点; 另一类是基于注视点数据对代码审查视图进行可视处理, 设计了代码行边框、代码行背景灰度、代码行之间连线这3种可视化属性.此外, 还包括注视点回放、基于时间轴的扫描轨迹回放这两个可视分析模块.客户端通过标定之后实现眼动跟踪, 随后加入局域网, 多台客户端通过服务器共享数据, 由此建立协作交互机制.具体的可视化功能阐述如下.
1) 代码行边框
当协作者视线停留在某行代码时, 当前用户视图中的相同代码行会出现边框, 以此告知当前用户协作者此时正在注视的代码行.同时, 为了表示协作者对此行代码的关注程度, 记录注视驻留时间, 并以此来设置代码行边框的宽度, 代码行边框越宽, 表明协作者在此行代码的注视驻留时间越长(例如, 注视驻留时间每增加1s, 边框宽度就增加2像素).举例而言, 在图 10(a)所示用户A视图中, 代码行1出现了边框, 表示用户B当前正在审查此行代码, 其中, 浅红色小圆点为用户B的注视点.类似地, 图 10(b)所示用户B视图中用户A正在查看代码行2.此外, 图 10(a)所示中代码行1的边框较细, 表明用户B在此行代码的注视驻留时间较短, 而图 10(b)所示中代码行2边框较粗, 表明用户A在此行代码的注视驻留时间较长.
![]() |
Fig. 10 Visualization of code line borders 图 10 代码行边框可视化示意图 |
2) 代码行背景灰度
用户在审查代码时, 不可避免地会对一些重要的代码行反复进行查看.因此, 使用代码行区域的背景颜色灰度来表示用户对此行代码的查看次数, 颜色越深, 表示协作者查看此行代码的次数越多.具体地, 根据两条规则对代码行背景灰度进行实时调整:(1)如果用户注视点进入某一行代码, 则该行代码查看次数增加1次, 背景灰度值也相应增加(例如, 灰度值增加15);(2)如果用户在某一行代码的注视驻留时间有所增加, 则该行代码背景灰度值也会增加(例如, 驻留时间每增加1s, 背景灰度值增加10).此外, 由于用户审查代码时, 多数情况下是从第1行往下依次阅读各行代码, 如果遵循上述的第1条规则, 用户注视点每次从上一行转向紧邻的下一行时, 下一行的背景灰度都会增加, 从而导致绝大多数代码行的背景灰度都会变化, 使得视觉效果过于复杂, 不利于用户观察.所以, 为了避免这种影响, 本文进一步规定:当用户第1次在看完上一行代码并接着看下一行代码时, 下一行代码的查看次数不增加.但是, 如果用户从下一行代码返回来查看上一行代码时, 上一行代码的查看次数增加1.具体可视化效果如图 11所示, 图 11(a)所示用户A视图中的各行代码背景灰度深浅各异, 表明用户B在不同代码行上的查看次数不同, 其中, 代码行3颜色较深, 说明用户B从别处代码跳转到此行代码的次数较多, 且在此行代码的查看时间较长, 此行代码是重点审查区域之一.类似地, 在图 11(b)所示用户B的视图中, 可以看到用户A将代码行3和代码行i作为重点审查区域.
![]() |
Fig. 11 Visualization of code line background 图 11 代码行背景灰度可视化示意图 |
3) 代码行之间连线
由于不同代码行之间存在逻辑关系, 用户常在多行代码之间多次来回查看, 这类信息可以揭示用户在审查代码过程中的逻辑思维, 从而为协作者提供参考.为此, 本文用连线表示两行代码之间的联系.具体地, 当用户在两个代码行之间存在注视点转移时, 记录并计算相应的转移次数[11], 且每转移1次, 代码行之间的连线宽度就增加相应的宽度(例如10像素).为了便于区分, 不同代码行之间的连线颜色也不同.此外, 为了降低视觉复杂度, 便于用户观察, 与上文代码行背景灰度的处理类似, 上下相邻两个代码行之间的首次顺序转移, 不计入连线宽度值的增加计算.具体的可视化效果如图 12所示, 图 12(a)所示用户A视图中的连线1关联了代码行i和代码行j, 表明用户B在这两行代码之间存在多次的注视点转换.类似地, 图 12(b)所示用户B视图中的连线2关联了代码行6和代码行11, 表明用户A在这两行代码之间也存在多次的注视点转换.
![]() |
Fig. 12 Visualization of the connections between code lines 图 12 代码行之间连线可视化示意图 |
4) 注视点与扫描轨迹回放
上述3种可视化属于代码实时审查过程中的在线共享, 而线下的共享, 对促进代码审查方法的学习和效果评估同样也很重要.为此, 在完成协同审查代码之后, 还可以将协作者在审查代码过程中的眼动跟踪数据进行可视化回放, 从而让协作者相互学习和借鉴相关的代码审查技巧, 提高自身代码审查能力.回放功能包括:(1)注视点回放.全程记录协同环境下每位用户在审查代码时的注视点运动情况, 并实现整个过程的回放; (2)基于时间轴的扫描轨迹回放.显示用户时间轴上不同时段内注视点所在的代码行.如下文的图 13所示, 圆点表示用户的注视点, 横轴为时间轴, 从左到右依次显示不同时间段内用户注视点所在的代码行.
![]() |
Fig. 13 Timeline based scan path playback 图 13 基于时间轴的扫描轨迹回放 |
4.2 实验与分析
我们招募了32名被试用户参与实验(28名男生, 4名女生, 年龄在23岁~27岁之间, 视力良好), 两人一组协同审查代码, 双方戴上眼动跟踪设备记录眼动数据(眼动跟踪设备的图像采样频率为30帧/s、视距为35cm、视角精度为1.1°)[26].实验使用3台电脑进行测试, 其中两台作为代码协同审查系统的客户端(屏幕尺寸为35.5cm× 30.5cm, 分辨率为1366×786, CPU频率为1.7GHz, 内存为8GB), 其放置在用户的正前方, 并与用户头部距离保持在40cm左右; 另外一台作为服务器(屏幕尺寸为35.5cm×30.5cm, 屏幕分辨率为1366×786, CPU频率为2.21GHz, 内存为16GB).具体实验场景如图 14所示.
![]() |
Fig. 14 Experimental scene 图 14 实验场景 |
首先将用户两两划分为一组, 共分为16组.每组用户将做两组实验, 分别是控制组实验和实验组实验.其中, 实验组的用户在协同审查代码时共享眼动注视点可视化(只允许在找到错误代码进行口头提交时进行语言交流), 而控制组用户实验时只能用语言进行交流.为了确保语言交流时用户能够清楚地听到对方说话, 用户被安排在一间60m2的实验室内, 但是互相通过半封闭隔断分开, 以保证不能看到相互之间的计算机屏幕.在正式开始实验之前, 首先对用户进行简单培训, 让用户了解系统功能和熟悉相关操作, 然后开始正式实验.每个控制组和实验组的实验又分别包含3个不同的任务, 分别针对简单、中等、较难这3种不同难度的代码进行审查.其中, 简单和中等难度的代码只有1处错误, 而较难的代码有两处错误.实验从用户进入系统开始计时, 两位用户通过协作找出代码错误, 并报告所找到的错误.若所报告的代码错误不正确, 将继续寻找真正的错误, 直到找到为止, 届时计时停止, 任务完成(若超出时间上限, 例如20分钟, 错误仍未找到, 则中断任务, 且判定此次任务没有完成).
系统以对方用户的实时注视点为数据来源, 以代码行边框、代码行背景灰度、代码行之间连线等信息给当前用户提供可视化分享.实验中的可视化效果如图 15所示.
![]() |
Fig. 15 Visualization displayed in the experiment 图 15 实验中可视化效果示意图 |
记录每组用户的任务完成时间、眼动跟踪数据及其表征的视觉行为, 以及用户主观反馈等, 然后分别进行分析, 具体分析结果说明如下.
1) 任务完成时间
实验组和控制组的用户在实验中分别完成简单、中等、较难等不同任务.如果不区分任务难度, 那么以每项任务为单位, 共48份实验数据样本, 则实验组任务完成时间的平均值为249.83s, 标准差为120.14s;控制组任务完成时间的平均值为313.65s, 标准差为141.02s.进一步地, 对任务完成时间作配对T检验分析, 得到t= –4.152, p < 0.05, 存在显著性差异, 即在不区分任务难度时, 实验组用户的任务完成时间比控制组要短, 说明眼动跟踪数据可视化的分享机制能够有效地提高代码协同审查的效率.另一方面, 如果区分任务难度, 则每个难度条件下的实验数据样本各为16份, 任务完成时间结果见表 2.
![]() |
Table 2 Task completion time analysis under tasks with different difficulty 表 2 区分难度的任务完成时间分析 |
进一步对任务完成时间进行多因素方差分析, 结果如图 16所示, 在3种不同任务难度条件下, 也存在显著性差异, 实验组的任务完成时间比控制组要短, 也进一步说明眼动跟踪数据可视化的分享机制对不同难度的代码审查具有较好的适应性.
![]() |
Fig. 16 Multi-factor variance analysis of the task completion time 图 16 任务完成时间的多因素方差分析结果 |
2) 视觉行为
我们从交叉重复度、眼动跟踪扫描轨迹两个方面来分析用户视觉行为.将每一个代码行设为一个区域, 计算用户在该区域的交叉重复度, 结果见表 3.
![]() |
Table 3 Cross-recurrence calculation results of tasks with different difficulty (average) 表 3 不同任务难度条件下的交叉重复度计算结果(平均值) |
在不同任务难度条件下, 实验组的交叉重复度平均值小于控制组的交叉重复度平均值, 说明眼动跟踪数据可视化的共享使用户在审查代码时的分工意识更为明确.
进一步地, 将每两位用户在任务过程中基于时间轴的扫描轨迹进行比较分析, 如图 17所示.图中, 不同颜色的折线代表某两位用户的扫描轨迹, 用户在协同代码审查过程中的扫描轨迹既存在“跟随”现象(如图 17(a)所示), 又存在扫描轨迹“分离”现象(如图 17(b)所示).例如, 在开始阶段, 用户通过分工进行代码的快速查找时, 扫描轨迹会分离; 在缩小错误范围, 共同定位具体代码错误时, 扫描轨迹会相互跟随.
![]() |
Fig. 17 Timeline based scan paths comparison 图 17 基于时间轴的扫描轨迹比较分析示例 |
3) 主观反馈
在实验之后, 使用量表和访谈搜集了用户的主观体验和建议.使用5点量表(1-非常不满意, 5-非常满意)考察了用户对代码协同审查系统的整体满意程度, 结果表明, 用户主观满意度平均值为3.88, 标准差为0.7, 表明用户对系统的满意度较高.此外, 在访谈中发现:(1)对于实时注视点的共享, 50%的用户认为很有帮助, 因为可以在一个较细的粒度下实时了解协作者的视觉行为, 而且对自己的视觉干扰较小.(2)对于代码行边框这个可视化属性, 47%的用户觉得此功能对自己的帮助很大, 主要是可以了解协作者关注的具体代码行, 可以引导双方共同关注和确定具体的审查范围.但也有用户认为, 这种可视化效果有时会对自己产生视觉干扰, 并建议增加一个可视化开关, 允许用户自己启动或关闭这个可视化效果.(3)对于代码行背景灰度可视化属性, 54%的用户觉得对自己有很大帮助, 可以帮助自己了解协作者对不同代码行的关注程度.(4)针对代码行之间连线可视化属性, 42%的用户觉得此功能对自己有很大的帮助, 可以帮助自己了解协作者审查代码的思路, 了解两行代码之间的逻辑关系; 但也有用户认为, 当连线较多时, 连线识别起来比较困难, 视觉干扰较大.
5 结语本文提出了面向多用户眼动跟踪的协同交互方法, 具体地, 通过基于梯度优化的协同标定模型和基于客户端/服务器的架构实现了多用户眼动跟踪注视点的同步记录、精确计算和数据管理.在此基础上, 进行眼动跟踪数据协同可视化探索, 提出了针对视觉搜索任务的可视化设计.进而针对代码协同审查应用, 设计与开发了协同式眼动跟踪原型系统, 实现了实时注视点、代码行边框、代码行背景灰度、代码行之间连线等可视化属性的共享.用户实验结果表明, 代码错误的平均搜索时间比没有共享机制下减少了20.1%, 显著提高了协同代码审查的效率和协作分工意识.
下一步, 将针对计算机支持的协同工作和社会计算等领域的相关应用, 继续扩大用户规模, 突破配对协同(pair-collaboration)[2]的瓶颈, 建立联合注意资源驱动下的多用户协同工作模型和用户管理机制, 融合不同用户的认知资源, 扩展用户的知觉、学习和记忆能力, 支持高效、有序的多人协同交互.此外, 深入研究联合注意条件下的用户评估和反馈优化问题, 关注眼动跟踪协同交互环境下用户认知负荷的动态变化, 对联合注意驱动的视觉指示线索进行优化和动态自适应调整.
[1] |
Jacob RJK. What you look at is what you get: Eye movement-based interaction techniques. In: Proc. of the SIGCHI Conf. on Human Factors in Computing Systems. ACM, 1990. 11–18.
|
[2] |
Schneider B, Pea R. Toward collaboration sensing. Int'l Journal of Computer-Supported Collaborate Learning, 2014, 9(4): 371-395.
[doi:10.1007/s11412-014-9202-y] |
[3] |
Lin ZC. Eye gaze: Special or not special. Advances in Psychological Science, 2005, 13(4): 14-21(in Chinese with English abstract).
http://d.old.wanfangdata.com.cn/Periodical/xlxdt200504003 |
[4] |
Moore C, Dunham PJ. Joint Attention: Its Origins and Role in Development. Lawrence Erlbaum Associates Inc., 1995.
http://d.old.wanfangdata.com.cn/OAPaper/oai_pubmedcentral.nih.gov_3310757 |
[5] |
Lin ZC. Joint attention: A milestone of early development. Psychological Science, 2007, 30(5): 1155-1157(in Chinese with English abstract).
[doi:10.3969/j.issn.1671-6981.2007.05.034] |
[6] |
Brennan SE, Chen X, Dickinson CA, et al. Coordinating cognition: The costs and benefits of shared gaze during collaborative search. Cognition, 2008, 106(3): 1465-1477.
|
[7] |
Birmingham E, Bischof WF, Kingstone A, et al. Why do we look at people's eyes. Journal of Eye Movement Research, 2008, 1(1).
|
[8] |
Neider M, Voss MW, Kramer AF. Coordinating spatial attention: Using shared gaze to augment search and rescue. Journal of Vision, 2008, 8(6): 1048-1084.
|
[9] |
Jermann P, Mullins D, Nuessli MA, et al. Collaborative gaze footprints: Correlates of interaction quality. In: Proc. of the Connecting Computer-Supported Collaborative Learning. Hong Kong, 2011. 184–191.
|
[10] |
Li J, Manavalan M, D'Angelo S, et al. Designing shared gaze awareness for remote collaboration. In: Proc. of the CSCW 2016 Companion. San Francisco, 2016. 325–328.
|
[11] |
Cheng SW, Sun ZQ, Sun LY, et al. Gaze-based annotations for reading comprehension. In: Proc. of the 33rd Annual ACM Conf. on Human Factors in Computing Systems (CHI 2015). Seoul, 2015. 1569–1572.
|
[12] |
Sridharan S, Bailey R, McNamara A, et al. Subtle gaze manipulation for improved mammography training. In: Proc. of the Symp. on Eye Tracking Research and Applications (ETRA). Santa Barbara, 2012. 75–82.
|
[13] |
Schneider B, Pea R. Real-time mutual gaze perception enhances collaborative learning and collaboration quality. Proc. of the Int'l Journal of Computer-supported Collaborative Learning, 2013, 8(4): 375-397.
[doi:10.1007/s11412-013-9181-4] |
[14] |
Belenky D, et al. Using dual eye-tracking to evaluate students' collaboration with an intelligent tutoring system for elementary- level fractions. Cognitive Science, 2014, 176-181.
|
[15] |
Maurer B, Trösterer S, Gärtner M, et al. Shared gaze in the car: Towards a better driver-passenger collaboration. In: Proc. of the 6th Int'l Conf. on Automotive User Interfaces and Interactive Vehicular Applications. Seattle, 2014. 1–6.
|
[16] |
Sandra T, Magdalena G, Martin W, et al. Four eyes see more than two: Shared gaze in the car. In: Proc. of the Human-computer Interaction. Seoul, 2015, 331-348.
|
[17] |
Chetwood ASA, Kwok KW, Sun LW, et al. Collaborative eye tracking: A potential training tool in laparoscopic surgery. Surgical Endoscopy, 2012, 26(7): 2003-2009.
[doi:10.1007/s00464-011-2143-x] |
[18] |
Zhang Y, Pfeuffer K, Chong MK, et al. Look together: Using gaze for assisting co-located collaborative search. Personal and Ubiquitous Computing, 2017, 21(1): 173-186.
[doi:10.1007/s00779-016-0969-x] |
[19] |
Brennan SE, Chen X, Dickinson CA, et al. Coordinating cognition: The costs and benefits of shared gaze during collaborative search. Cognition, 2008, 106(3): 1465-1477.
|
[20] |
Liu Y, Hsueh PY, Lai J, et al. Who is the expert? analyzing gaze data to predict expertise level in collaborative applications. In: Proc. of the IEEE Int'l Conf. on Multimedia and Expo (ICME 2009). New York, 2009. 898–901.
|
[21] |
Cheng SW, Sun ZQ, Lu YH. An eye tracking approach to cross-device interaction. Journal of Computer-Aided Design & Computer Graphics, 2016, 28(7): 1094-1104(in Chinese with English abstract).
[doi:10.3969/j.issn.1003-9775.2016.07.008] |
[22] |
Shen XQ. Research on collaborative eye tracking technique and interactive application[MS. Thesis]. Hangzhou: Zhejiang University of Technology, 2017 (in Chinese with English abstract).
|
[23] |
Zhang C, Chi JN, Zhang ZH, et al. Gaze estimation in a gaze tracking system. Science China Information Sciences, 2011, 41(5): 580-591(in Chinese with English abstract).
http://d.old.wanfangdata.com.cn/Periodical/zdhyb201605010 |
[24] |
Zhou X, Cai H, Li Y, et al. Two-eye model-based gaze estimation from a Kinect sensor. In: Proc. of the 2017 IEEE Int'l Conf. on Robotics and Automation (ICRA). Marina Bay Sands, 2017. 1646–1653.
|
[25] |
Su W, Boyd S, Candes EJ. A differential equation for modeling Nesterov's accelerated gradient method: Theory and insights. Advances in Neural Information Processing Systems, 2015, 3(1): 2510-2518.
|
[26] |
Cheng SW, Sun ZQ. An approach to eye tracking for mobile device based interaction. Journal of Computer-Aided Design & Computer Graphics, 2014, 26(8): 1354-1361(in Chinese with English abstract).
http://d.old.wanfangdata.com.cn/Periodical/jsjfzsjytxxxb201408020 |
[27] |
Wang L. Head-mounted gaze tracking system with head motion[Ph.D. Thesis]. Hefei: University of Science and Technology of China, 2014 (in Chinese with English abstract).
|
[28] |
Sellen AJ. Remote conversations: The effects of mediating talk with technology. Human Computer Interaction, 1995, 10(4): 401-444.
|
[29] |
Vertegaal R. The GAZE groupware system: Mediating joint attention in multiparty communication and collaboration. In: Proc. of the SIGCHI Conf. on Human Factors in Computing Systems. Pittsburgh, 1999. 294–301.
|
[30] |
Gergle D, Kraut RE, Fussell SR. Language efficiency and visual technology: Minimizing collaborative effort with visual information. Journal of Language and Social Psychology, 2004, 23(4): 491-517.
[doi:10.1177/0261927X04269589] |
[31] |
Stein R, Brennan SE. Another person's eye gaze as a cue in solving programming problems. In: Proc. of the 6th Int'l Conf. on Multimodal Interfaces. Pittsburgh, 2004. 9–15.
|
[32] |
Cherubini M, Nüssli MA, Dillenbourg P. Deixis and gaze in collaborative work at a distance (over a shared map): A computational model to detect misunderstandings. In: Proc. of the 2008 Symp. on Eye Tracking Research & Applications. Savannah, 2008. 173–180.
|
[33] |
Jermann P, Nüssli MA. Effects of sharing text selections on gaze cross-recurrence and interaction quality in a pair programming task. In: Proc. of the ACM 2012 Conf. on Computer Supported Cooperative Work. Seattle, 2012. 1125–1134.
|
[3] |
林志成. 眼睛注视:独特的还是不独特的. 心理科学进展, 2005, 13(4): 14-2l.
http://d.old.wanfangdata.com.cn/Periodical/xlxdt200504003 |
[5] |
林志成. 联合注意:早期发展的里程碑. 心理科学, 2007, 30(5): 1155-1157.
[doi:10.3969/j.issn.1671-6981.2007.05.034] |
[21] |
程时伟, 孙志强, 陆煜华. 面向多设备交互的眼动跟踪方法. 计算机辅助设计与图形学学报, 2016, 28(7): 1094-1104.
[doi:10.3969/j.issn.1003-9775.2016.07.008] |
[22] |
沈晓权.协同式眼动跟踪技术及其交互应用研究[硕士学位论文].杭州: 浙江工业大学, 2017.
|
[23] |
张闯, 迟健男, 张朝晖, 等. 视线追踪系统中视线估计方法研究. 中国科学:信息科学, 2011, 41(5): 580-591.
http://d.old.wanfangdata.com.cn/Periodical/zdhyb201605010 |
[26] |
程时伟, 孙志强. 用于移动设备人机交互的眼动跟踪方法. 计算机辅助设计与图形学学报, 2014, 26(8): 1354-1361.
http://d.old.wanfangdata.com.cn/Periodical/jsjfzsjytxxxb201408020 |
[27] |
王林.头部可运动的头戴式视线跟踪系统关键技术研究[博士学位论文].合肥: 中国科学技术大学, 2014.
|