手指尖轨迹获取方法和装置
技术领域
本发明涉及模式识别技术,特别涉及一种手指尖轨迹获取方法和一种手指尖轨迹获取装置、以及一种基于手指尖轨迹的控制方法和一种基于手指尖轨迹的控制系统。
背景技术
现有技术中,对于游戏操作、电视频道切换等交互式控制过程,通常需要利用游戏手柄、鼠标、键盘、遥控器等附加的输入设备。然而,由于各种附加的输入设备不便携带,使得各种交互式控制会受到一定的限制。
发明内容
有鉴于此,本发明提供了一种手指尖轨迹获取方法和一种手指尖轨迹获取装置,能够支持无输入设备的控制。
本发明还提供了一种基于手指尖轨迹的控制方法和一种基于手指尖轨迹的控制系统,能够实现无输入设备的控制。
本发明提供的一种手指尖轨迹获取方法,设置在手指运动过程中连续进行拍摄的摄像头,该方法包括:
分别从连续拍摄到的每一幅目标图像中提取前景区域;
分别从每一幅目标图像的前景区域中获取肤色区域;并在获得的肤色区域中检测峰值点,将检测到的峰值点确定为手指尖;
按照各幅图像的拍摄顺序,将每一幅目标图像的肤色区域中被确定为手指尖的峰值点连接为手指尖轨迹。
所述在每一幅目标图像的肤色区域中检测峰值点包括:
将所述肤色区域中任一方向的坐标值为极值的肤色像素点,确定为候选峰值点;计算肤色区域在候选峰值点所在行的宽度;
从候选峰值点所在行开始,依次对肤色区域内的每行进行搜索、以确定肤色区域在每一行的宽度,并当肤色区域在当前搜索的一行的宽度、与肤色区域在候选峰值点所在行的宽度之差大于预设第一阈值时,结束所述搜索;
计算肤色区域内已完成搜索的部分区域的长度;
计算所述长度与肤色区域在候选峰值点所在行宽度的长宽比,当所述长宽比大于预设的第二阈值时,将所述候选峰值点确定为肤色区域中的峰值点。
所述肤色区域内已完成搜索的部分区域为手指候选区域;
且,所述检测峰值点之后,该方法进一步包括:对所述手指候选区域进行边缘检测,并通过所述边缘检测确认所述手指候选区域有效后,从所述将检测到的峰值点确定为手指尖开始执行。
所述对手指候选区域边缘检测包括:
对手指候选区域采用坎尼算子进行边缘检测,得到边缘候选点;
采用哈夫变换搜索穿过所述边缘候选点的所有直线段;
在搜索到的所有直线段中,选择两条斜率差值小于第三阈值、且与手指候选区域的边缘最为匹配的一对直线段对;
在所选择的所述直线段对中的两条直线靠近所述峰值点一端的距离差小于预设第四阈值、且与所述峰值点之间的距离小于预设第五阈值时,确认所述手指候选区域有效。
本发明提供的一种手指尖轨迹获取装置,该装置包括:
摄像头,在手指运动过程中连续进行拍摄,以获取多幅包含有手指的目标图像;
前景区域提取模块,从连续拍摄到的每一幅目标图像中提取前景区域;
肤色区域提取模块,从每一幅目标图像的前景区域中获取肤色区域;
峰值检测模块,在每一幅目标图像的肤色区域中检测峰值点;
手指尖确定模块,将检测到的峰值点确定为手指尖;
轨迹连接模块,按照各幅图像的拍摄顺序,将每一幅目标图像的肤色区域中被确定为手指尖的峰值点连接为手指尖轨迹。
所述峰值检测模块包括:
候选确定子模块,将肤色区域中任一方向的坐标值为极值的肤色像素点,确定为候选峰值点;
宽度计算子模块,计算肤色区域在候选峰值点所在行的宽度;
搜索子模块,从候选峰值点所在行开始,依次对肤色区域内的每行进行搜索、以确定肤色区域在每一行的宽度,并当肤色区域在当前搜索的一行的宽度、与所述肤色区域在候选峰值点所在行的宽度之差大于预设第一阈值时,结束所述搜索;
长度计算子模块,在所述搜索子模块结束所述搜索后,计算肤色区域内已完成搜索的部分区域的长度;
比较判断子模块,计算所述长度与所述肤色区域在候选峰值点所在行宽度的长宽比,当所述长宽比大于预设的第二阈值时,将所述候选峰值点确定为肤色区域中的峰值点。
所述肤色区域内已完成搜索的部分区域为手指候选区域,且该装置进一步包括:
边缘检测模块,对所述手指候选区域进行边缘检测,并通过所述边缘检测确认所述手指候选区域有效后,通知所述手指尖确定模块执行所述将检测到的峰值点确定为手指尖。
所述边缘检测模块包括:
边缘点选择子模块,对手指候选区域采用坎尼算子进行边缘检测,得到边缘候选点;
直线段搜索子模块,采用哈夫变换搜索穿过所述边缘候选点的所有直线段;
直线段对选择子模块,在搜索到的所有直线段中,选择两条斜率差值小于第三阈值、且与手指候选区域的边缘最为匹配的一对直线段对;
有效判断子模块,在所选择的所述直线段对中的两条直线靠近所述峰值点一端的距离差小于预设第四阈值、且与所述峰值点之间的距离小于预设第五阈值时,确认所述手指候选区域有效。
本发明提供的一种基于手指尖轨迹的控制方法,设置在手指运动过程中连续进行拍摄的摄像头,该方法包括:
分别从连续拍摄到的每一幅目标图像中提取前景区域;
分别从每一幅目标图像的前景区域中获取肤色区域;并在获得的肤色区域中检测峰值点,将检测到的峰值点确定为手指尖;
按照各幅图像的拍摄顺序,将每一幅目标图像的肤色区域中被确定为手指尖的峰值点连接为手指尖轨迹;
按照预设的手指尖轨迹与控制指令的对应关系,产生所述手指尖轨迹对应的控制指令。
所述在每一幅目标图像的肤色区域中检测峰值点包括:
将所述肤色区域中任一方向的坐标值为极值的肤色像素点,确定为候选峰值点;计算肤色区域在候选峰值点所在行的宽度;
从候选峰值点所在行开始,依次对肤色区域内的每行进行搜索、以确定肤色区域在每一行的宽度,并当肤色区域在当前搜索的一行的宽度、与肤色区域在候选峰值点所在行的宽度之差大于预设第一阈值时,结束所述搜索;
计算肤色区域内已完成搜索的部分区域的长度;
计算所述长度与肤色区域在候选峰值点所在行宽度的长宽比,当所述长宽比大于预设的第二阈值时,将所述候选峰值点确定为肤色区域中的峰值点。
所述肤色区域内已完成搜索的部分区域为手指候选区域;
且,所述检测峰值点之后,该方法进一步包括:对所述手指候选区域进行边缘检测,并通过所述边缘检测确认所述手指候选区域有效后,从所述将检测到的峰值点确定为手指尖开始执行。
所述对手指候选区域边缘检测包括:
对手指候选区域采用坎尼算子进行边缘检测,得到边缘候选点;
采用哈夫变换搜索穿过所述边缘候选点的所有直线段;
在搜索到的所有直线段中,选择两条斜率差值小于第三阈值、且与手指候选区域的边缘最为匹配的一对直线段对;
在所选择的所述直线段对中的两条直线靠近所述峰值点一端的距离差小于预设第四阈值、且与所述峰值点之间的距离小于预设第五阈值时,确认所述手指候选区域有效。
所述按照预设的手指尖轨迹与控制指令的对应关系,产生所述手指尖轨迹对应的控制指令包括:
将所述手指尖轨迹转换为对应形状的符号;
对转换得到的所述符号进行文字识别;
根据预设的文字与控制指令的对应关系,产生识别出的文字所对应的控制指令。
所述按照预设的手指尖轨迹与控制指令的对应关系,产生所述手指尖轨迹对应的控制指令包括:
将所述手指尖轨迹转换为对应形状的符号;
将转换得到的所述符号与预设的符号模型进行匹配;
根据预设的符号模型与控制指令的对应关系,产生匹配的符号模型所对应的控制指令。
本发明提供的一种基于手指尖轨迹的控制系统,该系统包括手指尖轨迹获取装置和控制指令发生器,其中,
所述手指尖轨迹获取装置包括:
摄像头,在手指运动过程中连续进行拍摄,以获取多幅包含有手指的目标图像;
前景区域提取模块,从连续拍摄到的每一幅目标图像中提取前景区域;
肤色区域提取模块,从每一幅目标图像的前景区域中获取肤色区域;
峰值检测模块,从每一幅目标图像的肤色区域中检测峰值点;
手指尖确定模块,将检测到的峰值点确定为手指尖;
轨迹连接模块,按照各幅图像的拍摄顺序,将每一幅目标图像的肤色区域中被确定为手指尖的峰值点连接为手指尖轨迹;
所述控制指令发生器,按照预设的手指尖轨迹与控制指令的对应关系,产生所述手指尖轨迹对应的控制指令。
所述峰值检测模块包括:
候选确定子模块,将肤色区域中任一方向的坐标值为极值的肤色像素点,确定为候选峰值点;
宽度计算子模块,计算肤色区域在候选峰值点所在行的宽度;
搜索子模块,从候选峰值点所在行开始,依次对肤色区域内的每行进行搜索、以确定肤色区域在每一行的宽度,并当肤色区域在当前搜索的一行的宽度、与所述肤色区域在候选峰值点所在行的宽度之差大于预设第一阈值时,结束所述搜索;
长度计算子模块,在所述搜索子模块结束所述搜索后,计算肤色区域内已完成搜索的部分区域的长度;
比较判断子模块,计算所述长度与所述肤色区域在候选峰值点所在行宽度的长宽比,当所述长宽比大于预设的第二阈值时,将所述候选峰值点确定为肤色区域中的峰值点。
所述肤色区域内已完成搜索的部分区域为手指候选区域,且该装置进一步包括:
边缘检测模块,对所述手指候选区域进行边缘检测,并通过所述边缘检测确认所述手指候选区域有效后,通知所述手指尖确定模块执行所述将检测到的峰值点确定为手指尖。
所述边缘检测模块包括:
边缘点选择子模块,对手指候选区域采用坎尼算子进行边缘检测,得到边缘候选点;
直线段搜索子模块,采用哈夫变换搜索穿过所述边缘候选点的所有直线段;
直线段对选择子模块,在搜索到的所有直线段中,选择两条斜率差值小于第三阈值、且与手指候选区域的边缘最为匹配的一对直线段对;
有效判断子模块,在所选择的所述直线段对中的两条直线靠近所述峰值点一端的距离差小于预设第四阈值、且与所述峰值点之间的距离小于预设第五阈值时,确认所述手指候选区域有效。
所述控制指令发生器包括:
符号转换模块,将所述手指尖轨迹转换为对应形状的符号;
文字识别模块,对转换得到的所述符号进行文字识别;
指令生成模块,根据预先存储的文字与控制指令的对应关系,产生识别出的文字所对应的控制指令。
所述控制指令发生器包括:
符号转换模块,将所述手指尖轨迹转换为对应形状的符号;
符号匹配模块,将转换得到的所述符号与预设的符号模型进行匹配;
指令生成模块,根据预先存储的符号模型与控制指令的对应关系,产生匹配的符号模型所对应的控制指令。
由上述技术方案可见,本发明通过获取连续多幅图像中的手指尖位置,并将获取的各幅图像中的手指尖位置连接为一条轨迹,即可根据预设的手指尖轨迹与控制指令的对应关系,产生手指尖轨迹对应的控制指令,从而无需附加的输入设备即可实现交互式控制。
附图说明
图1为本发明中基于手指尖轨迹的控制方法的示例性流程图。
图2为手指尖形状示意图。
图3为肤色区域示意图。
图4a为本发明一实例中手指尖轨迹对应的控制指令示意图。
图4b为本发明另一实例中手指尖轨迹对应的控制指令示意图。
图5为本发明实施例中基于手指尖轨迹的控制系统示例性结构图。
图6为如图5所示的控制系统中峰值检测模块的一种结构示意图。
图7为如图5所示的控制系统中控制指令发生器的一种结构示意图。
图8为如图5所示的控制系统中控制指令发生器的另一种结构示意图。
图9为如图5所示的控制系统中边缘检测模块的一种结构示意图。
具体实施方式
为使本发明的目的、技术方案及优点更加清楚明白,以下参照附图并举实施例,对本发明进一步详细说明。
在本发明中设置并固定一摄像头,该摄像头在手指运动过程中连续进行拍摄,以获取多幅包含有手指尖位置的图像。由于在手指运动过程中,手指尖可划出不同形状的轨迹,因此,可利用手指尖划出的不同形状的轨迹表示不同的控制指令,以替代游戏手柄、鼠标、键盘、遥控器等附加输入设备,实现交互式控制。
图1为本发明中基于手指尖轨迹的控制方法的示例性流程图。首先设置在手指运动过程中连续进行拍摄的摄像头,然后,如图1所示,本发明中基于手指尖轨迹的控制方法还包括:
步骤101,分别从连续拍摄到的每一幅目标图像中提取前景区域。
本步骤中,可以通过背景差或者帧差的方式提取前景区域,且提取的前景区域包含图像中发生运动的区域,除了运动的手指之外,还可能包括比如人的脸部、躯干、手臂、手指等区域。
步骤102,分别从每一幅目标图像的前景区域中获取肤色区域。
由于在步骤101提取的前景区域中,除了运动的手指区域之外,还可能会包括运动的脸部、躯干、手臂等区域,但由于躯干等区域会被着装覆盖,即躯干等区域的颜色不同于肤色,因此,执行本步骤即可将非肤色区域丢弃,从而可以减少非肤色区域对于识别手指区域的干扰,使得后续步骤能够更为准确地识别出手指区域。
步骤103,在每一幅目标图像的肤色区域中检测峰值点,将检测到的峰值点确定为手指尖。
参见图2,检测到的峰值点即为图2中对应五角星位置的手指尖。
假设步骤102获取的肤色区域如图3中的白色部分所示,在图3中,肤色区域各像素点的像素值为1、黑色部分的非肤色像素点的像素值为0。如图3所示,肤色区域中表示手指的部分为一条形区域、且所表示的手指尖所在位置基本上处于条形区域的顶部,因此,可以采用检测肤色区域顶部峰值点的方式确定手指尖的位置。
假定图像所在坐标系中,右为水平坐标轴正方向、下为垂直坐标轴正方向,对于如图3所示的肤色区域,本步骤中的具体处理过程可以包括:
a、在肤色区域中选择上、下、左、右中任意方向的坐标值为极值的肤色像素点作为候选峰值点,并记录该候选峰值点在肤色区域内的行序号OB,由于在图3中,手指尖指向图像的上方,因此,针对如图3所示的肤色区域,步骤a所选择的候选峰值点为垂直坐标值最小的肤色像素点,实际应用中,可以先构建肤色区域的最小外切圆,并根据各肤色像素点到达最小外切圆边缘的距离来判断任意方向的坐标值为极值的肤色像素点;
b、计算候选峰值点所在的行序号为OB的一行中包含的肤色像素点数目、即肤色区域在候选峰值点所在行的宽度M;
c、从候选峰值点所在的行序号为OB的一行开始,依次对肤色区域内的每行进行搜索、以获取每一行中与候选峰值点连通的肤色像素点数目,即肤色区域在每一行的宽度Mi;
如果当前搜索的一行与候选峰值点连通的肤色像素点数目、减去候选峰值点所在行的肤色像素点数目得到的差值绝对值,大于预设的表示手指最大宽度与手指尖宽度之差的第一阈值,即肤色区域在当前搜索一行的宽度Mi远大于肤色区域在候选峰值点所在行的宽度M,则表示当前搜索的一行位于表示手指的条形区域之外,结束对肤色区域内每行进行的搜索,并执行步骤d;如果当前搜索的一行与候选峰值点连通的肤色像素点数目、减去候选峰值点所在行的肤色像素点数目得到的差值绝对值,小于预设第一阈值,则继续搜索下一行;
d、记录肤色区域内已完成搜索的最后一行的行序号OE;
e、计算肤色区域内已完成搜索的最后一行的行序号OE、与候选峰值点所在的行序号为OB之间的差值(OE-OB)、即肤色区域中已完成搜索的部分区域在垂直坐标轴方向上的长度L;
f、计算差值(OE-OB)除以候选峰值点所在行中包含的肤色像素点数目得到的商,当本步骤计算得到的商大于/大于等于预设的表示手指最小长宽比的第二阈值时,即长度L与宽度M的长宽比大于/大于等于第二阈值时,表示肤色区域中已完成搜索的部分条形区域为表示手指部分的手指候选区域,将候选峰值点确定为如图3所示的肤色区域中表示手指尖位置的峰值点;如果长度L与宽度M的长宽比小于等于/小于预设第二阈值,则继续对下一个肤色区域执行如上处理或结束流程。
上述处理过程,对于肤色区域中呈现条形的肤色区域的检测效果较好,能较准确地确定手指尖位置。
如前所述,实际应用中,肤色区域内还有可能包括脸部、手臂等肤色区域,因此,在本步骤中,为了进一步降低其他肤色区域的干扰,在检测到峰值点以及手指候选区域之后、执行下述步骤104之前,可以先对每一幅图像的手指候选区域进行边缘检测,并采用哈夫变换判定手指候选区域的边缘处是否存在两条近似平行的直线,即对应如图2所示的手指尖下方的手指边缘轮廓,在通过边缘检测确认手指候选区域有效后再执行后续的步骤104。
具体来说,对于在图2所示的肤色区域中检测到的峰值点、以及手指候选区域,上述边缘检测的处理过程可以包括:
g、对手指候选区域采用坎尼(canny)算子进行边缘检测,得到边缘候选点;
h、采用哈夫变换,找到穿过上述边缘候选点的所有直线段;
i、在上述所有直线段中,选择斜率差值小于预设的表示近似平行所允许的最大斜率差的第三阈值、且穿过边缘候选点数目最多的一对直线段对,即选择最为近似于平行、且与手指候选区域的边缘最为匹配的一对直线段对;
j、从上述直线段对中的每一条直线段所所穿过的边缘候选点中,分别选择垂直坐标值最小的一个边缘候选点,假定这两个边缘候选点的垂直坐标值分别为YL0、YL1,如果|YL1-YL0|≤TLL、且|OB-YL0|≤TL0,即直线段对中的两条直线靠近峰值点一端的距离差小于TLL、且与峰值点之间的距离小于TL0,则确定在图2所示的肤色区域中检测到的峰值点、以及手指候选区域有效,并执行步骤104;否则,返回步骤i,重新选择斜率差值小于预设第三阈值、且穿过边缘候选点数目最多的另一对直线段后执行步骤j。其中,TLL为预设第四阈值、TL0为预设第五阈值。
如果针对所有直线段的处理完毕后,依然没有找到满足上述条件的直线段对,认为当前手指区域为虚警,并将该手指候选区域中的所有肤色像素点的像素值设置为0、以将手指候选区域该设定为非肤色区域后,返回步骤103对其它肤色区域执行相应的处理。
步骤104,将每一幅目标图像的肤色区域中被确定为手指尖的峰值点,按照各幅图像的拍摄顺序连接为手指尖轨迹。
上述步骤101~步骤104,即为手指尖轨迹获取的方法。
步骤105,按照预设的手指尖轨迹与控制指令的对应关系,产生当前获取的手指尖轨迹对应的控制指令。
本步骤中,可以按照两种方式产生控制指令:
方式一,也可称为文字识别方式,手指尖轨迹与控制指令的对应关系表示为文字与控制指令的对应关系,该方式的处理过程包括:先将步骤104得到的手指尖轨迹转换为对应形状的符号,然后利用现有的文字识别技术对转换得到的符号进行文字识别,最后再根据预设的文字与控制指令的对应关系产生识别出的文字所对应的控制指令;
方式二,也可称为符号识别方式,手指尖轨迹与控制指令的对应关系表示为符号模型与控制指令的对应关系,该方式的处理过程包括:先将步骤104得到的手指尖轨迹转换为对应形状的符号,然后利用现有的符号识别技术将转换得到的符号与预设的符号模型进行匹配,最后再根据预设的符号模型与控制指令的对应关系产生匹配的符号模型所对应的控制指令。
至此,本流程结束。
由上述流程可见,本发明通过获取连续多幅图像中的手指尖位置,并将获取的各幅图像中的手指尖位置连接为一条轨迹,即可根据预设的手指尖轨迹与控制指令的对应关系,产生手指尖轨迹对应的控制指令,从而无需附加的输入设备即可实现交互式控制。
以下举两个实例进行举例说明:
实例一,假设交互式控制的对象是运行角色扮演(RPG)类游戏的游戏机、并利用符号识别方式产生控制指令,参见图4a,当手指尖轨迹为由右向左的直线轨迹,则对应的控制指令表示控制游戏中的人物向左移动;当手指尖轨迹为由左向右的直线轨迹,则对应的控制指令表示控制游戏中的人物向右移动;当手指尖轨迹为由上至下的逆时针半圆弧,则控制指令表示控制游戏中的人物从左侧转身;当手指尖轨迹为由上至下的顺时针半圆弧,则控制指令表示控制游戏中的人物从右侧转身;
实例二,假设交互式控制的对象电视机、并利用符号识别方式产生控制指令,参见图4b,当手指尖轨迹为由右向左的直线轨迹,则对应的控制指令表示频道序号减一;当手指尖轨迹为由左向右的直线轨迹,则对应的控制指令表示频道序号加一;当手指尖轨迹为由上至下的直线轨迹,则控制指令表示音量减一;当手指尖轨迹为由下至上的直线轨迹,则控制指令表示音量加一。
除上述两个实例外,手指尖轨迹还可以划出数字、字母、字符形状,即可利用文字识别技术实现交互式控制,具体实例不再一一列举。
以上是对本发明中手指尖轨迹获取方法、以及基于手指尖轨迹获取的控制方法的详细说明。下面,再对本发明中的手指尖轨迹获取装置、以及基于手指尖轨迹获取的控制系统进行说明。
图5为本发明中基于手指尖轨迹获取的控制系统的示例性结构图。如图5所示,本发明中基于手指尖轨迹获取的控制系统包括手指尖轨迹获取装置和控制指令发生器。
参见图5,手指尖轨迹获取装置包括:
固定安装的摄像头,在手指运动过程中连续进行拍摄,以获取多幅包含有手指的目标图像。
前景区域提取模块,从摄像头连续拍摄到的每一幅目标图像中提取前景区域。
肤色区域提取模块,在前景区域提取模块从每一幅目标图像的前景区域中获取肤色区域。其中,由于前景区域提取模块所提取的前景区域中,除了运动的手指区域之外,还可能会包括运动的脸部、躯干、手臂等区域,由于躯干等区域会被着装覆盖,即躯干等区域的颜色不同于肤色,因此,肤色区域提取模块获取肤色区域后,可以减少其它非肤色区域对于识别手指区域的干扰
峰值检测模块,在肤色区域提取模块从每一幅目标图像的肤色区域中检测峰值点。实际应用中,肤色区域中表示手指的部分通常为一条形区域、且表示的手指尖所在位置基本上处于条形区域的顶部,因此,如图6所示,仍以针对如图3所示的肤色区域为例,峰值检测模块可以包括:
候选确定子模块,将肤色区域提取模块得到的肤色区域中垂直坐标值最大或最小的肤色像素点确定为候选峰值点;其中,对于选择垂直坐标值在哪一个方向上的极值,取决于条形区域的顶部与肤色区域中的坐标轴方向之间的位置关系;
宽度计算子模块,根据候选确定子模块确定的候选峰值点的垂直坐标值,确定该候选峰值点的行序号,然后计算肤色区域中峰值候选点所在行的肤色像素点数目,得到肤色区域在候选峰值点所在行的宽度;
搜索子模块,从候选峰值点所在行开始,依次对肤色区域内的每行进行搜索,以通过搜索到的每一行的肤色像素点数目来确定肤色区域在每一行的宽度,并当肤色区域在当前搜索的一行的宽度、与所述肤色区域在候选峰值点所在行的宽度之差的绝对值,大于预设的表示手指最大宽度与手指尖宽度之差的第一阈值时,结束搜索、并将结束搜索时所在的行序号通知长度计算子模块;
长度计算子模块,在搜索子模块结束搜索后,计算结束搜索时所在的行序号、以及候选峰值点所在的行序号之间的差值,以确定肤色区域内已完成搜索的部分区域在垂直坐标方向上的长度;其中,肤色区域内已完成搜索的部分区域可称为手指候选区域;
比较判断子模块,计算所述长度与所述肤色区域在候选峰值点所在行宽度的长宽比,当所述长宽比大于预设的表示手指最小长宽比的第二阈值时,将候选确定子模块确定的该候选峰值点确定为肤色区域中的峰值点。
手指尖确定模块,将峰值检测模块检测到的峰值点确定为手指尖;
轨迹连接模块,将每一幅目标图像的肤色区域中被手指尖确定模块确定为手指尖的峰值点,按照各幅图像的拍摄顺序连接为手指尖轨迹。
这样,图5中的控制指令发生器按照预设的手指尖轨迹与控制指令的对应关系,产生手指尖轨迹对应的控制指令。
在如图5所示的系统中,控制指令发生器可以按照文字识别方式或符号识别方式产生手指尖轨迹对应的控制指令。
对于采用文字识别方式的控制指令发生器,手指尖轨迹与控制指令的对应关系表示为文字与控制指令的对应关系,相应地,参见图7,该控制指令发生器包括:
符号转换模块,将轨迹连接模块得到的手指尖轨迹转换为对应形状的符号;
文字识别模块,利用现有文字识别技术对符号转换模块转换得到的符号进行文字识别;
指令生成模块,根据预先存储的文字与控制指令的对应关系,产生文字识别模块识别出的文字所对应的控制指令。
而对于采用符号识别方式的控制指令发生器,手指尖轨迹与控制指令的对应关系表示为符号模型与控制指令的对应关系,相应地,参见图8,该控制指令发生器包括:
符号转换模块,将轨迹连接模块得到的手指尖轨迹转换为对应形状的符号;
符号匹配模块,将符号转换模块转换得到的所述符号与预设的符号模型进行匹配;
指令生成模块,根据预先存储的符号模型与控制指令的对应关系,产生符号匹配模块匹配得到的符号模型所对应的控制指令。
此外,仍参见图5,为了进一步降低其他肤色区域的干扰,本发明中的手指尖轨迹获取装置还可以进一步包括如图5中虚线矩形框所示的边缘检测模块,用于对所述手指候选区域进行边缘检测,并通过所述边缘检测确认所述手指候选区域有效后,通知所述手指尖确定模块执行所述将检测到的峰值点确定为手指尖。
相应地,手指尖确定模块进一步在接收到来自边缘检测模块的通知后再执行将检测到的峰值点确定为手指尖的处理过程。
具体来说,如图9所示,仍以针对如图3所示的肤色区域为例,边缘检测模块接收峰值检测模块得到的包含峰值点的手指候选区域,且边缘检测模块包括:
边缘点选择子模块,对手指候选区域采用坎尼算子进行边缘检测,得到边缘候选点;
直线段搜索子模块,采用哈夫变换搜索穿过所述边缘候选点的所有直线段;
直线段对选择子模块,在搜索到的所有直线段中,选择斜率差小于预设第三阈值、且穿过边缘候选点数目最多的一对直线段对,即选择近似平行、且与手指候选区域的边缘最为匹配的一对直线段对;
有效判断子模块,在所选择的所述直线段对中的两条直线靠近所述峰值点一端的距离差小于预设第四阈值、且与所述峰值点之间的距离小于预设第五阈值时,确认所述手指候选区域有效并通知手指尖确定模块。
可见,本发明中的手指尖获取装置通过获取连续多幅图像中的手指尖位置,并将获取的各幅图像中的手指尖位置连接为一条轨迹,使得控制指令发生器能够根据预设的手指尖轨迹与控制指令的对应关系,产生手指尖轨迹对应的控制指令,从而无需附加的输入设备即可实现交互式控制。
以上所述仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内,所作的任何修改、等同替换以及改进等,均应包含在本发明的保护范围之内。