注册通行证 用户名 密码
  • 文章投稿
  • 博客
  • 论坛
  • 设为首页
  • 加入收藏
jztop.com网络技术
  • 首页
  • | iT新闻
  • | 操作系统
  • | 组网建网
  • | 网络安全
  • | 程序开发
  • | 办公一族
  • | 工具软件
  • | 网页制作
  • | 多媒体制作
  • | 网吧技术
  • | 服务器
  • | 专题教程
Vista | 软件评测 | 系统备份 | 优化 | 进程 | 聊天 | 病毒 | Linux | 黑客 | 防火墙 | 数据库 | Web开发 | Java | Word | 游戏 | 32位开发 | 移动开发
当前位置:首页 > 程序开发 > 数据库 > Delphi 内容正文:用鼠标模拟视线跟踪技术

用鼠标模拟视线跟踪技术

发布时间:2006-05-13 13:31:20 来源:csdn 网友评论 0 条

  引言

  随着计算机技术的迅猛发展,可用性工程作为一门跨计算机科学、心理学、人类工效学和工业设计等多门学科的应用领域,越来越受到人们的重视。目前网站可用性的研究已经成为可用性研究领域的一个热点。为提高和改进网站的可用性提出了诸多实用的可用性方法和技术,并且已经得到了广泛的应用。以用户为中心是可用性工程的灵魂,所以怎样获取用户的数据,以及怎样对这些数据进行分析,成为网站可用性方法中最重要的环节之一。而对用户在访问过程中的视线轨迹的研究是对网站可用性研究中必不可少的一个重要方法。但目前视线跟踪技术一方面价格不菲,另一方面技术还不是趋于成熟。怎样能尽快将视线跟踪技术运用于网站可用性的研究,让更多的用户受益呢?作者在做可用性测试时发现很多用户在读到某些内容特别是重要的内容时经常使用鼠标引导视线进行阅读。当然在用户访问网页时,鼠标点击的地方一般可认为是用户视线到过的地方。(排除一些喜欢在网页上乱点鼠标的用户)根据这一发现作者 考虑是否可以使用鼠标来模拟用户视线跟踪仪?经过简单编程实现了对用户视线的跟踪并在对这一工具进行了实验性应用。得到了预期的结果。本文介绍视线跟踪的基本原理、技术及其在人机交互技术中的应用。

  视线运动的特点

  视线(visual line) 反映人的注意方向,这是将其用作计算机输入的前提。视觉交互兼顾了输入输出双向性特点,视线所指通常反映用户感兴趣的对象,而传统手动输入装置是根据视觉指导进行操作的。可以想象,直接检测视线输入方向和位置来进行交互具有直接性和自然性特点。眼睛看物体的过程是转动眼球使物体出现在视网膜的中央凹中,因此眼球的位置指示了我们注视场景中的特定区域。视线运动通常表现为点到点的跳跃式扫描(saccade) ,而并非平滑移动(这只在追踪运动物体时才会发生) 。例如,阅读时人眼在一行中通常包含4~7 个跳动—定位(jump2fixation) 的动作,注视一般持续200~600ms ,只是我们通常并未在意。但是我们的眼球为看清物体总是需要不停地做轻微的抖动(jitter) ,其幅度一般小于1°。只有在追随视野中移动的物体时才会出现平滑的眼动而不是突然的扫视。因此,利用视线进行书写和画图这样精细的动作是不可行的,换言之,我们不能利用眼动产生的轨迹。另一类眼动如眼球震颤(nystagmus) 、会聚(convergence) 、扭转( torsionalrotation) 对人机对话没有显著意义。

  视线跟踪与处理技术

  视线跟踪技术早期主要应用于心理学研究(如阅读研究)、助残等领域,后来才被应用于图像压缩及人机交互和可用性工程。视线跟踪技术及装置有强迫(int rusiveness)与非强迫(non2int rusiveness) 、穿戴与非穿戴式、接触式(如eyeglass2mounted) 与非接触式( remote)之分;有的系统要求用户的头静止不动,用于人机交互的视线跟踪技术必须突破这个限制。识别精度可从0. 1°~1°或2°不等,制造成本也有巨大差异。在价格、精度与方便性等因素之间作出权衡是一件困难的事情,例如视线跟踪精度与对用户的限制和干扰就是一对尖锐的矛盾。而且视线跟踪仪的价格令普通用户无法承受。而从视线跟踪仪中可以得到的信息都是很有研究价值的信息,如:从用户注视信息中: (1) 可以推断人们感兴趣或引起注意的内容; (2) 在自言自语测试中通过所注视的对象可得到其指代对象; (3) 暗示人与人之间的关系(如是友还是敌). 将来的计算机会利用获取的有关用户注视信息, 来了解用户的内部状态、意图、认知负荷紧张程度, 并自动调整对用户的反应.另外视线跟踪技术的一个诱人的应用领域就是虚拟现实和游戏, 根据用户当前的注视状态, 提供给用户相应注视方位的场景信息, 这样用户在不同的方位就会看到不同的场景, 达到身临其境的效果. 一方面使人与计算机间的交互与现实世界中的交互方式趋于一致, 更为简单、自然、高效; 另一方面又提高计算机图形、图像、动画的绘制、渲染速度.

  用鼠标模拟视线跟踪技术

  1)关键技术

  Hook 是Windows 最具威力的特性之一,它提供给程序一个拦截事件的能力——不论是针对一个个别的线程,还是针对整个Windows系统而言。事实上,不只是当某一个事件发生时程序可以获得通告,甚至对大部份挂钩而言,程序还可以告诉Windows 停止处理这个事件。例如,金山词霸的屏幕取词功能,一些木马病毒,都是靠钩子来实现的。

  钩子的安装:
 
  Windows提供给应用程序安装钩子的唯一一个函数是:

HHOOK SetWindowsHookEx(int idHook,

HOOKPROC hkprc,

HINSTANCE hmod,

DWORD dwThreadID);

  这个函数一旦被调用,Windows 会配置一块内存,存放一个内部数据结构,描述的是即将被安装的这个新的钩子。所有这些数据结构都会被链接在一起,成为一个链。每当有新的加入,就会被系统放在链的前端。节点被加上去之后,

  SetWindowsHookEx 传回此节点的一个句柄。

  第一个参数idHook,用来表示要挂上哪一种钩子。

  第二个参数hkprc,是过滤函数的地址,用来处理所指定类型的钩子的消息。如果挂上的是一个系统钩子,hkprc 必须位于一个DLL之中。

  第三个参数hmod,是DLL的模块句柄,此DLL 是存放过滤函数之处。

  最后一个参数dwThreadID,表示为此ID线程挂上这个钩子。

  每当事件发生,并且与所挂上的钩子类型一致时,Windows就会调用在SetWindowsHookEX 函数中指定的过滤函数(钩子函数)。

  钩子的卸载:

  当程序不再需要钩子时,可以利用UnhookWindowsHookEx 函数来卸载。

BOOL UnhookWindowsHookEx(HHOOK hhook);

  Windows 并不要求钩子函数的卸载顺序一定得和安装次序相反。每当有一个钩子被卸除,Windows 便释放出相应内存,并更新整个钩子链。如果有一个线程挂上了一个钩子,但是在尚未卸除钩子之前就结束了,那么系统会自动为它做卸载的操作。

  捕获鼠标轨迹:

  要捕获鼠标的轨迹,一种有效的办法就是安装鼠标类型的挂钩。WH_KEYBOARD、WH_MOUSE 和WH_HARDWARE三种类型的钩子用来拦截硬件的事件。WH_MOUSE 表示每当GetMessage 或PeekMessage两函数从已挂上钩子的线程的消息队列中取出鼠标消息时,钩子处理函数将被该线程调用。下面给出安装钩子和钩子函数代码(已删减)。

//安装鼠标钩子

HHOOK CMoseHook::Start()
{
  gHook=SetWindowsHookEx(WH_MOUSE,MouseHookProc,gHinstance,NULL);
  return gHook;
}

//钩子函数

MouseHookProc(int nCode, WPARAM wParam,LPARAM lParam)
{
  LPMOUSEHOOKSTRUCT pMouseHook = einterpret_cast<LPMOUSEHOOKSTRUCT>(lParam);
  gPt = pMouseHook->pt;//鼠标位置信息。
  CallNextHookEx(gHook,nCode,wParam,lParam);//继续呼叫下一个钩子
  return 0L;
}

  在安装完系统钩子之后,无论鼠标在什么进程上活动,钩子都能够被调用进而捕捉到某一特定时刻的鼠标座标。将这些鼠标的轨迹数据记录在文件或数据库中。用连线的办法就可以得到鼠标的轨迹。

  2)基本的轨迹图

  Eyetrack III注意到一个普遍模式:视线多数时候常常首先在页面左上角停留,然后在该区域稍作浏览,跟着移动到页面右方。在对页面上方进行一段时间的仔细阅读后,眼球才会开始浏览下方内容。那么由这一结果可以初步说明用鼠标模拟视线跟踪的可能性。当然,无论是视觉输入, 还是自然语言、语音和手势输入,或是使用价格昂贵的视线跟踪仪都存在固有的非精确性, 难以达到100% 的识别率、准确率。

  视线跟踪技术的应用前景

  视线跟踪技术也作为一种研究手段, 通过分析用户的视线扫描路径, 来研究人机交互中人的信息加工的一些内在机制, 使界面的概念模型与人的心理模型相吻合. 如用户在菜单搜索过程中, 是顺序搜索还是随机搜索, 菜单的结构如何组织, 才能使用户的搜索绩效最高等.由于视线输入和识别技术存在固有的非精确性, 难以达到100% 的识别, 视线在人机交互中应用的精髓不在于用来独立地利用其指点功能, 而是与其它通道相结合提供空间的或其它的约束信息, 消除在单通道输入时存在的歧义. 即使视线跟踪系统的精度很高, 在界面设计中, 单纯依靠视觉信息进行交互的可靠性较低. 比如, 当用户在计算机屏幕前时, 推断其注视点在屏幕上的一个窗口上, 而其真正的注视点可能在屏幕之外, 解决方法是把它与其它输入通道相结合, 发挥优势互补, 增强其应用可靠性.视线跟踪技术使人机交互中的认知负荷大大降低, 视觉输入通道的引入就是为其它通道提供空间的或其它的约束信息, 以消除在单通道输入时的歧义性, 与其它通道相结合, 视线跟踪在人机交互领域有着广阔的应用前景.

  用鼠标模拟视线跟踪技术几点不足

  1) 为了得到更加准确的数据,在邀请用户做测试前最好先指导用户有意识的使用让视线跟随鼠标的移动。

  2) 本工具目前还不能对用户在某点的停留时间,点到点的距离和时间等相对重要的数据进行捕捉。

  3) 对数据的分析还只限于人工分析和统计,其实对数据的分析完全可以借助于强大的数据库、数据仓库和数据挖掘技术,并有可能得到更多的有益的分析结果。

  结束语

  视线觉跟踪技术因其在人机交互中的重要性, 成为当前国外研究的热点之一. 有关在人机交互中的应用的研究, 在国外也是刚刚起步, 并且是由心理学、认知科学、软件工程、图形学等组成的交叉。利用强大的计算机软件技术完全可以部分模拟出视线跟踪仪,从而迅速展开研究,以极少的成本进行热点研究。

相关文章
    无相关信息
【评论】【收藏本文】【打印】【关闭】
上一篇文章:COM 组件设计与应用之简单调用组件
下一篇文章:关于9行代码导致系统崩溃的分析整理
讨论区
查看
已有 0 位对此新闻感兴趣的网友发表了看法
匿名发表
注册通行证 登陆
图文阅读推荐
推荐阅讯
  • EA与Rose UML建模工具比较
  • Oracle数据库中分区表的操作方法
  • Oracle:PL/SQL 中如何使用Array
  • Delphi快速入门(三)
  • Delphi快速入门(六)
  • 用DELPHI在状态栏中显示进程条
  • Visual FoxPro9.0中设计与使用查询
  • 利用Delphi全面控制Windows任务栏
  • 软件的架构与设计模式之什么是架构
  • 用鼠标模拟视线跟踪技术
阅读排行
  • 1.全面剖析Delphi 2006新增特性
  • 2.用Delphi开发视频聊天软件
  • 3.用Win32 API枚举应用程序窗口和进程
  • 4.软件的架构与设计模式之什么是架构
  • 5.软件的架构与设计模式之模式的种类
  • 6.Delphi中为TreeView添加单选和复选框
  • 7.用Delphi实现24位真彩色图标
  • 8.VS.NET2005 Beta2初体验之感受2005
  • 9.程序界面设计模式慨述
  • 10.没落的奇迹 谁会买下Delphi?
专题教程
  • 大话G游 专题:手机病毒揭密
  • ARP攻击防范与解决方案 路由故障处理手册
  • Picasa中文版_Picasa教程 专题:清除流氓软件
  • Firefox专题 seo搜索引擎优化专区
  • 重装Windows必知的事情 装机之必备软件大行动
病毒专杀栏
  • 杀毒软件反被病毒杀 连"救命"都不能喊
  • 金山ARP防火墙
  • 还原卡神话破灭“机器狗”病毒来势汹汹
  • cctv经济半小时:你的手机现在安全吗?
  • 新挂马方式开始流行 ARP挂马称雄局域网
  • 木马和病毒清除的通用解法
  • IP地址不再冲突 查找ARP攻击者元凶
  • 教你几招识别和防御Web网页木马
  • 分析:封杀BT只是暂时的止痛药
  • QQ爆危险漏洞,“QQ游戏邀请大盗”邀请你玩病
关于我们 | 诚聘英才 | 联系我们 | 版权声明 | 网站大事 | 网站地图 | 意见建议
CopyRight 2005-2007 Jztop.Com 版权所有 未经许可 请勿转载