美文网首页程序员
人脸识别技术的现状

人脸识别技术的现状

作者: 冰糖葫芦加冰 | 来源:发表于2019-03-12 17:17 被阅读0次

    目前来看,人工智能技术在图像处理领域发展得最好,其中人脸识别是最最成熟、应用最广的一项技术。国内大公司都已经推出了成熟的人脸识别云服务,以便分享这一块大蛋糕。然而,很多应用场景不适合使用云服务,这样使得中小厂商整合技术推出自己的系统。那么,有哪些成熟的技术可以学习使用呢?

    首先,我们要搞清楚几个基本概念:

    人脸检测

    找出一幅图片中是人脸的区域并标记出来(一般用矩形表示),如下图所示(百度结果):

    人脸关键点检测

    定位并返回人脸五官与轮廓的关键点坐标位置。关键点包括人脸轮廓、眼睛、眉毛、嘴唇以及鼻子轮廓。关键点的个数根据算法不同也会有所不同,比如dlib给出的是69点,Face++给出的是83点,百度给出的是72点。

    如下图所示(百度结果):

    人脸特征

    把人脸区域作为输入通过一定算法计算出人脸特征(一般用1xN的多维向量表示,N越大特征越丰富,计算量也越大)。

    人脸对比

    计算两张脸的相似程度,并给出相似度评分,以便分析属于一个人的可能性。

    人脸搜索

    针对一个新的人脸,在一个已有的人脸集合中搜索相似的人脸。算法会返回一系列相似人脸,以及相似度评分。

    下面概括一下成熟技术。

    一、OpenCV

    OpenCV可以做“人脸检测”和“人脸识别(人脸特征提取)”,但是精准度较深度学习的方法差不少,但它的速度(只有CPU,无GPU)更快一些。

    OpenCV已经包含多个预训练好的分类型来分类人脸,眼睛,笑脸等。相应的XML配置文件存储在opencv/data/haarcascades/ 目录下。

    接下来我们创建人脸和眼睛的分类器。

    加载相应XML创建分类器,并读取要检测的图片

    找到人脸和眼睛并显示

    结果显示如下:

    二、Dlib

    Dlib也是一个很成熟的图像识别的库,在人脸识别方面它包含了已经训练好的模型,可以进行人脸检测、人脸特征提取、人脸识别。有人对它进行了进一步封装,使得它用起来非常简单,号称是“The world’s simplest facial recognition api for Python and the command line”(世界上最简单的人脸识别Python API 和 命令行工具),有兴趣的可以一试: https://github.com/ageitgey/face_recognition

    三、深度学习框架

    最近几年深度学习的兴起,极大促进了图像处理的速度和精度,出现了几个比较成熟的深度学习框架,如:TensorFlow、MxNet、PyTorch等等。在这些框架的基础上,实现各种神经网络模型用于人脸检测、人脸特征提取等任务。比较有名的有:

    人脸检测:mtcnn

    人脸特征:ResNet

    有兴趣的可以到github上面找相关项目进行学习。

    更多关于Python技术知识将分享在我的博客:www.yuanrenxue.com

    公众号:猿人学Python

    相关文章

      网友评论

        本文标题:人脸识别技术的现状

        本文链接:https://www.haomeiwen.com/subject/mxinpqtx.html