-
摘要: 人体运动过程中,肢体的运动是连续的,而对应的运动捕捉数据是离散的.为了更好地分析人体日常运动行为的连续性与周期性,本文提出了一种基于函数型数据分析(Functional data analysis,FDA)的人体动态行为识别方法.首先,利用函数型数据分析方法,将可穿戴式运动捕捉系统采集的人体周期行为数据函数化,通过函数准确地定义数据的连续性与周期性;然后,根据导函数信息确定一个运动周期的起始点,并近似地提取出一个运动周期的数据序列;最后,根据不同行为一个周期内的曲线特征差异,利用支持向量机对动态行为进行分类识别.实验结果表明,本文的算法既能够较好地描述人体动态行为的连续性与周期性,又使得运动数据在标定的统一起始点处对齐,且在WARD数据集与自采集数据集上均取得了较好的识别率,分别达到97.5%与98.75%.
-
关键词:
- 动态行为识别 /
- 连续性与周期性 /
- 周期行为 /
- 函数型数据分析 /
- 可穿戴式运动捕捉系统
Abstract: In human motion, limb movement is continuous. However, the corresponding motion capture data is discrete. This paper explores a method for human dynamic action recognition based on functional data analysis (FDA) so as to analyze the continuity and periodicity of daily action. Firstly, we transform the periodic data collected by the wearable motion capture system into functional data using FDA, and then define the continuity and periodicity of data exactly by using function properties. Secondly, we determine the initial point of a motion period according to the derivative information, and then extract the data series representing a period of motion. Finally, we utilize support vector machine (SVM) to classify the dynamic action according to the different characteristics of the curves about different actions in a period. The experimental result indicates that our algorithm can describe the continuity and periodicity of human dynamic action, and align the motion data at the uniform start point we determined. At the same time, desirable recognition rates, such as 97.5% and 98.75%, can be achieved based on WARD and our database using our algorithm. -
人体行为识别是实现计算机对人体行为的理解与描述的方法, 是视频监控、智能看护和人机交互等相关领域的关键技术.基于视觉的人体行为识别方法已经较为成熟[1-2].近年来, 无线传感器网络技术日新月异, 可穿戴式运动捕捉系统应运而生.相比于传统的光学式运动捕捉系统, 其具有采集数据不受光照、场地、遮挡影响, 便携性较好, 保护采集者个人隐私等优点.因此, 基于可穿戴式运动捕捉系统的人体行为识别研究正逐渐成为研究热点[3-12].
基于可穿戴式运动捕捉系统的人体行为识别, 从特征提取角度来说, 国内外的研究工作主要使用三种方法. 1) 提取不同人体行为数据的时域特征[3-6, 8, 10], 例如均值、方差、中位数、相关系数、峰度和偏度等; 2) 提取信号的频域特征[4-6], 例如FFT系数、小波系数等, 常用方法包括傅里叶变换、小波变换等[7]; 3) 利用随机投影、局部保持投影等方法获得数据特征[11-12].三种方法既相互区分又相互联系, 不同研究者可组合以上方法进行特征提取.人体运动本身具有连续性, 即对于任意的一个人体日常行为来说, 手、脚或其他身体部位的运动都呈现一个连续的过程.现有方法多数采取直接对传感器采集的离散数据进行特征提取, 忽略了对运动数据本身的连续性的研究.本文试图先将离散数据连续化, 再从连续化后的数据中找出更接近运动本质的隐含的连续特征信息.
人体行为动作分为近似周期型行为和非周期型行为.近似周期型行为是指连续重复执行多次的运动行为.人体日常行为往往具有周期性特征, 而通过传感器采集的日常行为的数据序列同时也呈现近似周期型特征.本文考虑将这种离散运动数据序列转变为周期型连续函数, 不仅为运动数据连续性特征的研究提供理论基础, 与此同时还可以准确地表达运动数据的周期特征.因此, 本文引入离散数据函数化的处理方法, 即采用函数型数据分析(Functional data analysis, FDA).其基本思想是将观测样本不再视为离散的数据序列, 而是把观测到的数据看作一个整体, 并用函数表示, 从而利用连续型数据处理方法对样本进行分析[13-14].目前, 函数型数据分析方法主要应用于经济数据的若干处理中[15], 对于运动数据的研究也有所涉及[16].
通过可穿戴式运动捕捉系统获取的周期型运动数据序列往往包含成百上千个数据点.为了减少计算量, 并排除冗余信息干扰, 通常采用加窗处理(见图 1(a)), 对数据进行切割的方法.传统方法往往采用随机起始点的固定大小窗口提取数据并进行实验, 其中, 文献[5, 11-12]中分别将窗口大小定为256, 45和40.但是, 传统的窗口选取具有随机性, 因此难以表达数据的周期特征, 也无法实现周期的准确提取.本文算法的关键就是先将原始数据序列的内在周期性通过周期函数的形式予以准确表达; 然后从具有多个周期的函数中, 确定一个周期起始点, 使所有运动样本数据在此处对齐; 再从此起点处开始, 提取出近似一个周期的数据(见图 1(b)); 最后以此周期数据作为样本的特征向量对日常行为进行分类识别.
对运动数据进行特征提取后, 需要选择合适的分类器算法.常用于人体行为识别的分类器方法主要包括:支持向量机(Support vector machine, SVM)[8]、决策树(Decision tree, DT)[6, 9]、人工神经网络(Artificial neural network, ANN)[10]以及稀疏分类(Sparse representation classifier, SRC)[11-12]等.其中, SVM能较好地解决小样本, 非线性和高维数等实际问题[17-18].针对本文的数据类型, 采用SVM作为分类器, 即利用周期内部数据特征的差异性对人体动态行为进行分类识别.
1. 相关理论与方法
1.1 函数型数据分析
函数型数据分析方法是近年来兴起的一种统计学方法, 是对传统统计分析方法的一种发展和延伸. FDA常用于经济数据、气象数据等, 但是应用于运动数据序列的研究并不多见.人体运动过程中速度、加速度等变量的变化是连续的, 而传感器采集的相应数据都是离散的.因此, FDA应用于运动数据的研究具有一定的合理性. FDA的一般过程如下:
对于一个观测数据序列 $\pmb{y}=(y_{1}, y_{2}, \cdots, y_{n})^{\rm T}$ , 建立模型
$ \begin{align} y_{i}=x(t_{i})+\epsilon_{i}, \ i=1, 2, \cdots, n \end{align} $
(1) 其中, ${x}(t_{i})$ 表示观测数据序列的函数 $x(t)$ 在 $t_i$ 处的取值, $\epsilon_{i}$ 代表噪声.
为了估计式(1) 中 $x(t_{i})$ 的值, 利用基函数展开的方法, 即选择一组基函数 $\pmb{\Phi}(t)=(\phi_{1}(t), \phi_{2}(t)$ , $\cdots$ , $\phi_{K}(t))$ , 将离散数据转化为基函数的线性组合, 即
$ \begin{align} x(t_{i})=\sum_{k=1}^{K}c_{k}\phi_{k}(t_{i}), \ i=1, 2, \cdots, n \end{align} $
(2) 在基函数确定之后, 系数向量 $C=(c_{1}, c_{2}, \cdots$ , 的一组取值唯一地确定一个函数.求解系数向量的最直接方法是最小二乘法, 即最小化残差平方和求解
$ \begin{align} SMSSE(y|c)=\sum_{i=1}^{n}\left[y_{i}-\sum_{k=1}^{K}c_{k}\phi_{k}(t_{i})\right]^{2} \end{align} $
(3) 对于周期型观测数据, 常采用傅里叶级数作为基函数, 即
$ \begin{align*} &\phi_{1}(t)=1, \phi_{2}(t)=\sin(\omega t), \phi_{3}(t)=\cos(\omega t), \cdots, \\[2mm] &\phi_{2k}(t)=\sin(k \omega t), \phi_{2k+1}(t)=\cos(k \omega t) \end{align*} $
故观测数据序列的函数 $x(t)$ 的傅里叶展开式为
$ \begin{align} x(t)=&\ c_{1}+c_{2}\sin(\omega t)+c_{3}\cos(\omega t)+\cdots + \nonumber\\[1mm] &\ c_{2k}\sin(k\omega t)+c_{2k+1}\cos(k\omega t) \end{align} $
(4) 其中, $c_{i}$ $(i=1, 2, \cdots, 2k+1)$ 和 $\omega $ 为参数.
1.2 支持向量机
支持向量机是一种机器学习方法.其本质就是特征空间内的间隔最大化的线性分类器, 学习策略就是在特征空间内寻找使得样本间隔最大化的超平面, 即求解一个凸二次规划问题的过程.
SVM的关键环节就是求解如下优化问题:
$ \begin{align} & \rm{min}\quad \frac{1}{2}\|\mathit{\boldsymbol{ }}\!\!\omega\!\!\rm{ }{{\|}^{2}}+C\sum\limits_{i=1}^{n}{{{\xi }_{i}}} \\ & \rm{s}.\rm{t}.\quad y(\mathit{\boldsymbol{ }}\!\!\omega\!\!\rm{ }\cdot {{\mathit{\boldsymbol{x}}}_{i}}+b)\ge 1-{{\xi }_{i}},\ {{\xi }_{i}}\ge 0\qquad \qquad \qquad \qquad \qquad \\ & i=1,2,\cdots ,n \\ \end{align} $
(5) 其中, $\xi_{i} $ 称为松弛变量, $C $ 是惩罚参数.
核函数是SVM的关键因素之一.本文主要采用以径向基函数为核函数的SVM模型, 形式如下:
$ \begin{align} K(x, x_{1})={\rm exp}\left[-\frac{\|x-x_{1}\|^2}{2\sigma^{2}}\right] \end{align} $
(6) 其中, $\sigma $ 为核半径.
2. 本文算法描述
2.1 傅里叶级数拟合
2.1.1 拟合模型与拟合函数频率的确定
本文算法主要针对可穿戴式运动捕捉系统采集的人体周期型行为数据(所使用的行为识别数据库可参见第3.1节和第3.5节).由于人体运动本身具有连续性与周期性, 因此, 将离散的运动数据函数化, 从而获取人体运动的连续特征是十分必要的.
如前所述, 对这种具有周期性的离散观测数据采用 $ k $ 阶傅里叶级数拟合, 如式(4) 所示.其中, $k $ 值的大小决定了模型的复杂度.即 $ k $ 值较小时, 模型较为简单, 但容易导致数据欠拟合; 当 $ k $ 值较大时, 模型较为复杂, 可能出现过拟合现象, $k $ 可根据经验值估计, 本文中, $k=4$ .另外, 式中的 $ \omega $ 为拟合函数的频率, 记为 $ \omega_{\rm func} $ .拟合函数的频率 $ \omega_{\rm func} $ 和周期既要与原始数据的频率 $ \omega_{\rm data} $ 和周期 $ T_{\rm data} $ 尽可能接近( $ T_{\rm data} $ 可根据人体日常运动行为的近似周期估计), 又可保持每个拟合函数的个体性差异(即保留不同样本之间的运动频率的细微差异).关于 $ \omega_{\rm func} $ 的估算见算法1.
算法1.估算频率 $ \omega_{\rm func}$
输入. 原始数据序列 $ \pmb y$ , 人体运动数据近似周期.
输出. 频率 $ \omega_{\rm func}$ .
步骤1. 取 $ \omega_{\rm data}={2\pi}/{T_{\rm data}}$ ;
步骤2. 对原始数据序列 $ \pmb y $ 作离散傅里叶变换, 同时去除直流分量的影响;
步骤3. 取离散傅里叶变换的幅度最大值处的频率值 $ \omega_{\rm peak} $ (一般地, );
步骤4. 取 $ n=[{\omega_{\rm peak}}/{\omega_{\rm data}}]$ , 则.
图 2表示的是两组具有近似周期性的原始数据序列(数据来源于WARD数据集与自采集数据集, 见第3.1节和第3.5节), 采用算法1估算基波频率 $ \omega $ ( $ \omega $ 分别等于0.1457和0.0520, 此处拟合函数的周期以传感器的点数记), 得到4阶傅里叶级数拟合函数的图像.公式如下:
$ \begin{align} x(t)=&\ c_{1}+c_{2}\sin(\omega t)+c_{3}\cos(\omega t)+ \cdots + \nonumber\\[2mm] &\ c_{8}\sin(4\omega t)+c_{9}\cos(4\omega t) \end{align} $
(7) 实验表明, 采用傅里叶级数拟合, 既能够较好地反映原始数据的周期性与局部特征, 也能够去除孤立点和异常点, 完成对原始数据序列的平滑去噪.同时, 较之于离散运动数据, 函数化的结果不仅更能够反映人体运动和运动数据的连续性, 而且也便于精确选取运动周期的一个周期起始点, 从而便于数据的对齐.
2.1.2 傅里叶级数拟合应用于运动数据
一个运动行为往往需要利用多个无线传感器同时采集数据, 而每个传感器由多个测量单元构成.因此, 每个传感器在每个时刻都产生一个向量.即给定一个样本, 单个传感器在时刻(即第 $t_{i} $ 次采样时), 产生一个如下的向量:
$ \begin{align} \pmb a(t_{i})=(a_{1}(t_{i}), a_{2}(t_{i}), \cdots, a_{M}(t_{i})) \end{align} $
(8) 其中, $M $ 表示传感器测量单元总数.
单个传感器进行连续采样, 产生一个观测矩阵
$ \begin{align} s=[\pmb a(t_{1}), \pmb a(t_{2}), \cdots, \pmb a(t_{n})]^{\rm T} \end{align} $
(9) 其中, $ \pmb a(t_{i})$ , 是单个传感器的第 $ t_{i} $ 次采样数据.因此, 式(9) 可表示为
$ s={{\left[\begin{matrix} {{a}_{1}}({{t}_{1}})&{{a}_{2}}({{t}_{1}})&\cdots &{{a}_{M}}({{t}_{1}}) \\ {{a}_{1}}({{t}_{2}})&{{a}_{2}}({{t}_{2}})&\cdots &{{a}_{M}}({{t}_{2}}) \\ \vdots &\vdots &\ddots &\vdots \\ {{a}_{1}}({{t}_{n}})&{{a}_{2}}({{t}_{n}})&\cdots &{{a}_{M}}({{t}_{n}}) \\ \end{matrix} \right]}_{n\times M}} $
(10) 对观测矩阵的每一列数据都采用傅里叶级数拟合.即将单个传感器每一个测量单元的数据序列都转化为关于采样时刻的函数.因此, 式(10) 转化为如下的函数向量:
$ \begin{align} \pmb s^{\ast}=(f_{1}(t), f_{2}(t), \cdots, f_{M}(t)) \end{align} $
(11) 对于一个给定的运动行为样本, 样本数据由多个传感器同时采集得到, 因此存在如下的观测函数矩阵:
$ S={{\left[\begin{matrix} f_{1}^{1}(t)&f_{2}^{1}(t)&\cdots &f_{M}^{1}(t) \\ f_{1}^{2}(t)&f_{2}^{2}(t)&\cdots &f_{M}^{2}(t) \\ \vdots &\vdots &\ddots &\vdots \\ f_{1}^{N}(t)&f_{2}^{N}(t)&\cdots &f_{M}^{N}(t) \\ \end{matrix} \right]}_{N\times M}} $
(12) 其中, $N $ 表示传感器总数, $M $ 表示每个传感器的测量单元数.
2.2 周期起始点选取
根据不同类型的行为数据, 得到不同的样本函数矩阵.而不同样本函数矩阵中对应的函数的曲线形态特征存在差异.这种形态的差异正是样本集能够分类的依据, 且这种差异性在一个运动周期内就可以体现, 如图 3所示.因此, 只需提取一个周期的数据就能对不同行为进行区分.
通过式(12) 矩阵的元素函数选取周期起始点, 对于提取周期数据至关重要.本文采取的方法是通过拟合函数(如图 3 (a))的导函数(如图 4) 信息, 标定一个周期的起始点, 进而寻找一个运动周期, 具体算法步骤见算法2.从式(12) 的样本函数矩阵中, 选取其中一个元素函数(实验中采用脚部竖直方向加速度函数), 简记为, 找出其特征点, 以此特征点作为周期起始点较为合理.本文选取的极值点集合(即图 4的函数图像中所有的零点)作为函数的特征点集合, 再选取特征点集合中使得 $ f(t) $ 取得最小值的点, 作为运动周期的起始点.最后, 样本函数矩阵中每一个元素函数都以此起始点作为运动周期的起始点.
选用最小极值点作为周期起始点, 并实现数据对齐.从函数的角度上来说, 由于同一个函数存在多个极值点, 选用最小的极值点是为了统一标准, 使得基函数相同的不同函数在同一起点处进行对齐, 从而对一个周期内的不同形状与变化趋势的数据进行比较.从实际意义上来说, 脚部竖直方向加速度函数最小极值点即为运动过程中加速度值最小的点, 该时间点往往对应的是人的脚抬起到最高点时的时间, 而基于脚步移动的周期行为都包含这一运动过程.因此, 以该点作为运动的起始点, 既能够使得相同动作的所有样本函数均在此处对齐, 也能够使不同行为的周期函数在此起点处对齐.
算法2. 选取周期起始点
输入. $f(t)$ .
输出. $t^{\ast}$ .
步骤1. 计算 $ f(t) $ 的导函数 $ f'(t)$ ;
步骤2. 求方程 $ f'(t)=0 $ 解的集合 $ \eta$ ;
步骤3. 找出 $ \eta $ 中使得 $ f(t) $ 最小的元素 $ t^{\ast}$ .
2.3 特征向量的提取
标定好周期起始点后, 可根据拟合函数提取出一个周期的数据.本文通过对拟合函数进行重采样, 得到近似一个周期的运动数据, 以此表达函数一个周期内的曲线特征.传感器的采样频率, 普通人完成一个运动周期的时间与重采样的采样间隔直接决定了重采样的周期序列的长短.
假定传感器的采样频率为 $ F$ , 普通人完成一个运动周期的时间为 (可估算), 对样本函数矩阵 $ S $ 的每个元素函数进行离散化处理.即传感器每个测量单元的函数以确定的周期起始点开始进行重采样, 第 $ k $ 个测量单元的周期数据可表示为
$ \begin{align} \pmb v_{k}=(a_{k}(t^{\ast}), a_{k}(t^{\ast}+d), \cdots, a_{k}(t^{\ast}+l-1)) \end{align} $
(13) 其中, $k=1, 2, \cdots, M$ , $d $ 为采样间隔, $l $ 表示采样间隔时的周期长度(重采样点数), $l $ 由采样频率 $ F$ 和运动周期时间决定, 即 $ l=F\times T_{\rm data}$ .
对每个行为样本提取特征向量, 首先根据式(13) 对每个传感器都以式(14) 的形式构造向量
$ \begin{align} \pmb V^{j}=(\pmb v_{1}, \pmb v_{2}, \cdots, \pmb v_{M}), \ j=1, 2, \cdots, N \end{align} $
(14) 其中, $N $ 表示传感器的总数, $M $ 表示每个传感器的测量单元总数.然后将所有传感器的 $ \pmb V^{j} $ 排成如下的行向量:
$ \begin{align} \pmb V=(\pmb V^{1}, \pmb V^{2}, \cdots, \pmb V^{N}) \end{align} $
(15) 式(15) 就是将一个样本所有传感器所有测量单元的周期数据序列排成一个维向量的形式, 以此作为样本的特征向量, 用于之后的分类识别.
2.4 基于特征向量的分类
在分类器的选择方面, 本文采用以径向基函数作为核函数的支持向量机方法进行分类.对于径向基核函数来说, 式(5) 中参数 $ C $ 和式(6) 中的参数的选择对于支持向量机的影响较大, 但参数的值往往根据经验来判断.本文采用 $K$ 折交叉验证( $K$ -fold cross validation, $K$ -CV)方法选取最优参数[19].该方法可以有效避免过学习和欠学习情况的发生, 从而得到较为理想的分类模型.
3. 实验与分析
3.1 实验环境及数据来源
本文使用Windows7 64位操作系统与Matlab软件进行实验, 采用的数据集来自美国伯克利大学提供的可穿戴式传感器行为识别数据库(Wearable action recognition database, WARD).该数据集在采集数据时, 分别在左手手腕、右手手腕、腰部、左脚踝、右脚踝共5个部位处绑定传感器.每个传感器由一个三轴加速度计和一个双轴陀螺仪构成, 即由5个测量单元构成.采样频率为30Hz.数据集中包括13类日常行为.采集数据时要求20个采集者(13名男性和7名女性)每个动作做5遍.因此, 数据集中总共包括了1300个样本.本文选取其中的10类动态行为的1000个样本, 见表 1.
表 1 WARD中的行为描述Table 1 Description of the behaviors in WARD编号 行为类别 行为描述 1 正常行走 向前走持续超过10秒 2 逆时针行走 逆时针走持续超过10秒 3 顺时针行走 顺时针走持续超过10秒 4 向左转 原地左转持续超过10秒 5 向右转 原地右转持续超过10秒 6 上楼梯 上超过10阶的楼梯 7 下楼梯 下超过10阶的楼梯 8 慢跑 慢跑持续超过10秒 9 跳 原地跳超过5次 10 推轮椅 推轮椅超过10秒 3.2 数据预处理及周期提取
WARD使用了5个传感器采集数据, 每个传感器有5个测量单元(三轴加速度计和双轴陀螺仪可测量三个方向的加速度和两个方向的角速度).因此, 式(12) 中的 $ N $ 和 $ M $ 的值都为5.所以本文的样本函数矩阵为
$ S=\left[\begin{matrix} f_{1}^{1}(t)&f_{2}^{1}(t)&f_{3}^{1}(t)&f_{4}^{1}(t)&f_{5}^{1}(t) \\ f_{1}^{2}(t)&f_{2}^{2}(t)&f_{3}^{2}(t)&f_{4}^{2}(t)&f_{5}^{2}(t) \\ f_{1}^{3}(t)&f_{2}^{3}(t)&f_{3}^{3}(t)&f_{4}^{3}(t)&f_{5}^{3}(t) \\ f_{1}^{4}(t)&f_{2}^{4}(t)&f_{3}^{4}(t)&f_{4}^{4}(t)&f_{5}^{4}(t) \\ f_{1}^{5}(t)&f_{2}^{5}(t)&f_{3}^{5}(t)&f_{4}^{5}(t)&f_{5}^{5}(t) \\ \end{matrix} \right] $
(16) 根据文献[11], 采样频率 $ F=30$ Hz时, 传感器序列中取45个点已经取得较好的实验结果, 1.5秒的时间接近完成一个行为动作的时间.本文中, 普通人完成一个运动周期的时间为 $ T_{\rm data}=1.5 $ 秒, 在式(13) 中, $F $ 取值30, $d $ 取值为1, $l=F\times T_{\rm data}=45$ .综上所述, 本文取值45个点作为一个周期的数据长度.由此, 式(15) 中特征向量的长度即为 $ N\times M \times$ $[{l}/{d}]$ $=$ $1125$ .
标定周期起始点, 需要在式(16) 的样本函数矩阵中选择其中一个元素函数作为周期起始点, 并以此周期起始点, 作为样本函数矩阵中每个元素函数重采样的起始点.由于人体竖直方向的加速度函数能较好地体现不同行为脚步动作的差异, 而以此函数标定的起始点即为运动过程中人的脚抬起到最高点的时间.图 5是左脚数据与腰部数据的对比, 从图 5可以看出, 脚步的竖直方向的加速度数据变化程度比腰部竖直方向的数据变化更为明显.因此, 本文采用WARD数据集中左脚踝传感器竖直方向的加速度函数作为标定周期起始点的函数比较准确.
图 6表示选取一个采集者正常行走的样本, 提取左脚脚踝处的传感器竖直方向上的加速度数据(即单测量单元的数据), 进行周期提取后的结果.从图 6(a)和图 6(b)可以看出, 本文算法实现了对运动数据函数较为准确地周期提取.
图 7表示所有正常行走行为和上楼行为的样本, 在左脚的传感器竖直方向上加速度数据进行周期提取后的结果.从图 7可以看出, 样本数据均在统一的周期起始点处对齐, 数据长度近似一个周期, 不同行为的周期数据存在形态差异.
3.3 实验结果
在进行仿真实验时, 采取 $K$ -CV方法选取测试样本和训练样本.实验时, 将数据集分为 $ K=20 $ 组(采用WARD数据集, 样本数据来自20个不同采集者, 因此, 取值为20, 即20倍交叉验证, 通过此方法可以得到与样本个体无关的行为识别率).每次选择1组作为测试样本, 其余19组作为训练样本, 共进行20次实验.实验表明, 本文算法对基于WARD数据集的人体周期型行为的识别率可达到97.5%.具体结果见表 2.
表 2 10种动态行为类别的混淆矩阵Table 2 Confusion matrix of 10 dynamic action classes1 2 3 4 5 6 7 8 9 10 识别率(%) 1 97 0 0 0 0 1 0 0 0 2 97 2 0 97 0 1 0 0 0 0 0 2 97 3 0 0 98 0 1 0 1 0 0 0 98 4 0 0 0 100 0 0 0 0 0 0 100 5 0 0 0 0 100 0 0 0 0 0 100 6 0 0 0 0 0 97 1 1 1 0 97 7 0 0 0 0 0 2 94 1 0 3 94 8 0 0 0 0 0 0 0 100 0 0 100 9 0 0 0 0 0 1 5 0 94 0 94 10 1 0 0 0 0 0 0 0 1 98 98 总识别率 97.5 3.4 算法比较
表 3和图 8给出了不同算法在同一环境下, 使用表 1的WARD数据集进行仿真实验的结果.
从表 3和图 8可以看出, 在算法识别率方面, 本文算法的识别率高于文献[6]、文献[11]和文献[12].在算法运行速度方面, 由于文献[11]和文献[12]使用的是稀疏分类(Sparse representation-based cla-ssification, SRC), 而该算法没有严格区分训练模型建立与测试样本分类两个过程[20].因此, 不能将其与传统的分类方法在算法性能上进行统一比较.但本文算法与文献[6]的算法都能实现对不同人体运动行为的实时分类.
分类器的选取对于行为分类至关重要.表 4是根据本文算法提取特征向量后, 使用不同分类器(支持向量机、决策树、朴素贝叶斯、 $K$ -近邻)进行分类的结果.从表 4可以看出, 基于本文的算法所提取的特征向量, 采用支持向量机方法能取得更高的识别率.
表 4 不同分类器分类结果对比Table 4 Comparison with other classifiers分类器 识别率(%) 支持向量机 97.5 决策树 89.5 朴素贝叶斯 86.9 K-近邻 93.9 3.5 基于自采集数据库实验
3.5.1 自采集数据库介绍
为了进一步验证本文算法的合理性和可扩展性, 本文使用动作捕捉系统在实际条件下录制数据, 并将算法应用于该数据集.图 9给出了采集数据所使用的动作捕捉系统以及传感器的位置.对应于WARD数据集, 本文数据库采集了8位采集者(年龄为17 $\sim$ 50岁, 4名男性, 4名女性) 8个日常行为(分别为上楼、下楼、正常行走、顺时针行走、逆时针行走、慢跑、向左转弯、向右转弯)的动作捕捉数据, 并提取左手手腕、右手手腕、腰部、左脚踝, 右脚踝共5个部位处(如图 9(a)和图 9(b)所示)的传感器数据.自采集数据库的数据样本如图 10所示.值得注意的是, 由于WARD数据集的数据采样频率较低(30Hz), 而本文使用的动作捕捉系统采样频率较高(90Hz), 由式(13) 可知, 若此时拟合函数重采样的间隔 $d$ 保持为1, 会导致周期数据长度较长以及特征向量维度过大.为了解决这一问题, 在本文算法应用于自采集数据库时, 将式(13) 中的采样间隔 $ d $ 定为3 (本文数据库采样频率为WARD的3倍), 再对拟合函数进行重采样并提取特征向量.这种可调节的重采样方法体现了本文算法对于现有高频率的动作捕捉系统的可适用性, 也体现了函数型数据的优点.
3.5.2 实验结果
类比于WARD数据集的实验做法, 采用 $K$ -CV方法建立训练样本和测试样本库(自采集数据中包括8位实验者的数据.因此, 此处 $ K $ 取值为8, 即8倍交叉验证法), 最后使用支持向量机进行分类识别, 识别率达到98.75%.由于文献[6]的算法在WARD数据集中取得了较好的识别效果, 所以以此算法作为对比.在自采集数据集上, 文献[6]的算法的识别率达到92.8%, 而本文算法优于文献[6]的算法, 结果对比见图 11.
4. 结论与展望
相比于传统的离散运动数据的处理方法, 本文利用函数型数据分析方法, 将离散数据函数化, 以此表达人体运动数据的连续性特征, 并且根据运动数据的函数准确地标定出运动周期起始点, 再根据该起始点近似地提取运动数据的周期序列, 比传统的窗口处理方法具有一定的优势.然后本文利用SVM与本文算法提取的周期数据序列较好地对人体动态行为进行分类识别, 得到与传统方法相比拟的识别率.本文算法的有效性在公开数据集WARD以及自采集数据库上均得到验证.
值得注意的是, 本文算法需要选取一个代表性的函数作为选取周期起始点的基础(实验中选取了脚步传感器的竖直方向的加速度函数).在实际应用时, 对于脚步具有明显运动的动作可以选择脚步作为确定起始点的函数, 对于脚步运动不明显的动作, 应选择其他部位作为确定起始点的函数.
本文的算法仍存在不足之处: 1) 本文在数据拟合后直接对函数进行离散化从而提取周期数据作为特征向量, 因此并没有更多地挖掘周期运动的函数型特征信息; 2) 本文算法主要处理周期型运动序列, 未涉及对复杂运动序列的分割与识别.
如何更好地利用运动数据的函数型特征以及如何对复杂运动进行识别等问题都正在研究当中.
-
表 1 WARD中的行为描述
Table 1 Description of the behaviors in WARD
编号 行为类别 行为描述 1 正常行走 向前走持续超过10秒 2 逆时针行走 逆时针走持续超过10秒 3 顺时针行走 顺时针走持续超过10秒 4 向左转 原地左转持续超过10秒 5 向右转 原地右转持续超过10秒 6 上楼梯 上超过10阶的楼梯 7 下楼梯 下超过10阶的楼梯 8 慢跑 慢跑持续超过10秒 9 跳 原地跳超过5次 10 推轮椅 推轮椅超过10秒 表 2 10种动态行为类别的混淆矩阵
Table 2 Confusion matrix of 10 dynamic action classes
1 2 3 4 5 6 7 8 9 10 识别率(%) 1 97 0 0 0 0 1 0 0 0 2 97 2 0 97 0 1 0 0 0 0 0 2 97 3 0 0 98 0 1 0 1 0 0 0 98 4 0 0 0 100 0 0 0 0 0 0 100 5 0 0 0 0 100 0 0 0 0 0 100 6 0 0 0 0 0 97 1 1 1 0 97 7 0 0 0 0 0 2 94 1 0 3 94 8 0 0 0 0 0 0 0 100 0 0 100 9 0 0 0 0 0 1 5 0 94 0 94 10 1 0 0 0 0 0 0 0 1 98 98 总识别率 97.5 表 3 基于WARD的算法结果对比
Table 3 Comparison with other methods based on WARD
表 4 不同分类器分类结果对比
Table 4 Comparison with other classifiers
分类器 识别率(%) 支持向量机 97.5 决策树 89.5 朴素贝叶斯 86.9 K-近邻 93.9 -
[1] Poppe R. A survey on vision-based human action recognition. Image and Vision Computing, 2010, 28(6): 976-990 doi: 10.1016/j.imavis.2009.11.014 [2] 王蒙, 戴亚平, 王庆林.单目视觉下目标三维行为的时间尺度不变建模及识别.自动化学报, 2013, 40(8): 1644-1653 http://www.aas.net.cn/CN/abstract/abstract18432.shtmlWang Meng, Dai Ya-Ping, Wang Qing-Lin. Time-scale invariant modeling and classifying for object behaviors in 3D space based on monocular vision. Acta Automatica Sinica, 2013, 40(8): 1644-1653 http://www.aas.net.cn/CN/abstract/abstract18432.shtml [3] Yang J, Wang S Q, Chen N J, Chen X, Shi P F. Wearable accelerometer based extendable activity recognition system. In: Proceedings of the 2010 IEEE International Conference on Robotics and Automation. Anchorage, AK, USA: IEEE, 2010. 3641-3647 [4] Preece S J, Goulermas J Y, Kenney L P J, Howard D. A comparison of feature extraction methods for the classification of dynamic activities from accelerometer data. IEEE Transactions on Biomedical Engineering, 2009, 56(3): 871-879 doi: 10.1109/TBME.2008.2006190 [5] He W H, Guo Y C, Gao C, Li X K. Recognition of human activities with wearable sensors. EURASIP Journal on Advances in Signal Processing, 2012, 2012(1): 108 doi: 10.1186/1687-6180-2012-108 [6] 李锋, 潘敬奎.基于三轴加速度传感器的人体运动识别.计算机研究与发展, 2016, 53(3): 621-631 doi: 10.7544/issn1000-1239.2016.20148159Li Feng, Pan Jing-Kui. Human motion recognition based on Triaxial accelerometer. Journal of Computer Research and Development, 2016, 53(3): 621-631 doi: 10.7544/issn1000-1239.2016.20148159 [7] Najafi B, Aminian K, Paraschiv-Ionescu A, Loew F, Bula C J, Robert P. Ambulatory system for human motion analysis using a kinematic sensor: monitoring of daily physical activity in the elderly. IEEE Transactions on Biomedical Engineering, 2003, 50(6): 711-723 doi: 10.1109/TBME.2003.812189 [8] Zhang M, Sawchuk A A. A feature selection-based framework for human activity recognition using wearable multimodal sensors. In: Proceedings of the 6th International Conference on Body Area Networks. Beijing, China: ICST, 2011. 92-98 [9] Ghasemzadeh H, Jafari R. Physical movement monitoring using body sensor networks: a phonological approach to construct spatial decision trees. IEEE Transactions on Industrial Informatics, 2011, 7(1): 66-77 doi: 10.1109/TII.2010.2089990 [10] Wang Z L, Jiang M, Hu Y H, Li H Y. An incremental learning method based on probabilistic neural networks and adjustable fuzzy clustering for human activity recognition by using wearable sensors. IEEE Transactions on Information Technology in Biomedicine, 2012, 16(4): 691-699 doi: 10.1109/TITB.2012.2196440 [11] Yang A Y, Jafari R, Sastry S S, Bajcsy R. Distributed recognition of human actions using wearable motion sensor networks. Journal of Ambient Intelligence and Smart Environments, 2009, 1(2): 103-115 [12] 肖玲, 李仁发, 罗娟.体域网中一种基于压缩感知的人体动作识别方法.电子与信息学报, 2013, 35(1): 119-125 http://www.cnki.com.cn/Article/CJFDTOTAL-DZYX201301018.htmXiao Ling, Li Ren-Fa, Luo Juan. Recognition of human activity based on compressed sensing in body sensor networks. Journal of Electronics and Information Technology, 2013, 35(1): 119-125 http://www.cnki.com.cn/Article/CJFDTOTAL-DZYX201301018.htm [13] Ramsay J O, Silverman B W. Functional Data Analysis. New York, USA: Springer-Verlag, 2005. [14] Ramsay J O, Silverman B W. Applied Functional Data Analysis: Methods and Case Studies. New York, USA: Springer, 2002. [15] 苏为华, 孙利荣, 崔峰.一种基于函数型数据的综合评价方法研究.统计研究, 2013, 30(2): 88-94 http://cdmd.cnki.com.cn/Article/CDMD-10353-1012336072.htmSu Wei-Hua, Sun Li-Rong, Cui Feng. One comprehensive evaluation method study based on functional data. Statistical Research, 2013, 30(2): 88-94 http://cdmd.cnki.com.cn/Article/CDMD-10353-1012336072.htm [16] 李淳芃, 王兆其, 夏时洪.人体运动的函数数据分析与合成.软件学报, 2009, 20(6): 1664-1672 http://www.cnki.com.cn/Article/CJFDTOTAL-RJXB200906025.htmLi Chun-Peng, Wang Zhao-Qi, Xia Shi-Hong. Motion synthesis for virtual human using functional data analysis. Journal of Software, 2009, 20(6): 1664-1672 http://www.cnki.com.cn/Article/CJFDTOTAL-RJXB200906025.htm [17] Chang C C, Lin C J. LIBSVM: a library for support vector machines. ACM Transactions on Intelligent Systems and Technology, 2011, 2(3): Article No. 27 [18] Boser B B, Guyon I M, Vapnik V N. A training algorithm for optimal margin classifiers. In: Proceedings of the 5th Annual Workshop on Computational Learning Theory. Pittsburgh, Pennsylvania, USA: ACM, 1992. 144-152 [19] MATLAB中文论坛. MATLAB神经网络30个案例分析.中国北京:北京航空航天大学出版社, 2010. 120-132 http://cdmd.cnki.com.cn/Article/CDMD-11912-2006063682.htmMATLAB Chinese Forum. MATLAB Neural Network 30 Case Analysis. Beijing, China: Beijing University of Aeronautics and Astronautics Press, 2010. 120-132 http://cdmd.cnki.com.cn/Article/CDMD-11912-2006063682.htm [20] Wright J, Yang A Y, Ganesh A, Sastry S S, Ma Y. Robust face recognition via sparse representation. IEEE Transactions on Pattern Analysis and Machine Intelligence, 2009, 31(2): 210-227 doi: 10.1109/TPAMI.2008.79 -