第一章 绪论
1.1 研究背景与意义
随着近些年互联网技术的飞速发展,人工智能识别技术的应用日益广泛,如语音识别、图像识别[3]、视频识别等等。其中图像识别也渐渐从理论层面进入到我们的生活当中,比如指纹识别、人脸识别、车牌识别等等。以人脸识别为例,其在人们日常生活的智能监控、智能解锁等领域已经被广泛应用。与指纹识别类似,作为生物识别的一个重要特征。人脸识别在安全验证系统、犯罪追踪系统、视频监控等领域有着广泛的应用前景。
为了使机器能够模拟人类进行图像的识别,近些年人工智能在图像识别领域的应用愈发广泛,相关研究人员提出了很多的识别方法和模型,例如 SVM 和人工神经网络等等。通过训练集训练相应的识别模型,将目标图像与模型进行比较来判断输入图像是否与目标图像相同。综上所述,图像识别的关键点在于图像的预处理、特征提取及匹配过程。近些年,卷积神经网络[4-8](convolutional neuron networks, CNN)在图像识别领域的应用越来越广泛。对于目标图像,像素间的距离和相似性有着很强的关联性,而卷积神经网络的设计正是充分地利用了这一个特点。这就意味着,对于输入的目标图像而言,两个间隔较近的像素比距离较远的像素愈加紧密。但是,在一般的人工神经网络中,每一个像素点都和一个对应的神经元连接。由此可见,附加的计算负荷使得神经网络不够简单和准确,而卷积神经网络消除了大量的不重要连接,从而解决了这个问题。从技术层面上来说,卷积神经网络根据相似性对神经元之间的连接进行了相应的过滤,使图像识别在计算层面的数据量可控。卷积神经网络并不是把神经元和每个输入相连,而是做了连接的限制,这样每个神经元仅接受前神经元的部分输入。那么所有的神经元只需要负责处理目标图像中特定的一个部分,从而大大地提升了图形特征提取的效率。
图像预处理和图像特征提取是图像识别技术中的关键性步骤,图像预处理决定了图像后续处理阶段的质量,图像识别的结果很大程度上取决于图像特征提取流程。不过各类特征提取算法在计算速度和精确度都有各自的优势存在。但总的来说,算法各方面的性能以及准确度都还存在很多的问题。所以,如今许多研究人员对基于 GPU 加速的图像处理识别等流程进行了研究,试图去改变传统方法中的缺陷从而提高图像特征提取的实用性。
.........................
1.2 国内外研究现状
目前已经有研究人员使用 GPU 对图像处理进行加速。Yang[11]等人在 GPU 上实现了一些图像处理算法,如直方图均衡化、边缘检测、去除阴影等等。人脸识别作为计算机视觉领域的一个子方向也有了很大的发展,在新一代的公共安全监控系统中,可以利用图像识别技术在海量的视频库中进行犯罪影像的追踪和查找。图像识别也是深度学习最早研究的领域之一。早在 1989 年,
LeCun[12]和他的同事就发表了卷积神经网络在手写数字识别领域的成果,在当时取得该领域最佳的实验结果并广泛的应用到银行支票识别业务中。2012 年,百度将深度学习应用到自然图像 OCR 和人脸识别领域,并推出了相应的应用设备和桌面应用程序[13]。自2012 年 ImageNet 大赛上深度学习第一次被使用,到 2016 年 ImageNet 大赛上仅为 2.991%的错误率,深度学习在图像识别领域已经取得了重大的发展[14]。
自 2007 年 NVIDIA 推出 CUDA 开发框架后,GPU 在通用计算方面的研究成果开始大量涌现。这些成果不仅表现在传统的医疗、天气预报等领域,近些年 GPU 还被广泛应用到人工智能领域,比如图像识别、语音识别领域等。GPU 已不再是单纯的图像图形渲染处理器了。国内这一研究相对较迟。2004 年由 GuoBin Shen 和 GuangPing Gao 等人提出的基于 GPU 和CPU 的混合编码方案相对于传统的 CPU 加速取得较为明显的性能提升[15]。2005 年,浙江大学的董朝提出了一种关于可编程图像硬件加速的研究成果,成果中提出了一些利用 GPU 进行通用计算的方案[16]。
深度学习这一新技术领域受到广泛关注的时候,第一个热点的应用领域就是手写数字识别。在这之前,最低识别错误率 1.4%的记录一直由支持向量机(Support Vector Machine, SVM)保持,而深度学习打破了这项记录。目前深度学习依旧保持着该领域最佳识别率的记录。2012年 Ciresan 宣称利用卷积神经网络和处理的数据实现了 0.27%错误率的识别[17]。近些年,深度学习关注的领域已不仅仅局限于人工手写数字的识别,人们生活中的图像、视频、语音的识别也成为了深度学习研究领域的新热点。最新的突破是降低最小错误率,在 ImageNet 数据集上从 26.1%降低到 15.3%[18]。为了完成把输入规模从 28 x 28 的灰度级 MNIST 图像转向 256 x256 的 RGB 图像,研究人员利用了一种隐藏层单元不需要与上一层的所有神经元相连接的神经网络结构,这种卷积结构隐藏层单元不需要与上一层的所有神经元相连接,而是只连接到同一片部分区域的神经元,并在由底层传向上层时空间分辨率在池化层单元得到了有效地降低。同时,利用 GPU 技术研究人员将计算提升了一至两个数量级。
.........................
第二章 相关技术基础
2.1 图像处理技术
在图像识别技术中,图像的质量直接影响到识别算法的精度。所以说图像处理技术在整个图像识别过程中发挥着非常重要的作用。它的主要目的是消除图像中的不相干因素,增强有用的信息,最大限度地简化数据从而改进特征提取的可靠性和准确性。常用的基本图像处理算法包括:采样算法、滤波算法、卷积算法等等[20]。以上这些算法为了在实际的应用中取得良好的效果,在实现方式上都存在各自的特性。
由于不同的环境设备因素,图像中会存在很多不必要的信息,滤波算法就是消除这些不必要信息的一种常见的图像处理算法,分为水平和垂直滤波。水平滤波就是通过滑动窗口按行取相应的位置为中心的元素进行参数的相乘操作得到相应的值。同理,垂直滤波是按列进行相关的操作。
在上采样、滤波、卷积等图像处理算法中都会存在边界处理问题,即在面对边界无法处理的情况时,额外设计的边界单独处理的过程。这个算法一般应用的场景有:原始图像大小无法满足处理算法对输入矩阵是窗口大小一定倍数的约束;处理算法自身通过窗口矩阵后移来进行计算,会存在一些边界元素没有周边像素值而不能通过统一的计算,从而需要额外处理。
其中,采样算法分为上采样和下采样算法。下采样指的是对原始图像进行压缩的过程,把图像缩小至一定的倍数,这个倍数由实际应用场景所决定。其核心原理是根据输入图像矩阵的局部数据经过计算后获得缩小后的图像。选取固定元素大小的滑动窗口,逐个计算的过程拥有良好的并行性。上采样的过程是放大下采样处理后的图片,使其和原始图像的大小相当。整个过程和计算矩阵的参数都会根据实际应用而定。但其核心过程均是通过原始图像的局部数据和参数矩阵进行相关计算后得到。
图像的预处理旨在最低层次的图像上进行操作,在该层次上的输入和输出都是亮度图像,这时通常使用图像函数矩阵表示图像的各像素点数值。预处理的目的在于对图像数据进行改进,从而为后续的图像处理工作提供技术支持。本文研究的图像处理内容属于图像增强方面,通过类似滤波算法改善图像的视觉效果,突出图像的特征。
...........................
2.2 人工神经网络
2.2.1 深度神经网络简介
深度学习[21-24]是机器学习领域中较为广泛的一个领域,它不是一种特定于任务的算法,可分为有监督、半监督和无监督学习。例如,包含多个隐层的多层感知器就属于一种深度网络结构。深度学习需要发现数据的分布式特征表示,它通过组合低层的特征形成更为抽象的高层,从而体现属性特征或类别。2006 年,Hinton 等人提出了一种无监督的贪心逐层训练算法,这种算法基于深度置信网络,这就是深度学习的由来,这为解决深层结构相关的优化问题带来希望[25]。之后又提出了一种多层自动编码器的深层结构。另外,Lecun 等人提出了第一个真正多层结构学习算法即卷积神经网络,这种神经网络结构使用空间相关关系减少参数个数,达到提高训练性能的目的。
深度学习是一种基于数据表示的机器学习的方法。观测值(比如说一张图片)可以用多种方式来表达,比如像素亮度值的向量、更抽象地表示一系列的边缘和特定的形状区域。从实例中进行学习任务(例如人脸识别或面部表情识别)更为容易。深度学习最大的优点就是采用了非监督式、半监督的学习方法和分层特征提取的高效算法代替了传统的手工特征获取方法[26]。深度学习已成为计算机领域的一个热门话题,不仅在学术界,在许多实际应用中都已广泛应用,它更好地模仿了人类的大脑的运行机制来进行数据的分析处理。
作为众多机器学习方法的一种,深度机器学习方法也分为监督学习与无监督学习。它也包含了各种不同的学习架构。最常见的有生成式深度架构、判别式深度架构和混合深度架构。生成架构的深度学习主要是用来描述高阶相关观测数据或功能的可见物体,主要用于模式分析或联合分布的描述。判别深度架构用于提供模式分类的判别能力,常用于描述可见数据条件下物体后验类别的概率。混合深度架构的主要目标是分类。这些深度学习架构的分类较为复杂,实际应用中出现较多的有深度前馈网络、递归神经网络和卷积网络等。深度前馈式神经网络拥有独特的结构和数据计算方法,它旨在近似某些函数。在机器学习中,卷积神经网络是一种多层前馈神经网络。它的连接是从动物视觉皮层获得的灵感。单个皮层神经元可以对有限空间区域的刺激做出反应,这个有限空间可以称为可接受域。不同神经元的感受域可以重叠,形成所有可见区域。然后,一个神经元对一个接受域内的刺激作出反应,并通过卷积运算进行数学近似。也就是说,卷积神经网络受到生物学的启发,设计了最小预处理多层感知器的一个变种。卷积神经网络广泛应用于图像与视频识别、推荐系统和自然语言处理等领域。
......................
3.1 图像预处理过程的 GPU 优化..........................15
3.1.1 Laplacian 算法简介及并行化分析.............................. 15
3.1.2 Laplacian 算法的 GPU 优化................................ 15
第四章 基于 GPU 的卷积神经网络图像特征提取方案...............................26
4.1 基于 GPU 的卷积神经网络的研究...................................26
4.1.1 卷积神经网络的实现.................... 26
4.1.2 传统多 GPU 加速训练卷积神经网络............................26
第五章 原型系统的设计与实现...................... 44
5.1 人脸图像识别原型系统.......................44
5.1.1 系统概述................................. 44
5.1.2 系统整体框架.......................... 45
第五章 原型系统的设计与实现
5.1 人脸图像识别原型系统
5.1.1 系统概述
人脸图像包含着大量的数据和信息,作为人们交流感情和表达感情的载体,也因为其不同于其他的图像识别的技术难度,从上个世纪五十年代至今,受到了研究人员的广泛关注。截止上个世纪九十年代,由于计算机视觉、图像处理、机器学习以及各个领域的发展,作为图像识别一个子领域的人脸识别技术也得到了飞速的发展。如今,基于人脸识别的安全验证、身份验证甚至在手机解锁等领域的相关应用已经广泛普及。由于人们对于人脸识别业务的需求,关于人脸识别的各项技术已经得到了深入的研究。
本章将设计并实现人脸识别系统,整个系统主要包括了离线网络训练和在线人脸识别两大部分。离线网络训练模块主要用于网络的参数学习,在线识别就是系统的实际应用流程。只有通过离线的网络模型训练,将卷积神经网络模型的参数调整到最优,在线识别验证才能取得更好的效果,这两者是缺一不可的。
在线的人脸识别部分包括图像输入、人脸检测、人脸图像预处理、卷积神经网络的特征提取、特征对比验证、日志记录等模块。离线学习部分主要包括网络模型的训练模块。下图5.1 为人脸识别过程示意图。
......................
第六章 总结与展望
6.1 总结
本文主要研究了基于 GPU 的图像特征提取的并行化关键技术。利用 GPU 在并行计算方面的优势,优化了图像预处理和图像特征提取阶段的相关步骤,为图像特征的快速准确提取提出了有效的解决方案。
下面对本文的研究工作做如下总结:
(1)深入研究了整个图像识别过程中的关键流程,如图像预处理和图像特征提取分类流程,学习并分析了相关的主流技术;
(2)基于 GPU 并行计算架构平台,了解 GPU 在通用计算平台方面的优势,并使用 GPU对图像预处理过程中的关键算法进行并行化加速;
(3)在 GPU 并行计算的基础上,分别从数据并行和模型并行两个方面研究了多 GPU 环境下的交替式卷积神经网络训练模型,提高了图像特征提取的效率;
(4)以人脸识别为业务对象,研究并实现了基于上述理论基础的人脸识别系统,从而验证了本文研究内容的实效性。
实验表明,GPU 在并行计算方面展现出了独特的优势。基于 GPU 的 Laplacian 算法的优化加速了图像预处理流程,图像的预处理也为后续的图形特征提取过程提供了质量保障。优化的多 GPU 交替式卷积神经网络训练模型能够有效的减少资源传输并提高 GPU 利用率,从而提高整个图像特征提取的效率。
参考文献(略)