CN104905765B - 眼动跟踪中基于CamShift算法的FPGA实现方法 - Google Patents

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

Info

Publication number
CN104905765B
CN104905765B CN201510309339.4A CN201510309339A CN104905765B CN 104905765 B CN104905765 B CN 104905765B CN 201510309339 A CN201510309339 A CN 201510309339A CN 104905765 B CN104905765 B CN 104905765B
Authority
CN
China
Prior art keywords
camshift
fpga
row
eye
algorithm
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN201510309339.4A
Other languages
English (en)
Other versions
CN104905765A (zh
Inventor
龚启勇
幸浩洋
邹云海
杨波
孙怀强
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
West China Hospital of Sichuan University
Original Assignee
West China Hospital of Sichuan University
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by West China Hospital of Sichuan University filed Critical West China Hospital of Sichuan University
Priority to CN201510309339.4A priority Critical patent/CN104905765B/zh
Publication of CN104905765A publication Critical patent/CN104905765A/zh
Application granted granted Critical
Publication of CN104905765B publication Critical patent/CN104905765B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Landscapes

  • Image Processing (AREA)

Abstract

本发明公开一种眼动跟踪中基于CamShift算法的FPGA实现方法,包括以下步骤:a、图像采集:采用图像传感器实时采集眼动图像,并将眼动图像实时传送、存储;b、提取眼球瞳孔的移动轨迹:将步骤a中采集的眼动图像采用CamShift算法提取出眼球瞳孔的移动轨迹,所述CamShift算法采用FPGA实现;c、图像数据传输:通过以太网接口将图像数据及移动轨迹坐标实时传输到计算机;d、图像显示和存储:计算机将接收的图像数据和移动轨迹处理后进行显示和存储。本发明能够获取到瞳孔的移动轨迹坐标,实现眼动跟踪。

Description

眼动跟踪中基于CamShift算法的FPGA实现方法
技术领域
本发明涉及医学领域,尤其涉及一种眼动跟踪中基于CamShift算法的FPGA实现方法。
背景技术
眼动追踪,英文eye tracking,是指通过测量眼睛的注视点的位置或者眼球相对头部的运动而实现对眼球运动的追踪。眼动仪是一种能够跟踪测量眼球位置及眼球运动信息的一种设备,在视觉系统、心理学、认知语言学的研究中有广泛的应用。目前眼动追踪有多种方法,其中最常用的无创手段是通过视频拍摄设备来获取眼睛的位置。有创的手段包括在眼睛中埋置眼动测定线圈或者使用微电极描记眼动电图。
发明内容
本发明旨在提供一种眼动跟踪中基于CamShift算法的FPGA实现方法,能够获取到瞳孔的移动轨迹坐标,实现眼动跟踪。
为达到上述目的,本发明是采用以下技术方案实现的:
本发明公开的眼动跟踪中基于CamShift算法的FPGA实现方法,包括以下步骤:
a、图像采集:采用图像传感器实时采集眼动图像,并将眼动图像实时传送、存储;
b、提取眼球瞳孔的移动轨迹:将步骤a中采集的眼动图像采用CamShift算法提取出眼球瞳孔的移动轨迹,所述CamShift算法采用FPGA实现;
c、图像数据传输:通过以太网接口将图像数据及移动轨迹坐标实时传输到计算机;
d、图像显示和存储:计算机将接收的图像数据和移动轨迹处理后进行显示和存储。
优选的,在步骤b中,采用FPGA实现CamAShift算法的具体方法包括以下子步骤:
b.1、使用地址译码计数器,按照行列偏移量读取帧缓存中的像素数据;
b.2、对所有行内的像素数据求算数和,缓存到行累加和寄存器LnSUM;
b.3、所有列内的像素数据求算数和,缓存到列累加和寄存器CnSUM;
b.4、运用依次比较的方法,找出行累加和寄存器中最小的值所在的行号,作为中心点Y坐标;
b.5、运用依次比较的方法,找出列累加和寄存器中最小的值所在的列号,作为中心点X坐标;
b.6、传输中心点X、Y坐标,并重复上述步骤,进行下一帧运算;
b.7、将连续帧的中心点X、Y坐标形成轨迹曲线,得到人眼瞳孔的运动轨迹。
进一步的,在步骤a中,所述眼动图像采用数据流方式传送并存储在外部存储器中;
在步骤b中,外部存储器的存储空间分为奇数页及偶数页,当奇数页正在写入数据时,偶数页进行CamShift运算;当偶数页开始写入数据时,奇数页开始进行CamShift运算。
进一步的,所述FPGA中固化有CamShift算法逻辑模块,所述图像传感器传送的图像数据流通过CamShift算法逻辑模块计算后传送到以太网接口。
进一步的,所述FPGA中固化有千兆数据链路模块,所述图像传感器传送的图像数据流通过千兆数据链路模块传送到以太网接口。
优选的,所述图像传感器为CMOS图像传感器,所述外部存储器采用SRAM。
进一步优选,所述CMOS图像传感器为LUPA300,所述SRAM为IS61LV25616。
进一步的,在步骤a中,FPGA首先完成对COMOS图像传感器的初始化配置,初始化的参数包括分辨率、采集帧率、灰度值、亮度值,并控制COMOS图像传感器进入设定的工作模式,COMOS图像传感器进入工作模式后,在FPGA给出的系统时钟控制下,开始连续获取视频数据。
优选的,所述分辨率不小于320*240,所述采集帧率不小于500帧/秒,所述灰度值采用8位二进制数表征。
本发明公开的眼动跟踪中基于CamShift算法的FPGA实现方法,采用无创手段来获取被测者眼睛的眼动信息,通过图像传感器采用眼部,再对采集的视频使用算法进行数据提取,获取到瞳孔的移动轨迹坐标,实现眼动跟踪。这种在视觉刺激跟踪场合具有非常宽广的意义,可用于在如心理测试领域,因为很多心理受访者往往处于某种闭塞的心理保护,但如果施加某种视觉刺激或语言告知,往往会引起其眼部发生某种变化,即某种不安情绪会通过眼球的移动反映出来,从而对其进行下一步诱导。CamShift整体算法实现流程简单、明了,能有效解决目标变形和遮挡的问题,对系统资源要求不高,时间复杂度低,在简单背景下能够取得良好的跟踪效果。但当背景较为复杂,或者有许多与目标颜色相似像素干扰的情况下,会导致跟踪失败。因为它单纯的考虑颜色直方图,忽略了目标的空间分布特性,所以这种情况下需加入对跟踪目标的预测算法。
由于人眼的及瞳孔的构成较为简单,不存在过多颜色相似像素干扰,瞳孔像素分布规律性非常好,因此识别准确率很高。实际测试及分析也表明了这种方法的实现效果较为理想,尤其在使用FPGA进行眼动跟踪识别时,可操作性好、实现简单、识别准确率高,为眼动跟踪提供了一种行之有效的现实依据。
附图说明
图1为本发明的原理框图;
图2为对一帧图像数据进行CamShift运算的流程图;
图3为行、列累加和在X、Y轴上的投影曲线;
图4为计算一个行累加和的逻辑构成图。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图,对本发明进行进一步详细说明。
如图1所示,本发明公开的眼动跟踪中基于CamShift算法的FPGA实现方法,采用FPGA作为主控核心处理及采集CPU,使用LUPA300作为高速图像传感单元,其最高图像采集帧率可达500fps/324*240。采集的视频数据需要通过FPGA使用CamAShift算法提取出眼球瞳孔的移动轨迹,千兆以太网接口将图像数据及移动轨迹坐标实时传输到PC计算机上进行存储。
FPGA首先完成对LUPA300高速图像传感器的初始化配置,如分辨率、采集帧率、灰度值、亮度值等,使其进入设定的工作模式。LUPA300进入工作模式后,在FPGA给出的系统时钟控制下,开始连续获取视频数据,FPGA硬件逻辑的并行高速特性为视频数据的连续不间断采集及CamShift算法实现提供了有力保证。
通过LUPA300采集到的8位数据代表了当前像素的灰度值,在数据流传输的过程中,数据的吞吐量是非常大的,在320*240分辨率时,可达320*240*500*8=307.2Mb/s。FPGA内置的M4K存储器块无法缓存,这里使用千兆数据链路逻辑,将视频图像数据流通过千兆以太网接口实时传输到计算机端进行存储。灰度像素数据传输到计算机端后,再使用接口软件转换成黑白的视频图像进行显示,并保存为特定的数据格式。
在进行千兆数据链路传输的同时,FPGA将视频数据流按帧同步存入外部的SRAM存储器,本设计中使用了IS61LV25616高速型SRAM,具有16位数据位宽,存储容量可达256KB,足够为单幅图像提供帧缓存。由于帧数据流的传输是不间断的,并且CamShift运算需要完整的数据帧才能进行,为了保证存入和运算的不间断进行,将IS61LV25616SRAM的存储空间分为奇数页及偶数页,当奇数页正在写入数据时,偶数页进行CamShift运算;当偶数页开始写入数据时,奇数页开始进行CamShift运算,即常说的乒乓操作。由于FPGA的运行逻辑是并行的,乒乓操作可以保证连续帧的CamShift运算不间断进行,从而也可以最高效地利用数据存储器资源
一帧图像的像素行列分布,在对分辨率为320*240的图像帧进行CamShift运算时,行累加和寄存器LnSUM的取值范围为0~239,对8位数据而言,行累加和的最大数值为320*(28-1)=81919。列累加和寄存器的取值范围为0~319,最大数值为240*(28-1)=61199。因此行累加和寄存器及列累加和寄存器的数据位宽需定义为17位,最大可存储的数据值为217=131072。定义L1SUM、L2SUM、……、L239SUM共240个17位行累加寄存器,定义C1SUM、C2SUM、……、C319SUM共320个17位列累加寄存器。为了便于后续CamShift数据运算,将行累加和寄存器及列累加和寄存器共560个均定义在FPGA中。
IS61LV25616SRAM存储芯片共有18根地址线,即A0~A17。A17用作奇、偶帧乒乓操作切换,A17=0时,写入奇数帧像素数据,偶数帧读取数据作运算处理;A17=1时,奇数帧读取数据作运算处理,写入偶数帧像素数据。一帧图像共需320*240=76800个数据存储空间,划分的像素地址空间分配如表1所示:
表1,像素地址空间分配
对一帧图像进行CamShift算法处理的流程如图2所示;包括以下子步骤:
b.1、使用地址译码计数器,按照行列偏移量读取帧缓存中的像素数据;
b.2、对所有行内的像素数据求算数和,缓存到行累加和寄存器LnSUM;
b.3、所有列内的像素数据求算数和,缓存到列累加和寄存器CnSUM;
b.4、运用依次比较的方法,找出行累加和寄存器中最小的值所在的行号,作为中心点Y坐标;
b.5、运用依次比较的方法,找出列累加和寄存器中最小的值所在的列号,作为中心点X坐标;
b.6、传输中心点X、Y坐标,并重复上述步骤,进行下一帧运算;
b.7、将连续帧的中心点X、Y坐标形成轨迹曲线,得到人眼瞳孔的运动轨迹。
由于像素数据是按行依次存入的,因此在取出一行的像素数据时,只需给出当前行的首地址,然后使用加计数器来以加1增量的方式对数据进行寻址,将增量地址后读出的数据与前一地址数据相加,存入当前行的累加和寄存器,在此基础上连续进行319次加1计数寻址及累加,即可完成行内像素数据求累加和并保存在指定的行累加和寄存器中。
按列依次进行像素数据读出并求累加和与行的操作方式类似,不同的是同一列的像素数据在存入SRAM存储器时,由于使用的是连续地址,在进行列地址增量寻址时,是按照加320的增量来进行下一列像素数据地址的寻址的。如需对第一列内的1、2行像素数据求和,在给出地址信号时,需先给出第1行的第1列地址0,然后用此地址加320即得到同一列内下一行的像素数据地址。当寻址同一列内所有的行像素地址时,依次进行239次加320的计数即可,通过叠加求和,最终将当前列的累加和保存在指定的列累加和寄存器中。
当对所有的行列像素数据进行寻址并求得累加和存入行、列累加和寄存器后,寄存器中的数据值投影在坐标轴上,会呈现图3所示类似曲线规律。
在本发明中,FPGA芯片采用Altera公司的CycloneIV系列的EP4C40E,开发环境使用QuartusII13.1版本,通过LPM参数化宏单元的调用来构成寻址单元及累加单元的逻辑核心,实现CamShift可分为FPGA读SRAM数据求累加和及进行最大值判断两步。
累加和分为对各行求累加和及对各列求累加和,本发明给出了计算一个行累加和的逻辑构成,对一个列累加和的逻辑构成与此相似,故不赘述;如图4所示,SRAM_ADR[16..0]地址总线为FPGA对外部SRAM存储器的地址控制端口,从数据总线SRAM_DQ[7..0]将数据读入FPGA中进行求取累加和。Lpm_add_sub0为加1加法器,每一次时钟信号加1操作后,即对SRAM地址加1,读出其内部保存的下一个数据。lpm_add_sub1参数化加法器与ram1单端口存储器块构成循环累加器,只要不改变ram1的地址总线address[15..0],就可以实现将来自外部SRAM的数据进行累加操作。当完成一行的累加操作后,即可从L1SUM[16..0]取出本行的累加和。从L1Adr[15..0]首地址端口给出另一行的首地址后,在Lpm_add_sub0及lpm_add_sub1的逻辑协作下,从而完成另一行的数据累加。在CamShift运算的数据按列相加操作中,只需要把lpm_add_sub0的B端口(常数端口)改为当前图像的总行数即可,这样,在对每一列的数据访问时,都给出的是一个固定的地址偏移量。其他操作均与行累加的操作过程相同。
当进行完成各行与各列的数据累加并保存在FPGA中的寄存器中后,就需要在各行中找出一个最大值所在的坐标以及各列中找出一个最大值所在的坐标,获得中心X、Y坐标,是通过依次将各累加和进行大小值判断,依次比较获得的。
首先定义列累加和最大值暂存器CSCOMPR及最大值坐标暂存器CACOMPR。如L1SUM<L2SUM,则将L2SUM赋值给最大值坐标暂存器CACOMPR,其列地址C1Adr赋值给最大值坐标暂存器CACOMPR。下一次比较是将最大值坐标暂存器CACOMPR与L3SUM进行比较,保存大的数据及坐标地址。依此循环320次,直到在所有的列累加和中找出最大值所在的坐标,得到中心点的X坐标。
进行完行累加和的最大值寻找,可进行行累加和的最大值寻找,方法与其相同,定义行累加和最大值暂存器LSCOMPR及最大值坐标暂存器LACOMPR,使用240次循环,在所有的行累加和中找到最小值所在的坐标,得到中心点的Y坐标。
通过两片SRAM存储器进行乒乓操作,实现CamShift算法对连续帧不间断进行运算,即可获得连续的中心点坐标,再通过以太网接口将坐标数据进行封包传输,PC端接收到数据后,对数据进行轨迹绘制,即实现眼动轨迹的CamShift算法跟踪。
当然,本发明还可有其它多种实施例,在不背离本发明精神及其实质的情况下,熟悉本领域的技术人员可根据本发明作出各种相应的改变和变形,但这些相应的改变和变形都应属于本发明所附的权利要求的保护范围。

Claims (8)

1.眼动跟踪中基于CamShift算法的FPGA实现方法,其特征在于,包括以下步骤:
a、图像采集:采用图像传感器实时采集眼动图像,并将眼动图像实时传送、存储;
b、提取眼球瞳孔的移动轨迹:将步骤a中采集的眼动图像采用CamShift算法提取出眼球瞳孔的移动轨迹,所述CamShift算法采用FPGA实现;
c、图像数据传输:通过以太网接口将图像数据及移动轨迹坐标实时传输到计算机;
d、图像显示和存储:计算机将接收的图像数据和移动轨迹处理后进行显示和存储;
在步骤b中,采用FPGA实现CamAShift算法的具体方法包括以下子步骤:
b.1、使用地址译码计数器,按照行列偏移量读取帧缓存中的像素数据;
b.2、对所有行内的像素数据求算数和,缓存到行累加和寄存器LnSUM;
b.3、所有列内的像素数据求算数和,缓存到列累加和寄存器CnSUM;
b.4、运用依次比较的方法,找出行累加和寄存器中最小的值所在的行号,作为中心点Y坐标;
b.5、运用依次比较的方法,找出列累加和寄存器中最小的值所在的列号,作为中心点X坐标;
b.6、传输中心点X、Y坐标,并重复上述步骤,进行下一帧运算;
b.7、将连续帧的中心点X、Y坐标形成轨迹曲线,得到人眼瞳孔的运动轨迹。
2.根据权利要求1所述的眼动跟踪中基于CamShift算法的FPGA实现方法,其特征在于:
在步骤a中,所述眼动图像采用数据流方式传送并存储在外部存储器中;
在步骤b中,外部存储器的存储空间分为奇数页及偶数页,当奇数页正在写入数据时,偶数页进行CamShift运算;当偶数页开始写入数据时,奇数页开始进行CamShift运算。
3.根据权利要求1所述的眼动跟踪中基于CamShift算法的FPGA实现方法,所述FPGA中固化有CamShift算法逻辑模块,所述图像传感器传送的眼动图像通过CamShift算法逻辑模块计算后传送到以太网接口。
4.根据权利要求1所述的眼动跟踪中基于CamShift算法的FPGA实现方法,其特征在于,所述FPGA中固化有千兆数据链路模块,所述图像传感器传送的眼动图像通过千兆数据链路模块传送到以太网接口。
5.根据权利要求2所述的眼动跟踪中基于CamShift算法的FPGA实现方法,其特征在于:所述图像传感器为CMOS图像传感器,所述外部存储器采用SRAM。
6.根据权利要求5所述的眼动跟踪中基于CamShift算法的FPGA实现方法,其特征在于,所述CMOS图像传感器为LUPA300,所述SRAM为IS61LV25616。
7.根据权利要求5所述的眼动跟踪中基于CamShift算法的FPGA实现方法,其特征在于:在步骤a中,FPGA首先完成对CMOS图像传感器的初始化配置,初始化的参数包括分辨率、采集帧率、灰度值、亮度值,并控制CMOS图像传感器进入设定的工作模式,CMOS图像传感器进入工作模式后,在FPGA给出的系统时钟控制下,开始连续获取视频数据。
8.根据权利要求7所述的眼动跟踪中基于CamShift算法的FPGA实现方法,其特征在于:所述分辨率不小于320*240,所述采集帧率不小于500帧/秒,所述灰度值采用8位二进制数表征。
CN201510309339.4A 2015-06-08 2015-06-08 眼动跟踪中基于CamShift算法的FPGA实现方法 Active CN104905765B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201510309339.4A CN104905765B (zh) 2015-06-08 2015-06-08 眼动跟踪中基于CamShift算法的FPGA实现方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201510309339.4A CN104905765B (zh) 2015-06-08 2015-06-08 眼动跟踪中基于CamShift算法的FPGA实现方法

Publications (2)

Publication Number Publication Date
CN104905765A CN104905765A (zh) 2015-09-16
CN104905765B true CN104905765B (zh) 2017-01-18

Family

ID=54075531

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201510309339.4A Active CN104905765B (zh) 2015-06-08 2015-06-08 眼动跟踪中基于CamShift算法的FPGA实现方法

Country Status (1)

Country Link
CN (1) CN104905765B (zh)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2018184245A1 (zh) * 2017-04-08 2018-10-11 闲客智能(深圳)科技有限公司 一种眼动判断方法及装置
CN109846496B (zh) * 2017-11-30 2022-06-10 昆山光微电子有限公司 智能可穿戴设备情绪感知功能的硬件实现方法及组合
CN109788219B (zh) * 2019-01-18 2021-01-15 天津大学 一种用于人眼视线追踪的高速cmos图像传感器读出方法
CN113052898B (zh) * 2021-04-08 2022-07-12 四川大学华西医院 基于主动式双目相机的点云和强反光目标实时定位方法

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002334338A (ja) * 2001-05-09 2002-11-22 National Institute Of Advanced Industrial & Technology 物体追跡装置及び物体追跡方法並びに記録媒体
CN1996342A (zh) * 2005-12-28 2007-07-11 中国人民解放军第三军医大学第一附属医院 数字视频眼动分析仪
CN1871994A (zh) * 2006-06-29 2006-12-06 昆明钏泽智能系统有限公司 双眼瞳孔动态变化数字检测系统
CN101172034A (zh) * 2006-11-03 2008-05-07 上海迪康医学生物技术有限公司 一种眼球运动轨迹检测方法
CN101699510A (zh) * 2009-09-02 2010-04-28 北京科技大学 视线追踪系统中的基于粒子滤波的瞳孔跟踪方法
US8929589B2 (en) * 2011-11-07 2015-01-06 Eyefluence, Inc. Systems and methods for high-resolution gaze tracking
CN102447891A (zh) * 2011-12-30 2012-05-09 上海威乾视频技术有限公司 基于fpga的多路多分辨率视频采集装置及其方法
CN103679180B (zh) * 2012-09-19 2017-06-16 武汉元宝创意科技有限公司 一种基于单摄像头单光源的视线追踪方法
CN203015024U (zh) * 2012-12-19 2013-06-19 北方信息控制集团有限公司 一种基于以太网的空中运动目标识别跟踪系统
CN103390152B (zh) * 2013-07-02 2017-02-08 华南理工大学 基于sopc的适合人机交互的视线跟踪系统

Also Published As

Publication number Publication date
CN104905765A (zh) 2015-09-16

Similar Documents

Publication Publication Date Title
CN104905765B (zh) 眼动跟踪中基于CamShift算法的FPGA实现方法
CN110032271B (zh) 对比度调节装置及其方法、虚拟现实设备及存储介质
CN108171218A (zh) 一种基于深度外观注视网络的视线估计方法
CN112580552B (zh) 一种鼠类行为分析方法及装置
Zhu Computer vision-driven evaluation system for assisted decision-making in sports training
CN109559332A (zh) 一种结合双向LSTM和Itracker的视线跟踪方法
CN113435236A (zh) 居家老人姿态检测方法、系统、存储介质、设备及应用
CN112232128B (zh) 基于视线追踪的老年残障人士照护需求识别方法
Yue et al. Multimodal information fusion approach for noncontact heart rate estimation using facial videos and graph convolutional network
CN110472546B (zh) 一种婴幼儿非接触式眼动特征提取装置及方法
CN111443804A (zh) 基于视频分析的注视点轨迹描述方法及其系统
Reiss et al. Disruption of early face recognition processes by object substitution masking
CN111105486A (zh) 一种多视角小白鼠动态三维重建方法
CN108814543B (zh) 高速视频眼震仪系统
Saxena et al. Towards efficient calibration for webcam eye-tracking in online experiments
Mehta et al. Heart rate estimation from RGB facial videos using robust face demarcation and VMD
CN103426024B (zh) 一种人体头部转动检测的装置和方法
CN104905764B (zh) 一种基于fpga的高速视线跟踪方法
CN110633630A (zh) 一种行为识别方法、装置及终端设备
Yang et al. vGaze: Implicit saliency-aware calibration for continuous gaze tracking on mobile devices
CN110321781A (zh) 一种用于无接触式测量的信号处理方法及装置
Gao et al. Action Recognition and Benchmark Using Event Cameras
Zou et al. Rapid eye movement tracking method based on FPGA
CN113326729A (zh) 多模态的课堂专注度检测方法和装置
DE102019107103A1 (de) Verfahren und system zur objektsegmentierung in einer mixed-reality- umgebung

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant