图像中肢体表示信息的识别方法、装置及设备、存储介质与流程

文档序号:15348749发布日期:2018-09-04 23:04阅读:245来源:国知局

本公开一般涉及人机交互领域,具体涉及肢体表示信息的识别技术,尤其涉及一种图像中肢体表示信息的识别方法、装置及设备、存储介质。



背景技术:

随着虚拟现实技术的快速发展,人们在生活中看到的虚拟现实设备越来越多。每一种设备都有其独到的特点,或是着重沉浸感,或是着重交互性等。

对于人机交互,人们也在不断探索着更符合人类交流习惯的交互方式。最初的人机交互设备有:鼠标、键盘、打印机、素描版等。这些是借助硬件设备实现,对于便携性来说,很难达到实时实地的使用。对于虚拟现实来说,其操作方式也是极其的不方便。

与之相比,基于视觉的肢体表示信息的识别有效的克服了上述缺点。在虚拟现实设备上安置一颗普通的摄像头,就可以实现肢体识别交互。无论是硬件成本还是软件成本,都大大的减少了人力物力的投入。

肢体表示信息的识别在人机交互中承担着重要的职责,而如何表征肢体又是肢体表示信息识别中重要的一步。肢体表示本质上其实是一种特征的表示。以手势为例,在双目摄像头的识别中将手势表征为26个自由度,但硬件及软件成本开发起来异常复杂。

目前肢体表示信息的识别的技术多为通过对视频帧进行外轮廓提取来进行肢体表示信息的识别,使用轮廓的周长和面积作为判别依据来识别肢体表示信息。这种方法的误差较大,当肢体在镜头前向四周及前后运动时,识别率也比较低。



技术实现要素:

鉴于现有技术中的上述缺陷或不足,期望提供一种图像中肢体表示信息的识别方法、装置及设备、存储介质,以提高肢体表示信息的识别率,减小识别误差。

第一方面,本发明实施例提供一种图像中肢体表示信息的识别方法,包括:

确定出图像中肢体的类骨骼线;

根据所述类骨骼线,进行肢体表示信息的识别。

本公开的实施例中所述的类骨骼线,可以是模拟类比身体或身体部位内部的骨骼的线条,在一实施例中优选设置为简洁单线条,例如,每根手指、每只手臂、每个躯干只对应一条类骨骼线。在一实施例中,通过确定肢体的中线的方式,确定类骨骼线。

可选地,所述肢体包括如下之一或组合:

身体整体;

上臂姿势;

下肢姿势;

手。

可选地,所述确定出图像中肢体的类骨骼线,包括:

获取图像中肢体的二值图的轮廓;

根据方向梯度和所述肢体的二值图的轮廓,确定出图像中肢体的类骨骼线。

可选地,所述获取图像中肢体的二值图的轮廓,包括:

根据肢体的颜色特征选取相应的色度分量进行分割,确定图像中肢体的二值图;

从所述肢体的二值图中提取肢体的二值图的轮廓。

可选地,当所述肢体具体为手时,所述获取图像中肢体的二值图的轮廓之前,还包括:

对图像进行降噪处理;

通过掌心识别,确定图像中存在手。

优选的,所述根据方向梯度和所述肢体的二值图的轮廓,确定出图像中肢体的类骨骼线,包括:

对所述肢体的二值图的轮廓中的每个轮廓点(x,y)按照y值进行归类,对轮廓中相同的y值,归类为序列seqy(x1,x2,...),得到:

s(y)={seqyi(xyi,1,xyi,2,...)|yi∈(1,...,h),xi∈(1,...,w)};

每个序列按照x值的大小进行排列,得到

s'(y)={seqyi(xyi,1’,xyi,2’,...)|yi∈(1,...,h),xi’∈(1,...,w)};

在任意yi值所对应的序列中,若序列中的点少于两个则删除此序列,否则,取前两个点xyi,1’,xyi,2’,按照xyi,1’和xyi,2’两点的方向梯度,判断这两个点是否为边界点,若两点都不是边界点,则将这两点从序列中去除并重新取点,若有一点不是边界点,则将这一点从序列中去除并重新取点,直到判断两者皆为边界点,确定两个点的中点xyi,med1=(xyi,1’+xyi,2’)/2,若所述中点在肢体的二值图的轮廓内,则将此点记录到新的序列lines_seq中,删除xyi,1’和xyi,2’,若所述中点不在肢体的二值图的轮廓内,则重新取点;

若lines_seq存在元素,则表示此yi对应的序列存在类骨骼线的点,保存此yi,若没有元素,则删除此yi;

遍历yi的所有值,即可得到类骨骼线的所有点:

ske(y)={lines_seq(xyi,1,xyi,2,...)|yi∈(1,...,h),xi∈(1,...,w)}。

可选地,所述根据所述类骨骼线,进行肢体表示信息的识别,包括:

剔除所述类骨骼线中不符合预设要求的点,得到通过类骨骼线表示的肢体;

根据图像中通过类骨骼线表示的肢体,进行肢体表示信息的识别。

可选地,所述剔除所述类骨骼线中不符合预设要求的点,得到通过类骨骼线表示的肢体,包括:

取ske(y)第一个序列,将其中的点作为类骨骼线的起点,起点数与序列中元素数相同,则所有类骨骼线的集合表示为:

skelines(l)={l1:{(xy1,1,y1)},l2:{(xy1,2,y1)},...},

其中,l1,l2,...分别表示一条类骨骼线,(xy1,1,y1),(xy1,1,y1),...分别表示组成该条类骨骼线的像素点;

从ske(y)第二个序列开始遍历所有序列,对每个序列,统计skelines(l)中类骨骼线的个数n,统计每条类骨骼线像素点的个数p,确定每条类骨骼线的像素个数p1,p2,...,pn,每条类骨骼线最后一个像素点表示为l1(p1),l2(p2),...,ln(pn);

从当前序列第一个元素开始,遍历当前序列,获取l1(p1),l2(p2),...,ln(pn)中与当前元素距离最近的点(x*,y*),相应的类骨骼线记为l*(p*),(x*,y*)和l*(p*)的距离小于设定值时,将(x*,y*)增加到类骨骼线l*的末尾,否则,将(x*,y*)作为新的类骨骼线起点,为skelines(l)增加新的类骨骼线;

去除skelines(l)中像素个数小于设定阈值的类骨骼线,得到通过类骨骼线表示的肢体:

其中,xik∈(1,...,w),j∈(1,...,h)。

第二方面,本发明实施例还相应提供一种图像中肢体表示信息的识别装置,包括:

确定单元,用于确定出图像中肢体的类骨骼线;

识别单元,用于根据所述类骨骼线,进行肢体表示信息的识别;

所述肢体表示信息包括:躯干、肢体、头颈、手、足之一的姿势状态或组合而成的姿势状态。

可选地,所述确定单元具体用于:

确定出图像中肢体的中线,根据所述中线确定所述肢体的类骨骼线。

可选地,所述确定单元具体用于:

获取图像中肢体的二值图的轮廓;

根据方向梯度和所述肢体的二值图的轮廓,确定出图像中肢体的类骨骼线。

可选地,所述确定单元获取图像中肢体的二值图的轮廓,包括:

根据肢体的颜色特征选取相应的色度分量进行分割,确定图像中肢体的二值图;

从所述肢体的二值图中提取肢体的二值图的轮廓。

可选地,当所述肢体具体为手时,所述确定单元还用于:

获取图像中肢体的二值图的轮廓之前,对图像进行降噪处理;以及

通过掌心识别,确定图像中存在手。

优选的,所述确定单元根据方向梯度和所述肢体的二值图的轮廓,确定出图像中肢体的类骨骼线,包括:

对所述肢体的二值图的轮廓中的每个轮廓点(x,y)按照y值进行归类,对轮廓中相同的y值,归类为序列seqy(x1,x2,...),得到:

s(y)={seqyi(xyi,1,xyi,2,...)|yi∈(1,...,h),xi∈(1,...,w)};

每个序列按照x值的大小进行排列,得到

s'(y)={seqyi(xyi,1’,xyi,2’,...)|yi∈(1,...,h),xi’∈(1,...,w)};

在任意yi值所对应的序列中,若序列中的点少于两个则删除此序列,否则,取前两个点xyi,1’,xyi,2’,按照xyi,1’和xyi,2’两点的方向梯度,判断这两个点是否为边界点,若两点都不是边界点,则将这两点从序列中去除并重新取点,若有一点不是边界点,则将这一点从序列中去除并重新取点,直到判断两者皆为边界点,确定两个点的中点xyi,med1=(xyi,1’+xyi,2’)/2,若所述中点在肢体的二值图的轮廓内,则将此点记录到新的序列lines_seq中,删除xyi,1’和xyi,2’,若所述中点不在肢体的二值图的轮廓内,则重新取点;

若lines_seq存在元素,则表示此yi对应的序列存在类骨骼线的点,保存此yi,若没有元素,则删除此yi;

遍历yi的所有值,即可得到类骨骼线的所有点:

ske(y)={lines_seq(xyi,1,xyi,2,...)|yi∈(1,...,h),xi∈(1,...,w)}。

可选地,所述识别单元具体用于:

剔除所述类骨骼线中不符合预设要求的点,得到通过类骨骼线表示的肢体;

根据各个图像帧中通过类骨骼线表示的肢体,进行肢体表示信息的识别。

可选地,所述识别单元剔除所述类骨骼线中不符合预设要求的点,得到通过类骨骼线表示的肢体,包括:

取ske(y)第一个序列,将其中的点作为类骨骼线的起点,起点数与序列中元素数相同,则所有类骨骼线的集合表示为:

skelines(l)={l1:{(xy1,1,y1)},l2:{(xy1,2,y1)},...},

其中,l1,l2,...分别表示一条类骨骼线,(xy1,1,y1),(xy1,1,y1),...分别表示组成该条类骨骼线的像素点;

从ske(y)第二个序列开始遍历所有序列,对每个序列,统计skelines(l)中类骨骼线的个数n,统计每条类骨骼线像素点的个数p,确定每条类骨骼线的像素个数p1,p2,...,pn,每条类骨骼线最后一个像素点表示为l1(p1),l2(p2),...,ln(pn);

从当前序列第一个元素开始,遍历当前序列,获取l1(p1),l2(p2),...,ln(pn)中与当前元素距离最近的点(x*,y*),相应的类骨骼线记为l*(p*),(x*,y*)和l*(p*)的距离小于设定值时,将(x*,y*)增加到类骨骼线l*的末尾,否则,将(x*,y*)作为新的类骨骼线起点,为skelines(l)增加新的类骨骼线;

去除skelines(l)中像素个数小于设定阈值的类骨骼线,得到通过类骨骼线表示的肢体:

其中,xik∈(1,...,w),j∈(1,...,h)。

第三方面,本发明实施例还提供一种设备,包括处理器和存储器;

所述存储器包含可由所述处理器执行的指令以使得所述处理器执行如第一方面中所述的方法。

第四方面,本发明实施例还提供一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序用于实现如第二方面中所述的方法。

本发明实施例提供一种图像中肢体表示信息的识别方法、装置及设备、存储介质,该方法对对带有肢体的图像,确定出图像中肢体的类骨骼线,再根据该类骨骼线,进行肢体表示信息的识别。由于通过识别类骨骼线来实现肢体表示信息的识别,无需通过轮廓的周长和面积进行肢体表示信息的识别,其识别误差较小,识别率较高,而且通过单一摄像头即可实现该肢体表示信息的识别,对设备要求较低。

附图说明

通过阅读参照以下附图所作的对非限制性实施例所作的详细描述,本申请的其它特征、目的和优点将会变得更明显:

图1为本发明实施例提供的图像中肢体表示信息的识别方法流程图;

图2为本发明实施例提供的待识别图像示意图;

图3为本发明实施例提供的手势二值图示意图;

图4为本发明实施例提供的手势二值图轮廓示意图;

图5为本发明实施例提供的类骨骼线示意图;

图6为本发明实施例提供的类骨骼线表示的手势图示意图;

图7为本发明实施例提供的图像中肢体表示信息的识别装置结构示意图;

图8为本发明实施例提供的图像中肢体表示信息的识别设备结构示意图。

具体实施方式

下面结合附图和实施例对本申请作进一步的详细说明。可以理解的是,此处所描述的具体实施例仅仅用于解释相关发明,而非对该发明的限定。另外还需要说明的是,为了便于描述,附图中仅示出了与发明相关的部分。

需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。下面将参考附图并结合实施例来详细说明本申请。

请参考图1,本发明实施例提供的图像中肢体表示信息的识别方法,包括:

步骤s101、确定出图像中肢体的类骨骼线;

步骤s102、根据所述类骨骼线,进行肢体表示信息的识别,其中,肢体表示信息包括:躯干、肢体、头颈、手、足之一的姿势状态或组合而成的姿势状态。

该方法通过识别类骨骼线来实现肢体表示信息的识别,无需通过轮廓的周长和面积进行肢体表示信息的识别,其识别误差较小,识别率较高,而且通过单一摄像头即可实现该肢体表示信息的识别,对设备要求较低。

通过该方法,可以较好的识别出用户的肢体语言表达的信息,从而可以进一步根据肢体语言表达的信息执行命令或者翻译成其它语言。

若对于视频帧的图像中的肢体进行识别,可以通过多个视频帧识别出肢体的变化,从而从肢体变化中识别出肢体表示的信息。

对于一段视频来讲,可以对每个视频帧进行识别,也可以对其中明显具有肢体的视频帧进行识别,还可以每隔设定数量个视频帧进行一次识别,当然,对每个视频帧进行识别时,其准确率较高,计算量也较大。

本公开的实施例中的类骨骼线,可以是模拟类比身体或身体部位内部的骨骼的线条,在一实施例中优选设置为简洁单线条,例如,每根手指、每只手臂、每个躯干只对应一条类骨骼线。在一实施例中,通过确定肢体的中线的方式,确定类骨骼线。

此时,步骤s101中,确定出图像中肢体的类骨骼线,包括:

确定出图像中肢体的中线,根据所述中线确定所述肢体的类骨骼线。

在一个实施例中,步骤s101中,确定出图像中肢体的类骨骼线,包括:

获取图像中肢体的二值图的轮廓;

根据方向梯度和所述肢体的二值图的轮廓,确定出图像中肢体的类骨骼线。

在提取肢体的二值图轮廓时,可以根据图像中肢体的颜色来选取对应的相应的色度分量进行分割,确定图像中肢体的二值图,选取跟肢体的颜色相接近的颜色的相应的色度分量,可以使得二值图轮廓的提取准确率更高。

此时,步骤s101,获取图像中肢体的二值图的轮廓,包括:

根据肢体的颜色特征选取相应的色度分量进行分割,确定图像中肢体的二值图;

从肢体的二值图中提取肢体的二值图的轮廓。

例如,对于手势来讲,可以根据图像的cr通道进行ostu分割,确定手势二值图,进而提取手势二值图轮廓,由于cr通道适合表示人体肤色,所以通过对cr通道进行ostu分割,确定手势二值图,再提取手势二值图轮廓,其准确率较高。

通常,视频帧的图像格式为rgb格式,为了把手的区域分割出来,使用适合不同肤色和不同光照条件的可靠的肤色模型较佳,而常用的rgb表示方法并不适合于皮肤模型。本发明实施例选用ycrcb空间作为肤色分布统计的映射空间,该空间的优点是受亮度变化的影响较小,而且是两维独立分布,能较好地限制肤色分布区域,此时,在根据肢体的颜色特征选取相应的色度分量进行分割前,还需要对图像进行颜色转换,颜色转换可以采用下面公式:

将ycrcb格式的图像进行色彩通道分割,即可分别得到y、cr和cb三个通道的图像,考虑到人的肤色纹理特性更接近红色,因此选用cr分量用作分割,使用otsu算法对cr通道进行分割,得到二值图:手势作为前景以白色表示,背景以黑色表示,如图2所示的图像,即可得到如图3所示的二值图,本发明实施例中,使用otsu算法是因为其对图像二值化处理的较好。

对得到的二值图进行轮廓查找,根据掌心位置筛选出最大的轮廓作为手势轮廓,如图4所示。

当肢体具体为手时,为提高识别准确度,以及避免对不存在手的图像进行识别,减小系统工作量。在获取图像中肢体的二值图的轮廓之前,还包括:

对图像进行降噪处理;

通过掌心识别,确定图像中存在手。

同样的,当肢体为手臂、下肢或身体时,也可以通过相应的识别,预先确定图像中存在该肢体,再进一步进行识别,从而减少计算量。

对于降噪处理的图像,过滤了其中的噪声,更有利于肢体的识别,提高识别准确度,降噪处理时,可以根据图像中噪声的类型,选择合适的方式降噪,例如,对于一般图像中的椒盐噪声,可以通过中值滤波来去除,降噪处理后的图像为:

使用中值滤波去除椒盐噪声。公式为

f(x,y)=med{i(x-k,y-l),(k,l∈w)}

其中,f(x,y)表示处理后的图像,w一般为3*3或5*5的二维模板。

进而再通过掌心检测判断图像f(x,y)中是否存在掌心,若存在掌心,则可以确定图像中存在手,获取其中手势二值图的轮廓,否则可以确定图像中不存在手,则进行下一帧图像的判断。

可选地,根据方向梯度和肢体的二值图的轮廓,确定出图像中肢体的类骨骼线,包括:

对肢体的二值图的轮廓中的每个轮廓点(x,y)按照y值进行归类,对轮廓中相同的y值,归类为序列seqy(x1,x2,...),得到:

s(y)={seqyi(xyi,1,xyi,2,...)|yi∈(1,...,h),xi∈(1,...,w)};

每个序列按照x值的大小进行排列,得到

s'(y)={seqyi(xyi,1’,xyi,2’,...)|yi∈(1,...,h),xi’∈(1,...,w)};

在任意yi值所对应的序列中,若序列中的点少于两个则删除此序列,否则,取前两个点xyi,1’,xyi,2’,按照xyi,1’和xyi,2’两点的方向梯度,判断这两个点是否为边界点,若两点都不是边界点,则将这两点从序列中去除并重新取点,若有一点不是边界点,则将这一点从序列中去除并重新取点,直到判断两者皆为边界点,确定两个点的中点xyi,med1=(xyi,1’+xyi,2’)/2,若中点在肢体的二值图的轮廓内,则将此点记录到新的序列lines_seq中,删除xyi,1’和xyi,2’,若中点不在肢体的二值图的轮廓内,则重新取点;

若lines_seq存在元素,则表示此yi对应的序列存在类骨骼线的点,保存此yi,若没有元素,则删除此yi;

遍历yi的所有值,即可得到类骨骼线的所有点:

ske(y)={lines_seq(xyi,1,xyi,2,...)|yi∈(1,...,h),xi∈(1,...,w)}。

如图2所示的图像,其类骨骼线如图5所示。

可选地,在步骤s102中,进行肢体表示信息的识别前,可以剔除类骨骼线中不符合预设要求的点,从而避免不符合预设要求的点造成干扰而进行误判,进而使得肢体表示信息的识别更加准确。

此时,步骤s102,根据所述类骨骼线,进行肢体表示信息的识别,包括:

剔除类骨骼线中不符合预设要求的点,得到通过类骨骼线表示的肢体;

根据各个图像帧中通过类骨骼线表示的肢体,进行肢体表示信息的识别。

具体的,剔除所述类骨骼线中不符合预设要求的点,得到通过类骨骼线表示的肢体,包括:

取ske(y)第一个序列,将其中的点作为类骨骼线的起点,起点数与序列中元素数相同,每条类骨骼线是一组像素点的集合,则所有类骨骼线的集合表示为:

skelines(l)={l1:{(xy1,1,y1)},l2:{(xy1,2,y1)},...},

其中,l1,l2,...分别表示一条类骨骼线,(xy1,1,y1),(xy1,1,y1),...分别表示组成该条类骨骼线的像素点;

从ske(y)第二个序列开始遍历所有序列,对每个序列,统计skelines(l)中类骨骼线的个数n,统计每条类骨骼线像素点的个数p,确定每条类骨骼线的像素个数p1,p2,...,pn,每条类骨骼线最后一个像素点表示为l1(p1),l2(p2),...,ln(pn);

从当前序列第一个元素开始,遍历当前序列,获取l1(p1),l2(p2),...,ln(pn)中与当前元素距离最近的点(x*,y*),相应的类骨骼线记为l*(p*),(x*,y*)和l*(p*)的距离小于设定值时,将(x*,y*)增加到类骨骼线l*的末尾,否则,将(x*,y*)作为新的类骨骼线起点,为skelines(l)增加新的类骨骼线;

去除skelines(l)中像素个数小于设定阈值的类骨骼线,得到通过类骨骼线表示的肢体:

其中,xik∈(1,...,w),j∈(1,...,h)。

如图2所示的图像,其手势图如图6所示。

可见,本发明实施例识别出图像中的类骨骼线,可以通过类骨骼线较清楚的表示各种肢体,特征更为丰富,识别率大大提升,为进一步识别肢体表示信息提供可靠依据。

应当注意,尽管在附图中以特定顺序描述了本发明方法的操作,但是,这并非要求或者暗示必须按照该特定顺序来执行这些操作,或是必须执行全部所示的操作才能实现期望的结果。相反,流程图中描绘的步骤可以改变执行顺序。附加地或备选地,可以省略某些步骤,将多个步骤合并为一个步骤执行,和/或将一个步骤分解为多个步骤执行。

本发明实施例还提供一种图像中肢体表示信息的识别装置,如图7所示,包括:

确定单元701,用于确定出图像中肢体的类骨骼线;

识别单元702,用于根据类骨骼线,进行肢体表示信息的识别;

肢体表示信息包括:躯干、肢体、头颈、手、足之一的姿势状态或组合而成的姿势状态。

可选地,确定单元701具体用于:

确定出图像中肢体的中线,根据所述中线确定所述肢体的类骨骼线。

可选地,确定单元701具体用于:

获取图像中肢体的二值图的轮廓;

根据方向梯度和肢体的二值图的轮廓,确定出图像中肢体的类骨骼线。

可选地,确定单元701获取图像中肢体的二值图的轮廓,包括:

根据肢体的颜色特征选取相应的色度分量进行分割,确定图像中肢体的二值图;

从所述肢体的二值图中提取肢体的二值图的轮廓。

可选地,当肢体具体为手时,确定单元701还用于:

获取图像中肢体的二值图的轮廓之前,对图像进行降噪处理;以及

通过掌心识别,确定图像中存在手。

可选地,确定单元701根据方向梯度和所述肢体的二值图的轮廓,确定出图像中肢体的类骨骼线,包括:

对肢体的二值图的轮廓中的每个轮廓点(x,y)按照y值进行归类,对轮廓中相同的y值,归类为序列seqy(x1,x2,...),得到:

s(y)={seqyi(xyi,1,xyi,2,...)|yi∈(1,...,h),xi∈(1,...,w)};

每个序列按照x值的大小进行排列,得到

s'(y)={seqyi(xyi,1’,xyi,2’,...)|yi∈(1,...,h),xi’∈(1,...,w)};

在任意yi值所对应的序列中,若序列中的点少于两个则删除此序列,否则,取前两个点xyi,1,xyi,2’,按照xyi,1’和xyi,2’两点的方向梯度,判断这两个点是否为边界点,若两点都不是边界点,则将这两点从序列中去除并重新取点,若有一点不是边界点,则将这一点从序列中去除并重新取点,直到判断两者皆为边界点,确定两个点的中点xyi,med1=(xyi,1’+xyi,2’)/2,若中点在肢体的二值图的轮廓内,则将此点记录到新的序列lines_seq中,删除xyi,1’和xyi,2’,若中点不在肢体的二值图的轮廓内,则重新取点;

若lines_seq存在元素,则表示此yi对应的序列存在类骨骼线的点,保存此yi,若没有元素,则删除此yi;

遍历yi的所有值,即可得到类骨骼线的所有点:

ske(y)={lines_seq(xyi,1,xyi,2,...)|yi∈(1,...,h),xi∈(1,...,w)}。

可选地,识别单元702具体用于:

剔除类骨骼线中不符合预设要求的点,得到通过类骨骼线表示的肢体;

根据各个图像帧中通过类骨骼线表示的肢体,进行肢体表示信息的识别。

可选地,识别单元702剔除类骨骼线中不符合预设要求的点,得到通过类骨骼线表示的肢体,包括:

取ske(y)第一个序列,将其中的点作为类骨骼线的起点,起点数与序列中元素数相同,则所有类骨骼线的集合表示为:

skelines(l)={l1:{(xy1,1,y1)},l2:{(xy1,2,y1)},...},

其中,l1,l2,...分别表示一条类骨骼线,(xy1,1,y1),(xy1,1,y1),...分别表示组成该条类骨骼线的像素点;

从ske(y)第二个序列开始遍历所有序列,对每个序列,统计skelines(l)中类骨骼线的个数n,统计每条类骨骼线像素点的个数p,确定每条类骨骼线的像素个数p1,p2,...,pn,每条类骨骼线最后一个像素点表示为l1(p1),l2(p2),...,ln(pn);

从当前序列第一个元素开始,遍历当前序列,获取l1(p1),l2(p2),...,ln(pn)中与当前元素距离最近的点(x*,y*),相应的类骨骼线记为l*(p*),(x*,y*)和l*(p*)的距离小于设定值时,将(x*,y*)增加到类骨骼线l*的末尾,否则,将(x*,y*)作为新的类骨骼线起点,为skelines(l)增加新的类骨骼线;

去除skelines(l)中像素个数小于设定阈值的类骨骼线,得到通过类骨骼线表示的肢体:

其中,xik∈(1,...,w),j∈(1,...,h)。

应当理解,该装置中记载的诸单元或模块与参考图1描述的方法中的各个步骤相对应。由此,上文针对方法描述的操作和特征同样适用于该装置及其中包含的单元,在此不再赘述。该装置可以预先实现在电子设备的浏览器或其他安全应用中,也可以通过下载等方式而加载到电子设备的浏览器或其安全应用中。该装置中的相应单元可以与电子设备中的单元相互配合以实现本申请实施例的方案。

下面参考图8,其示出了适于用来实现本申请实施例的终端设备或服务器的计算机系统的结构示意图。

如图8所示,计算机系统包括中央处理单元(cpu)801,其可以根据存储在只读存储器(rom)802中的程序或者从存储部分808加载到随机访问存储器(ram)803中的程序而执行各种适当的动作和处理。在ram803中,还存储有系统操作所需的各种程序和数据。cpu801、rom802以及ram803通过总线804彼此相连。输入/输出(i/o)接口805也连接至总线804。

以下部件连接至i/o接口805:包括键盘、鼠标等的输入部分806;包括诸如阴极射线管(crt)、液晶显示器(lcd)等以及扬声器等的输出部分807;包括硬盘等的存储部分808;以及包括诸如lan卡、调制解调器等的网络接口卡的通信部分809。通信部分809经由诸如因特网的网络执行通信处理。驱动器810也根据需要连接至i/o接口805。可拆卸介质811,诸如磁盘、光盘、磁光盘、半导体存储器等等,根据需要安装在驱动器810上,以便于从其上读出的计算机程序根据需要被安装入存储部分808。

特别地,根据本公开的实施例,上文参考图1描述的过程可以被实现为计算机软件程序。例如,本公开的实施例包括一种计算机程序产品,其包括有形地包含在机器可读介质上的计算机程序,所述计算机程序包含用于执行图1的方法的程序代码。在这样的实施例中,该计算机程序可以通过通信部分809从网络上被下载和安装,和/或从可拆卸介质811被安装。

附图中的流程图和框图,图示了按照本发明各种实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,所述模块、程序段、或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。

描述于本申请实施例中所涉及到的单元或模块可以通过软件的方式实现,也可以通过硬件的方式来实现。所描述的单元或模块也可以设置在处理器中,例如,可以描述为:一种处理器包括xx单元、yy单元以及zz单元。其中,这些单元或模块的名称在某种情况下并不构成对该单元或模块本身的限定,例如,xx单元还可以被描述为“用于xx的单元”。

作为另一方面,本申请还提供了一种计算机可读存储介质,该计算机可读存储介质可以是上述实施例中所述装置中所包含的计算机可读存储介质;也可以是单独存在,未装配入设备中的计算机可读存储介质。计算机可读存储介质存储有一个或者一个以上程序,所述程序被一个或者一个以上的处理器用来执行描述于本申请的公式输入方法。

以上描述仅为本申请的较佳实施例以及对所运用技术原理的说明。本领域技术人员应当理解,本申请中所涉及的发明范围,并不限于上述技术特征的特定组合而成的技术方案,同时也应涵盖在不脱离所述发明构思的情况下,由上述技术特征或其等同特征进行任意组合而形成的其它技术方案。例如上述特征与本申请中公开的(但不限于)具有类似功能的技术特征进行互相替换而形成的技术方案。

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