【图像识别】基于matlab实现步态周期检测与步态角度特征
作者:互联网
一、CASIA数据库
中国科学院自动化研究所免费提供CASIA步态数据库的下载。目前CASIA步态数据库有三个数据集:Dataset A(小规模库), Dataset B(多视角库)和Dataset C(红外库)。
Dataset B是一个大规模的,多视角的步态库,采集于2005年1月。共有124个人,每个人有11个视角(0,18,36,…,90°,…,180°),在三种行走条件下(普通条件,穿大衣,携带包裹条件)采集。本次使用了Dataset B库中部分人员(共10人)的普通条件下侧面视角(即90°视角)(如下图1-1)在正常行走时的轮廓图像作为图像数据库进行实验(部分截图如下图1-2)。
图1-1 普通条件侧面视角
图1-2 10人中部分轮廓图
二、基于图像处理的步态特征提取框架
图2-1 步态特征提取框架
中科院的CASIA步态数据库专门用于人体步态研究,其采集了大量的人体步态图片,本次使用CASIA步态数据库中人体步态图片。采用中科院的CASIA步态数据库,共选取10位不同人员,每人50~60张步态图像集。
在图像预处理阶段,主要的代码实现5个功能模块:灰度化转换、二值化转换、图像形态学处理、人像轮廓提取,以及人像细化处理。
一个完整的步态周期在步态人像中体现出的现象是从行走时两腿打开到最大宽度(或最小宽度),到下下次两腿迈开到最大宽度(或最小宽度)之间的时间间隔。本文通过人像宽高比进行周期检测。
步态特征提取主要分为以下步骤:提取人像质心、以质心为中心建立坐标系、对人像进行分区、计算各分区特征量。
三、图像预处理
3.1 灰度化与二值化
一般常用的彩色图片是RGB格式,具有24为的图位深,图片所含信息量过大,运算处理时间长。灰度化与二值化的目的是将RGB图转换成二值图,虽然操作会丢失原始图片的颜色、灰度值大小信息;但对于人像图片,其保留了人像的轮廓纹理信息,同时极大的降低图片数据大小,为后续的处理提高效率。
3.2 形态学处理
形态学原本是研究生物的形态和结构。在图像中,主要应用来表示数字形态学的内容,把数学形态学作为工具将图像的表达和描绘区域形状的有用分量提取出来,如边界、骨架和凸壳等,其基本运算包括:腐蚀和膨胀、开闭运算、击中击不中变换等[3]。
开运算:先腐蚀后膨胀的过程;用来消除小物体、在纤细点处分离物体、平滑较大物体的边界的同时并不明显改变其面积。开运算通常是在需要去除小颗粒噪声,以及断开目标物之间粘连时使用。其主要作用与腐蚀相似,与腐蚀操作相比,具有可以基本保持目标原有大小不变的优点(如断开图4中,白区间连线)。
闭运算:先膨胀后腐蚀的过程;用来填充物体内细小空洞、连接邻近物体、平滑其边界的同时并不明显改变其面积(如填充图3-1中,白区中黑框)。
图3-1 开闭运算作用
在获得灰度图后,其人物图像中人体存在缺损以及不应出现的连接部分;针对这种情况,首先需要对所有的图像进行开闭运算。本次选择了长为4的圆盘结构元素(结构元素参考图3-2)对图像进行先闭后开运算,进而对缺损部分进行填充,而对不应连接的区域进行腐蚀。其部分处理效果如下本次利用开闭运算主要目的在于将步态图像中,人像中出现的缺损以及未完全差分掉而造成人像误连接区域。
图3-2 图像处理中的一种圆盘结构元素
其形态学操作之后的人像对比如下图3-3所示;其中左侧为未处理前的步态人像图片,其中人像具有缺损以及误连接区域;通过形态学处理之后,其人像轮廓内部缺损已填充,且滤除了误连接像素点。
图3-3 人像步态轮廓经过开闭运算处理
3.3 人像轮廓提取
图像轮廓提取的目的在于提取出人体轮廓;在保留人体人物形状、大小的前提下,减小轮廓内部大量像素点的计算量;从而进一步提高运行速率。
在灰度图中边缘部分是相邻区域灰度值不连续或突变造成;一般常借助一阶和二阶导数来检测边缘。在边缘位置处,一阶导数的幅度值会出现在局部极值,而二阶导数的幅度值会出现过零点,因此可通过计算灰度导数并检测局部极值点或过零点来确定边缘位置。常用的边缘检测算子有Sobel算子、拉普拉斯算子和Canny算子等。
本次轮廓提取利用到Sobel算子(结构如图3-4)的边缘检测,对人物进行边缘检测,进而获得轮廓信息。其对处理后,部分轮廓如下图3-5所示:
图3-4 sobel算子
图3-5 人像轮廓提取
3.4 人像轮廓提取
用ZS细化算法获取人体骨架。ZS细化算法是一个迭代算法,该算法通过分析图像中的某一个像素点P1的八邻域各个像素点的像素值来确定是否需要删除 该点,其邻域位置关系如图3-6所示。
图3-6 zs细化算法邻域位置关系
1)、循环所有像素值为1的像素点,删除同时满足下列4个条件的像素点:
式中,N(P1)表示P1的8个邻域像素点中像素值为1的个数,S(P1)表示P1的邻域中按照P2,P3,P4,P5,P6,P7,P8,P9,P2的次序出现像素值由0变为1的次数。
2)、与步骤1)相似,只改条件③为P2. P4. P8=0,条件④为P2. P6. P8=0。
循环迭代上述两个步骤,直到没有像素被删除为止;步态图细化后的骨架如图3-7-a所示。再获得人体骨架之后,结合人像轮廓与骨架,生成基于骨架的轮廓图,如3-7所示:
图3-7 提取骨架并与轮廓图叠加生成带有骨架的轮廓图
四、步态周期检测
4.1 步态周期
步态是人行走过程的周期性表现;如图4-1所示,由于人体身高相对固定,因而行走时,人像的高度不会改变;而在行走过程中,人体腿部处于周期性的前后摆动,从而人像宽度会随着腿的摆动而周期性变化;且当腿部跨步最大时刻,人像宽度最大,当腿部跨步最小时,人像宽度最小。
图4-1 行走过程中宽高变化
本次在考虑摄像误差情况下,利用人像宽高比作为周期检测的特征。根据步态图中人体区域的宽度和高度的比值来计算步态周期,一个步态序列的步态图宽高比变化如图4-2。
图4-2 人体行走过程中宽高比变化曲线
通过步态宽高比特征,其能够近似体现步态的周期性变化;从而在获得步态宽高比特征前提下,以宽高比第1次出现极小值为步态周期的起点,第3次出现极小值为步态周期终点。通过该方法,从图集中提取出一个步态周期所对应的人物相片,从而完成步态周期提取操作,记周期为T。
图4-3 截取一个步态周期中的宽高比
五、步态特征提取
5.1 宽高比特征
通过基于宽高比特征,对不同行人的步态图像进行步态周期检测与提取,不仅可以获得不同行人的步态周期人像图片;还能够根据周期内不同行人的宽高比进行比较分析。
通过下图5-1以及表5-1,可了解到人像宽高比特征,不仅能够分离出步态周期,而且通过比较发现不同行人的人像宽高比曲线存在如周期时间长短不同、波峰波谷出现时间以及幅值不同等差异性;因而宽高比可作为初步分类的步态特征 。
图5-1 截取部分不同人一个步态周期内宽高比特征变化曲线
5.2 角度特征
考虑到同一人在不同步态下,腿部摆动幅度的不同,其腿部与质心之间的距离以及角度不同;因而这里以距离角度为另外的特征。
首先获得人像轮廓的质心,然后以质心为中心建立新坐标系,并对人体下半身轮廓分为左右2个区域,并分别求得各个区域中像素与质心之间的角度特征。
首先输入步态轮廓图像,通过从上往下、从左往右的顺序逐行扫描轮廓图像,对像素值不为零的目标像素横纵坐标值累加处理,并累加像素的个数,最后求出横纵坐标累加和的平均值;如下图5-2。具体公式如下:
式中,N为步态轮廓像素点个数,xi和yi为第i个像素的横纵坐标。
图5-2 人像质心
在获取人像轮廓质心的前提下;以质心为中心,水平轴为x轴,垂直轴为y轴建立坐标系;并对轮廓像素位置转换为该坐标系下的位置,如下图5-3。
图5-3 建立新坐标系
以新建立的坐标系为基坐标系,以质心为中心;将人像分为上下半身,并对人像下半身分为左右分区,然后对分区中的轮廓像素求其与x轴间夹角,如图5-4所示。
图5-4 对人像下半身进行分区
式中,θi为第i个像素点的夹角,xi和yi为第i个像素的横纵坐标。
通过计算每个像素点的夹角之后,采取求和取平均作为该分区的角度值;从而对图像每帧获取对应的角度特征,其单人行走过程中的步态帧图像所得的角度特征变化曲线如下图5-5所示。
图5-5 同一人行走过程中2分区的角度特征曲线
通过该步态的角度特征曲线可发现行人的左右分区的角度特征变化出现类周期性变化;图中,整个步态图像具有50帧;其角度特征呈现的周期以14帧~27帧为例,一个周期为13帧时间。
如下图5-6所示,其角度特征还呈现出以0数轴(在此即为垂直轴),拟对称分布;且两分区角度变化幅值范围在20°~40°之间。
图5-6 同一人行走过程中2分区的角度特征曲线
下图5-7,截取5人在各自左右分区的角度特征曲线;通过直观比较不同人员的步态角度特征,可发现不同人的角度特征曲线体现出不同的峰值,但各个分区的曲线分布相对集中,走势基本相同,其幅值变化范围在20°内。
图5-7 截取不同人行走过程中2分区的角度特征曲线
图5-8以及表5-2,则为对以上5人,所提取出的一个步态周期的步态帧序列的角度特征变化曲线以及各自的周期、最大跨步时角度和对应的时间等信息。通过曲线可看出一个步态周期中,包含了两个角度特征周期;而实际人在行走过程中,一个步态周期可分为左右腿的交替,即以腿跨度最小时为起点,第三次跨度最小为周期终点,期间出现左右腿的交替各一次,左右腿的角度特征均会出现一次由最小至最大再至最小的过渡。
图中可看出一个步态周期中,包含了两个角度特征周期;且不同人的特性曲线的周期长短不同、波峰波谷时刻不同。角度特征能够体现出步态周期性特点,并且反映了不同人步态的差异性。
图5-8 截取5人一个步态周期中2分区的角度特征曲线
标签:人像,图像识别,周期,特征,步态,matlab,宽高比,轮廓 来源: https://blog.51cto.com/u_15287693/3023778