CN104063714B - 一种用于视频监控的、基于cuda并行计算与稀疏表示的快速人脸识别算法 - Google Patents
一种用于视频监控的、基于cuda并行计算与稀疏表示的快速人脸识别算法 Download PDFInfo
- Publication number
- CN104063714B CN104063714B CN201410346049.2A CN201410346049A CN104063714B CN 104063714 B CN104063714 B CN 104063714B CN 201410346049 A CN201410346049 A CN 201410346049A CN 104063714 B CN104063714 B CN 104063714B
- Authority
- CN
- China
- Prior art keywords
- dictionary
- matrix
- atom
- algorithm
- rarefaction representation
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Fee Related
Links
Landscapes
- Image Analysis (AREA)
Abstract
本发明公开了一种基于CUDA并行计算与稀疏表示的人脸识别方法。针对稀疏表示字典训练过程的计算复杂度大,速度慢等不足,该方法采用CUDA并行计算技术,使用GPU进行运算得到字典;然后结合稀疏表达方法,通过求解稀疏系数向量重建待测样本,根据测试样本与重建样本之间的残差来进行分类识别。该方法充分挖掘了现有计算机硬件的计算资源,并根据算法特征进行优化,提高了字典训练过程的运算速度,大大减少了算法执行时间,提升了该方法的效率。
Description
技术领域:
本发明涉及计算机视觉和模式识别技术领域,具体涉及CUDA并行计算与稀疏表示的快速人脸识别方法。
背景技术:
人脸识别技术是当前主要的生物识别技术,由于其具有非接触性、友好、方便、不易察觉等特点,易于为用户所接受,令使用者无任何心理障碍,从而得到了广泛的研究与应用,是计算机视觉和模式识别领域重要的课题之一。
在人脸识别的众多研究方法中,稀疏表示的分类思想已成功在人脸识别领域取得了重要的地位。基于稀疏表示的图像分类是可以用少量同一类的低维图像编码或者表示高维图像;主要有两个阶段:稀疏表示和分类识别。首先,通过字典原子与一些稀疏性约束对测试图像进行表示,然后在稀疏表示系数和字典的基础上进行分类识别。2009年,Wright等将提出一个基于稀疏表示的分类器(SparseRepresentationClassification,SRC),将原始的训练人脸图像作为字典,通过l1范数求解测试样本的稀疏系数,通过该系数对测试人脸进行重构,进而求出其残差,将其归为残差最小类,取得了不错的分类效果。
在稀疏表示中字典的构造是至关重要的,近几年国内外的学者提出了很多过完备字典学习的方法,目的是从训练样本中得到一组基能够更好的对测试样本进行表示或者编码。字典主要是通过机器学习来从样本中来训练获取,目前存在的主要问题就是在CPU上串行运行时耗费时间和运算资源。
随着并行处理技术的发展,已成为图像处理领域和计算机科学领域的一个重要方向;可编程图像处理器(可编程GPU)是目前计算机上处理普遍采用的专用器件。GPU具有远远高于CPU的浮点运算能力和内存带宽,同时由于其高度的并行性,非常适合于大规模数据处理。2006年,英伟达公司推出了统一的设备架构(ComputeUnifedDeviceArchitecture,CUDA),这是一种新的并行编程模型和指令集架构的通用计算架构,。CUDA架构可以很好的协同CPU处理并行任务,特别是针对计算相对比较消耗时间的浮点数计算,目前,CUDA可以很好的支持到双精度的浮点数计算,比CPU更高效的解决许多复杂的计算任务,显著地提高了传统算法处理的效率。
发明内容:
目前稀疏字典学习算法复杂度高,运行速度慢,同时传统的稀疏表示分类识别效果不是很好。本发明的目的是提出一种用于视频监控的、基于CUDA并行计算与稀疏表示的快速人脸识别算法。为解决上述的技术问题,本发明的采用以下技术实现方案:
基于CUDA并行计算与稀疏表示的快速人脸识别方法,其特征在于,该方法包括如下步骤;
步骤1:从人脸数据库构造训练样本矩阵,并初始化字典:
假设人脸数据库中总共k类人,每人有n幅图片,总共N=n*k幅图片;从中每人随机选择c(1<c<n)幅图片用来构造训练样本矩阵Y,剩下的图片构造成测试样本集;使用过完备DCT字典作为初始化字典D;
步骤2:利用CUDA多线程编程技术构建CPU与GPU协同工作环境:
将训练样本矩阵Y和初始化字典D传送到GPU显存中;在CUDA中编写CPU和GPU的程序,首先实现内核函数,定义GPU中需要执行的操作;接着定义该内核函数的多线程规模,包括线程块维数以及每一个线程块中的线程的维数;
步骤3:在GPU平台上采用K-SVD字典训练算法对训练样本矩阵进行字典学习:
令D,Y,A分别代表学习得到的字典、训练样本矩阵、训练样本的稀疏表示矩阵;则K-SVD字典训练算法的目标方程可表示为:
上式的求解是一个迭代过程,算法流程为:
1)稀疏编码:
假设字典D是固定的,使用OMP算法可以求解出Y在字典D上的稀疏表示系数矩阵A;
2)字典更新:
对字典D的原子进行逐一更新,更新过程如下:
1.对于当前要进行更新的原子dk,记Ik={i|ai(k)≠0,1≤i≤N},ai(k)为ai中的第k个元素,则Ik表示各样本中使用到原子dk的索引;
2.计算残差矩阵 表示A的第j行;Ek表示除去第k个原子后对所有样本造成的误差;
3.对应于Ik中的索引,选取Ek中相应的列向量,构成新的误差矩阵并对进行SVD分解
4.取矩阵U中的第一列作为更新后的原子,Λ(1,1)与矩阵V的第一列的乘积作为新的稀疏系数;
3)迭代结束,否则返回到算法流程1);
步骤4:将字典D从GPU显存中传送回CPU内存中;
步骤5:在CPU中将字典D应用到传统的稀疏表示分类算法进行分类识别:
令z代表测试样本,将测试样本z表示为字典D中原子的线性组合,即z=Dα,其中α=[α1;…;αi;…;αk];
分类识别算法过程如下:
(1)将测试样本z表示为字典D中原子的线性组合,由l1范数最小化求解得到稀疏系数:
式中λ为一个标量;
(2)计算各类样本对测试样本z的逼近残差ei:
其中,是与第i类样本对应的系数向量;
(3)根据最小残差逼近准则进行测试图像分类:
与现有技术相比,本发明的有益效果在于:
1、本发明使用CUDA并行计算技术对字典的学习过程进行加速处理,并根据算法特征进行优化,大大地减少了算法执行时间,提高了运算速度;
2、采用GPU并行技术处理,充分挖掘了现有计算机硬件的计算资源,大幅度提升了人脸识别方法的效率,能够有效地提高识别的准确性。
附图说明:
图1为CUDA线程网络图;
图2为基于CUDA并行计算与稀疏表示的快速人脸识别方法流程图。
具体实施方式:
步骤1:从人脸数据库构造训练样本矩阵,并初始化字典:
假设人脸数据库中总共k类人,每人有n幅图片,总共N=n*k幅图片;从中每人随机选择c(1<c<n)幅图片用来构造训练样本矩阵Y,剩下的图片构造成测试样本集;使用过完备DCT字典作为初始化字典D;
步骤2:利用CUDA多线程编程技术构建CPU与GPU协同工作环境:
将训练样本矩阵Y和初始化字典D传送到GPU显存中;在CUDA中编写CPU和GPU的程序,首先实现内核函数,定义GPU中需要执行的操作;接着定义该内核函数的多线程规模,包括线程块维数以及每一个线程块中的线程的维数;
步骤3:在GPU平台上采用K-SVD字典训练算法对训练样本矩阵进行字典学习:
令D,Y,A分别代表学习得到的字典、训练样本矩阵、训练样本的稀疏表示矩阵;则K-SVD字典训练算法的目标方程可表示为:
上式的求解是一个迭代过程,算法流程为:
4)稀疏编码:
假设字典D是固定的,使用OMP算法可以求解出Y在字典D上的稀疏表示系数矩阵A;
5)字典更新:
对字典D的原子进行逐一更新,更新过程如下:
5.对于当前要进行更新的原子dk,记Ik={i|ai(k)≠0,1≤i≤N},ai(k)为ai中的第k个元素,则Ik表示各样本中使用到原子dk的索引;
6.计算残差矩阵 表示A的第j行;Ek表示除去第k个原子后对所有样本造成的误差;
7.对应于Ik中的索引,选取Ek中相应的列向量,构成新的误差矩阵并对进行SVD分解
8.取矩阵U中的第一列作为更新后的原子,Λ(1,1)与矩阵V的第一列的乘积作为新的稀疏系数;
6)迭代结束,否则返回到算法流程1);
步骤4:将字典D从GPU显存中传送回CPU内存中;
步骤5:在CPU中将字典D应用到传统的稀疏表示分类算法进行分类识别:
令z代表测试样本,将测试样本z表示为字典D中原子的线性组合,即z=Dα,其中α=[α1;…;αi;…;αk];
分类识别算法过程如下:
(4)将测试样本z表示为字典D中原子的线性组合,由l1范数最小化求解得到稀疏系数:
式中λ为一个标量;
(5)计算各类样本对测试样本z的逼近残差ei:
其中,是与第i类样本对应的系数向量;
(6)根据最小残差逼近准则进行测试图像分类:
经过以上步骤,该方法在CUDA并行机制的基础上,实现了高速有效的人脸识别。
本发明利用CUDA的并行机制以及多线程编程特点,对字典学习过程进行GPU优化加速,解决了字典学习运算速度慢的问题,简化了方法的复杂度,提高了算法的运行效率,可以满足实际中实时性的应用需求。
Claims (1)
1.一种用于视频监控的、基于CUDA并行计算与稀疏表示的快速人脸识别算法,其特征在于,该方法包括如下步骤;
步骤1:从人脸数据库构造训练样本矩阵,并初始化字典:
假设人脸数据库中总共k类人,每人有n幅图片,总共N=n*k幅图片;从中每人随机选择c(1<c<n)幅图片用来构造训练样本矩阵Y,剩下的图片构造成测试样本集;使用过完备DCT字典作为初始化字典D;
步骤2:利用CUDA多线程编程技术构建CPU与GPU协同工作环境:
将训练样本矩阵Y和初始化字典D传送到GPU显存中;在CUDA中编写CPU和GPU的程序,首先实现内核函数,定义GPU中需要执行的操作;接着定义该内核函数的多线程规模,包括线程块维数以及每一个线程块中的线程的维数;
步骤3:在GPU平台上采用K-SVD字典训练算法对训练样本矩阵进行字典学习:
令D,Y,A分别代表学习得到的字典、训练样本矩阵、训练样本的稀疏表示矩阵;则K-SVD字典训练算法的目标方程可表示为:
上式的求解是一个迭代过程,算法流程为:
1)稀疏编码:
假设字典D是固定的,使用OMP算法可以求解出Y在字典D上的稀疏表示系数矩阵A;
2)字典更新:
对字典D的原子进行逐一更新,更新过程如下:
1.对于当前要进行更新的原子dk,记Ik={i|ai(k)≠0,1≤i≤N},ai(k)为ai中的第k个元素,则Ik表示各样本中使用到原子dk的索引;
2.计算残差矩阵 表示A的第j行;Ek表示除去第k个原子后对所有样本造成的误差;
3.对应于Ik中的索引,选取Ek中相应的列向量,构成新的误差矩阵并对进行SVD分解
4.取矩阵U中的第一列作为更新后的原子,Λ(1,1)与矩阵V的第一列的乘积作为新的稀疏系数;
3)迭代结束,否则返回到算法流程1);
步骤4:将字典D从GPU显存中传送回CPU内存中;
步骤5:在CPU中将字典D应用到传统的稀疏表示分类算法进行分类识别:
令z代表测试样本,将测试样本z表示为字典D中原子的线性组合,即z=Dα,其中α=[α1;…;αi;…;αk];
分类识别算法过程如下:
(1)将测试样本z表示为字典D中原子的线性组合,由l1范数最小化求解得到稀疏系数:
式中λ为一个标量;
(2)计算各类样本对测试样本z的逼近残差ei:
其中,是与第i类样本对应的系数向量;
(3)根据最小残差逼近准则进行测试图像分类:
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410346049.2A CN104063714B (zh) | 2014-07-20 | 2014-07-20 | 一种用于视频监控的、基于cuda并行计算与稀疏表示的快速人脸识别算法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410346049.2A CN104063714B (zh) | 2014-07-20 | 2014-07-20 | 一种用于视频监控的、基于cuda并行计算与稀疏表示的快速人脸识别算法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN104063714A CN104063714A (zh) | 2014-09-24 |
CN104063714B true CN104063714B (zh) | 2016-05-18 |
Family
ID=51551416
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201410346049.2A Expired - Fee Related CN104063714B (zh) | 2014-07-20 | 2014-07-20 | 一种用于视频监控的、基于cuda并行计算与稀疏表示的快速人脸识别算法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN104063714B (zh) |
Families Citing this family (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104318522A (zh) * | 2014-10-08 | 2015-01-28 | 苏州新视线文化科技发展有限公司 | 一种基于图形处理单元的稀疏表示快速计算方法 |
CN106407995A (zh) * | 2016-04-01 | 2017-02-15 | 中国地质大学(武汉) | 一种图像数据集的稀疏表示的加速方法以及装置 |
CN106485202A (zh) * | 2016-09-18 | 2017-03-08 | 南京工程学院 | 非约束人脸识别***及方法 |
US10929944B2 (en) * | 2016-11-23 | 2021-02-23 | Advanced Micro Devices, Inc. | Low power and low latency GPU coprocessor for persistent computing |
CN108256345B (zh) * | 2016-12-28 | 2020-12-11 | 中移(杭州)信息技术有限公司 | 一种图片隐私保护方法、装置及*** |
CN107590463A (zh) | 2017-09-12 | 2018-01-16 | 广东欧珀移动通信有限公司 | 人脸识别方法及相关产品 |
CN107886519A (zh) * | 2017-10-17 | 2018-04-06 | 杭州电子科技大学 | 基于cuda的多图谱三维脑图像快速分割方法 |
CN108921088B (zh) * | 2018-06-29 | 2022-03-04 | 佛山市顺德区中山大学研究院 | 一种基于判别式目标方程的人脸识别方法 |
CN109165554B (zh) * | 2018-07-24 | 2021-09-24 | 高新兴科技集团股份有限公司 | 一种基于cuda技术的人脸特征比对方法 |
CN110765965B (zh) * | 2019-10-30 | 2023-09-15 | 兰州理工大学 | 机械振动信号稀疏表示的快速字典学习算法 |
CN112001865A (zh) * | 2020-09-02 | 2020-11-27 | 广东工业大学 | 一种人脸识别方法、装置和设备 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101976453A (zh) * | 2010-09-26 | 2011-02-16 | 浙江大学 | 一种基于gpu的三维人脸表情合成方法 |
CN102521581A (zh) * | 2011-12-22 | 2012-06-27 | 刘翔 | 结合生物特征与局部图像特征的并行人脸识别方法 |
CN102737234A (zh) * | 2012-06-21 | 2012-10-17 | 北京工业大学 | 基于Gabor滤波和联合稀疏模型的人脸识别方法 |
CN102915436A (zh) * | 2012-10-25 | 2013-02-06 | 北京邮电大学 | 基于类内变化字典和训练图像的稀疏表示人脸识别方法 |
-
2014
- 2014-07-20 CN CN201410346049.2A patent/CN104063714B/zh not_active Expired - Fee Related
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101976453A (zh) * | 2010-09-26 | 2011-02-16 | 浙江大学 | 一种基于gpu的三维人脸表情合成方法 |
CN102521581A (zh) * | 2011-12-22 | 2012-06-27 | 刘翔 | 结合生物特征与局部图像特征的并行人脸识别方法 |
CN102737234A (zh) * | 2012-06-21 | 2012-10-17 | 北京工业大学 | 基于Gabor滤波和联合稀疏模型的人脸识别方法 |
CN102915436A (zh) * | 2012-10-25 | 2013-02-06 | 北京邮电大学 | 基于类内变化字典和训练图像的稀疏表示人脸识别方法 |
Also Published As
Publication number | Publication date |
---|---|
CN104063714A (zh) | 2014-09-24 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN104063714B (zh) | 一种用于视频监控的、基于cuda并行计算与稀疏表示的快速人脸识别算法 | |
Novac et al. | Quantization and deployment of deep neural networks on microcontrollers | |
EP3739499A1 (en) | Grammar transfer using one or more neural networks | |
Thomas et al. | CortexSuite: A synthetic brain benchmark suite | |
Sprechmann et al. | Learning efficient sparse and low rank models | |
US10691971B2 (en) | Method and apparatus for recognizing object | |
CN112106081A (zh) | 提供综合机器学***台和软件开发套件 | |
EP3742343A1 (en) | Autonomous vehicle simulation using machine learning | |
DE112020004167T5 (de) | Videovorhersage unter verwendung eines oder mehrerer neuronaler netze | |
CN110139046B (zh) | 一种基于张量的视频帧合成方法 | |
Lopes et al. | Restricted Boltzmann machines and deep belief networks on multi-core processors | |
Rathi | Optimization of transfer learning for sign language recognition targeting mobile platform | |
CN109948462B (zh) | 基于多gpu协同交互数据流组织的高光谱图像快速分类法 | |
Alessandrini et al. | Singular value decomposition in embedded systems based on arm cortex-m architecture | |
JP4854032B2 (ja) | 音声認識における音響尤度並列計算装置及びそのプログラム | |
CN106250928A (zh) | 基于图形处理单元的并行逻辑回归方法及*** | |
Holdroyd | TensorFlow 2.0 Quick Start Guide: Get up to speed with the newly introduced features of TensorFlow 2.0 | |
Müller et al. | Special issue on advances in kernel-based learning for signal processing | |
Ullah et al. | Towards automated analysis of grain spikes in greenhouse images using neural network approaches: A comparative investigation of six methods | |
Tegegne et al. | Parallel nonlinear dimensionality reduction using GPU Acceleration | |
Libuschewski et al. | Multi-objective, energy-aware gpgpu design space exploration for medical or industrial applications | |
Marcellino et al. | A gpu-accelerated svd algorithm, based on qr factorization and givens rotations, for dwi denoising | |
Dubout et al. | Accelerated training of linear object detectors | |
US10255692B2 (en) | Method for tracking an object in an image sequence | |
Fajrianti et al. | High-Performance Computing on Agriculture: Analysis of Corn Leaf Disease |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20160518 Termination date: 20170720 |