英语原文共 6 页,剩余内容已隐藏,支付完成后下载完整资料
基于FPGA的卷积神经网络人脸检测体系结构设计
摘要——卷积神经网络(Convolutional neural networks,CNN)的出现提供了强大的识别能力,特别是在图像识别和目标检测领域。然而,大量的计算需求、存储和内存访问使得上述功能很难实现在移动或嵌入式系统上。本文对CNN级联人脸检测算法进行了一些优化,以提高吞吐量,同时在功率限制下使计算、存储和带宽需求最小化。首先,CNN级联的第一个网络被转换成一个完全卷积网络,以减少83%的计算量。其次,通过网络再训练,将模型参数从32位浮点量化为2位定点,使参数存储空间减少93.75%。最后,在Xilinx ZYNQ FPGA开发板上实现
了CNN加速器。
索引项——卷积神经网络,CNN,量化,全卷积网络,人脸检测,FPGA
I.介绍
近年来,特别是在Krizhevskyet等人[1]的代表性工作之后,深CNN得到了迅速发展。其在图像与视频识别、目标检测、图像与文本翻译、语音识别、文本理解等领域都取得了显著的成果。一个典型的深卷积神经网络模型包含一系列分层。这些分层中主要有三种类型的层:卷积层、池层和完全连接层。这些层以某种方式结合在一起,形成一个完整的深CNN模型。最先进的模型通常有更多的层
和更多的权重和偏差参数。
另一方面,人脸检测一直是计算机视觉领域研究的热点之一。给定一幅图像,人脸检测的目的是确定该图像中是否有人脸,并根据每个人脸的位置返回人脸数目。其中的主要困难来自于图像的尺度、位置、姿态、方向、表情、遮挡以及可能的人脸的海量搜索空间的变化。为了实现该功能,许多手动特征,如Haar特征[2],二值化特征,如修正型触觉转换,LBP特征[4]、[5]、局部组合二进制(LAB)特征[6]、基于统计的特征[7]和复合特征[8],在过去几十年中被提出。自从Viola等人[2]的开创性工作以来,人们就提出了许多基于这种增强型级联结构的人脸检测器。由于类人脸特征的识别能力相对较弱,在人脸具有不同姿态、表情和意外光照的环境中,原始的人脸检测算法通常会失效。受[2]的启发,Li等人[9]提出了一种用于人脸检测的CNN级联算法,用卷积神经网络的学习滤波器代替
Haar特征,成为当前的研究热点。
尽管基于CNN的算法表现出了优异的性能,但是深CNN所需的大量计算、存储和内存访问使得部署在移动或嵌入式系统上很难实现,尤其是在速度和功耗限制下。Szegedyet等人[10]已经表明,神经网络中的权重和偏差参数是高度冗余的,这意味着要么减少参数的数量,要么降低参数的精度,这反过来又可以减少存储和计算。为了设计出一个高效的体系结构,这种冗余计算应该事先进行分析,以避免冗余的硬件开销。本文在文献[11]-[13]等网络优化工作的基础上,设计了
一种高效的人脸检测系统结构。这项工作有三个贡献。
bull;优化了最新的人脸检测算法,并采用全卷积网络和量化技术,并验证了算法的性能。完全卷积网络是为了提高分类网络的定位能力而设计的。本文证明了使用完全卷积网络可以大大减少计算量。此外,与现有的大多数以分类为重点的CNN
量化工作相比,其也能很好地用于目标检测。
bull;提出了一种有效的基于CNN的人脸检测体系结构。本文展示了如何借 助网络优化,特别是参数量化,显著优化硬件结构。
bull;此拟议架构已实施并验证在FPGA平台上。
II.前期的研究
A.CNN网络优化
1)完全卷积网络:CNN通常使用固定的输入图像大小进行训练。当CNN被用于目标检测时,这通常引入巨大的冗余计算,如图1(a)所示,其中以具有三层的简单网络为例。输入图像大小为12times;12。第一层是卷积层,表示为“C”,配置为{N,M,K,K}={16,3,3},其中N表示输出通道号、M表示输入通道号和内核大小是Ktimes;K。第二层和第三层是完全连接的层,表示为“FC”,配置分别为{N,M}={16,10times;10times;16}和{2,16}。输出是两个类{detected,not detected}的二维标签向量。对于目标检测,如图1(a)所示,将输入图像的不同滑动窗口作为CNN的输入,然后我们可以得到不同位置的检测结果。很明显,相邻窗口之间实际上有很大的计算冗余。例如,图1(a)的窗口1和窗口2具有大量重叠的输入数据,
并且这两个窗口之间也可以共享大量中间数据。
卷积层和完全连接层在CNN中的主要区别在于卷积层只连接到输入特征映射的一个区域,参数在不同的区域共享;另一方面,完全连接层的参数在不同的区域是唯一的位置,这是CNN的固定大小限制的原因。但是,这两种图层基本上执行相同的点积操作。因此,只要滤波器大小与步长为1的输入特征图相同,任何完全连通的层都可以转换为卷积层,过滤器的数量是原始完全连接层的深度或长度。例如,配置为{N,M}={16,10times;10times;16}的全连接层可以转换为配置为{N,M,K,K}={16,16,10,10}的卷积层,配置为{N,M}={2,16}的全连接层可以转换为配置为{N,M,K,K}={2,16,1,1}的卷积层,如图1(b)所示。这些转换在实践中非常有用。如图1(b)所示,在转换之后,输入大小限制被移除,因为网络中没有完全连接的层。在这种情况下,不需要滑动窗口技术,只需对模型进行一次转
发,即可导出热量图,避免了冗余计算。
2) 夸虚拟化:部署在硬件上,必须解决的一个问题是参数的存储大小。即使在一个相对较小的CNN模型中,比如用于人脸检测的CNN网络级联,它的参数总数为398万个,存储32位浮点数这样的参数也需要大约15.92MB的内存。解决该问题的方法,要么是减少参数的数量,要么是将参数量化到较低的精度,本文采用后一种方法。
作为如[12]所述,借助于参数量化,如果参数的字长可以从32位减少到2位(表示-1,0, 1),则卷积的乘法和累加计算可以进一步简化为3对1的多路复用操作,减少重要的单元面积。浮点到定点参数量化的几种方法包括:1)硬量化;2)随机取整量化[14],其中将参数取整到相邻堆栈的概率与到堆栈的距离成正比;3)网络再训练[12],[13],其中,通过修改成本函数[12]或迭代训练[13],量化训练过程中发生的情况。现有的CNN量化方法大多采用分类网络进行实验。在本文中,将把这种技术应用于一个目标检测网络,并研究参数量化对硬件结构设计的影响。
B、 CNN Cascase人脸检测
Li等人[9]在Viola等人[2]的启发下,提出了一种CNN级联人脸检测方法。由于原始图像中的非人脸结果在早期很快被拒绝且更多的会在CNN级联后传送,所
以通过级联的浅层CNN,计算量可以大大减少层叠.
CNN级联人脸检测如图2所示,它由三种网络组成:12网、24网和48网,其中第一个网络12网的输入图像分辨率最低,以便快速地拒绝那些小网络不可能使用人脸的窗口。对前两个网络(12个网络和12个校准网络)的阈值进行了配置,以便它们减少92.7%的可能检测窗口,同时在FDDB[15]数据集上保持94.8%的召回率。使用校准网来校正检测窗口的位置。此外,采用非最大值抑制(non- maximum suppression,NMS)来消除以往网络提出的高重叠窗口。预期结果和鲁棒性能如[9]所示。本文以该网络为例,对网络优化和硬件结构设计进行了研究。
III.建议的硬件结构
A.网络优化
采用12网的全卷积形式,通过减少卷积运算次数,节省了大量的计算量。乘法累加运算(multiply-accumulate operations,MAC)的总数使用的原始滑动窗口公式和修正完全卷积模型分别为91124352和15610752。结果表明,采用完全卷积网络,12个网络的MAC总数可减少83%。将CNN级联人脸检测网络量化,降低了硬件成本和存储需求。如图3所示,评估硬量化和网络再训练方法。图3(a)表明,对于硬量化,具有6或7位精度的参数就足够了。当采用网络再训练方法时,图3(b)显示,仅使用2位就可以很好地保持性能精度。注意使用小于5位的字长来训练12个校准网和24个校准网是不成功的,但是可以观察到移除这两个校准网并没有减少FDDB的精确度太高[15],如图3(b)所示。在这种情况下,量化技术
节省了93.75%的存储空间。
B.硬件架构
硬件架构是基于一个Xilinx ZYNQ的FPGA平台设计与实现的。我们利用屋顶线模型[16],一种分析设计方案,在考虑FPGA的计算吞吐量和带宽限制的情况下,定量地探索设计空间,以找到性能最佳的解决方案。文中还说明了网络量化对硬
件设计的好处。
设计硬件时应注意的几个方面包括计算、通信(从DRAM检索和存储数据)和带宽。为了解决这些问题,在[17]中提出了屋顶线模型。浮点性能是衡量硬件吞吐量的常用指标,其最大可达性能以硬件平台提供的峰值性能为上限,而实际
性能与计算通信比有关。
参考文献
- [1] Alex Krizhevsky, I Sutskever, and G. E Hinton, “Imagenet classification with deep convolutional neural networks,” in Proc. in Neural Informa- tion Processing Systems (NIPS 2012), 2012, p. 4.
- [2] Paul Viola and Michael J. Jones, “Robust real-time face detection,” International Journal of Computer Vision, vol. 57, pp. 137–154, May 2004.
- [3] B. Froba and A. Ernst, “Face detection with the modified census transform,” in Proceedings. Sixth IEEE International Conference on Automatic Face and Gesture Recognition, May 2004, pp. 91–96.
- [4] Hongliang Jin, Qingshan Liu, Hanqing Lu, and Xiaofeng Tong, “Face detection using improved lbp under bayesian framework,” in Proc. Third International Conference on Image and Graphics (ICIG), December 2004, vol. 57, pp. 306–309.
- [5] LunZhang,RufengChu,ShimingXiang,ShengcaiLiao,andStanZ.Li, “Face detection based on multi-block lbp representation,” in Proceedings of the 2007 international conference on Advances in Biometrics (ICB), August 2007, pp. 11–18.
- [6] Shengye Yan, Shiguang Shan, Xilin Chen, and Wen Gao, “Locally assembled binary (lab) feature with feature-centric cascade for fast and accurate face detection,” in Proc. IEEE Conference on Computer Vision and Pattern Recognition (CVPR), June 2008, pp. 1–7.
- [7] Xiaoyu Wang, Tony X. Han, and Shuicheng Yan, “An hog-lbp human detector with partial occlusion handling,” in Proc. IEEE 12th Interna- tional Conference on Computer Vision, September 2009, pp. 32–39.
- [8] T. Mita, T. Kaneko, and O. Hori, “Joint haar-like features for face detection,” in Proc. Tenth IEEE International Conference on Computer Vision (ICCV), October 2005, vol. 2, pp. 1619–1626.
-
[9] Haoxiang Li, Zhe Lin, Xiaohui Shen, Jonathan Brandt, and Gang Hua, “A convolutional neural network cascade for face detection,” in Proc. IEEE Conference on Computer Vision and Pattern Recognition (CVPR), June 2015, pp. 5325–5334.
剩余内容已隐藏,支付完成后下载完整资料
资料编号:[257929],资料为PDF文档或Word文档,PDF文档可免费转换为Word
以上是毕业论文外文翻译,课题毕业论文、任务书、文献综述、开题报告、程序设计、图纸设计等资料可联系客服协助查找。