论文部分内容阅读
本文描述了实现一个交互式立体显示系统的核心机器学习算法。主要的算法中包含三大部分的核心内容:对用户人脸的检测、对用户瞳孔的定位以及对操控手势的识别。用户人脸检测部分用于在连续视频帧图像中实时检测用户脸的具体位置以及大小,并为瞳孔定位部分提供初始候选区域。用户瞳孔定位部分服务于无辅助立体显示,在视频帧图像中定位跟踪用户瞳孔的位置。在此基础上,将存在视差的连续视频帧图像准确的投影到检测出用户的双眼瞳孔位置,使用户在不佩戴3D眼镜的情况下体验到立体显示的效果。操控手势识别是在用户观看到立体显示的同时,加入了用户对显示的视频帧画面进行操控的功能。检测到固定范围内用户手掌的位置并记录下用户手势的轨迹,经过识别后使3D显示界面针对用户的操作做出相应的响应。系统的用户人脸检测算法,利用肤色识别的方法来选取人脸的候选区域。本文特别设计了“特征绑定”的方法,选取标准人脸的“热点区域”,将传统的瀑布级联结构作出改进,调整各级强分类器内部弱分类器的排列,利用增设“热点区域”阈值的方法,提高遮挡人脸样本的检测率的同时加速标准人脸样本的检测速度。整个系统中,我们使用哈尔特征来提取人脸在各种尺度下的梯度信息,最终使用adaboost算法自适应地训练得到790个弱分类器组成各11级强分类器。相较于传统的adaboost算法和ASM算法,基于特征绑定的adaboost人脸检测有更高的鲁棒性和对遮挡人脸检测率。系统的用户瞳孔定位算法,使用人脸检测的结果和人眼在标准人脸中的几何位置来提取瞳孔定位的候选区域。首先利用3级adaboost瀑布级联结构进行人眼样本的检测,快速剔除非人眼。其后引入SVM算法,进行进一步精确检测,并定位出用户瞳孔的位置。此外,针对连续视频帧中个别瞳孔位置跳变的情况,本文在原有系统瞳孔位置输出端之后,加入卡尔曼平滑滤波器,利用视频图像的前后帧瞳孔位置关系,来矫正个别定位的噪点,使对瞳孔的定位更加稳定。系统的操控手势识别算法,借助微软Kinect的骨骼模型定位用户右手手掌的位置坐标并记录下连续帧坐标进而形成用户手势的轨迹。此后,本文设计了改进的8方向编码来提取量化手势轨迹的特征从而得到观测值序列。考虑到3D交互式系统对手势数目的大量需求,同时保证系统手势识别的实时性、减小系统模型存储消耗,本文设计了对复杂手势进行分段识别编解码的方式对手势进行识别。相应的提出了二维度滤波和拐点检测的方法,分段待识别的手势。对每个子手势段,我们使用隐马尔可夫模型进行识别分类。此外,为了更好地展现整个交互式立体显示算法的效果,本文针对性的设计了一个3D显示的立方体界面,用户可以通过手势来对立方体进行操控。