26th伊朗电气工程会议(ICEE2018)

基于树莓派平台在无人机上实现人脸检测系统

H. Daryanavard 电气与计算机工程系 霍尔木兹甘大学 班达阿巴斯,伊朗 H_daryanavard@hormozgan.ac.ir
A. Harifi 电气与计算机工程系 霍尔木兹甘大学 班达阿巴斯,伊朗 Harifi@hormozgan.ac.ir

摘要

无人机是无飞行员的航空器,通常以四旋翼、六旋翼或固定翼飞机的形式出现。在无人机上实现人脸检测与识别系统可实现对地面人员的识别。需要轻量便携的系统应用于无人机。本文提出了一种基于树莓派的人脸检测实现方案。通过OpenCV工具使用Haar级联分类器算法。该实现使用特定的无人机面部图像数据集进行评估。实验结果表明,在相机距地面1.5、3、4和5米高度时,真正例分别达到98%、93%、86%和80%。

关键词 ——无人机;人脸检测;树莓派;Haar级联分类器。

I. 引言

无人机(UAV)是一种没有飞行员的航空器,可以远程飞行或使用人工智能飞行。在某些应用中,无人机用于检测地面上的人并对其进行跟踪。面部是人的外貌的一部分,通过面部识别个体是一种科学行为[2]。因此,我们需要在无人机上搭载便携式人脸检测系统。

人脸检测系统在监控、生物识别和安全等许多应用中也起着基础性作用[3]。理想的人脸识别系统包含两个子系统:首先是用于在图像帧中寻找人脸的人脸检测子系统,其次是用于识别未知人脸图像的人脸识别子系统,如图1所示。

示意图0

人脸识别是一个具有挑战性的研究领域,涉及软件方面的算法开发以及硬件方面的架构设计和最佳平台选择。

过去几十年中,人们提出了许多人脸识别方法。杨在[4]中研究了不同的人脸检测与识别算法。基于知识或启发式的人脸检测方法,如基于颜色和基于模板的检测,利用人脸的直接信息,通常速度较快,但面对大尺度的人脸变化和背景干扰时往往鲁棒性较差。而基于学习或统计的人脸检测器,如基于支持向量机和神经网络检测,则采用强大的模式分类算法,能够更准确地区分非人脸图像和人脸图像[4]。

由于检测算法的复杂性和输入数据(即高分辨率相机捕获的真实图像)的尺寸,实现检测系统需要复杂的计算和内存资源。

许多实现工作基于Viola-Jones提出的人脸检测算法[5]。该算法能够非常快速地处理图像,同时实现高效的检测率。引入一种称为“积分图像”的新图像表示方法、使用AdaBoost学习算法构建的高效分类器,以及将分类器以“级联”方式组合的方法,是[5]的三个主要贡献。

在本文中,我们希望研究不同的便携式平台,这些平台适用于在无人机上实现实时人脸检测与识别系统。此外,我们在选定的平台上实现了人脸检测,并使用特定的无人机面部图像数据集对其进行评估。

本文的结构安排如下:在第二节中,我们分别研究在不同平台上实现人脸检测的相关工作。第三节描述了平台的比较,以期找到最适合无人机的平台,以及在选定平台上的实现。第四节报告了实验设置和结果。第五节总结了结论和未来工作。

II. 相关工作

本节研究了在不同平台上实现人脸检测与识别的相关工作,分别地。现场可编程门阵列、数字信号处理器、图形处理器和树莓派是实现中最为常见的平台,其他平台将在以下小节中分别讨论。

A. 现场可编程门阵列实现

现场可编程门阵列(FPGA)是一种在制造后由设计人员进行配置的集成电路。使用硬件描述语言(HDL)来配置FPGA。该平台包含一个可配置逻辑块(CLB)[6]阵列。可配置逻辑块(CLB)可以被配置以执行复杂的组合和时序功能。

Junguk[7-8]使用Verilog硬件描述语言设计了人脸检测,并在Xilinx Virtex-5 FPGA上实现。本工作采用了基于Haar特征的AdaBoost算法。与软件实现相比,性能提升了约35倍。摄像头接口和DVI接口采用专用集成电路设计实现。

Changjian在[9]中提出了一种利用现场可编程门阵列加速基于Haar分类器的人脸检测算法的新方法。通过高度流水线化和并行架构,他们的系统实现了实时(每秒37帧)人脸检测性能。这项工作是在资源和性能方面最合理且最佳的成果之一。

B. 数字信号处理器实现

数字信号处理器(DSP)是一种用于处理不同信号的定制化处理器。数字信号处理被广泛应用于声音处理、图像处理、机器视觉等领域[10]。这些领域各自需要专用的处理器。DSP应用于数码相机、高清电视、MP3播放器、手机等设备中。

Meenakshi[11-12]提出了一种基于数字信号处理器的原型人脸检测与验证系统的设计、实现与验证,该系统采用主成分分析(PCA)和离散余弦变换(DCT)方法。他们使用TMS320C6713DSP作为实现平台。

C. 图形处理器实现

图形处理器(GPU)拥有巨大的并行计算资源,具备高浮点运算性能和高内存带宽。随着CUDA(统一计算设备架构)和OpenCL(开放计算语言规范)等应用程序编程接口(API)的发展,这些资源已可用于通用计算。

David在[13]中提出了一种面向NVIDIA GPU的基于Haar的人脸检测器的大规模并行实现。该实现可在包含多个人脸的通用图像帧中,以每秒35帧的性能实现实时处理H.264高清1080p视频帧。

Wei和Ming[14]提出了一种基于Haar的级联分类器,该分类器使用CUDA在Nvidia GTX260 GPU上进行了加速。他们的实现在每秒12帧的吞吐量下运行。

D. 树莓派实现

树莓派是一种小型微型计算机,其组件安装在小面积的主板上,运行专用版本的Linux(通常是Raspbian)。它由英国的树莓派基金会开发。它可以连接显示器、键盘和鼠标。这款廉价的开发板具有多种用途,例如教育、家庭自动化、工业自动化和商业产品。

达绍杜里在[15]中实现了基于高分辨率视频输入的实时人脸检测,采用了Haar分类器。他们使用了包含带有图形处理器结构的片上系统的树莓派B型处理器。采用500万像素的OVA5647摄像头获取H.264视频数据。使用OpenCV和SimpleCV工具进行人脸检测与跟踪。实验结果表明,在1080p分辨率下,吞吐量达到30帧每秒。

希里沙在[16]中也建议使用树莓派处理器进行人脸检测与跟踪。斯瓦蒂在[17]中描述了一种使用树莓派实现人脸检测系统的简单易行的方法。该系统采用Python编程语言进行编程。

III. 提议的实现方案

在本节中,我们首先讨论在第二节中研究的不同平台。目的是找到最适合用于无人机上实现人脸检测系统的平台。接下来,将基于所选平台描述提出的实施方案。

A. 选择平台

第一点是整个系统的重量。通常,无人机的承载重量非常低。因此,系统必须轻便,并且具有最小复杂性的可移植性。尽管我们需要高性能的系统,但还必须考虑成本和设计时间。

在表I中,不同的平台在性能、成本、可移植性和设计时间方面进行了比较。

示意图1

根据表I,很明显数字信号处理器不适合作为无人机的平台。如今,图形处理器在许多图像处理应用中的使用有所增加,但考虑到成本和可移植性标准,图形处理器也不适合用于无人机。

两种选择仍然存在。乍一看,考虑到高性能,现场可编程门阵列似乎是最佳平台。但该平台的主要问题之一是其设计时间较长。同时,专业的现场可编程门阵列是一个非常昂贵的平台。

与现场可编程门阵列相反,树莓派是一个价格合理且重量轻的平台,设计复杂度极低。该平台的新款型号,例如树莓派3,具有高性能的硬件特性,而价格保持不变。当然,在性能方面,现场可编程门阵列始终优于树莓派,但在许多应用中,树莓派是实现的良好选择,除非输入图像速率过高。甚至在这些应用中,使用混合平台(如Zynq现场可编程门阵列)也比纯现场可编程门阵列更好。

B. 在树莓派上的建议实现

根据前一小节的结果,选择树莓派3作为实现平台。这款便携式微型计算机是树莓派板卡的第三代产品,比之前的版本更快。该小型板卡的详细信息如下[18]:

  • 四核1.2GHz ARM Cortex-A53 64位CPU
  • 1 GB RAM,全尺寸HDMI
  • 板载BCM43438无线局域网和蓝牙
  • 4 USB2端口,40针扩展GPIO
  • CSI摄像头接口,用于连接树莓派摄像头
  • Micro SD卡槽,用于加载操作系统
  • 板尺寸:85.60毫米 × 56.5毫米

我们还使用了著名的Haar级联分类器算法,通过OpenCV工具进行人脸检测。该程序采用Python语言编写。实验设置如图2所示。

示意图2

如图2所示,树莓派开发板连接了HDMI液晶显示器、键盘和鼠标。一个树莓派摄像头连接到开发板上,用于采集图像并进行人脸检测。如果我们关注图2中的液晶显示器,可以看到一个人的图像,并在其脸部周围绘制了一个矩形框。这是一个简单的实时系统。

当然,无人机上的人脸检测还需考虑其他因素。无人机在远距离和高高度拍摄的小尺寸人脸图像确实会给人脸检测和识别带来困难。摄像头的大角度主体极大地削弱了人脸检测和识别的能力。

Jung Hsu在[19]和[20]中提供了一个由人脸图像组成的完整图像数据集。这些图像从不同距离和高度的组合中捕获,用于评估空中人脸检测技术的效果。

在此采集过程中,从2米到17米的距离范围内,以0.5米为间隔对特定目标进行拍摄,共获得该目标的31张图像。相机高度距地面1.5米。同样的过程在高度为3米、4米和5米的情况下重复进行。实际上,从不同距离和角度共采集了124张目标图像。此描述如图3所示。

示意图3
示意图4

在图4中,显示了部分受试者的图像样本。从图像中可以看出,所有图像都包含两张人脸。也就是说,识别出图像中的这两张人脸是该问题的最佳答案。图像大小为 3680×2760像素,相当于8百万像素;这符合4K分辨率标准。在下一节中,我们将展示在此数据集上的实现结果。

IV. 实验结果

我们使用前一节中提到的124张图像对在树莓派上实现的人脸检测进行了评估。在此,我们测量了二分类的敏感性,使用两个标准进行测试,即真阳性(TP)和假阳性(FP)。

在本研究中,真阳性是指检测出的确实是人脸的人脸数量;假阳性是指检测出的并非人脸的数量。实验结果,包括真阳性和假阳性数据及图表,分别如图5和图6所示。

示意图5

示意图6

图表中表格的第一行确定了图像编号。图像1是相机与拍摄对象最远的距离,为17米。图像31是相机与拍摄对象最近的距离,为2米。两个图表均包含四行和四条曲线,分别对应1.5、3、4和5米高度。

如图5所示,在超过8米的距离区间内,两个人脸的检测减少为一个人脸甚至零个,这对应于图像1到14。然而,在小于8米的大多数情况下,两个人脸均被正确检测到。在最后几幅图像中,5米高度的曲线再次下降,对应2到4米的距离;这是由于相机与拍摄对象之间的广角所致。如图6所示,在这些曲线中,随着相机高度的增加,情况变得更糟。

表II显示了在不同高度下测量的TP和FP的平均值。

示意图7

高度 1.5米 3米 4米 5米
平均TP 1.96§98% 1.87§93% 1.71§86% 1.61§80%
平均FP 0.35 0.48 0.61 0.91

V. 结论与未来工作

本文研究了在无人机上实现人脸检测的不同平台。经过评估和比较,选择了树莓派微型计算机,因其重量轻、廉价且设计周期短。采用Haar级联分类器算法结合OpenCV工具实现人脸检测。通过特定的无人机面部图像数据集对系统进行评估。实验结果表明,在相机距地面1.5、3、4和5米高度时,真正例分别达到98%、93%、86%和80%。

在未来的工作中,我们希望在无人机上使用Zynq FPGA板开发人脸检测系统,以弥补性能不足,并为非常快速的应用获得一个实时系统。

Logo

火山引擎开发者社区是火山引擎打造的AI技术生态平台,聚焦Agent与大模型开发,提供豆包系列模型(图像/视频/视觉)、智能分析与会话工具,并配套评测集、动手实验室及行业案例库。社区通过技术沙龙、挑战赛等活动促进开发者成长,新用户可领50万Tokens权益,助力构建智能应用。

更多推荐