技术领域
[0001] 本
发明涉及一种基于DSP-PC机器视觉系统的
人机交互装置,特别是一种将用户手部各关节
位姿精确映射到
虚拟环境的数据手套及其
数据采集处理方法。 背景技术
[0002] 在虚拟制造系统、数字化娱乐系统、医疗培训系统和
机器人遥
操作系统中,手势交互是一种普遍的交互方式。 广义的手势交互,不仅要获取宏观的手型,而且需要获取手部各关节的位姿,因此手势交互通常由数据手套来实现。 数据手套利用
传感器测量用户的手部运动,获取测量数据映射到虚拟手,通过虚拟手来实现人机交互功能。 [0003] 传统数据手套主要依靠光纤或
压电传感器实现测量,需要通过增加传感器的数目提高测量的
精度,而传感器数目的增长,将大大增加数据手套的制造、测试难度和生产成本。 而用户对于数据手套的需求,一方面需要高精度的虚拟手运动实现操作,另一方面需要考虑到系统的成本对产品开发的影响。 精度与成本的矛盾制约着数据手套的推广与应用。
[0004] 在需要获取手部精确位姿的操作中,传统数据手套一般配合一定的
位置跟踪设备使用。 这些
位置跟踪装置一方面有些跟踪设备会限制人体的运动,影响交互的自然性,另一方面单独配套跟踪设备增加了系统的成本。 与此同时,数据手套配备的虚拟手模型多数仅用于简单的演示和标定,无法实现虚拟手的参数化调整,很大程度上影响应用虚拟手进行精确的操作。
[0005] 目前有一些数据手套采用了有别于传统数据手套的工作模式,如采用CCD传感器进行工作的数据手套,但这些基于视觉数据手套采用了单纯PC机的系统进行
图像采集与
数据处理。 要提高
运动跟踪捕捉的精度,
图像处理算法复杂度也随之增长,PC机的CPU和内存等资源的使用率就会大大增加,因此在这类数据手套的使用中,可能导致PC机上运行的
虚拟现实系统实时性的降低。
发明内容
[0006] 本发明针对传统数据手套用户适应性差、标定过程繁琐、维护困难并且价格昂贵等问题,同时考虑到虚拟现实应中的实时性要求,提供一种基于机器视觉的新型数据手套,使用视觉传感器实现数据手套对手部运动的采集。 提出并且设计适合于多用户舒适佩戴、具有丰富表面纹理特征的手套,开发嵌入式实时图像采集处理单元,将CCD相机采集的图像
信号进行数字化,采用视频处理芯片DM642实现手套斑纹的检测、识别和跟踪,获取手部关键点的位置 信息,通过网线将图像处理结果传输到PC机。基于PC机建立了虚拟手演示与交互单元,该单元包含一个参数化可调的虚拟手模型,根据对当前用户手部的生理参数的测量结果进行模型尺寸的修正,并从图像采集处理单元获取信息计算手部的位置和
手指的弯曲
角度,驱动虚拟手运动,支持数据手套在人机交互中的应用。
[0007] 本发明的目的是这样实现的:一种基于DSP-PC机器视觉系统的斑纹式数据手套,其特征在于:采用两个CCD相机对用户佩戴的手套进行实时图像采集,每个相机安装有满足捕捉范围的定焦镜头,通过DSP及PC机进行数据处理实现手部运动的跟踪捕捉功能,用于实现手部位姿测量,其中,还提供嵌入式实时图像采集处理单元,将CCD相机采集的图像信号进行数字化,采用视频处理芯片DM642实现手套斑纹的检测、识别和跟踪,还具有基于PC机的虚拟手演示与交互单元,该单元包含一个参数化可调的虚拟手模型,根据对当前用户手部的生理参数的测量结果进行模型尺寸的修正,并从图像采集处理单元获取信息计算手部的位置和手指的弯曲角度,驱动虚拟手运动,用于虚拟环境中的运动演示及人机交互。
[0008] 通过分析人手的生理构造、运动模型和运动特点,设计一种新型的斑纹式数据手套,即利用
颜色和图形对具有伸缩性的手套表面进行编码,并绘制成斑纹,使之对应于手的几何特征和运动特征,利用对斑纹的识别与跟踪来确定手部的运动。 在
手腕部粘贴表征左右手的标志(右手为字母R,左手为字母L),通过模板匹配的方法实现对手部根
节点位置的跟踪。 对于指尖位置的获取,则采用较为通用的运动目标跟踪算法Camshift算法。 为了使指尖部分的特征适用于Camshift算法,每个指尖指节分别采用不同的颜色。 拇指则测量掌腕骨相连的关节的位置,与小指相连的掌骨的位置,也采用同样的方法获取。 在手指的关节处用三色环带用于对不同手指进行编码,根据红、黄、蓝颜色的不同排列,可以判断运动变化所发生的手指。 在获取关节的位置的同时,跟踪手套上的色
块,即可确定手掌形状的变化。将上述算法在视频处理芯片DM642上实现,开发嵌入式实时图像采集处理单元,保证PC机上运行系统的实时性。
[0009] 图像采集处理单元通过网线将图像处理结果传输到PC机,基于PC机的Windows操作系统,开发基于PC机的虚拟手演示及交互单元,从手指上的三角形点和圆点的分布信息中发现图像各
帧所对应的高维数据内蕴的低维结构,将其与手指的运动相对应,实时获取指关节的角度,同时建立参数化可调的虚拟手模型,在用户佩戴数据手套后,利用机器视觉系统获取手部图像,静态测量并计算当前用户手部的生理参数,对虚拟手虚拟手模型进行修正。
[0011] 1、基于DSP-PC机器视觉系统的斑纹式数据手套是使用CCD相机对用户佩戴的手套进行实时图像采集,通过DSP及PC机进行数据处理实现手部运动的跟踪捕捉功能。 传感器和 数据处理单元不是嵌入到手套中而是与手套相互独立,简化了数据手套的结构。 CCD相机和视频处理芯片DM642等
硬件设备价格相对低廉,有利于降低数据手套的成本。
[0012] 2、基于DSP-PC机器视觉系统的斑纹式数据手套,采用了
嵌入式系统和PC机协同的工作模式,将图像处理、跟踪和
三维重建等复杂度较大的算法
固化到DSP中实现,而将涉及到图形界面和人机交互的模块交给PC机,实现了计算资源的优化配置,能够满足数据手套在虚拟现实系统中应用的时性要求。
[0013] 3、基于DSP-PC机器视觉系统的斑纹式数据手套将手部根节点位置的跟踪功能与手部关节位姿的测量功能集成到同一体系结构下,因此无需附加其它位置跟踪设备使用,消除了这些位置跟踪装置对人体的运动的限制,可改善交互的自然性。 [0014] 4、基于DSP-PC机器视觉系统的斑纹式数据手套配备参数化的柔性虚拟手模型,实现基于用户手部尺寸的标定,可简化标定的过程,提高虚拟手模型运动的精确度。
附图说明
[0015] 图1为本发明基于机器视觉的斑纹式数据手套系统结构示意图:1-CCD相机1;2-CCD相机2;3-相机
支架;4-视频传输线1;5-视频传输线2;6-斑纹式数据手套;
7-实时图像采集处理单元;8-网线;9-PC机;10-
工作台;
[0016] 图2为斑纹式数据手套表面纹理编码图:11-指尖标记;12-手指识别纹理;13-指节斑块;14-手掌色块;15-手部根节点标记;
[0017] 图3为嵌入式实时图像采集处理单元硬件
框架图:16-
模数转换器1;17-模数转换器2;18-JTAG;19-复位;20-复位;21-电源;22-以太网;23-SDRAM;24-FLASH;25-视频处理芯片DM642;
[0018] 图4为虚拟手演示与交互单元核心算法
流程图:26-流程开始;27-更新数据集;28-
降维;29-降维后的数据极;30-四元数表达;31-关节角转换。 具体实施方式
[0019] 以下结合
实施例和附图对本发明作进一步说明:
[0020] 参照图1所示,1和2是两个CCD相机,每个相机安装有根据捕捉范围确定景深参数的镜头,这两部带有视觉器的设备,是实现手部位姿测量的硬件
基础。 3是CCD相机的安装支架,支架的滑动
导轨上具有标尺,保证相机在同一平面,可以精确调整两部相机的安装位置。 1和2两部相机将捕捉到斑纹式数据手套6的图像通过视频传输线4和5传输实时图像采集 处理单元7,实时图像采集处理单元7将CCD相机采集的图像信号进行数字化,采用视频处理芯片DM642实现手套斑纹的检测、识别和跟踪,获取手部关键点的位置信息,通过网线8将图像处理结果传输到PC机9,用户手部的活动空间限制在工作台10的范围内。
[0021] 图2是斑纹式数据手套表面纹理编码图,系统的图像处理模块是根据图2的编码方法进行工作的。 11为指尖标记,除拇指之外的4指的指尖均用一种颜色标识。 12为采用红、黄、蓝三种颜色进行排列组合编码的手指识别纹理,与指尖的颜色对应,提高运动捕捉的准确性。 13为指节斑块,不仅包括圆形斑块,也包括三角形斑块,斑纹
覆盖整个指节。 用户的手部的旋转可能是任意的,数目众多的离散的斑块增加了在任意角度捕捉成功的可能性。 14为附着在手掌上的橙色和黄色色块,用于实现掌骨运动的捕捉。15附着在腕部,用来标识手部根节点,黑白相间带有“R”字样的标志,既可用于标识左右手(左手标记为字母L),又可通过模板匹配的方法实现对手部根节点位置的跟踪。 [0022] 图3是嵌入式图像采集处理单元硬件框架图,16和是17均为PHILPS公司生产的专用于
视频信号的模数转换器SAA7115,可将CCD相机的视频信号转换为
数字化信号,通过视频输入端口VP1和VP2输入25视频处理芯片DM642,DM642的最小系统包括
18JTAG、19复位、20时钟和21电源。 DM642
访问外存储模块23SDRAM和24FLASH时必须通过EMIF
接口,处理后的图像信息通过EMAC接口发送到22以太网并传输至PC机。 图像采集处理单元的算法实现程序在VC环境下采用OpenCV开发,由于OpenCV的函数不能直接移植到DSP的集成开发环境CCS中,所以通过OpenCV在TI C6000系列芯片上的嵌入式版本EMCV的基础数据结构和函数进行程序改写,再将改写后的程序通过CCS烧写到DM642,从而将手部运动跟踪捕捉算法固化到实时图像采集处理单元,被固化的算法的基本实现步骤如下:
[0023] (1)手部根节点位置的跟踪:利用模板匹配的方法实跟踪手腕部的R标志,返回手部根节点的位置。
[0024] (2)图像的分割:在手部根节点附近的区域,通过图像平滑、边缘处理的过程对图像进行分割,去除噪声,得到手的轮廓边界,将手从背景中分离出来。 [0025] (3)颜色空间的转换:将图像从RGB空间变化到HSV空间,为Camshift算法的应用做准备。
[0026] (4)Camshift算法搜索:利用Camshift算法搜素,获取各色块的质心,实现制定部位的位置跟踪。 可以设定搜索窗的最小尺寸,避免将较小的圆点和三角形作为搜索目标。
[0027] (5)特征点的匹配:典型的获取对应特征点的方法是,是利用
图像序列间
像素的面积相关性或特征相关性,以相似性测度作为目标函数,驱动搜索的进行。 在这里不同视图上对应的特征点即同种颜色的同类标志的质心,因此手套的使用可以减少特征点匹配时的计算量。
[0028] (6)关键位置的计算:根据匹配点的信息进行三维重建,获得所需指节及掌骨的位置。
[0029] 以上算法的代码首先在VC环境下开发,实现后在TI公司的CCS的集成开发环境中进行改写和算法的分解,调试、分析后最终形成DSP的应用程序。 [0030] 图像处理结果通过网线传输到PC机,基于PC机的虚拟手演示与交互单元根据从实时图像采集处理单元获取的信息计算手指的弯曲角度。 由于各手指均用不同的三色环组合进行标记,所以将不同的三色带存储为模板,优先从
软件模块接收的图像中搜索某种颜色的三色带,获取各三色带两侧临近区域并划分网格,将同颜色的三角形斑块和圆形斑块对网格区域的覆盖作为高维空间的数据分布。 核心算法流程如图4所示,26为第n帧图像的捕捉,在完成捕捉后进行27,用第n帧图像替换样本集中时序最先的图像,实现数据集的更新,进入到28应用流形学习中的ISOMAP算法进行降维。流形学习可以发现数据内蕴的低维结构,手部运动的内蕴结构的维度为4。 在29中得到低维空间中的样本集并在动态
渲染的过程中不断更新样本集。 由于4维的内蕴结构在图形几何中可以同4元数对应因此可以通过对一定数量的样本进行学习,得到这些4维数据与4元数之间的关系,在30中将数据表达成4元数的形式,最终转换成31中的手指关节角,得到实时的手指
关节角度变化。 将以上步骤中获取的位置方向信息映射到虚拟手模型,驱动虚拟手运动。虚拟手模型应用OpenSceneGraph建立并实现参数化调整,使其能够在虚拟环境中实现人机交互的功能。