python识别人脸的年龄和性别_人脸识别是如何判断性别和年龄的?

你能看出郭德纲和林志颖是同龄人吗?都是47岁,反正我看不出来。

虽说肉眼看不出来,很多人脸识别算法却可以识别出来。

在探讨人脸识别算法如何判断性别和年龄之前,需要先厘清人脸识别的原理。

我们人类记忆和辨别一张人脸,主要是靠肉眼可见的特征,譬如国字脸、双眼皮、黑眼睛、蓝色头发、塌鼻梁……

但AI不一样,AI是靠人脸特征值。

所谓人脸特征值,是面部特征所组成的信息集但人工智能不一样,利用卷积神经网络(CNN)对海量的人脸图片进行学习,他们能够抽象出人类难以理解的面部特征,因而在识别能力上超越人类。

简单来说,人工智能可以自动提取人脸特征值,这是一组空间向量,作为人脸比对的依据。同一人的不同照片提取出的特征值,在特征空间里距离很近,不同人的脸在特征空间里相距较远。距离近的就有更大可能是同一个人。

其实年龄识别和性别识别的原理也有类似之处,都是通过卷积神经网络对海量的人脸图片进行学习,抽象出人类难以理解的面部特征,作为判断性别和年龄的依据。

性别分类是一个复杂的大规模二次模式分类问题,分类器将数据录入并划分男性和女性。目前最主要的性别识别方法主要有基于特征脸的性别识别算法、基于Fisher准则的性别识别方法和基于Adaboost+SVM的人脸性别分类算法三大类。

年龄估计比性别识别更为复杂,因为人的年龄特征在外表上很难准确地被观察出来,人眼也很难准确地判断出一个人的年龄。

人脸的年龄特征通常表现在皮肤纹理、皮肤颜色、光亮程度和皱纹纹理等方面,而这些因素通常与个人的遗传基因、生活习惯、性别和性格特征和工作环境等方面相关。所以说,我们很难用一个统一的模型去定义人脸图像的年龄。若想要较好地估出人的年龄层,则需要通过大量样本的学习,比如说年龄估计开始。

年龄估计大致分为预估和详细评估两个阶段。

预估阶段:提取出照片中人脸的肌肤纹理特征,对年龄范围做一个大致的评估,得出一个特定的年龄段。

详细评估阶段:通过支持向量机的方法,建立了对应于多个年龄段的多个模型分类器,并选择合适的模型进行匹配。这其中,以一项融合LBP和HOG特征的人脸年龄估计算法最为人们所熟知。

自己写一个算法来判断性别和年龄很难,最大的难点是缺乏训练素材。如果只是为了在人脸识别产品上集成性别和年龄识别功能的话,我推荐虹软视觉开放平台的ArcFace SDK。

这是一款可以免费商用的人脸识别SDK,集人脸检测、人脸跟踪、人脸比对、人脸查找、人脸属性、IR/RGB活体检测多项能力于一身;独立离线、本地化部署支持离线服务,可在无网络环境下使用,本地化部署,保证数据的安全;能做到毫秒级识别,1:N在1000范围内达到最优,RK3399平台1千人全流程时间500ms以内。

摘两段功能演示代码给大伙儿看看:

附上ArcFace SDK的官网链接:虹软视觉开放平台​ai.arcsoft.com.cn

你可能感兴趣的:(python识别人脸的年龄和性别_人脸识别是如何判断性别和年龄的?)