Edge Computing Application: Real-Time Face Recognition Based on Cloudlet

A mobile-cloud architecture provides a practical platform for performing face recognition on a mobile device. Firstly, even though CPU, memory in mobile phones have been greatly improved, resources demanding applications like face recognition still cannot run on mobile phones. Besides, if send face images to clouds, network latency will not be accepted. However, cloudlet provides an accelerator for face recognition and lessens compute burden on mobile phones which have limited computational capabilities and battery life.

I、Background

人脸检测和识别在日常生活中的应用日渐广泛,例如:安全监控,人脸识别登录,刷脸支付等。随着智能手机的发展,手机APP成为了人脸识别使用最广泛的地方。在过去的十几年间,智能手机经历了一段飞速发展的时期,触屏显示器的使用、从单核处理器到多和处理器、存储从几百M扩展到几百G,这些技术的提高和进步使得智能手机可以运行更加复杂的应用。然而即使如此这样,智能手机的计算和存储能力仍然有限,再加上有限的电池电量,所以一些计算密集型的应用仍然不能在手机上运行,例如:实施人脸检测和识别。其中一种解决方案就是基于云端的方法,将计算密集的部分放到云端运行,然后将结果返回手机。

基于云端的实时的人脸识别存在以下问题:移动端需要将拍摄整个图片发送到云端。由于云服务器一般部署在网络的中心,所以由于网络带宽的限制和与服务器的距离,此操作会有一定的延迟,这就与实时的人脸识别这一目标相违背。尽管可以在手机上完成人脸的检测,然后将检测的人脸发送到云端,但是在一些复杂的图片中或者在对精度要求非常高的条件下,这种方案也是不可行的。

II、Face Recognition

人脸识别包括三部分:人脸检测,特征向量映射,数据库搜索。

1、Face Detection

人脸检测是将有效信息也就是人脸信息从原始图像中提取出来。这一步并不涉及人脸数据库,所以可以将该步骤与后续的步骤分离开来放到任何具有足够计算能力的平台上运行。这就使得我们可以使用cloudlet来进行人脸检测。特征脸可以用主权分析法获得(PCA)。使用PCA我们可以在不丢失特征的前提下大大的减少信息量。

2、Projection

尽管经过人脸检测,我们已经将人脸从背景中提取出来了,但是对于人脸识别来说,此时的图片仍然包含一些多于的信息。为了进一步减少信息量,我们可以使用特征脸的方法将检测到的人脸映射成一个特征脸来产生一个特征向量,这样可以与候选人脸匹配时减少计算量。

3、Database Search

最后一步是,在人脸数据库中匹配得到的特征脸,将最相近的匹配结果返回给手机。

III、The Cloudlet-Based Face Recognition

尽管智能手机的计算和存储能力在过去的几年中不断进步,但是它们在计算速度,内存,存储,电池和网络带宽等方面的能力依然十分有限。对一些延迟敏感和要求实时性的应用,为了提高用户体验我们应该尽可能的减少程序的响应时间。云计算虽然非常强大,但由于其位于网络中心,所以与云服务器通讯有较大的延迟。所以Cloudlet的引入既可以解决移动设备计算和存储不足的问题,还不会引起难以忍受的网络延迟。关于Cloudlet的介绍可以参考之前的博客:Types of Edge Computing Implementations——边缘计算的实现 Cloudlet可以看做是低配版的云服务器,它有强大的计算和存储能力,并且位于网络的边缘,移动设备可以经过一跳就到达Cloudlet服务器。加入Cloudlet后的系统架构图如下图所示:

Edge Computing Application: Real-Time Face Recognition Based on Cloudlet_第1张图片

Cloudlet可以提供一下三种方式来减少响应时间:

  • 利于Cloudlet强大的计算能力,可以对数据进行预处理,从而减少上传到云端的数据量,数据量下降了,响应时间自然也下降了。

  • 利用Cloudlet强大的存储能力,将云服务器中的一部分数据缓存在Cloudlet中,例如:那些经常访问的数据,这样,移动设备可以直接从Cloudlet中获取所需的数据而不必每次都访问云端。

  • Cloudlet可以同时为多台移动设备服务,为了最高效率的利用云服务器,Cloudlet可以根据每个云服务器当前的负载状态动态的将不同的任务分配到不同的云服务器上,实现负载的平衡。

在人脸识别应用中,移动设备可以将拍摄的整张图片发送到Cloudlet,Cloudlet对图像进行预处理,首先进行第一步人脸检测,然后再进行映射得到特征向量,然后将特征向量发送到云端数据库进行匹配。另外,Cloudlet还可以将一部分人脸数据库缓存在本地,这样就可以直接在Cloudlet中完成整个人脸识别过程。最后,在多台设备同时访问Cloudlet时,Cloudlet可以根据云服务器的运行状况将请求发送到不同的云服务器上实现负载平衡。

参考论文:Powers N, Alling A, Osolinsky K, et al. The Cloudlet Accelerator: Bringing Mobile-Cloud Face Recognition into Real-Time[C]// IEEE GLOBECOM Workshops. IEEE, 2015:1-7.

你可能感兴趣的:(边缘计算,物联网,分布式,边缘计算与物联网,人脸识别,云计算,边缘计算,Cloudlet)