用HOG特征和SVM分类器实现多尺度人脸检测外文翻译资料

 2022-11-18 21:40:51

英语原文共 18 页,剩余内容已隐藏,支付完成后下载完整资料


用HOG特征和SVM分类器实现多尺度人脸检测

MICHAŁ DRO˙ZD˙ Z TOMASZ KRYJAK

AGH University of Science and Technology, al. Mickiewicza 30, 30-059 Krakoacute;w michald@student.agh.edu.pl, tomasz.kryjak@agh.edu.pl

摘要:本文提出了一种基于FPGA的人脸检测嵌入式视觉系统。 滑动检测窗口,HOG SVMalgorithmand和多尺度图像处理被使用和广泛描述。 应用的计算并行化允许实时处理1280times;720 @ 50Hz的视频流。 所提供的模块已经通过Xilinx的ZynqSoCdevice在Zybo开发板上得到验证。 它可以用于多种监护系统,包括潜水员疲劳监测。

关键词。人脸检测,HOG,SVM,FPGA

1介绍

人脸检测和定位是许多现实生活视觉系统中最重要的组成部分之一。示例包括:使用面部图像,年龄,性别或心情估计,相机聚焦,自动视频监视(跟踪或重新识别),图像标记(例如通过社交服务),人机界面或人机界面进行生物特征识别或验证,如

以及基于视觉的驾驶员疲劳检测。由于其非常实际的重要性(这种系统可用于诸如诸如智能手机之类的许多日常设备中),所以人脸检测的研究非常先进。过去50多年来,人们提出了不同的方法和算法。下面列出了最具代表性的一些问题。全面的综述可以在文献[24]中找到。从一开始,它就是人脸识别面临的主要挑战。首先是形状的变化性较高,并且在不同的人(包括胡子,胡子,不同的发型,眼镜等)中出现。此外,在大多数情况下,应该检测到出现不同位置的正面,轮廓,旋转位置。另一个问题与捕获图像的背景有关。在整个案例中,除了其他表面外,其他表面还可以包含其他表面(例如,表面化)。此外,非常重要的因素是闪电状况和阴影(例如,脸部的一半)。最明显的方法之一是基于肤色检测。在YCbCr或HSV(色调,饱和度,色值)色彩空间中,至少有一个理论上,它可能会使部分色彩搭配色彩斑斓的色彩。

最明显的方法之一是基于肤色检测。在YCbCr或HSV(色调,饱和度,色值)色彩空间中,至少有一个理论上,它可能会使部分色彩搭配色彩斑斓的色彩。在下一阶段,连接组件标签后,选择具有特定形状(椭圆形)和大小的对象。这种方法的主要优点是简单和计算速度快。另一方面,由于对照度变化的高度敏感性,其可靠性非常有限。但是,它可以用作人脸检测系统的辅助部分。它允许减少候选人的数量或验证检测结果。工作[6]中描述了这种解决方案的一个例子。最普遍和广泛使用的方法无疑是P. Viola和M. Jones [20]提出的方法。它可以在流行的图像处理库OpenCV,Matlab软件中使用,并且是许多商业解决方案的基础。它的操作基于“经典”方案 - 特征提取,随后进行分类。在第一阶段,使用Haar特征,即使用简单的矩形图案来分析局部亮度变化。值得注意的是,使用所谓的积分图像可以实现计算的显着加速。使用弱分类器的分类阶段。它的架构是通过AdaBoost机器学习算法获得的。该解决方案允许在早期阶段拒绝大量错误的候选项,因此速度相对较快(至少在顺序架构上)。另一种基于类似方案的方法涉及LBP(本地二进制模式)或HOG(直方图的梯度图)特征。第一种方法在工作中提出[25]。作者声称,LBP(特别是多块变体)允许重复检测结果并减少计算复杂度。 HOG特征和SVM(支持向量机)分类器被用于工作[23]。这两个问题将在本文后面详细讨论。近年来,人们对图像处理的强烈兴趣产生了深度卷积神经网络(DCNN) - 这主要是由于非常好的检测结果(目前DCNN被主要技术

Facebook,微软或谷歌等公司)。该方法由两部分组成:大量的卷积和子采样层(特征提取步骤)和完全连接的神经网络(分类)。该方法的所有参数都是在学习过程中获得的,这需要非常大的图像数据集。这是强调这一特征的提取也是“学习”和非人为设计的。该解决方案的主要优点是其计算复杂性(网络大大增加)。这强制使用高性能,但相对低能耗的GPU(图形处理单元)卡或专用ASIC(专用集成电路)。基于DCNN的人脸检测系统在工作[13]中进行了描述。

设计嵌入式视觉系统是一个相当复杂的问题。一开始就有必要选择一个合适的计算平台,它基本上应该满足两个常常相互冲突的要求。首先,应支持实时处理(即处理相机传输的所有数据)。其次,解决方案应该是高效的。值得一提的是:通用处理器CPU / GPP(中央处理器,通用处理器),ASIC(专用集成电路)或可编程FPGA(现场可编程门阵列)以及Xilinx Zynq等异构系统(ARM处理器和一个外壳中的可重编程逻辑)。这些平台有其优点和缺点,深入讨论超出了本文的范围。

在所描述的应用中,使用基于FPGA的解决方案。它确保了高性能和灵活性,同时保持相对较低的能耗。此外,许多不同的规格系统都在FPGA中实现 - 从简单的卷积滤波到相当先进的检测和识别算法,甚至是DCNN。概述可以在书中找到[1]。

在设计所述嵌入式人脸检测系统的过程中,考虑了以下要求:

bull;获得较高的检测准确度,误报数量较少,

bull;提供简单的可扩展性 - 分辨率从720times;576到1280times;720,最终甚至是HD 1980times;1080,bull;保持实时性能(至少每秒50帧),

bull;支持多尺度人脸检测,

bull;在FPGA设备上的流水线视觉系统中实现该算法。

本文的主要贡献是:

bull;首先(根据作者的最佳知识)在FPGA中实现基于HOG SVM的人脸检测,

bull;简单而有效的多尺度处理方法,

bull;详细描述了所设计的硬件模块。

本文组织如下。首先,在第2节中修改了以前的面部检测算法的FPGA实现。然后,在第3节中讨论提出的解决方案。最后,在第4部分介绍了设计的硬件模块。本文最后总结了未来的研究方向。

2个FPGA实现的人脸检测算法

如前所述,人脸检测是非常重要的一个非常重要的问题。因此,一个数字可以找到不同算法的FPGA实现。 Someofthemaredescribedbelow。在工作中[6]使用了基于修改的RGB模型的肤色分割。对所获得的二元掩模进行过滤(形态闭合)。然后,分析检测到的物体的参数(面积,形状)。所描述的系统已经在DE2-70评估板上的Altera Cyclone II器件中实现。作者估计286图像上的解答的准确率为90.2%(对使用的测试数据库没有信息)。该系统支持处理1024times;768 @ 25 fps视频流。在工作[14]中描述了类似的解决方案。前景对象分割支持RGB图像上的皮肤区域检测(基于块的运行平均逼近)。整个模块描述在SystemC和VHDL中。所提出的仿真结果表明了实时计算能力。文献[21]提出了一种将肤色分割,嘴唇检测和修改后的LBP特征相结合的系统。 YCbCrcolour空间,形态开放和连接组件标签被用来检测皮肤样区域。嘴唇使用R / G和Ycomponent阈值分割。 LBPs用于检测水平边缘。这三种特征的整合可以获得高度可靠性(作者报告准确率为94.9%,但未指定使用的数据库)。该系统已在Altera的Cyclone II FPGA的DE2​​-70板上进行了实践验证。实时处理320times;240 @ 30fps视频流。在工作[12]中,提出了一个简单的双层神经网络,使用浮点计算来实现Spartan 3 FPGA器件中的人脸检测。灰度输入图像块具有23times;17像素大小。作者报告了38倍加速到软件实施。但是,没有提供准确性数据。

基于琼斯的方法[20]也是所描述的FPGA实现数量的结果。在论文[11]中,提出了一个能够处理640times;480像素的143帧的系统。 Itconsistedofseveralmodules。第一个允许多尺度图像处理(使用双缓冲方法)。此外,两个时钟域处理被用来提高系​​统性能。接下来,对于21times;21检测窗口,计算积分图像。在分类阶段,采用了完全平行的流水线解决方案。它提供了很高的速度,但是对使用的弱分类器的数量施加了显着的限制(只有52个,需要超过2500个原始解决方案)。该系统在Virtex II Pro(XC2VP30)FPGA器件中实现。

在文献[5]中提出了修改后的Viola-Jones算法的硬件 - 软件实现。在FPGA硬件中只实现了一个窗口分类模块(大小为17times;17)。其余的操作是在通用处理器上执行的。在实验中使用PCIe扩展板上的FPGA(Virtex 5(LX 110T))。作者报告说,与纯软件解决方案相比,其速度提高20倍,检测性能高于OpenCVlibrary。但是,这种解决方案不适合嵌入式视觉系统。

在文章[7]中,提出了Viola-Jones算法的嵌入式实现。该系统由几个组件组成:图像采集卡控制,图像缩放,积分图像计算,分类和检测结果可视化。在第一阶段,inputimage(320times;240)被限制为13个不同尺度(双线性插值)。然后,对于检测窗口(20times;20),计算积分图像。为了支持滑动窗口方法,提出了并行更新机制。本文的大部分内容致力于集成图像缓冲和分类模块之间的通信。从理论上讲,eachof

12个分类器的端口应该能够访问缓冲器中的任何400个值(12400:1多路复用器,每个17位)。特别强调,在FPGA实现中,模块非常繁琐且耗费资源。但是,可以通过适当和谨慎的设计来减少多路复用器的尺寸,详情见[7]。该系统在Virtex 5 FPGA设备中得到了实际验证。 Fortheconsidered解决方案100fps获得。

在工作[4]中,提出了一种能够实时处理640times;480 @ 60 fps视频的人脸检测系统。该架构与之前的架构非常相似。首先,theinputimagewasstoredinexternalSRAMmemory。然后,对图像的N行计算积分图像。与其他方法相比,缩放是在积分图像上执行的。分类是通过三个迭代模块实现的(每个模块都可以访问积分图像的相关部分)。该系统已通过采用Virtex 5器件(LX110T)的FPGA评估板上的硬件进行了验证。应该指出的是,模块的资源利用率非常高。

所提出的分析表明,在设计基于FPGA的嵌入式人脸检测系统时,可以使用四种方法中的一种:皮肤颜色分割,HOG(LBP)和SVM,简单神经网络或Viola-Jones方法。第一个并不能保证充分的可靠性。此外,人脸检测模块的一个可能应用是驾驶员疲劳分析系统。在那里,有了一段时间的条件,这是不可能获得彩色图像。通过简单的神经网络获得的结果并不令人信服,而DCNN对于紧凑型嵌入式解决方案而言“太大”。 ViolaJones方法在算法上不适合FPGA实现(主要是阶段式分类阶段)。 [4]中介绍的解决方案允许实时图像处理640times;480 @ 60 fps视频流,但代价是逻辑资源利用率较高。此外,该方法的实现相对复杂,多个无模块同步和执行。考虑到上述原因,决定使用基于HOG或LBP特征和SVM分类器的方法,这些方法在硬件中非常简单。

3提议的解决方案

所提出的解决方案由几个模块组成:图像缩放,特征提取(HOG或LBP)和SVM分类。这些部分将在本节后面讨论。最后,比较了HOG SVM和LBP SVM方法的有效性。

3.1滑动窗口和多尺度对象检测

首先,应该讨论典型的基于滑动窗口的方法。假设一个模块接受大小为Mtimes;N的输入图像块并返回一个二进制分类结果(这个问题对于多个对象类也可以非常直接地推广)。检测窗口通常明显小于输入图像分辨率(例如20times;20与1280times;720)。因此,应该对图像中所有可能的位置进行检测。在基本情况下,这意味着用一个像素水平和垂直移动窗口。但是,由于相当大的计算复杂度,通常采用更大的步骤。此外,分类模块通常能够检测特定大小的物体(准确地插入检测窗口)。另一方面,在现实生活中,不同大小的图像出现 - 例如,与摄影机距离不同的人。使用这两种方法中的一种可以使用以下方法:

bull;具有不同检测功能的多个模块(M1times;N1,M2times;N2 ...),bull;输入图像缩放。

图1:滑动窗口和多尺度图像处理实例

由于需要训练几个独立的分类器并计算单独的特征向量,因此实际上很难在实践中使用这种简单而直接的方法。在第二种情况下,使用单个分类器(或多个并行副本)和多个不同大小的图像。通常情况下,图像是缩小的,但在某些情况下,缩放比例也是可取的。这允许检测不同尺寸的物体。值得注意的是,缩放可以通过简单的每隔一个像素跳过(下采样2)和低通滤波以及双线性或双三次插值来实现。此外,由于可以在不同尺度和位置检测到同一个物体,所以结果集成程序是强制性的。上面讨论的两个问题都在图1中进行了说明。在这些平面上有不同的变化。使用较大的滑动窗口(左侧图像)可以检测左侧的面部(其他人很少)。另一方面,asmallerwindow(rightimages)允许正确检测右侧部分的面部。

3.2特征提取 - 面向方向的直方图

由N. Dalal和B. Triggs [3]的工作最为人所知的是面向对象(HOG)特征的Histogram和SupportVectorMachine(SVM)分类方法对物体的检测和识别。它最初被提出用于行人检测,但同样的方法可用于汽车,自行车或人脸等物体。这个概念是基于局部边缘定位分析。该算法可以分为几个步骤。第一个是可选的预处理,其形式为simplegammacorrection(p(i,j)= A·p(i,j)gamma;,其中p-像素,A,gamma;-恒定)。确定下一个步骤 - 水平(gx)和垂直(gy)。通常,使用简单的一维掩模 - gx = I * [-1,0,1],gy = I * [ - 1,0,1] T,其中:I-输入灰度图像,* - 卷积。然后计算模量(大小)和角度:

(2)

剩余内容已隐藏,支付完成后下载完整资料


资料编号:[24038],资料为PDF文档或Word文档,PDF文档可免费转换为Word

您需要先支付 30元 才能查看全部内容!立即支付

课题毕业论文、外文翻译、任务书、文献综述、开题报告、程序设计、图纸设计等资料可联系客服协助查找。