CN104063714B - 一种用于视频监控的、基于cuda并行计算与稀疏表示的快速人脸识别算法 - Google Patents

一种用于视频监控的、基于cuda并行计算与稀疏表示的快速人脸识别算法 Download PDF

Info

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
Application number
CN201410346049.2A
Other languages
English (en)
Other versions
CN104063714A (zh
Inventor
詹曙
王俊
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Individual
Original Assignee
Individual
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Individual filed Critical Individual
Priority to CN201410346049.2A priority Critical patent/CN104063714B/zh
Publication of CN104063714A publication Critical patent/CN104063714A/zh
Application granted granted Critical
Publication of CN104063714B publication Critical patent/CN104063714B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Landscapes

  • Image Analysis (AREA)

Abstract

本发明公开了一种基于CUDA并行计算与稀疏表示的人脸识别方法。针对稀疏表示字典训练过程的计算复杂度大,速度慢等不足,该方法采用CUDA并行计算技术,使用GPU进行运算得到字典;然后结合稀疏表达方法,通过求解稀疏系数向量重建待测样本,根据测试样本与重建样本之间的残差来进行分类识别。该方法充分挖掘了现有计算机硬件的计算资源,并根据算法特征进行优化,提高了字典训练过程的运算速度,大大减少了算法执行时间,提升了该方法的效率。

Description

一种用于视频监控的、基于CUDA并行计算与稀疏表示的快速人脸识别算法
技术领域:
本发明涉及计算机视觉和模式识别技术领域,具体涉及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字典训练算法的目标方程可表示为:
m i n D , A { | | Y - D A | | F 2 } s . t &ForAll; i , | | a i | | 0 &le; T 0 - - - ( 1 )
上式的求解是一个迭代过程,算法流程为:
1)稀疏编码:
假设字典D是固定的,使用OMP算法可以求解出Y在字典D上的稀疏表示系数矩阵A;
a i = arg m i n D , A | | y i - Da i | | 2 2 s . t | | a i | | 0 &le; T 0 - - - ( 2 )
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范数最小化求解得到稀疏系数:
&alpha; ^ = arg m i n &alpha; { | | z - D &alpha; | | 2 2 + &lambda; | | &alpha; | | 1 } - - - ( 3 )
式中λ为一个标量;
(2)计算各类样本对测试样本z的逼近残差ei
其中,是与第i类样本对应的系数向量;
(3)根据最小残差逼近准则进行测试图像分类:
i d e n t i t y ( z ) = arg m i n i ( e i ( z ) ) - - - ( 5 ) .
与现有技术相比,本发明的有益效果在于:
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字典训练算法的目标方程可表示为:
min D , A { | | Y - D A | | F 2 } s . t &ForAll; i , | | a i | | 0 &le; T 0 - - - ( 1 )
上式的求解是一个迭代过程,算法流程为:
4)稀疏编码:
假设字典D是固定的,使用OMP算法可以求解出Y在字典D上的稀疏表示系数矩阵A;
a i = arg m i n D , A | | y i - Da i | | 2 2 s . t | | a i | | 0 &le; T 0 - - - ( 2 )
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范数最小化求解得到稀疏系数:
&alpha; ^ = arg m i n &alpha; { | | z - D &alpha; | | 2 2 + &lambda; | | &alpha; | | 1 } - - - ( 3 )
式中λ为一个标量;
(5)计算各类样本对测试样本z的逼近残差ei
e i = | | z - D&delta; i ( &alpha; ^ ) | | , i = 1 , ... , k - - - ( 4 )
其中,是与第i类样本对应的系数向量;
(6)根据最小残差逼近准则进行测试图像分类:
i d e n t i t y ( z ) = arg m i n i ( e i ( z ) ) - - - ( 5 ) .
经过以上步骤,该方法在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字典训练算法的目标方程可表示为:
m i n D , A { | | Y - D A | | F 2 } s . t &ForAll; i , | | a i | | 0 &le; T 0 - - - ( 1 )
上式的求解是一个迭代过程,算法流程为:
1)稀疏编码:
假设字典D是固定的,使用OMP算法可以求解出Y在字典D上的稀疏表示系数矩阵A;
a i = arg m i n D , A | | y i - Da i | | 2 2 s . t | | a i | | 0 &le; T 0 - - - ( 2 )
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范数最小化求解得到稀疏系数:
&alpha; ^ = arg m i n &alpha; { | | z - D &alpha; | | 2 2 + &lambda; | | &alpha; | | 1 } - - - ( 3 )
式中λ为一个标量;
(2)计算各类样本对测试样本z的逼近残差ei
e i = | | z - D&delta; i ( &alpha; ^ ) | | , i = 1 , ... , k - - - ( 4 )
其中,是与第i类样本对应的系数向量;
(3)根据最小残差逼近准则进行测试图像分类:
i d e n t i t y ( z ) = arg m i n i ( e i ( z ) ) - - - ( 5 ) .
CN201410346049.2A 2014-07-20 2014-07-20 一种用于视频监控的、基于cuda并行计算与稀疏表示的快速人脸识别算法 Expired - Fee Related CN104063714B (zh)

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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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 北京邮电大学 基于类内变化字典和训练图像的稀疏表示人脸识别方法

Patent Citations (4)

* Cited by examiner, † Cited by third party
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