﻿ 改进卷积神经网络的动态手势识别
 计算机系统应用  2001, Vol. 29 Issue (9): 225-230 PDF

Improved Dynamic Gesture Recognition Method Based on Convolutional Neural Network
FU Tian-Hao, YU Li-Ge
Key Laboratory of Advanced Process Control for Light Industry, Ministry of Education, Jiangnan University, Wuxi 214122, China
Abstract: A dynamic gesture recognition algorithm based on convolutional neural network and support vector machine classification (CNN-Softmax-SVM) is proposed to solve the problems of low recognition rate and few gesture recognition types in monocular vision. Firstly, the fast fingertip detection and tracking algorithm based on YCbCr and HSV color space is employed, which can acquire fingertip trajectory in real time under complex background. Secondly, fingertip trajectory is used as input of joint CNN-Softmax-SVM network, and finally dynamic gesture trajectory is recognized by trained network. The test results show that the combined CNN-Softmax-SVM algorithm can identify the dynamic gesture trajectory well.
Key words: dynamic gesture recognition     skin color detection     Convolutional Neural Network (CNN)     Support Vector Machine (SVM)     color space

 图 1 动态手势识别系统流程

1 动态手势特征提取 1.1 获取每帧图像指尖轨迹点

 $\left\{ {\begin{array}{*{20}{l}} {\theta {\rm{ = }}\arccos \left( {\dfrac{{\dfrac{1}{2}[(R - G) + (R - B)]}}{{\sqrt {(R - G)(R - G) + (R - G)(G - B)} }}} \right)}\\ {V = \dfrac{1}{3}(R + G + B)\begin{array}{*{20}{c}} ;&{V \in [0,1]} \end{array}}\\ {S = 1 - \dfrac{3}{{R + G + B}}[\min (R,G,B)]\begin{array}{*{20}{c}} ;&{S \in [0,1]} \end{array}}\\ {H = \left\{ {\begin{array}{*{20}{l}} \theta, &{G \ge B}\\ {{{360}^\circ } - \theta },&{G < B} \end{array}\begin{array}{*{20}{l}} ;&{H \in [0,{{360}^\circ }]} \end{array}} \right.} \end{array}} \right.$ (1)

 图 2 指尖贴纸预处理

1.2 剔除异常轨迹点

 $\left\{ \begin{split} & Y = 0.299R + 0.578G + 0.114B \\ & {C_b} = - 0.169R - 0.331G + 0.5B \\ & {C_r} = 0.5R - 0.419G - 0.081B \\ \end{split} \right.$ (2)

 图 3 肤色分割

 图 4 射线法剔除异常指尖轨迹点

1.3 获取动态手势

 图 5 获取动态手势

2 联合CNN-Softmax-SVM的手势识别 2.1 卷积神经网络

 $\left\{ \begin{split} & x_j^m = f\left( {h_j^m} \right) \\ & h_j^m = \displaystyle \sum\limits_{i \in {M_j}} {x_i^{m - 1}*k_{ij}^m + b_j^m} \\ \end{split} \right.$ (3)

 $f_{\rm ReLU}(X{{) = }}\left\{ {\begin{array}{*{20}{l}} {{X}},&{{\rm if}\;X > 0}\\ 0,&{{\rm if}\;X \le 0} \end{array}} \right.$ (4)

 $\left\{ \begin{split} & x_j^m = f(h_j^m) \\ & h_j^m = \beta _j^mdown(x_j^{m - 1}) + b_j^m \\ \end{split} \right.$ (5)

 $P{S_j} = \dfrac{{{e^{{a_j}}}}}{{\displaystyle \sum\limits_{k = 1}^n {{e^{{a_k}}}} }}$ (6)

2.2 支持向量机

 $u \cdot w + s = 0$ (7)

 ${v_i}[(w \cdot {u_i}) + s] - 1 \ge 0$ (8)

 $\sum\limits_{i = 1}^n {{v_i}{a_i} = 0,{a_i} \ge 0}$ (9)

 $f(u) = (w \cdot u) + s = \sum\limits_{{\rm{i = 1}}}^{\rm{n}} {{a_i}{v_i}({u_i} \cdot u) + s}$ (10)

 $Q(a) = \sum\limits_{i = 1}^n {{a_i} - \frac{1}{2}\sum\limits_{i,j = 1}^n {{a_i}{a_j}{v_i}{v_j}({u_i} \cdot {u_j})} }$ (11)

 $f(u) = (w \cdot u) + s = \sum\limits_{{\rm{i = 1}}}^{\rm{n}} {{a_i}{v_i}K({u_i},{u_j}) + s}$ (12)

 $PC = \frac{{TP}}{{TP + FP}}$ (13)

 $\arg \mathop {{\rm{max}}}\limits_{i = 1,2, \cdot \cdot \cdot ,k} {\rm{[}}P{C_i}{\rm{]}}$ (14)

2.3 联合CNN-Softmax-SVM算法

 图 6 算法模型结构

1) 待识别手势轨迹图 $\scriptstyle \bar M$ ;

2) 采用CNN-SVM训练样本后的每种类别识别正确率的平均值集合 $\scriptstyle {P_{\rm CNN - SVM}}{\rm{ = \{ }}{p_{\rm{1}}}({\bar x_1}),{p_{\rm{1}}}({\bar x_2}),{p_{\rm{1}}}({\bar x_3}), \cdots, {p_{\rm{1}}}({\bar x_n}){\rm{\} }}$ , 其中 $\scriptstyle{\bar x_i}$ 是采用CNN-SVM训练测试集的第i类, $\scriptstyle{p_{\rm{1}}}({\bar x_i})$ 是采用CNN-SVM训练样本后的第i类平均测试正确率;

3) 采用CNN-Softmax训练样本后的每种类别识别正确率的平均值集合 $\scriptstyle {P_{\rm CNN - Softmax }}{\rm{ = \{ }}{p_{\rm{2}}}({\bar y_1}),{p_{\rm{2}}}({\bar y_2}),{p_{\rm{2}}}({\bar y_3}), \cdots, {p_{\rm{2}}}({\bar y_n}){\rm{\} }}$ , 其中 $\scriptstyle {\bar y_i}$ 是采用CNN-Softmax训练测试集的第i类; $\scriptstyle{p_{\rm{2}}}({\bar y_i})$ 是采用CNN-Softmax训练样本后的第i类平均测试正确率;

1　 $\scriptstyle \bar M$ 经过卷积层、降采样层、全连接层得到一维特征向量 $\scriptstyle \vec m$ .

2　根据式(6)获取 $\scriptstyle \vec m$ 的类别yCNN-Softmax; 根据式(14)获取 $\scriptstyle \vec m$ 的类别xCNN-SVM.

3　获取CNN-SVM测试样本识别正确率的平均值 $\scriptstyle {\bar P_{\rm CNN - SVM}}{\rm{ = }}$ $\scriptstyle \frac{{\sum\limits_{i = 1}^n {{p_{\rm{1}}}({{\bar x}_i})} }}{n}$ ; 获取CNN-Softmax测试样本识别正确率的平均值 $\scriptstyle{\bar P_{\rm CNN - Softmax }}{\rm{ = }}$ $\scriptstyle \frac{{\sum\limits_{i = 1}^n {{p_2}({{\bar y}_i})} }}{n}$

4　if $\scriptstyle {y_{\rm CNN-Softmax }}$ = $\scriptstyle{x_{\rm CNN - SVM}}$ then

5　　 $\scriptstyle Class\_x$ = $\scriptstyle {y_{\rm CNN-Softmax }}$

6　else

7　　if $\scriptstyle{\bar P_{\rm CNN - SVM}} \geqslant {\bar P_{\rm CNN - Softmax }}$ then

8　　　if $\scriptstyle{p_{\rm{1}}}({x_{\rm CNN - SVM}}) \geqslant {p_{\rm{2}}}({y_{\rm CNN-Softmax }})$

9　　　　 $\scriptstyle Class\_x$ = $\scriptstyle {x_{\rm CNN - SVM}}$

10　　　else

11　　　　 $\scriptstyle Class\_x$ = $\scriptstyle{y_{\rm CNN-Softmax }}$

12　　　end if

13　　else

14　　　if $\scriptstyle{p_{\rm{1}}}({x_{\rm CNN - SVM}}) \leqslant {p_{\rm{2}}}({y_{\rm CNN-Softmax }})$

15　　　　 $\scriptstyle Class\_x{\rm{ = }}{y_{\rm CNN-Softmax }}$

16　　　else

17　　　　 $\scriptstyle Class\_x{\rm{ = }}{x_{\rm CNN - SVM}}$

18　　　end if

19　　end if

20　end if

3 实验分析

CNN中所有网络各层的参数设置如表2所示, 其中FSP分别表示卷积池化窗的大小、窗口滑动的步长、图像的边界填充, ${K_f}$ 表示在当前网络层中卷积池化窗的个数, ${D_f}$ 表示当前网络层输出特征的维度.

CNN-Softmax和CNN-SVM在训练过程中的误差下降散点图如图7所示, 训练过程的精度折线图如图8所示. 其中CNN-Softmax的测试平均精确度为98.23%. 另一方面, CNN-SVM的测试平均精确度为98.04%.

 图 7 训练误差下降散点图

 图 8 训练精度折线图

 图 9 志愿者字符手势识别混淆矩阵

4 结论与展望

 [1] Plouffe G, Cretu AM. Static and dynamic hand gesture recognition in depth data using dynamic time warping. IEEE Transactions on Instrumentation and Measurement, 2016, 65(2): 305-316. DOI:10.1109/TIM.2015.2498560 [2] 李凯, 王永雄, 孙一品. 一种改进的DTW动态手势识别方法. 小型微型计算机系统, 2016, 37(7): 1600-1603. DOI:10.3969/j.issn.1000-1220.2016.07.045 [3] 陈国良, 葛凯凯, 李聪浩. 基于多特征HMM融合的复杂动态手势识别. 华中科技大学学报(自然科学版), 2018, 46(12): 42-47. DOI:10.13245/j.hust.181208 [4] 马正华, 李雷, 乔玉涛, 等. 基于多传感器融合的动态手势识别研究分析. 计算机工程与应用, 2017, 53(17): 153-159. DOI:10.3778/j.issn.1002-8331.1603-0279 [5] 陈甜甜, 姚璜, 左明章, 等. 基于深度信息的动态手势识别综述. 计算机科学, 2018, 45(12): 42-51, 76. [6] 王健, 朱恩成, 黄四牛, 等. 基于深度学习的动态手势识别方法. 计算机仿真, 2018, 35(2): 366-370. DOI:10.3969/j.issn.1006-9348.2018.02.078 [7] 李玲霞, 王羽, 吴金君, 等. 基于改进型多维卷积神经网络的微动手势识别方法. 计算机工程, 2018, 44(9): 243-249. DOI:10.19678/j.issn.1000-3428.0048138 [8] Jian CF, Xiang XY, Zhang MY. Mobile terminal gesture recognition based on improved FAST corner detection. IET Image Processing, 2019, 13(6): 991-997. DOI:10.1049/iet-ipr.2018.5959 [9] LeCun Y, Bottou L, Bengio Y, et al. Gradient-based learning applied to document recognition. Proceedings of the IEEE, 1998, 86(11): 2278-2324. DOI:10.1109/5.726791 [10] 常亮, 邓小明, 周明全, 等. 图像理解中的卷积神经网络. 自动化学报, 2016, 42(9): 1300-1312. DOI:10.16383/j.aas.2016.c150800 [11] Astorino A, Fuduli A. The proximal trajectory algorithm in SVM cross validation. IEEE Transactions on Neural Networks and Learning Systems, 2016, 27(5): 966-977. DOI:10.1109/TNNLS.2015.2430935 [12] 彭清, 季桂树, 谢林江, 等. 卷积神经网络在车辆识别中的应用. 计算机科学与探索, 2018, 12(2): 282-291. DOI:10.3778/j.issn.1673-9418.1704055 [13] 朱树先, 李芸, 祝勇俊, 等. RBF支持向量机用于多类混叠的人脸识别研究. 控制工程, 2019, 26(4): 773-776. DOI:10.14107/j.cnki.kzgc.C3.0593 [14] 李亦滔. 基于支持向量机的改进分类算法. 计算机系统应用, 2019, 28(10): 145-151. DOI:10.15888/j.cnki.csa.007080 [15] Grother PJ. NIST special database 19. https://www.nist.gov/srd/nist-special-database-19. (2010-08-27)[2019-04-27].