本发明涉及计算机视觉和人机交互技术领域,具体为一种基于深度图像的手部轮廓特征优化方法。
背景技术:
专利号为201510282688.1的中国发明专利公开了一种基于深度图像的手部特征点检测方法,其包括以下步骤:(1)手部分割:利用kinect采集到人体运动视频序列来提取手部,通过深度图像利用openni得到人体手部位置信息,通过设定搜索区域及深度阈值方法,初步获得手心点;利用opencv的find_contours函数得到手部轮廓;通过找到手轮廓内最大内接圆圆心,精确确定手部手心点,通过计算所有手部内部点到轮廓点之间的最短距离m,在最短距离中找到最大值m,m所代表的手部内部点为手心点,内接圆半径r=m;(2)特征点提取:通过不断对手部轮廓进行高斯平滑,并结合曲率阈值从而得到css曲率图,根据图中css轮廓分析极限值得出手部指尖点及指谷点坐标,同时需要补全根据css曲率图无法得到的手部指谷点;(3)补全缺失手指,利用角度阈值和深度跳变结合的方式来补全缺失手指,从而找到弯曲手指的指尖点。
然而,这种基于设定搜索区域及深度阈值方法提取的手部轮廓特征会附带小臂、衣袖等其他物体的轮廓,这些冗余轮廓会造成轮廓特征提取质量较差,在特征向量化过程中与预期特征不符,导致最终手势识别系统的识别精度较低。
为此,申请人进行了有益的探索和尝试,找到了解决上述问题的办法,下面将要介绍的技术方案便是在这种背景下产生的。
技术实现要素:
本发明的目的在于提供一种基于深度图像的手部轮廓特征优化方法,以解决上述背景技术中提出的问题。
为实现上述目的,本发明提供如下技术方案:一种基于深度图像的手部轮廓特征优化方法,该方法包括如下步骤:
(6)读入深度图像,预处理并得到包含冗余轮廓的手部区域图;
(7)计算初始迭代点和迭代半径,初始迭代点尽量靠近手指尖;
(8)利用均值漂移算法进行迭代,找到最接近手掌的圆形区域,返回圆心与半径;
(9)更新手部区域轮廓,将冗余轮廓剔除,得到精确的手部区域轮廓;
(10)利用凸包检测算法得到手部区域的外部凸包轮廓,并结合内轮廓与外凸包的hu不变矩信息,得到14维轮廓特征向量。
优选的,所述的基于深度图像的手部轮廓特征优化方法,在所述的步骤(1)中,深度图像预处理模块对深度图像进行阈值切割、图形学滤波并计算最大连通区域,包括以下步骤:
(a)利用深度阈值得到手部区域,并将其映射到二值图像,包含冗余轮廓,白色前景表示手部区域,背景为黑色;
(b)利用图形学运算,先做开运算,平滑图像轮廓并去除背景噪声,再做闭运算,填充目标内的细小孔洞;
(c)寻找最大面积轮廓,并认为该轮廓为手部区域轮廓,包含冗余轮廓,填补该轮廓内的孔洞。
优选的,所述的基于深度图像的手部轮廓特征优化方法,在所述步骤(2)中,包括从初步提取的手部区域中选取初始迭代点和迭代半径的步骤,该步骤包括以下步骤:
(a)将提取的手部区域轮廓以多边形表示,并修复含有内环的多边形情况;
(b)计算多边形的最小外接矩形,并与图像边界进行比较,根据两者重合的边数进行如下分类讨论:
(a)若手离镜头过近,图像无法显示完整的手部区域,算法终止;
(b)若重合的两条边是平行边,则表明手横向或纵向贯穿镜头,图像无法显示完整的手部区域,算法终止;
(c)若没有手臂部分轮廓与图像边界相交,冗余轮廓不存在,此时返回的初始迭代点为手部区域的质心,初始迭代半径根据实际手掌经验值选取;
(d)若重合的两条边是相交边,则在多边形的最小外接矩形的四个顶点中,计算距离多边形最近的顶点,且要保证该顶点是有效的,不与图像边界相交,再计算得到该顶点在多边形上的投影点,即多边形上距离该顶点最近的点;
最后取投影点与多边形质心的连线中点作为初始迭代点,连线长度的一半作为初始迭代半径,若初始迭代点在多边形外部,则取该点在多边形上的投影点作为新的初始迭代点。
优选的,所述的基于深度图像的手部轮廓特征优化方法,在所述步骤(3)中,还包括基于均值漂移的迭代过程,该步骤包括以下子步骤
(a)根据初始迭代点c0与初始迭代半径r0得到迭代圆c的初始区域;
(b)寻找迭代圆c与手部区域多边形p的相交区域i,并计算该区域的质心ci;
(c)比较质心ci与迭代圆的圆心c,若两者相差超过迭代门限,则进入步骤s34;若两者相差在迭代门限内,则进入步骤(e);
(d),调整迭代圆的圆心c为相交区域的质心ci,半径r为相交区域的质心ci在手部区域多边形p边界上的投影,并返回步骤(b);
(e),若s(i)/s(c)>1.1sth,则增加迭代圆半径r,并返回所述的步骤(2);若s(i)/s(c)<0.9sth,则减小迭代圆半径r,并返回步骤(b);否则终止迭代,输出迭代结束时的迭代圆的圆心位置c和半径r,上述的s(i),s(c)分别为相交区域与迭代圆面积,sth为有效面积像素阈值。
优选的,所述的基于深度图像的手部轮廓特征优化方法,在所述步骤(4)中,还包括根据均值漂移的迭代结果更新手部区域轮廓的过程,该步骤包括以下子步骤:
(a)根据迭代圆与手部区域多边形的相交情况,将手部区域多边形分成相交区域i和不相交区域
(b)针对不相交区域q中的每个独立多边形q,计算q与图像边界的重合线段d的长度。若
(c)对不相交区域q中的每个独立多边形q,计算q的质心cq,以迭代圆的圆心c为起点,作延长线cq直至图像边界,计算q与cq延长线的重合线段m的长度。若
(d)判断当前的手部区域多边形p是否包含多个分离的多边形部分,若是,则将其中面积最大的多边形pmax作为最终得到的精确手部区域pa,并返回pa的轮廓作为精确手部轮廓。
优选的,所述的基于深度图像的手部轮廓特征优化方法,在所述步骤(5)中结合凸包检测的轮廓特征向量化过程,该步骤包括以下子步骤:
(a)使用graham扫描法计算精确手部区域的外部凸包轮廓;
(b)计算精确手部区域轮廓的7维hu不变矩向量;
(c)计算外部凸包轮廓的7维hu不变矩向量;
(d)组合手部区域轮廓和外部凸包轮廓的14维hu不变矩形成新的手部轮廓特征向量。
与现有技术相比,本发明的有益效果是:该基于深度图像的手部轮廓特征优化方法相比于传统的手部轮廓特征提取算法,利用均值漂移和凸包检测算法的手部轮廓特征优化法可以有效去除小臂、衣袖等其他冗余轮廓信息,特征向量化的过程中尽可能保证轮廓特征的准确性和全面性,为后续的分类学习等步骤的提供更为准确的输入数据源,提高最终手势识别系统的稳定性。
附图说明
图1是本发明总体算法流程图。
图2是本发明的深度图像预处理流程图。
图3是本发明的计算初始迭代点和初始迭代半径的流程图。
图4是本发明的根据均值漂移算法迭代寻找手掌区域的流程图。
图5是本发明的手部区域轮廓更新的流程图。
图6是本发明的结合凸包检测的轮廓特征向量化过程的流程图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
请参阅图1-图6,本发明提供一种技术方案:
实施例1:
一种基于深度图像的手部轮廓特征优化方法,该方法包括如下步骤:
(11)读入深度图像,预处理并得到包含冗余轮廓的手部区域图;
(12)计算初始迭代点和迭代半径,初始迭代点尽量靠近手指尖;
(13)利用均值漂移算法进行迭代,找到最接近手掌的圆形区域,返回圆心与半径;
(14)更新手部区域轮廓,将冗余轮廓剔除,得到精确的手部区域轮廓;
(15)利用凸包检测算法得到手部区域的外部凸包轮廓,并结合内轮廓与外凸包的hu不变矩信息,得到14维轮廓特征向量。
实施例2:
根据实施例1所述的基于深度图像的手部轮廓特征优化方法,在所述的步骤(1)中,深度图像预处理模块对深度图像进行阈值切割、图形学滤波并计算最大连通区域,包括以下步骤:
(a)利用深度阈值得到手部区域,并将其映射到二值图像,包含冗余轮廓,白色前景表示手部区域,背景为黑色;
(b)利用图形学运算,先做开运算,平滑图像轮廓并去除背景噪声,再做闭运算,填充目标内的细小孔洞;
(c)寻找最大面积轮廓,并认为该轮廓为手部区域轮廓,包含冗余轮廓,填补该轮廓内的孔洞。
实施例3;
根据实施例1或2所述的基于深度图像的手部轮廓特征优化方法,在所述步骤(2)中,包括从初步提取的手部区域中选取初始迭代点和迭代半径的步骤,该步骤包括以下步骤:
(a)将提取的手部区域轮廓以多边形表示,并修复含有内环的多边形情况;
(b)计算多边形的最小外接矩形,并与图像边界进行比较,根据两者重合的边数进行如下分类讨论:
(a)若手离镜头过近,图像无法显示完整的手部区域,算法终止;
(b)若重合的两条边是平行边,则表明手横向或纵向贯穿镜头,图像无法显示完整的手部区域,算法终止;
(c)若没有手臂部分轮廓与图像边界相交,冗余轮廓不存在,此时返回的初始迭代点为手部区域的质心,初始迭代半径根据实际手掌经验值选取;
(d)若重合的两条边是相交边,则在多边形的最小外接矩形的四个顶点中,计算距离多边形最近的顶点,且要保证该顶点是有效的,不与图像边界相交,再计算得到该顶点在多边形上的投影点,即多边形上距离该顶点最近的点;
最后取投影点与多边形质心的连线中点作为初始迭代点,连线长度的一半作为初始迭代半径,若初始迭代点在多边形外部,则取该点在多边形上的投影点作为新的初始迭代点。
实施例4:
根据实施例1或2或3所述的基于深度图像的手部轮廓特征优化方法,在所述步骤(3)中,还包括基于均值漂移的迭代过程,该步骤包括以下子步骤
(a)根据初始迭代点c0与初始迭代半径r0得到迭代圆c的初始区域;
(b)寻找迭代圆c与手部区域多边形p的相交区域i,并计算该区域的质心ci;
(c)比较质心ci与迭代圆的圆心c,若两者相差超过迭代门限,则进入步骤s34;若两者相差在迭代门限内,则进入步骤(e);
(d),调整迭代圆的圆心c为相交区域的质心ci,半径r为相交区域的质心ci在手部区域多边形p边界上的投影,并返回步骤(b);
(e),若s(i)/s(c)>1.1sth,则增加迭代圆半径r,并返回所述的步骤(2);若s(i)/s(c)<0.9sth,则减小迭代圆半径r,并返回步骤(b);否则终止迭代,输出迭代结束时的迭代圆的圆心位置c和半径r,上述的s(i),s(c)分别为相交区域与迭代圆面积,sth为有效面积像素阈值。
实施例5:
根据实施例1或2或3或4所述的基于深度图像的手部轮廓特征优化方法,在所述步骤(4)中,还包括根据均值漂移的迭代结果更新手部区域轮廓的过程,该步骤包括以下子步骤:
(a)根据迭代圆与手部区域多边形的相交情况,将手部区域多边形分成相交区域i和不相交区域
(b)针对不相交区域q中的每个独立多边形q,计算q与图像边界的重合线段d的长度。若
(c)对不相交区域q中的每个独立多边形q,计算q的质心cq,以迭代圆的圆心c为起点,作延长线cq直至图像边界,计算q与cq延长线的重合线段m的长度。若
(d)判断当前的手部区域多边形p是否包含多个分离的多边形部分,若是,则将其中面积最大的多边形pmax作为最终得到的精确手部区域pa,并返回pa的轮廓作为精确手部轮廓。
实施例6:
根据实施例1或2或3或4或5所述的基于深度图像的手部轮廓特征优化方法,在所述步骤(5)中结合凸包检测的轮廓特征向量化过程,该步骤包括以下子步骤:
(a)使用graham扫描法计算精确手部区域的外部凸包轮廓;
(b)计算精确手部区域轮廓的7维hu不变矩向量;
(c)计算外部凸包轮廓的7维hu不变矩向量;
(d)组合手部区域轮廓和外部凸包轮廓的14维hu不变矩形成新的手部轮廓特征向量。
尽管已经示出和描述了本发明的实施例,对于本领域的普通技术人员而言,可以理解在不脱离本发明的原理和精神的情况下可以对这些实施例进行多种变化、修改、替换和变型,本发明的范围由所附权利要求及其等同物限定。
相关知识
线条修饰与脸部轮廓塑造技巧.pptx
改变面部轮廓有几种方法
脸部轮廓怎么提升?手把手教你面部提升手法!
一种基于声音特征识别的婴儿哭声翻译方法与流程
改变面部轮廓有几种方法?
提升面部轮廓的方法有哪些?
资讯:面部轮廓塑形方法与适用人群。
脸部轮廓整形
正确认识面部轮廓衰老
骨性硬轮廓之面部形态的稳定与支撑
网址: 一种基于深度图像的手部轮廓特征优化方法与流程 https://m.trfsz.com/newsview468545.html