借助PowerVR GPU和OpenCL实现人脸检测和识别

作者:Ashley Smith

在前面的文章中,我们向大家展示了使用神经网络实现一些诸如物体识别、数字化识别等功能。本篇文章我们将向大家展示视觉处理方面更实际的一个Demo,在PowerVR GPU上运行AI和机器学习算法。这个Demo展示了我们如何使用硬件(比如GPU)的计算能力来获取摄像头采集的视频并采用多个卷积神经网络(CNNs)进行处理。

经过神经网络算法处理后会在画面中标出每张人脸的位置,并且提供“标识符”指向每张人脸。我们采用FDDB库(包括5171张人脸图片)和VGG库(包括2622张不同识别特征的图片)对网络进行了训练。下面的视频展示了这个Demo的运行情况,还使用了PowerVR深度神经网络(DNN)库,这两者都是由PowerVR研究团队和视觉团队开发的。这个深度神经网络库采用高级指令、权值和偏差并转换成GPU可以处理的数据,然后我们继续采用OpenCL库对这个网络进行实时处理。

这个Demo运行在宏碁(Acer)笔记本上,集成的是联发科(MTK)MT8173 SoC和PowerVR GX6250 GPU,运行频率在455MHz。笔记本电池充满电后开始运行人脸识别Demo,总共持续了将近六个小时,充分体现了PowerVR GPU的功率效率和性能。

借助PowerVR GPU和OpenCL实现人脸检测和识别

从上面的图片中我们可以看出这个Demo能够同时识别三个用户的特征。

这个Demo展示的是一个实际应用的案例,人脸检测和识别需要融入我们的日常生活中。界面上它模仿了一个TV系统,识别用户的同时还能找出适合他们的电影内容。

首先我们使用GoogLeNet单镜头检测(SSD)神经网络识别网络摄像机采集画面中的每一张人脸,会将每一张人脸用方形框标记出来。然后我们将脸部内容隔离开,在同一个位置运行另一个神经网络,这样就会返回给我们一个“标识符”,这个标识符类似于每张人脸被采集的画面帧,这同时也意味着向系统添加标记识别已经不重要了,从上面的视频中大家可以看到我们是如何识别每一张之前没有训练过的人脸图像,如何使用标识符在下次能够直接识别出对应的人脸图像。

下面是这个Demo的设计框图:

借助PowerVR GPU和OpenCL实现人脸检测和识别

我们可以想象到这项技术的多种用途,比如智能TV,其本身已经具备运行神经网络的硬件基础,用户可以采用人脸识别进行注册,然后系统会自动加载用户喜欢的电影内容、App应用和快捷方式等,这无疑会大大提升用户体验效果。

另一个潜在的用途是实时检测用户是否正在看着设备,从而可以持续跟踪用户对哪些内容感兴趣以及用户的习惯等,这种功能可以用于市场营销或者个性化设计,无需用户下意识的关注。

另一个应用的实例是智能门铃,通过人脸识别确定每一个到访者,并且可以为每个用户自定义提示音,目前这些相似产品已经是市场上存在,比如基于AI的安全摄像头系统等。

这只是一个图像识别的演示Demo,展示了如何高效快捷应用PowerVR GPU,我希望大家持续关注我们的博客,我们会持续更新关于机器学习算法和PowerVR高级性能方面的内容。

原文链接: https://www.imgtec.com/blog/face-detection-and-identification-using-open...

声明:
本文为原创文章,转载需注明作者、出处及原文链接,否则,本网站将保留追究其法律责任的权利

--电子创新网--
粤ICP备12070055号