发明名称 基于骨骼特征点提取的人体姿势识别方法
摘要 本发明公开了一种基于骨骼特征点提取的人体姿势识别方法,主要用于解决利用单摄像头进行人体姿势的识别问题。其实现步骤为:(1)视频输入;(2)预处理;(3)提取粗骨骼;(4)提取骨骼特征点;(5)骨骼特征点分类;(6)姿势识别;(7)输出姿势识别结果。本发明利用廓形图的像素点到边缘的最短距离获得粗骨骼,然后利用与前胸节点的距离计算骨骼特征点并分类,再根据骨骼特征点与前胸节点的相对位置信息进行姿势判断。能够在只有单摄像头的视频流输入的情况下,避免大量的计算判断出人体动作。本发明的优势在于计算量小,硬件要求低,准确率高,适应性强。
申请公布号 CN106056053A 申请公布日期 2016.10.26
申请号 CN201610348140.7 申请日期 2016.05.23
申请人 西安电子科技大学 发明人 鲍亮;张卓晟
分类号 G06K9/00(2006.01)I 主分类号 G06K9/00(2006.01)I
代理机构 陕西电子工业专利中心 61205 代理人 田文英;王品华
主权项 一种基于骨骼特征点提取的人体姿势识别方法,其具体实现步骤如下:(1)视频输入:(1a)将摄像头拍摄的视频图像输入计算机,按照视频拍摄顺序逐帧读取视频图像,得到图像信息;(2)预处理:(2a)使用核化相关滤波器KCF追踪算法,从当前帧图像中裁剪包含人体廓形形的矩形图像;(2b)将裁剪后的矩形图像等比例缩放至宽度150像素的矩形图像,使用OneCut图像切割算法,从矩形图像中提取人体廓形图C;(3)提取粗骨骼:(3a)计算人体廓形图C中每个像素点到人体轮廓图C的人体轮廓边缘的最短欧式距离,并用每个素点的最短欧式距离替换提取该最短欧式距离的人体廓形图C像素点的像素值,获得人体廓形图D;(3b)遍历人体廓形图D中所有像素点,筛选出满足以下条件的像素点,加入粗骨骼像素点集合S中:<img file="FDA0000997436140000011.GIF" wi="478" he="55" />其中,D(p)表示人体廓形图D中像素点p的像素值,D(q)表示人体廓形图D中像素q的像素值,Q表示像素点p的8连通域,<img file="FDA0000997436140000012.GIF" wi="38" he="45" />表示任意符号,∈表示属于符号;(3c)遍历人体廓形图D中所有像素点,选择像素值最大的像素点作为前胸节点E;(3d)判断计数器是否达到上限值20,若是,保留前胸节点E的坐标值,并将计数器清0;否则,计数器加1,比较上一帧的前胸节点E<sub>i‑1</sub>的y轴坐标值和当前帧的前胸节点E<sub>i</sub>的y轴坐标值,将y轴坐标值更小的前胸节点赋给当前 帧的前胸节点E;(4)提取骨骼特征点:(4a)遍历粗骨骼像素点集合S中的节点,计算每个节点与前胸节点E的欧式距离,将满足以下条件的节点加入到骨骼特征点点集合F中:<img file="FDA0000997436140000021.GIF" wi="737" he="67" />其中,d<sub>chest</sub>(p)表示节点p与前胸节点E的欧式距离,<img file="FDA0000997436140000022.GIF" wi="29" he="47" />表示存在符号,n表示在{1,2,3…}范围内的一个正整数,∈表示属于符号;(4b)遍历骨骼特征点集合F,计算每个骨骼特征点到其它骨骼特征点的欧式距离;(4c)选取骨骼特征点之间欧式距离小于4的两个骨骼特征点,从骨骼特征点集合F中删除这两个骨骼特征点,将以这个两个骨骼特征点为端点的线段的中点作为新的骨骼特征点加入到骨骼特征点集合F中;(4d)判断骨骼特征点集合F中骨骼特征点到其它骨骼特征点的欧式距离是否小于4,若是,则执行步骤(4b);否则,执行步骤(5);(5)骨骼特征点分类:(5a)创建三个空的特征点集合,分别为躯干特征点集合M,左肢特征点集合L,右肢特征点集合R;(5b)遍历骨骼特征点集合F,将满足以下条件的骨骼特征点加入躯干特征点集合M中:|p.x‑E.x|≤5其中,p.x表示骨骼特征点p的x轴坐标值,E.x表示前胸节点E的x轴坐标值,|·|表示取绝对值操作;(5c)遍历躯干特征点集合M,以躯干特征点集合M中所有特征点为参数,使用最小二乘法进行直线拟合,获得直线k;(5d)遍历骨骼特征点集合F,计算每个骨骼特征点到直线k的距离,将到直线k的欧式距离小于5的骨骼特征点加入到集合M中;(5e)遍历躯干特征点集合M,计算躯干特征点集合M中每个节点到直线k 的欧式距离,将到直线k的欧式距离大于5的节点从躯干特征点集合M中删除;(5f)遍历骨骼特征点集合F,比较每个骨骼特征点的x轴坐标值和前胸节点的x轴坐标值的差值的大小,将差值小于0的骨骼特征点加入到左肢特征点集合L,将差值大于0的骨骼特征点加入到右肢特征点集合R;(5g)遍历左肢特征点集合L,将属于躯干特征点集合M的特征点从左肢特征点集合L中删除;(5h)遍历右肢特征点集合R,将属于躯干特征点集合M的特征点从右肢特征点集合R中删除;(6)姿势识别:(6a)遍历躯干特征点集合M,计算集合中特征点的y轴坐标值的最大值和最小值的平均值,将平均值作为人体腰部高度;(6b)遍历左肢特征点集合L和右肢特征点集合R,比较两个集合中特征点的y轴坐标值与人体腰部高度,将y轴坐标值大于人体腰部高度的特征点删除;(6c)遍历左肢特征点集合L和右肢特征点集合R,计算特征点的距离特征和夹角特征,并将得到的距离和夹角特征保存到各个特征点的特征信息中;(6d)按照左肢特征点集合L和右肢特征点集合R中各个特征点的夹角特征从小到大的顺序,对左肢特征点集合L和右肢特征点集合R进行排序,将与相邻特征点的夹角特征差值大于30度的特征点从所在的集合中删除,得到筛选掉噪声骨骼特征点后的特征点集合;(6e)按照左肢特征点集合L和右肢特征点集合R中各个特征点的距离特征从小到大的顺序,对左肢特征点集合和右肢特征点集合进行排序;(6f)依次遍历左肢特征点集合L和右肢特征点集合R,比较步骤(6b)中计算的各特征点夹角特征,将夹角递减的特征点集合对应肢体识别为上举姿势,将夹角递减的幅度识别为对应肢体上举的幅度;将夹角递增的特征点集合对应肢体识别为下垂姿势,将夹角递增的幅度识别为对应肢体下垂的幅度;将夹角维持在大于80度小于100度的区间内的特征点集合对应的肢体识别为平举姿势;(7)输出各姿势识别结果。
地址 710071 陕西省西安市太白南路2号