基于摄像头的瞳孔追踪方法与流程

未命名 08-12 阅读:190 评论:0


1.本发明属于计算机视觉图像处理技术领域,具体涉及基于摄像头的瞳孔追踪方法。


背景技术:

2.瞳孔追踪技术,是使用摄影头拍摄到的影像,处理影像中瞳孔的移动来当作人机互动的输入方式。
3.瞳孔追踪技术主要有几种:虹膜搜寻线圈法:将线圈嵌入隐形眼镜中,线圈在磁场中的移动感应出电压,其精确度高但侵入是会使受试者不适。
4.红外光法:为利用光源照射到眼睛,反射回来的光亮及位置会随着眼睛的位置而变化,目前多数使用红外光与传感器接收反射回来的光,使用红外光的原因为他不会影响到受试者,且红外光传感器不会受其他光源干扰。
5.眼电图法:使用眼球移动时角膜与视网膜间的电压差来量测眼球运动,方法为在眼睛周围放上电极。
6.摄像头影像法:使用摄影头来计算出凝视位置,常见的方式之一为利用普尔钦斑点计算出光源与眼睛的相对位置,可计算出凝视的地方;其基本原理是将近红外光源放置在被测者头部侧前方的固定位置,光源所发出的近红外光在用户眼睛角膜上形成高亮度反射点,称为普尔钦斑点,利用侧前方固定位置的ccd摄影头来获取眼部图像。当眼球转动注视不同方向时,由于眼球近似为球体,普尔钦斑点不动,瞳孔相对普尔钦斑点发生偏移,将此偏移量进行空间坐标变换,即可计算出人眼的视线方向。
7.例如,《光学技术》2007年7月第33卷第4期第498页发表了《基于普尔钦斑点的人眼视线方向检测》,其搭建的系统包括头盔、ccd摄像头、光源、dsp图像处理板组成,利用波长为940hm的红外led对入限进行照明,位于入眼侧前方的ccd摄像头实时捕捉人眼转动的图像,然后传送给dsp图像处理叛,采用特定图像处理算法对其进行处理,计算出入眼的视线方向。该方案限制较多,需要有专门的设备,例如需要头盔和红外led等,检测成本也高。
8.因此,本方案,希望获得一种检测方便且成本低的瞳孔追踪方法。


技术实现要素:

9.鉴于上述现有技术的不足之处,本发明的目的在于基于摄像头的瞳孔追踪方法。
10.为了达到上述目的,本发明采取了以下的技术方案。
11.基于摄像头的瞳孔追踪方法,包括以下步骤:步骤s1,图片前处理:摄像头实时捕捉人眼转动的图像,首先读入图像,调整成灰阶影像,然后通过直方图等化调整影像对比度,并归一化图像亮度;步骤s2,人脸侦测:使用opencv里的detectmultiscale函数式,检测出图片中所有人脸并存入阵列中;
步骤s3,判断是否有侦测到人脸:如果有,则进行步骤s4;否则,判断上一帧图片是否有侦测到人脸,如果有,则根据侦测到人脸的上一帧图片所确定的瞳孔位置,进行步骤s5,否则,提取下一张图片,返回步骤s2,进行人脸侦测;步骤s4,对图片做高斯平滑;步骤s5,瞳孔侦测,并得到瞳孔位置坐标:采用梯度法侦测瞳孔中心,瞳孔中心所在坐标,即为瞳孔位置坐标;步骤s6,计算瞳孔位置:瞳孔位置为左瞳孔与右瞳孔的平均值;步骤s7,提取下一张图片,并返回到步骤s1,直到所有图片处理完毕,然后进行步骤s8;步骤s8,坐标校正:得到所有瞳孔位置后,提取瞳孔观看矩形幕布角落四点的图片坐标,并根据图片坐标和幕布坐标的比例对应关系,将瞳孔在摄像头里的坐标w校正为幕布上的坐标s。
12.进一步,步骤s1,包括:步骤s101,调整成灰阶影像:对读入的图像,使用 opencv的 cvtcolor ( ) 函数式进行影像的色彩转换,参数使用cv_bgr2gray,该函数式将彩色影像中蓝、绿、红三色转换为灰阶,其转换公式如下:y= 0.299r + 0.587g + 0.114b;其中,y为输出影像的像素点灰度值,r为输入影像的红色分量值,g为输入影像的绿色分量值,b为输入影像的蓝色分量值;步骤s102,直方图等化:使用 opencv 的 equalizehist ( ) 函数式来做直方图等化。
13.进一步,步骤s2中,detectmultiscale函数式的参数设定如下:参数1,image:待检测图片,为图片前处理后的图片;参数2,objects:图片中被检测物体的矩形框矢量组;图片中的脸被找到后存入矩形框矢量组;参数3,scalefactor:表示在前后两次相继的扫描中,搜索窗口的比例系数,采用默认值为1.1,即每次搜索窗口依次扩大10%;参数4,minneighbors:表示构成检测目标的相邻矩形的最小个数,本方案使用2;如果组成检测目标的相邻矩形个数小于其值会被排除,若函数式不做任何操作就返回所有的被检候选矩形框;参数5,flags:使用默认值0或cv_haar_scale_image,此参数使其不缩放分类器而是缩放图像;参数6、7,minsize和maxsize:用来限制得到的目标区域的范围;本方案中,minsize为size(300,300),小于此值的脸将被忽略;maxsize不作设置。
14.进一步,步骤s4中,高斯平滑,使用opencv里的gaussionblur函数式;该函数式,有ksize参数和sigma参数;ksize参数表征滤波模板大小,其值为 0,表示由 sigma参数值计算,而sigma参数值则设为0.005*侦测到脸的宽度。
15.进一步,步骤s6中,计算瞳孔位置的坐标:w(x)=l(x)
×
0.5+r(x)
×
0.5;w(y)=l(y)
×
0.5+r(y)
×
0.5;其中,l(x)为图片中的左眼的x坐标;l(y)为图片中的左眼的x坐标;r(x)为图片中的右眼的x坐标;r(y)为图片中的右眼的y坐标;w(x)为瞳孔位置的x坐标;w(y)为瞳孔位置
的y坐标。
16.进一步,步骤s8中,瞳孔先分别观看幕布角落的四个点,得到幕布角落的四个点在图片的坐标w,分别为(w
lt
(x)、w
lt
(y))、(w
lb
(x)、w
lb
(y))、(w
rt
(x)、w
rt
(y))、(w
rb
(x)、w
rb
(y));其中,下标l或r分别表示瞳孔正在观看幕布最左方或最右方,下标t或b表示瞳孔正在观看幕布最上方或最下方,(w
lt
(x)、w
lt
(y))表示瞳孔观看幕布左侧上方点时图片中瞳孔位置的坐标,(w
lb
(x)、w
lb
(y))表示瞳孔观看幕布左侧下方点时图片中瞳孔位置的坐标,(w
rt
(x)、w
rt
(y))表示瞳孔观看幕布右侧上方点时图片中瞳孔位置的坐标,(w
rb
(x)、w
rb
(y))表示瞳孔观看幕布右侧下方点时图片中瞳孔位置的坐标;然后,计算瞳孔观看幕布时瞳孔位置坐标的最大值和最小值:x
min
=(w
lt
(x)+w
lb
(x))/2;y
min
=(w
lt
(y)+w
rt
(y))/2;x
max
=(w
rt
(x)+w
rb
(x))/2;y
max
=(w
lb
(y)+w
rb
(y))/2;其中,x
min
表示瞳孔观看幕布时瞳孔位置x坐标最小值,y
min
表示瞳孔观看幕布时瞳孔位置y坐标最小值,x
max
表示瞳孔观看幕布时瞳孔位置x坐标最大值,y
max
表示瞳孔观看幕布时瞳孔位置y坐标最大值;最后,根据图片坐标和幕布坐标的比例对应关系,计算幕布坐标s:s(x)=((w(x)-x
min
)*width)/(x
max

x
min
);s(y)=((w(y)-y
min
)*height)/(y
max
−ymin
);其中,s(x)表示幕布的x坐标;s(y)表示幕布的y坐标;width表示幕布的长度;height表示幕布的宽度。
17.本方案,计算简单,保证了影像实时处理的可行性,在能侦测到脸部的时候估计出眼睛范围找瞳孔,若这时人脸被挡住了而瞳孔还在,即可以用上一帧瞳孔位置估计出眼睛范围继续找瞳孔,避免瞳孔的标记都会消失;若又能侦测到人脸时,就又返回侦测人脸的方式,避免瞳孔偏移。本方案,既保证了瞳孔位置的准确度,又能使方案适应于人脸被挡住而无法识别的特殊状况。
附图说明
18.图1为本发明的流程示意图;图2为图片的瞳孔中心标记图;图3为坐标校正的示意图;图4为第一种基础技术方案的流程图;图5为第二种基础技术方案的流程图。
具体实施方式
19.下面结合附图,对本发明作进一步详细说明。
20.名词解析:opencv,是一个基于apache2.0许可(开源)发行的跨平台计算机视觉和机器学习软件库,可实时处理计算机视觉的影像处理,可免费在商业与研究领域使用。
21.哈尔级联分类器:haarcascade classifier,为 opencv 里的人脸侦测函数式。
22.哈尔特征,是用于物体识别的一种数字图像特征,它使用检测窗口中指定位置的相邻矩形,计算每一个矩形的像素和并取其差值。然后用这些差值来对图像的子区域进行分类,其最早用于人脸表示。哈尔特征值反映了图像的灰度变化情况。例如:脸部的一些特征能由矩形特征简单的描述,如:眼睛要比脸颊颜色要深,鼻梁两侧比鼻梁颜色要深,嘴巴比周围颜色要深等。
23.cvtcolor()函数式,是opencv里一个颜色空间转换函数,可以实现rgb颜色向hsv、hsi等颜色空间的转换,也可以转换为灰度图像。
24.equalizehist ( ) 函数式,是opencv里的直方图均衡函数,该函数能归一化图像亮度和增强对比度。
25.detectmultiscale函数式,是opencv中的一个用于目标检测的函数,它的作用是在图像中检测出具有不同尺寸的目标,并返回这些目标的位置信息。
26.facecascade分类器,是哈尔级联分类器。
27.图1为本发明的流程示意图,如图1所示,基于摄像头的瞳孔追踪方法,包括以下步骤:步骤s1,图片前处理:摄像头实时捕捉人眼转动的图像,首先读入图像,调整成灰阶影像,然后通过直方图等化调整影像对比度,并归一化图像亮度。
28.步骤s101,调整成灰阶影像:对读入的图像,使用 opencv的 cvtcolor ( ) 函数式进行影像的色彩转换,参数使用cv_bgr2gray,该函数式将彩色影像中蓝、绿、红三色转换为灰阶,其转换公式如下:y= 0.299r + 0.587g + 0.114b;其中,y为输出影像的像素点灰度值,r为输入影像的红色分量值,g为输入影像的绿色分量值,b为输入影像的蓝色分量值。
29.步骤s102,直方图等化:使用 opencv 的 equalizehist ( ) 函数式来做直方图等化,增强影像的对比度,将图片的画素强度分布拉伸。如果一张图的像素分布非常集中,则意味着此图颜色都很接近,不容易看出细节,直方图等化后的图,从最白到最黑分布会很平均,从而增强了影像的对比度。
30.步骤s2,人脸侦测:使用opencv里的detectmultiscale函数式,检测出图片中所有人脸并存入阵列中,然后使用facecascade分类器,对人脸进行矩形框标注。
31.detectmultiscale函数式的参数设定如下:参数1,image:待检测图片,为图片前处理后的图片;参数2,objects:图片中被检测物体的矩形框矢量组;图片中的脸被找到后存入矩形框矢量组;参数3,scalefactor:表示在前后两次相继的扫描中,搜索窗口的比例系数,默认为1.1,即每次搜索窗口依次扩大10%;参数4,minneighbors:表示构成检测目标的相邻矩形的最小个数(默认为3个),本方案使用2;如果组成检测目标的相邻矩形个数小于其值会被排除,若函数式不做任何操作就返回所有的被检候选矩形框,防止误检测;参数5,flags:使用默认值0或cv_haar_scale_image,此参数使其不缩放分类器而是缩放图像;
参数6、7,minsize和maxsize:用来限制得到的目标区域的范围;本方案中,minsize为size(300,300),小于此值的脸将被忽略;maxsize不作设置。
32.步骤s3,判断是否有侦测到人脸:如果有,则进行步骤s4;否则,判断上一帧图片是否有侦测到人脸,如果有,则根据侦测到人脸的上一帧图片所确定的瞳孔位置,进行步骤s5,否则,提取下一张图片,返回步骤s2,进行人脸侦测。
33.步骤s4,对图片做高斯平滑。高斯平滑主要目的为使图像平滑,减少噪声还有一些凸出强烈的点,提升侦测瞳孔的准确度,例如瞳孔上的反光。
34.本方案使用opencv里的gaussionblur函数式;该函数式,除了输入输出图以外,有两个参数可用来设置滤波效果,分别为ksize参数和sigma参数。若要有滤波效果,至少要使用其中一个参数。ksize参数和sigma参数通过转换公式进行转换。ksize参数表征滤波模板大小,越大越平滑,其值为 0,表示由 sigma参数值计算,而sigma参数值则设为0.005*侦测到脸的宽度。
35.ksize参数和sigma参数之间的转换公式如下:sigma= 0.3
ꢀ∗
((ksize
ꢀ−ꢀ
1)
ꢀ∗
0.5
ꢀ−ꢀ
1) + 0.8;ksize = 2
ꢀ∗
((sigma
−ꢀ
0.8) / 0.3 + 1) + 1。
36.由上述公式可知,若sigma参数值太小,ksize参数值可能为负值;若ksize参数值为负值,则无平滑效果(因为ksize参数值须为正值),也就是说sigma参数值至少需大于0.3。由于本方案,使用 300x300 作为最小可侦测到的人脸大小(即minsize为size(300,300)),sigma参数值设为0.005*脸的宽度,也就是说sigma参数值最小为 1.5,因此人脸均会用高斯平滑做处理。本方案,将sigma参数值设为与人脸宽度成正比,其优点在于:人脸够大可以做更模糊的处理,人脸太小则滤波效果较不明显甚至不做滤波,以免脸糊掉找不到眼球。
37.例如,当sigma参数值为1.5或者2.5时,则脸宽为300或500;如果图片的分辨率为720

960,则一张脸宽为300或500的脸,应该能占据大部分的图片空间,有利于后续的瞳孔的侦测。
38.步骤s5,瞳孔侦测,并得到瞳孔位置坐标:采用梯度法侦测瞳孔中心,瞳孔中心所在坐标,即为瞳孔位置坐标。
39.本方案的瞳孔侦测,采用fabian timm和erhardt barth发表在visapp 2011 computer science的《accurate eye center localisation by means of gradients》,其推导出在环形图案中心达到最大值的数学函数,该函数的最大值对应于大多数梯度矢量相交的位置,从而对应于眼睛的中心。当然,也可以采用其他方法,例如,申请号201410321481.6为中国的发明专利《自然光照正面人脸图像中的眼睛中心点定位的方法》,其公开以眼睛区域的内外眼角点的连线作为计算起点,采用圆积分求梯度法计算最大相应点,该点为眼睛的中心点。
40.图2为图片的瞳孔中心标记图;如图2所示,外框为人脸,内框为眼睛范围,十字标记为瞳孔中心。
41.步骤s6,计算瞳孔位置:瞳孔位置为左瞳孔与右瞳孔的平均值,即:w(x)=l(x)
×
0.5+r(x)
×
0.5;w(y)=l(y)
×
0.5+r(y)
×
0.5;
其中,l(x)为图片中的左眼的x坐标;l(y)为图片中的左眼的x坐标;r(x)为图片中的右眼的x坐标;r(y)为图片中的右眼的y坐标;w(x)为瞳孔位置的x坐标;w(y)为瞳孔位置的y坐标。
42.步骤s7,提取下一张图片,并返回到步骤s1,直到所有图片处理完毕,然后进行步骤s8。
43.步骤s8,坐标校正。
44.得到所有瞳孔位置后,提取瞳孔观看矩形幕布角落四点的图片坐标,并根据图片坐标和幕布坐标的比例对应关系,将瞳孔在摄像头里的坐标w校正为幕布上的坐标s。
45.图3为坐标校正的示意图;如图3所示,瞳孔先分别观看幕布角落的四个点,得到幕布角落的四个点在图片的坐标w,分别为(w
lt
(x)、w
lt
(y))、(w
lb
(x)、w
lb
(y))、(w
rt
(x)、w
rt
(y))、(w
rb
(x)、w
rb
(y));其中,下标l或r分别表示瞳孔正在观看幕布最左方或最右方,下标t或b表示瞳孔正在观看幕布最上方或最下方,(w
lt
(x)、w
lt
(y))表示瞳孔观看幕布左侧上方点时图片中瞳孔位置的坐标,(w
lb
(x)、w
lb
(y))表示瞳孔观看幕布左侧下方点时图片中瞳孔位置的坐标,(w
rt
(x)、w
rt
(y))表示瞳孔观看幕布右侧上方点时图片中瞳孔位置的坐标,(w
rb
(x)、w
rb
(y))表示瞳孔观看幕布右侧下方点时图片中瞳孔位置的坐标。
46.然后,计算瞳孔观看幕布时瞳孔位置坐标的最大值和最小值:x
min
=(w
lt
(x)+w
lb
(x))/2;y
min
=(w
lt
(y)+w
rt
(y))/2;x
max
=(w
rt
(x)+w
rb
(x))/2;y
max
=(w
lb
(y)+w
rb
(y))/2;其中,x
min
表示瞳孔观看幕布时瞳孔位置x坐标最小值,y
min
表示瞳孔观看幕布时瞳孔位置y坐标最小值,x
max
表示瞳孔观看幕布时瞳孔位置x坐标最大值,y
max
表示瞳孔观看幕布时瞳孔位置y坐标最大值。
47.最后,根据图片坐标和幕布坐标的比例对应关系,计算幕布坐标s:s(x)=((w(x)-x
min
)*width)/(x
max

x
min
);s(y)=((w(y)-y
min
)*height)/(y
max
−ymin
);其中,s(x)表示幕布的x坐标;s(y)表示幕布的y坐标;width表示幕布的长度;height表示幕布的宽度。
48.通过本方案,把追踪到的瞳孔位置转换成幕布位置,从而开发以下应用场景:例如:阅读。用户先看向屏幕的四个角落进行校正,校正完成后,即可开始阅读网页或者文章。当阅读到最下方区域时,网页或文章自动向上移动,然后就可以继续观看下方的内容,一直到网页或文章的最底部为止。相反地,如果向上看到接近网页或文章顶部时,网页或文章自动向上移动。
49.本方案,是在图4和图5的两种的基础技术方案的基础上,做了改进。
50.图4为第一种基础技术方案的流程图,图4中,要先找出人脸,再在人脸的范围内(即一阵列或矩阵),找出眼睛范围,最后找出瞳孔位置。但是其有一个缺点,如果找不到人脸就无法侦测瞳孔。例如,因为脸部没有全部在影像内、遮住口鼻或是有物体挡住脸部等,瞳孔的标记都会消失。
51.图5为第二种基础技术方案的流程图。图5的技术方案,改善了图4方案的缺陷。图5
的技术方案,先侦测到一次人脸找到瞳孔位置后,不再使用侦测脸部找出眼睛范围,而是改为上一帧影像侦测到的瞳孔位置来估计出眼睛范围,即以前一次瞳孔中心作为这一次的眼睛范围中心。然后其也有一个缺点,瞳孔位置若因为物体干扰偏掉,很有可能就会整个往外偏(偏往较黑的地方)。
52.图1是本发明的流程图,其结合了图4和图5的技术方案,能够结合两者的优点,在能侦测到脸部的时候估计出眼睛范围找瞳孔,若这时人脸被挡住了而瞳孔还在,即可以用上一帧瞳孔位置估计出眼睛范围继续找瞳孔,避免瞳孔的标记都会消失;若又能侦测到人脸时,就又返回侦测人脸的方式,避免瞳孔偏移。本方案,既保证了瞳孔位置的准确度,又能使方案适应于人脸被挡住而无法识别的特殊状况。
53.可以理解的是,对本领域普通技术人员来说,可以根据本发明的技术方案及其发明构思加以等同替换或改变,而所有这些改变或替换都应属于本发明所附的权利要求的保护范围。

技术特征:
1.基于摄像头的瞳孔追踪方法,其特征在于,包括以下步骤:步骤s1,图片前处理:摄像头实时捕捉人眼转动的图像,首先读入图像,调整成灰阶影像,然后通过直方图等化调整影像对比度,并归一化图像亮度;步骤s2,人脸侦测:使用opencv里的detectmultiscale函数式,检测出图片中所有人脸并存入阵列中;步骤s3,判断是否有侦测到人脸:如果有,则进行步骤s4;否则,判断上一帧图片是否有侦测到人脸,如果有,则根据侦测到人脸的上一帧图片所确定的瞳孔位置,进行步骤s5,否则,提取下一张图片,返回步骤s2,进行人脸侦测;步骤s4,对图片做高斯平滑;步骤s5,瞳孔侦测:采用梯度法侦测瞳孔中心,瞳孔中心所在坐标,即为瞳孔位置坐标;步骤s6,计算瞳孔位置:瞳孔位置为左瞳孔与右瞳孔的平均值;步骤s7,提取下一张图片,并返回到步骤s1,直到所有图片处理完毕,然后进行步骤s8;步骤s8,坐标校正:提取瞳孔观看矩形幕布角落四点的图片坐标,并根据图片坐标和幕布坐标的比例对应关系,将瞳孔在摄像头里的坐标w校正为幕布上的坐标s。2.根据权利要求1所述的基于摄像头的瞳孔追踪方法,其特征在于,步骤s1,包括:步骤s101,调整成灰阶影像:对读入的图像,使用 opencv的 cvtcolor ( ) 函数式进行影像的色彩转换,参数使用cv_bgr2gray,该函数式将彩色影像中蓝、绿、红三色转换为灰阶,其转换公式如下:y= 0.299r + 0.587g + 0.114b;其中,y为输出影像的像素点灰度值,r为输入影像的红色分量值,g为输入影像的绿色分量值,b为输入影像的蓝色分量值;步骤s102,直方图等化:使用 opencv 的 equalizehist ( ) 函数式来做直方图等化。3.根据权利要求1所述的基于摄像头的瞳孔追踪方法,其特征在于,步骤s2中,detectmultiscale函数式的参数设定如下:参数1,image:待检测图片,为图片前处理后的图片;参数2,objects:图片中被检测物体的矩形框矢量组;图片中的脸被找到后存入矩形框矢量组;参数3,scalefactor:表示在前后两次相继的扫描中,搜索窗口的比例系数,采用默认值为1.1,即每次搜索窗口依次扩大10%;参数4,minneighbors:表示构成检测目标的相邻矩形的最小个数,本方案使用2;如果组成检测目标的相邻矩形个数小于其值会被排除,若函数式不做任何操作就返回所有的被检候选矩形框;参数5,flags:使用默认值0或cv_haar_scale_image,此参数使其不缩放分类器而是缩放图像;参数6、7,minsize和maxsize:用来限制得到的目标区域的范围;本方案中,minsize为size(300,300),小于此值的脸将被忽略;maxsize不作设置。4.根据权利要求1所述的基于摄像头的瞳孔追踪方法,其特征在于,步骤s4中,高斯平滑,使用opencv里的gaussionblur函数式;该函数式,有ksize参数和sigma参数;ksize参数表征滤波模板大小,其值为 0,表示由 sigma参数值计算,而sigma参数值则设为0.005*侦测到脸的宽度。5.根据权利要求1所述的基于摄像头的瞳孔追踪方法,其特征在于,步骤s6中,计算瞳
孔位置的坐标:w(x)=l(x)
×
0.5+r(x)
×
0.5;w(y)=l(y)
×
0.5+r(y)
×
0.5;其中,l(x)为图片中的左眼的x坐标;l(y)为图片中的左眼的x坐标;r(x)为图片中的右眼的x坐标;r(y)为图片中的右眼的y坐标;w(x)为瞳孔位置的x坐标;w(y)为瞳孔位置的y坐标。6.根据权利要求1所述的基于摄像头的瞳孔追踪方法,其特征在于,步骤s8中,瞳孔先分别观看幕布角落的四个点,得到幕布角落的四个点在图片的坐标w,分别为(w
lt
(x)、w
lt
(y))、(w
lb
(x)、w
lb
(y))、(w
rt
(x)、w
rt
(y))、(w
rb
(x)、w
rb
(y));其中,下标l或r分别表示瞳孔正在观看幕布最左方或最右方,下标t或b表示瞳孔正在观看幕布最上方或最下方,(w
lt
(x)、w
lt
(y))表示瞳孔观看幕布左侧上方点时图片中瞳孔位置的坐标,(w
lb
(x)、w
lb
(y))表示瞳孔观看幕布左侧下方点时图片中瞳孔位置的坐标,(w
rt
(x)、w
rt
(y))表示瞳孔观看幕布右侧上方点时图片中瞳孔位置的坐标,(w
rb
(x)、w
rb
(y))表示瞳孔观看幕布右侧下方点时图片中瞳孔位置的坐标;然后,计算瞳孔观看幕布时瞳孔位置坐标的最大值和最小值:x
min
=(w
lt
(x)+w
lb
(x))/2;y
min
=(w
lt
(y)+w
rt
(y))/2;x
max
=(w
rt
(x)+w
rb
(x))/2;y
max
=(w
lb
(y)+w
rb
(y))/2;其中,x
min
表示瞳孔观看幕布时瞳孔位置x坐标最小值,y
min
表示瞳孔观看幕布时瞳孔位置y坐标最小值,x
max
表示瞳孔观看幕布时瞳孔位置x坐标最大值,y
max
表示瞳孔观看幕布时瞳孔位置y坐标最大值;最后,根据图片坐标和幕布坐标的比例对应关系,计算幕布坐标s:s(x)=((w(x)-x
min
)*width)/(x
max

x
min
);s(y)=((w(y)-y
min
)*height)/(y
max

y
min
);其中,s(x)表示幕布的x坐标;s(y)表示幕布的y坐标;width表示幕布的长度;height表示幕布的宽度。

技术总结
基于摄像头的瞳孔追踪方法,属于计算机视觉图像处理技术领域,包括以下步骤:步骤S1,图片前处理;步骤S2,人脸侦测;步骤S3,判断是否有侦测到人脸:如果有,则进行步骤S4;否则,判断上一帧图片是否有侦测到人脸,如果有,则根据侦测到人脸的上一帧图片所确定的瞳孔位置,进行步骤S5,否则,提取下一张图片,返回步骤S2,进行人脸侦测;步骤S4,对图片做高斯平滑;步骤S5,瞳孔侦测;步骤S6,计算瞳孔位置;步骤S7,提取下一张图片,并返回到步骤S1,直到所有图片处理完毕,然后进行步骤S8;步骤S8,坐标校正。本方案,既保证了瞳孔位置的准确度,又能使方案适应于人脸被挡住而无法识别的特殊状况。方案适应于人脸被挡住而无法识别的特殊状况。方案适应于人脸被挡住而无法识别的特殊状况。


技术研发人员:吴正中 张辉 常海利 王晓东 邓能文 武涛 刘喆
受保护的技术使用者:北京城建智控科技股份有限公司
技术研发日:2023.05.22
技术公布日:2023/8/9
版权声明

本文仅代表作者观点,不代表航空之家立场。
本文系作者授权航家号发表,未经原创作者书面授权,任何单位或个人不得引用、复制、转载、摘编、链接或以其他任何方式复制发表。任何单位或个人在获得书面授权使用航空之家内容时,须注明作者及来源 “航空之家”。如非法使用航空之家的部分或全部内容的,航空之家将依法追究其法律责任。(航空之家官方QQ:2926969996)

飞行汽车 https://www.autovtol.com/

分享:

扫一扫在手机阅读、分享本文

相关推荐