基于中科院-CASIA-GaitDatasetB步态图像轮廓数据库的步态周期检测与步态角度特征

   由于最近研究的需要,开始将万恶的双手伸向了人体下肢步态(如步态周期检测、步态特征提取、步态相的划分与步态识别…);查了些论文以及在网上找了很久,虽然找到了些参考性的论文,但是没有一份真实的代码供仿真实验。

  再加上有“计算机视觉”这一课程,就打算以中科院的CASIA-GaitDatasetB轮廓图像数据库作为步态图像数据库,用人体步态图像,做一个侧面视角的步态周期检测;然后再提取了角度特征。

注1:本次只是提供了一份步态周期检测与步态角度特征提取的参考;并没有对该工作进行学术性的分析;
注2:文中部分内容引用与中科院以及参考论文内容;
注3:由于篇幅过长,该实验的matlab代码介绍在我的下一篇博文:https://blog.csdn.net/BinHeon/article/details/94640907
注4:中科院CASIA数据库链接:(轮廓图可直接下载,获取全库则需要申请)
http://www.cbsr.ia.ac.cn/china/Gait Databases CH.asp

一、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所示:

图2-1 步态特征提取框架

1、步态数据
  中科院的CASIA步态数据库专门用于人体步态研究,其采集了大量的人体步态图片,本次使用CASIA步态数据库中人体步态图片。采用中科院的CASIA步态数据库,共选取10位不同人员,每人50~60张步态图像集。
2、图像预处理
  在图像预处理阶段,主要的代码实现5个功能模块:灰度化转换、二值化转换、图像形态学处理、人像轮廓提取,以及人像细化处理。
3、步态周期检测
  一个完整的步态周期在步态人像中体现出的现象是从行走时两腿打开到最大宽度(或最小宽度),到下下次两腿迈开到最大宽度(或最小宽度)之间的时间间隔。本文通过人像宽高比进行周期检测。
4、步态特征提取
  步态特征提取主要分为以下步骤:提取人像质心、以质心为中心建立坐标系、对人像进行分区、计算各分区特征量。

三、图像预处理

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细化算法邻域位置关系

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.1 预处理

1、质心获取
  首先输入步态轮廓图像,通过从上往下、从左往右的顺序逐行扫描轮廓图像,对像素值不为零的目标像素横纵坐标值累加处理,并累加像素的个数,最后求出横纵坐标累加和的平均值;如下图5-2。具体公式如下:


式中,N为步态轮廓像素点个数,xi和yi为第i个像素的横纵坐标。

图5-2 人像质心

2、以质心为中心建立新坐标系
  在获取人像轮廓质心的前提下;以质心为中心,水平轴为x轴,垂直轴为y轴建立坐标系;并对轮廓像素位置转换为该坐标系下的位置,如下图5-3。

图5-3 建立新坐标系

5.2.2 角度特征

  以新建立的坐标系为基坐标系,以质心为中心;将人像分为上下半身,并对人像下半身分为左右分区,然后对分区中的轮廓像素求其与x轴间夹角,如图5-4所示。

图5-4 对人像下半身进行分区

其第i个像素点的夹角θi计算公式如下:


式中,θi为第i个像素点的夹角,xi和yi为第i个像素的横纵坐标。

1、单人各分区角度特征
  通过计算每个像素点的夹角之后,采取求和取平均作为该分区的角度值;从而对图像每帧获取对应的角度特征,其单人行走过程中的步态帧图像所得的角度特征变化曲线如下图5-5所示。

图5-5 同一人行走过程中2分区的角度特征曲线

  通过该步态的角度特征曲线可发现行人的左右分区的角度特征变化出现类周期性变化;图中,整个步态图像具有50帧;其角度特征呈现的周期以14帧~27帧为例,一个周期为13帧时间。
  如下图5-6所示,其角度特征还呈现出以0数轴(在此即为垂直轴),拟对称分布;且两分区角度变化幅值范围在20°~40°之间。

图5-6 同一人行走过程中2分区的角度特征曲线

2、不同行人各分区角度特征
  下图5-7,截取5人在各自左右分区的角度特征曲线;通过直观比较不同人员的步态角度特征,可发现不同人的角度特征曲线体现出不同的峰值,但各个分区的曲线分布相对集中,走势基本相同,其幅值变化范围在20°内。

图5-7 截取不同人行走过程中2分区的角度特征曲线

  图5-8以及表5-2,则为对以上5人,所提取出的一个步态周期的步态帧序列的角度特征变化曲线以及各自的周期、最大跨步时角度和对应的时间等信息。通过曲线可看出一个步态周期中,包含了两个角度特征周期;而实际人在行走过程中,一个步态周期可分为左右腿的交替,即以腿跨度最小时为起点,第三次跨度最小为周期终点,期间出现左右腿的交替各一次,左右腿的角度特征均会出现一次由最小至最大再至最小的过渡。
  图中可看出一个步态周期中,包含了两个角度特征周期;且不同人的特性曲线的周期长短不同、波峰波谷时刻不同。角度特征能够体现出步态周期性特点,并且反映了不同人步态的差异性。

图5-8 截取5人一个步态周期中2分区的角度特征曲线

----------------------------------------- END -----------------------------------------

基于中科院-CASIA-GaitDatasetB步态图像轮廓数据库的步态周期检测与步态角度特征相关推荐

  1. 基于CASIA-GaitDatasetB步态图像轮廓数据库的步态周期检测与步态角度特征MATLAB源码

    部分核心程序:D197 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % 步态特征提取 宽高比 ...

  2. 【交通标志识别】基于matlab Hog+SVM路标检测与识别【含Matlab源码 1715期】

    一.SVM路标检测识别简介 1 路标识别 完整的路标识别系统包括:图像的获取与预处理,图像分割(路标定位),特征提取,模式分类(路标识别)等部分.其中模式分类是系统的关键技术.较常用的模式分类方法是神 ...

  3. 【图像隐写】DCT文本嵌入+提取【含GUI Matlab源码 1850期】

    ⛄一.DCT数字水印简介 1 前言 随着网络通信技术的发展,社会节奏的加快,网络通信技术的成熟,需求也开始发生改变,人们对便利的需求也越来越大,通过将媒体信息数字化,使得信息表达的精准和效率得到了明显 ...

  4. 【水果检测】基于计算机视觉实现柑橘质量检测及分级系统含Matlab源码

    ​1 简介 水果分级技术能够保证水果的质量,提高消费者的满意度,增强水果产业的竞争力和利润水平.农业现代化进程的加快使得农产品品质检测和分级技术显得更加重要.在我国,水果品质检测绝大部分仍停留在靠人工 ...

  5. 【卡尔曼滤波】基于EKF、UPF、PF、EPF、UPF多种卡尔曼滤波实现航迹滤波跟踪matlab源码

    1 模型 本文重点论述了EKF.UPF.PF.EPF.UPF多种卡尔曼滤波的理论基础,以 离散时间系统为主,介绍了各种滤波方法的递推公式,分析 了各种方法的特点,理顺了种种方法之间的区别和联系,阐 述 ...

  6. 【滤波器】基于FIR+IIR(高通+低通+带通)滤波器实现音频信号去噪含Matlab源码

    1 简介 结合数字滤波器的理论基础和设计方法,在MATLAB程序语言环境下,设计出有限长单位脉冲响应(FIR)数字滤波器,同时利用GUI界面设计FIR数字滤波器人机交互平台,该系统平台界面直观.操作简 ...

  7. 【滤波跟踪】基于EKF、UPF、PF、EPF、UPF多种卡尔曼滤波实现航迹滤波跟踪matlab源码

    1. 使用卡尔曼滤波器的目的 我们假设你建造了一个可以在树林里行走的小机器人,为了精准的进行导航,机器人需要每时每刻都知道它自己的位置 我们用符号来表示机器人的状态变量,在此处我们假设状态变量只包含机 ...

  8. 【信号去噪】 基于小波软阈值+硬阈值+改进阈值实现轴承故障仿真信号去噪含Matlab源码

    1 简介 软阈值消噪是信号消噪中的标准算法.故障检测中的信号去噪,要求在降低噪声水平的同时,保留信号中用于故障检测的奇异特征.通过分析信号和噪声的小波系数在小波空间的不同特性,在"" ...

  9. 【图像修复】基于matlab损坏图像修复【含Matlab源码 731期】

    一.获取代码方式 获取代码方式1: 完整代码已上传我的资源:[图像修复]基于matlab损坏图像修复[含Matlab源码 731期] 点击上面蓝色字体,直接付费下载,即可. 获取代码方式2: 付费专栏 ...

最新文章

  1. [SQL基础教程] 1-5 表的删除和更新
  2. 乾颐堂军哥HCIE5-OSPF的NSSA区域细节和中间系统到中间系统基础
  3. Eclipse中怎样修改jar包的源码并将原jar包替换
  4. 《Oracle达人修炼秘籍:Oracle 11g数据库管理与开发指南 》一3.6 卸载Oracle 11g产品...
  5. 复杂 SQL 查询跑不动?DRDS 只读实例来解决!
  6. oracle with和insert结合使用
  7. redis学习-redis五大数据类型
  8. C++bitset二进制有序集
  9. python socket模块 和pyqt5_PyQt5+Socket实现CS架构的建议聊天室
  10. 小红帽linux操作教程_linux入门教程 Redhat使用指南
  11. B站UP主自制的开源OCR翻译器走红Github,用一次就粉了
  12. 软件项目工作量评估方法COSMIC重点笔记
  13. 无人机航拍全景图这些事情一定要知道
  14. Android开发学习之摇一摇功能的简单实现
  15. 基于FBX SDK的FBX模型解析与加载 -(二)
  16. codeforces-760-B Frodo and pillows(二分+数学)
  17. 大专生北漂10年,月薪翻20倍,我的人生从不被学历设限
  18. win11下电脑开热点,手机连接时显示无IP分配
  19. 浏览器如何清除缓存教程
  20. TM1650读取按键值异常

热门文章

  1. TJPU-32 分解质因数
  2. 内网安全十大防护策略详解
  3. std::string 含义
  4. GC9110 SOP8封装 5V低成本大电流有刷直流驱动芯片(替代参考LG9110S)
  5. SQL SERVER中的方差函数
  6. 标题:Mythroad平台自述----老虎会游泳(精啊!!)-阅(120)
  7. 传感器的灵敏度 分辨率与分辨力和精度 + 光纤光缆
  8. android上怎样让一个Service开机自动启动
  9. 关于05.轮播图.html:177 Uncaught TypeError: Cannot set properties of null (setting ‘onclick’)
  10. pandas操作excel的应用