一种基于姿态识别的全景观测方法与流程

文档序号:11608937阅读:391来源:国知局
一种基于姿态识别的全景观测方法与流程

本发明属于计算机技术领域,尤其针对头部姿态识别与裸眼3d技术在疲劳驾驶中的应用,具体涉及一种基于姿态识别与裸眼3d技术的全景观测方法。

技术背景

汽车作为现代交通最重要的载运工具,其安全性问题成为焦点。虽然各色智能化的汽车安全系统已经相对性的提高了汽车行驶的安全性能,比如夜视,去雾器,全景泊车,但是现有的技术仍旧不能够将汽车的安全系统作为一个整体进行控制,汽车的安全模式不能够达到最大化的利用和整合,仅仅针对某一种情况采取相应的安全措施,不能够做到对多种行驶环境进行处理。

为了提高汽车行驶的安全性,进一步优化汽车安全系统,汽车功能的智能化应运发展。本发明将裸眼3d应用于汽车周边环境的显示,能够更加真实立体的反映车外路况,同时通过人脸姿态识别技术,用摄像头采集含有头部姿态信息的图像,并自动在图像中检测和跟踪人的姿态,进而通过人的姿态来对车外摄像头采集进行相应的控制,具有便捷性,安全性的特点。且本发明通过增加去雾、夜视、防逆光、防强光等技术,增强了系统自身的实用性。本发明提供了一套完整的汽车安全系统方案,符合时代发展的潮流,增强驾驶安全性,促进汽车智能化发展。



技术实现要素:

本发明主要通过计算机对人脸姿态采集并且识别来控制车外球机(球形摄像机)的转动,提供一种基于姿态识别的全景观测方法。从而将球机捕捉到的图像经过特殊处理后通过显示屏反馈给驾驶员,另外还加入三个负反馈环节来让系统自我调节稳定性。

传统的全景观测系统是通过汽车外安装四个固定视角的摄像头将画面传入车内显示屏上并利用图像拼接技术将各个摄像头捕捉到的画面拼接而显示。

本发明所述的创新点在于:

1.检测车内司机人脸的姿态,经过关键点定位后求出与正脸关键点坐标之间的仿射矩阵,计算偏航角,并将经过放大后的偏航角输入给球机。

2.将球机捕捉到的画面经过去雾、夜视、防逆光等特殊处理后传送给显示屏。

3.将处理完的图像转化为双目视差图,便于利用裸眼3d显示屏显示。

本发明采用关键点标记和透视变换的方法让计算机识别人脸的偏航角和俯仰角,球机在球机根据偏转角度调节自身转速,以快速达到稳定,继续捕获图像。同时利用单位负反馈调节画面的亮度和对比度,从而使得所采集的画面能够达到相对较为清晰,便于直接做图像处理。并且直接利用外部转动状态一致的两个球机捕捉的双目视差图,而后经过处理成为裸眼3d图像显示。

本发明解决其技术问题所采用的技术方案具体包括如下步骤:

步骤1.在车辆外部安装四个球形摄像机;其中,两个球形摄像机用于拍摄车辆前景,称为前景球机;另两个球形摄像机用于拍摄车辆后景,称为后景球机;

步骤2.检测车内驾驶人员的人脸姿态,得到人脸的偏航角和俯仰角,并将其输入给前景球机或后景球机;

步骤3.前景球机或后景球机根据输入的人脸的偏航角和俯仰角,偏转相应的偏航角和俯仰角后捕捉外景,并将外景图片传送给车辆内部的数据处理单元;

步骤4.数据处理单元将收到的外景图片,即双目视差图,处理成为裸眼3d图像传送给车辆内的显示屏。

进一步的,步骤1所述的检测车内驾驶人员的人脸姿态,得到人脸的偏航角和俯仰角的方法为:

1-1.利用不偏人脸分类器对车内摄像头拍摄的图片进行人脸检测,如果是正脸图像,则开始进行关键点定位,得到正脸图像的关键点集,即标准模型;

1-2.对车内摄像头当前拍摄的图片进行人脸检测,并对检测出的人脸进行关键点定位,得到关键点集,即待测模型;

1-3.计算标准模型的纵向最大距离y0,计算待测模型的纵向最大距离y,得到俯仰角θ=arccos(y/y0);计算标准模型的横向最大距离x0,计算待测模型的横向最大距离x,得到偏航角θ′=arccos(x/x0)。

进一步的,所述关键点定位方法为:

①对人脸图片数据库中的每一张图片,根据标注的m个关键点计算该图片的平均脸点集;

②对人脸图片数据库中的每一张图片,对选中图片中标注的所有关键点,根据先后顺序依次进行遍历,每次遍历操作如下:以当前关键点为中心,m个像素值为边长对当前关键点作正方形,截取选中图片中相应位置作为一补丁图片;

③将人脸图片数据库中所有图片的同一位置关键点i对应的补丁图片取平均,得到该关键点i对应的平均补丁xi;

④对步骤①获得的平均补丁xi进行灰度化,且对灰度化后的像素值进行直方图均衡化;其中,每一个平均脸点集包含的关键点为x0,x1,x2,x3,x4......xm;之后调用分类器对车内摄像头拍摄的图片进行人脸检测,计算出人脸的中心坐标,将平均脸点集的每一个关键点的坐标加上检测出的人脸的中心坐标得到新的点集;

⑤在检测出的人脸上找到该新的点集坐标对应的所有关键点,根据先后顺序依次进行遍历,每次遍历操作如下:以当前关键点为中心,m′个像素值为边长对当前关键点作正方形,截取该检测出的人脸中相应位置xi″,其中m′>m;并且在m′×m′的区域内创建滑框,依次选取该滑框内m×m的区域与平均补丁xi做卷积,找出卷积结果出现的像素值最大的点,并且标上记号。

进一步的,计算该图片的平均脸点集的方法为:

①对人脸图片数据库中的每一张图片,标注多个关键点并保存每一关键点的坐标;

②将人脸图片数据库中所有的图片转化为灰度图,并对图片的像素值进行直方图均衡化;

③对人脸图片数据库中的每一张图片,针对该图片中的所有关键点坐标,分别减去该图片的重心坐标,并归一化后求出普氏距离;

④根据最小二乘法求出当普氏距离最小时的旋转参数;

⑤根据旋转参数对该图片的各个关键点的坐标进行对齐,然后求出各个关键点位置的平均坐标;

⑥将得到的各平均坐标构成的点集称作该图片的平均脸。

进一步的,通过对标准模型和待测模型作最小外接矩形后求外接矩形的边长得出x、x0、y和y0。

进一步的,该数据处理单元对收到的外景图片进行预处理,其方法如下:

利用雾图模型对该外景图像i(x)进行去雾处理,得到无雾的图像j(x),

i(x)=j(x)t(x)+a(1-t(x))

其中,a是全球大气光成分,t(x)为透射率。

进一步的,该数据处理单元对收到的外景图片进行预处理,其方法为:首先将该外景图像灰度化,即将三通道的图像转为单通道的图像;然后根据人眼对不同范围内的灰度值的敏感程度不同,将灰度值划分为各个不同的范围,对每一灰度值范围选取一对应的线性函数;然后根据该外景图像各点的灰度值判断各自所属灰度值范围,找出各个点在原三通道图像中的对应点;然后对于三通道图像各对应的点,根据对应的线性函数对该点进行相应的分段线性灰度变换。

进一步的,将所述裸眼3d图像的显示方法为:

①初始化图像的亮度b=125,对比度系数a=0.7;

②依据图像的灰度值b*对原三通道图像进行分段线性调节,即b*∈(0,16),则g(i,j)=3*f(i,j),b*∈(16,80),则g(i,j)=2*f(i,j)+16,b*∈(80,94),则g(i,j)=3*f(i,j)-45,b*∈(94,255),则g(i,j)=0.11*f(i,j)+226.7;f(i,j)表示原图像像素,g(i,j)表示目标图像像素。

进一步的,该数据处理单元生成裸眼3d图像的方法为:

①对双目视差图进行眼模版匹配,得到左眼视锥平移矩阵和左眼视锥投影矩阵;

②构造左眼的视锥平移与投影模型、右眼的视锥平移与投影模型;然后结合左眼视锥平移矩阵和左眼视锥投影矩阵得到左、右眼非对称锥体的左右顶点;

③设置左视图矩阵和左投影矩阵,右视图矩阵和右投影矩阵;

④由非对称锥台体的几何关系得到双目所对应的非对称锥体的前剪裁面左下角和右上角的坐标,然后将坐标变换为显示屏上对应的坐标,生成裸眼3d图像。

进一步的,所述裸眼3d图像的标准过渡时间t0在范围内。

与现有技术相比,本发明的优势:

与传统的图像拼接技术相比,利用姿态识别控制的全景观测使得视角更为灵活,能够使屏幕有效地利用,另外加上图像处理技术使得画面更为清晰,能够使司机在恶劣的环境下也能看清楚路况,而且现有的红外夜视仪因价格昂贵而无法得到普遍应用,用图像处理加以实现的夜视功能,正好弥补了这一缺陷。另外有三个负反馈环节能够使得系统抗干扰能力增强,无需人为干预的情况下就能自我达到稳定。在裸眼3d屏幕的显示下,使得司机对外景更为敏感,更有身临其境的体验,能在开车的同时方便地控制视角并且看清外景,不受环境影响。

本发明人为的按键切换前两个球机或者后两个球机来确定显示屏上的内容是前景或是后景,计算机对人脸的姿态进行识别,并且将人脸的偏航角和俯仰角输入给两个球机,这样能人为地控制球机的转动,球机偏转相应的偏航角和俯仰角而捕捉外景,将捕捉到的画面经过去雾、夜视、防逆光等处理后传送给显示屏,显示屏将两个球机捕捉到的图像组合成双目视差图通过裸眼3d显示屏呈现给用户。而且该系统还加入三个负反馈环节起到自我稳定的作用,人为设定一个标准过渡时间t0,那么负反馈环节能控制球机的转速使得球机的过渡时间稳定在t0,另两个负反馈环节能够自我调节亮度值和对比度,使得图像的清晰度能够自我稳定在一定的范围内。

附图说明:

图1是全景观测系统原理的方框图。

图2是俯仰角的计算原理示意图。

图3是偏航角的计算原理示意图。

图4(a)是图像处理的去雾处理流程图;

图4(b)是图像处理的夜视、防逆光图像处理流程图。

图5是非对称锥台体的几何关系示意图。

具体实施方式:

下面结合附图和实施例对本发明作进一步说明。

本发明所述的创新点在于姿态识别、图像处理、裸眼3d,具体的:1.检测车内司机人脸的姿态,经过关键点定位后求出与正脸关键点坐标之间的仿射矩阵,计算偏航角,并将经过放大后的偏航角入给球机。

2.将球机捕捉到的画面经过去雾、夜视、防逆光等特殊处理后传送给显示屏。3.将处理完的图像转化为双目视差图,便于利用裸眼3d显示屏显示。

本发明主要分为姿态识别、图像处理、裸眼3d三个模块组成。

一种基于姿态识别的全景观测方法,其具体的实施过程包括如下步骤:

步骤1:人脸图像预处理及平均脸计算

搜集人脸图片数据库,每一张图片手动标明68个关键点,并且求出关键点的坐标。

将图片存为jpg的格式,而各个点的坐标存为txt的格式。

将图片批量转化为灰度图,并且通过对像素值进行直方图均衡化。这样做的目的是将纹理特征得以明显地显现。

用普氏方法求旋转参数a,b而后反复迭代修正,最后计算出平均脸。

procrustes方法(用于坐标点的对齐):对每一张图片68个点坐标重心都拉回原点,即每一点的坐标减去重心坐标而进行归一化后求出普氏距离:

这里(xi1,yi1)即是需要旋转对齐的目标图像中各个点的坐标,而(xi2,yi2)是待旋转的图像各个点的坐标。

根据最小二乘法求出当普氏距离最小时的旋转参数a,b:

这里面的(xi,yi)是待旋转图像各个点的坐标,而(cx,cy)是需要旋转对齐目标图像各个点的坐标,这里有68个坐标点,所以n的值为68,i是各个坐标点的标号。

上述过程反复迭代后就能求出更为精确的a,b。

将点集进行对齐:对齐之后求出各个位置的平均坐标(x0,y0),(x1,y1),(x2,y2)……(x67,y67),这些点构成的点集称作平均脸。

步骤2:对于每一幅图片都有68个坐标点,那么,以每一个坐标点为中心,10个像素值为边长,作正方形。截取图片中相应位置的补丁。记为x10,x11,x12...x167,x20,x21,x22...x267......xn67。这里第1幅训练图像标号为0的点记做x10,其它的以此类推。

步骤3:将x10,x20,x30,x40......xn0这些补丁都取出,求出平均补丁为x0。

其余的补丁也类似,不再赘述,那么一共得到68个平均补丁。

步骤4:将平均脸拿出来,平均脸中的那些点为x0,x1,x2,x3,x4......x67,在检测时,调用opencv自带的haar分类器检测人脸,一旦检测到人脸,求出被测人脸中心坐标,将平均脸点集的每一个点坐标加上被测人脸的中心坐标得到新的点集,对于新的点集,将人脸灰度化,然后对像素值进行直方图均衡化,以使得纹理特征变得明显之后,在被测人脸上找到坐标对应的这些点,并且以每一个点为中心,边长为45个像素作正方形,记为x0,x1,x2……。则x0对应的区域为x0,x1对应的区域为x1,x2对应的区域为x2......,那么在45*45的区域内创建滑框,依次选取15*15的区域,比如在x0中滑动,每捕捉一个15*15的图像就与x0做卷积。直到遍历整块45*45的区域,找出卷积结果出现的像素值最大的点,并且标上记号。这样,关键点就能够成功地进行定位了。

步骤5:计算俯仰角。如图2所示表示的是人脸抬头或低头时的情况。

将待测模型与标准模型,进行y轴方向对齐。

标准模型:人脸不偏的情况下进行关键点定位之后的关键点集,该模型是经过利用haar特征训练不偏人脸分类器,来判断车内摄像头读入的图像是否为正脸图像,如果是正脸,则开始进行关键点定位。

待测模型:在检测完正脸图像进行关键点定位之后,对车内摄像头捕获到的人脸图像进行关键点定位后的关键点集。

步骤6:图2中直角三角形斜边表示y0:标准模型纵向最大距离,直角三角形直角边y:待测模型纵向最大距离,θ角:人脸俯仰角度。

步骤7:计算俯仰角θ=arccos(y/y0)

步骤8:计算偏航角。图3所示表示的是人脸向左偏或向右偏时的情况。

将待测模型与标准模型,进行x轴方向对齐。

步骤9:图3中直角三角形斜边表示x0:标准模型横向最大距离,直角三角形直角边x:待测模型横向最大距离,θ′角:人脸偏航角度。

上述x,x0,y,y0的求法可分别通过对标准模型和待测模型作最小外接矩形后求外接矩形的边长得出。

步骤10:计算偏航角θ′=arccos(x/x0)。。

图像处理:主要分为去雾、夜视、防逆光三大板块。

如图4(a)(b)所示是数据处理单元总的流程图。

去雾:

步骤1:构建雾图模型:i(x)=j(x)t(x)+a(1-t(x))

i(x)表示有雾的图像,也即待去雾的图像,j(x)表示我们要得到的无雾的图像,a是全球大气光成分,t(x)为透射率。

步骤2:求取全球大气光值a:

(1)创建与原图大小相同的灰度图,遍历每一个像素点的三个通道,将三个通道灰度值最小通道的灰度值读取并且存放在建立好的灰度图相应位置。那么原创建好的灰度图就变成了暗通道图。

(2)从暗通道图中取亮度前0.1%的像素。

(3)在这些位置中,再在原始图像i中寻找对应的具有最高亮度的点的值,作为a值。

步骤3:求取窗口内透射率t(x):其中ω取0.8,ω(x)表示以像素x为中心的一个小窗口,a是全球大气光成分,上标c表示像素的rgb三个通道之一,i代表现有的图像(即待去雾图像)。

步骤4:还原成无雾的图像:

夜视、防逆光:

由于人眼视觉系统中人眼对灰度的分辨能力,为了突出感兴趣的目标或灰度区间,相对抑制那些不感兴趣的目标或灰度区间,故采用分段线性变换的方法来进行防逆光,夜视处理,从而改善图像视觉效果。

步骤1:将图像灰度化,即将三通道的图像转为单通道的。

步骤2:根据人眼对不同范围内的灰度值的敏感程度不同,将灰度值划分为各个不同的范围,对于各类灰度值范围选取各自的线性函数。

步骤3:读取图像各点的灰度值并且判断各自归属于什么范围。

步骤4:找出归类后的各个点在原三通道图像中的对应点。

步骤5:对于三通道图像各对应的点,根据对应的线性函数三个通道同时进行相应的分段线性灰度变换。

裸眼3d:

裸眼3d显示一般基于人眼双目视差原理,是通过光栅或透镜将显示器显示的图像进行分光,从而使人眼接收到不同的图像,这样便实现了3d显示。裸眼3d的实现方式有:视差屏蔽式、柱状透镜式、指向光源式、多层显示式。而我们采用的是柱状透镜式。

步骤1:初始化渲染模式:判断显卡是否支持四组缓冲立体功能,如果支持,则四组缓冲区分别暂存画面的左、右两画面的前、后缓冲内容。如果硬件不支持四组缓冲,只能用双缓存,则自己开内存区,以暂存另一画面内容。

步骤2:对暂存的图像进行眼模版匹配。

由汇聚式投影的三角关系可得出以下两个矩阵:

左眼视锥平移矩阵:

左眼视锥投影矩阵:

图5表示了非对称锥台体的几何关系以及各个参数代表的物理意义。

其中fnear是前剪裁面到视点的距离;ffar是后剪裁面到视点的距离,top为前剪裁面的顶端与中心点的距离,bottom为前剪裁面的底端与中心点的距离。

构造左右眼的视锥平移与投影模型,并且结合上述两个矩阵可以得到左右眼非对称锥体的左右顶点ll,lr,rl,rr。

步骤3:设置左视图矩阵和左投影矩阵,右视图矩阵和右投影矩阵。

步骤4:可由非对称锥台体的几何关系(图5)得到双目所对应的非对称锥体的前剪裁面左下角和右上角的(x,y,z)坐标,变动双目间距直接影响投影锥体左右侧面坐标的取值,进而产生不同的深度感,经过归一化处理变换为显示屏上对应的坐标。

步骤5:经过立体显示屏,展现裸眼3d立体效果。

系统优化:

该系统采用了三个负反馈环节和一个正反馈环节提高了系统的性能。

负反馈环节—调速:

标准过渡时间t0的选取依据:

1)视觉暂留现象,保证图像传输连续。

2)让人舒适,感觉不到晃眼。

物体在快速运动时,当人眼所看到的影像消失后,人眼仍能继续保留其影像,约0.1-0.4秒左右的图像,这种现象被称为视觉暂留现象。为保证系统的通用性,t0不应大于0.1s。同时为使人眼观测舒适,时间不应过短,故选取t0为0.05s。偏转角、角速度;若角度大,则调节速度快;若角度小,速度慢,整体控制t0在0.05s0.08s范围内。

负反馈环节二和三为调亮度、对比度:

亮度指画面的明亮程度,一般而言亮度越高识别效果越好,但画面过亮既容易引起视觉疲劳,同时也使对比度降低,导致整个画面发白。因此调节亮度的同时也需调节对比度。

对比度对视觉效果的影响非常关键,一般来说,对比度越大,图像越清晰越艳丽;而对比度小,图像则显得灰蒙蒙的。在动态视频显示中,对比度影响更大,由于动态图像中敏感转换较快,对比度越高,人眼越容易分辨出这样的转换过程。

已知对比度是图像最白与最黑亮度单位的比值,白色越亮、黑色越暗,对比度越高。在观察图像细节时,增大对比度,降低亮度可以使图像的立体感增强。

线性灰度变换的理论公式:

g(i,j)=a*f(i,j)+b

其中(i,j)表示像素位于第i行第j列;

参数f(i,j)表示原图像像素;

参数g(i,j)表示目标图像像素;

参数a(需要满足a>0)称为增益,用来调节对比度;

参数b称为偏置,控制图像亮度。

尽管现今并没有一套有效公正的标准来衡量对比率,但经大量实验测试对比,以调整级数255为例,满足绝大多数人视觉效果的图片及文字显示要求,一般亮度调居中125,对比度70%至80%,即178--204。

因此可设置初始值:亮度b=125,对比度系数a=0.7。

将图像灰度化之后,读取每一个点的灰度值。

具体依据灰度值b*对原三通道图像进行分段线性调节:

b*∈(0,16),则g(i,j)=3*f(i,j)

b*∈(16,80),则g(i,j)=2*f(i,j)+16

b*∈(80,94),则g(i,j)=3*f(i,j)-45

b*∈(94,255),则g(i,j)=0.11*f(i,j)+226.7

也可参考默认的标准状态,再根据个人偏好略作调整。

正反馈环节调偏转角度:

摄像头的转动情况可由人脸的姿态来控制,比如,在切换摄像头之后,仰头则摄像头上仰一定的角度,低头则摄像头下调一定的角度,此外还有左偏、右偏的情况等,摄像头均可以做出相应的动作。

因摄像头不如人眼视野宽,面部稍微偏转都是很大角度,摄像头应偏转更多以达预期效果,故引入该正反馈环节。理论公式如下:

θ*=a×θ

其中,参数θ*摄像头偏转角度;参数θ为人脸偏转角度;参数a为正反馈系数(a>1),且

在0°-30°内,a=1.5;

在30°-60°内,a=1.2;

在60°-90°内,a=1.1;

如此人脸只要偏转一个较小的角度,球机就能偏转较大范围并且捕捉图像。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1