眼动跟踪中基于CamShift算法的FPGA实现方法

文档序号:8928871阅读:1213来源:国知局
眼动跟踪中基于CamShift算法的FPGA实现方法
【技术领域】
[0001] 本发明涉及医学领域,尤其涉及一种眼动跟踪中基于CamShift算法的FPGA实现 方法。
【背景技术】
[0002] 眼动追踪,英文eyetracking,是指通过测量眼睛的注视点的位置或者眼球相对 头部的运动而实现对眼球运动的追踪。眼动仪是一种能够跟踪测量眼球位置及眼球运动信 息的一种设备,在视觉系统、心理学、认知语言学的研宄中有广泛的应用。目前眼动追踪有 多种方法,其中最常用的无创手段是通过视频拍摄设备来获取眼睛的位置。有创的手段包 括在眼睛中埋置眼动测定线圈或者使用微电极描记眼动电图。

【发明内容】

[0003] 本发明旨在提供一种眼动跟踪中基于CamShift算法的FPGA实现方法,能够获取 到瞳孔的移动轨迹坐标,实现眼动跟踪。
[0004] 为达到上述目的,本发明是采用以下技术方案实现的:
[0005] 本发明公开的眼动跟踪中基于CamShift算法的FPGA实现方法,包括以下步骤:
[0006] a、图像采集:采用图像传感器实时采集眼动图像,并将眼动图像实时传送、存储;
[0007]b、提取眼球瞳孔的移动轨迹:将步骤a中采集的眼动图像采用CamShift算法提取 出眼球瞳孔的移动轨迹,所述CamShift算法采用FPGA实现;
[0008] C、图像数据传输:通过以太网接口将图像数据及移动轨迹坐标实时传输到计算 机;
[0009]d、图像显示和存储:计算机将接收的图像数据和移动轨迹处理后进行显示和存 储。
[0010] 优选的,在步骤b中,采用FPGA实现CamAShift算法的具体方法包括以下子步骤: [0011]b. 1、使用地址译码计数器,按照行列偏移量读取帧缓存中的像素数据;
[0012]b. 2、对所有行内的像素数据求算数和,缓存到行累加和寄存器LnSUM;
[0013]b. 3、所有列内的像素数据求算数和,缓存到列累加和寄存器CnSUM;
[0014]b. 4、运用依次比较的方法,找出行累加和寄存器中最小的值所在的行号,作为中 心点Y坐标;
[0015]b. 5、运用依次比较的方法,找出列累加和寄存器中最小的值所在的列号,作为中 心点X坐标;
[0016] b. 6、传输中心点X、Y坐标,并重复上述步骤,进行下一帧运算;
[0017]b. 7、将连续帧的中心点X、Y坐标形成轨迹曲线,得到人眼瞳孔的运动轨迹。
[0018] 进一步的,在步骤a中,所述眼动图像采用数据流方式传送并存储在外部存储器 中;
[0019] 在步骤b中,外部存储器的存储空间分为奇数页及偶数页,当奇数页正在写入数 据时,偶数页进行CamShift运算;当偶数页开始写入数据时,奇数页开始进行CamShift运 算。
[0020] 进一步的,所述FPGA中固化有CamShift算法逻辑模块,所述图像传感器传送的图 像数据流通过CamShift算法逻辑模块计算后传送到以太网接口。
[0021] 进一步的,所述FPGA中固化有千兆数据链路模块,所述图像传感器传送的图像数 据流通过千兆数据链路模块传送到以太网接口。
[0022] 优选的,所述图像传感器为CMOS图像传感器,所述外部存储器采用SRAM。
[0023] 进一步优选,所述CMOS图像传感器为LUPA300,所述SRAM为IS61LV25616。
[0024] 进一步的,在步骤a中,FPGA首先完成对COMOS图像传感器的初始化配置,初始化 的参数包括分辨率、采集帧率、灰度值、亮度值,并控制COMOS图像传感器进入设定的工作 模式,COMOS图像传感器进入工作模式后,在FPGA给出的系统时钟控制下,开始连续获取视 频数据。
[0025] 优选的,所述分辨率不小于320*240,所述采集帧率不小于500帧/秒,所述灰度值 采用8位二进制数表征。
[0026] 本发明公开的眼动跟踪中基于CamShift算法的FPGA实现方法,采用无创手段来 获取被测者眼睛的眼动信息,通过图像传感器采用眼部,再对采集的视频使用算法进行数 据提取,获取到瞳孔的移动轨迹坐标,实现眼动跟踪。这种在视觉刺激跟踪场合具有非常宽 广的意义,可用于在如心理测试领域,因为很多心理受访者往往处于某种闭塞的心理保护, 但如果施加某种视觉刺激或语言告知,往往会引起其眼部发生某种变化,即某种不安情绪 会通过眼球的移动反映出来,从而对其进行下一步诱导。CamShift整体算法实现流程简单、 明了,能有效解决目标变形和遮挡的问题,对系统资源要求不高,时间复杂度低,在简单背 景下能够取得良好的跟踪效果。但当背景较为复杂,或者有许多与目标颜色相似像素干扰 的情况下,会导致跟踪失败。因为它单纯的考虑颜色直方图,忽略了目标的空间分布特性, 所以这种情况下需加入对跟踪目标的预测算法。
[0027] 由于人眼的及瞳孔的构成较为简单,不存在过多颜色相似像素干扰,瞳孔像素分 布规律性非常好,因此识别准确率很高。实际测试及分析也表明了这种方法的实现效果较 为理想,尤其在使用FPGA进行眼动跟踪识别时,可操作性好、实现简单、识别准确率高,为 眼动跟踪提供了一种行之有效的现实依据。
【附图说明】
[0028] 图1为本发明的原理框图;
[0029] 图2为对一帧图像数据进行CamShift运算的流程图;
[0030] 图3为行、列累加和在X、Y轴上的投影曲线;
[0031] 图4为计算一个行累加和的逻辑构成图。
【具体实施方式】
[0032] 为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图,对本发明进 行进一步详细说明。
[0033] 如图1所示,本发明公开的眼动跟踪中基于CamShift算法的FPGA实现方法,采用 FPGA作为主控核心处理及采集CPU,使用LUPA300作为高速图像传感单元,其最高图像采集 帧率可达500fps/324*240。采集的视频数据需要通过FPGA使用CamAShift算法提取出眼 球瞳孔的移动轨迹,千兆以太网接口将图像数据及移动轨迹坐标实时传输到PC计算机上 进行存储。
[0034]FPGA首先完成对LUPA300高速图像传感器的初始化配置,如分辨率、采集帧率、灰 度值、亮度值等,使其进入设定的工作模式。LUPA300进入工作模式后,在FPGA给出的系统 时钟控制下,开始连续获取视频数据,FPGA硬件逻辑的并行高速特性为视频数据的连续不 间断采集及CamShift算法实现提供了有力保证。
[0035] 通过LUPA300采集到的8位数据代表了当前像素的灰度值,在数据流传输的过程 中,数据的吞吐量是非常大的,在320*240分辨率时,可达320*240*500*8 = 307. 2Mb/s。 FPGA内置的M4K存储器块无法缓存,这里使用千兆数据链路逻辑,将视频图像数据流通过 千兆以太网接口实时传输到计算机端进行存储。灰度像素数据传输到计算机端后,再使用 接口软件转换成黑白的视频图像进行显示,并保存为特定的数据格式。
[0036] 在进行千兆数据链路传输的同时,FPGA将视频数据流按帧同步存入外部的SRAM 存储器,本设计中使用了IS61LV25616高速型SRAM,具有16位数据位宽,存储容量可达 256KB,足够为单幅图像提供帧缓存。由于帧数据流的传输是不间断的,并且CamShift运算 需要完整的数据帧才能进行,为了保证存入和运算的不间断进行,将IS61LV25616SRAM的 存储空间分为奇数页及偶数页,当奇数页正在写入数据时,偶数页进行CamShift运算;当 偶数页开始写入数据时,奇数页开始进行CamShift运算,即常说的乒乓操作。由于FPGA的 运行逻辑是并行的,乒乓操作可以保证连续帧的CamShift运算不间断进行,从而也可以最 高效地利用数据存储器资源
[0037] 一帧图像的像素行列分布,在对分辨率为320*240的图像帧进行CamShift运算 时,行累加和寄存器LnSUM的取值范围为0~239,对8位数据而言,行累加和的最大数值为 3 20* (28-1) = 8 1 9 1 9。列累加和寄存器的取值范围为0~319,最大数值为240* (28-1)= 61199。因此行累加和寄存器及列累加和寄存器的数据位宽需定义为17位,最大可存储的 数据值为2 17= 131072。定义L1SUMa2SUM'……、L239SUM共240个17位行累加寄存器,定 义(^通、(^通、……X319SUM共320个17位列累加寄存器。为了便于后续CamShift数据 运算,将行累加和寄存器及列累加和寄存器共560个均定义在FPGA中。
[0038]IS61LV25616SRAM存储芯片共有18根地址线,即Atl~A17。A17用作奇、偶帧乒乓操 作切换,A17= 0时,写入奇数帧像素数据,偶数帧读取数据作运算处理;A17= 1时,奇数帧 读取数据作运算处理,写入偶数帧像素数据。一帧图像共需320*240 = 76800个数据存储 空间,划分的像素地址空间分配如表1所示:
[0039] 表1,像素地址空间分配
[0040]
[0041] 对一帧图像进行CamShift算法处理的流程如图2所示;包括以下子步骤:
[0042] b. 1、使用地址
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1