0

0

使用 Python 中的 Serengil/DeepFace 库分析情绪、年龄和性别

霞舞

霞舞

发布时间:2024-12-12 22:21:40

|

1075人浏览过

|

来源于dev.to

转载

在本文中,我们将讨论如何使用 serengil 的 deepface 库来分析面部图像中的情绪、年龄和性别。本文将包括四个主要部分:(1)所使用的库的讨论,(2)如何使用库,(3)代码解释,以及(4)分析结果。

1。 deepface 库的讨论
deepface 是一个基于 python 的开源库,提供面部分析功能。该库由 serengil 开发,已成为许多面部识别和面部属性分析应用程序的强大工具。 deepface 能够检测和识别人脸,并能高精度分析情绪、年龄和性别等属性。

deepface 使用已在大型面部图像数据集上进行训练的机器学习模型。该模型利用深度学习来提取面部特征并进行精确的属性分类。 deepface 使用的一些深度学习模型包括 vgg-face、google facenet、openface 等。选择和组合这些模型的能力在各种应用场景中提供了灵活性和可靠性。

2。如何使用图书馆
要使用deepface,我们需要先安装一些依赖项。详细步骤如下:

  • 确保您的系统上安装了 python 和 pip。您可以通过在终端中运行以下命令来检查安装情况:
python --version
pip --version
  • 使用以下命令安装 deepface 库:
pip install deepface
  • 除了 deepface 之外,我们还需要其他库,例如用于图像处理的 opencv 和用于数组操作的 numpy。使用以下命令安装库:
pip install opencv-python numpy

安装所有依赖项后,我们就可以开始编写代码来分析人脸了。

3。代码说明
这是从面部图像分析情感、年龄和性别的代码。这段代码由几个主要函数组成,下面将详细解释。

python
import json
import numpy as np
from deepface import deepface
import cv2

# fungsi untuk menampilkan gambar
def show_image(img_path):
    img = cv2.imread(img_path)
    cv2.imshow("image", img)
    cv2.waitkey(0)
    cv2.destroyallwindows()

# fungsi untuk konversi data agar bisa di-serialisasi
def convert_to_serializable(obj):
    if isinstance(obj, np.float32):
        return float(obj)
    raise typeerror(f"object of type {type(obj)} is not json serializable")

# fungsi untuk analisis wajah
def analyze_face(img_path):
    result = deepface.analyze(img_path)
    print("hasil analisis:", result)
    return result

# fungsi utama
def main():
    # path gambar
    img_path = "images/happy.jpg"

    # analisis wajah
    analysis_result = analyze_face(img_path)

    # simpan hasil analisis ke file json
    with open('result_analysis.json', 'w') as json_file:
        json.dump(analysis_result, json_file, default=convert_to_serializable)

if __name__ == "__main__":
    main()

代码说明
show_image(img_path):该函数用于使用opencv显示图像。图像将显示在单独的窗口中,并在关闭窗口之前等待用户输入。

convert_to_serialized(obj):该函数将 float32 numpy 对象转换为 float,以便可以序列化为 json 格式。这是必要的,因为 numpy 数据类型不直接与 json 兼容。

analyze_face(img_path):分析人脸的主要函数。该函数使用 deepface 分析给定的人脸图像并返回分析结果。

立即学习Python免费学习笔记(深入)”;

AI Note
AI Note

AI Note 助手,像贴心女仆一样助力你的笔记!智能总结内容,精确划重点,提供专业建议,让学习与工作更高效。让你的笔记更清晰、有条理,知识尽在眼前!

下载

main():该函数是脚本的主要入口点。该函数确定图像路径,调用人脸分析函数,并将分析结果保存到json文件。

img_path:包含你要分析的图像,我用来分析的图像的示例

使用 Python 中的 Serengil/DeepFace 库分析情绪、年龄和性别

4。分析结果
使用图像运行上述代码后,您将获得保存在 result_analysis.json 文件中的面部分析结果。这些结果包括有关所分析面孔的情绪、年龄和性别的信息。这是结果的示例:

[
  {
    "emotion": {
      "angry": 1.5220872522439532e-12,
      "disgust": 8.931468378748334e-32,
      "fear": 5.746265387866762e-21,
      "happy": 100,
      "sad": 9.223629621505245e-18,
      "surprise": 1.0149199189402047e-11,
      "neutral": 9.83559630185482e-7
    },
    "dominant_emotion": "happy",
    "region": {
      "x": 268,
      "y": 184,
      "w": 432,
      "h": 432,
      "left_eye": [
        547,
        361
      ],
      "right_eye": [
        419,
        360
      ]
    },
    "face_confidence": 0.92,
    "age": 35,
    "gender": {
      "Woman": 0.00001910559512907639,
      "Man": 99.9999771118164
    },
    "dominant_gender": "Man",
    "race": {
      "asian": 0.00001607497688382864,
      "indian": 0.0569615438580513,
      "black": 0.0004316684207879007,
      "white": 13.096882820129395,
      "middle eastern": 85.8901596069336,
      "latino hispanic": 0.955557644367218
    },
    "dominant_race": "middle eastern"
  }
]

通过这些信息,您可以更多地了解使用 deepface 分析的面部属性。该库在安全、营销和研究等各种应用中非常有用。例如,在营销领域,情感分析可以帮助了解消费者对广告或产品的反应。

此外,检测年龄和性别的能力可用于个性化服务,例如提供与用户个人资料相匹配的推荐。本文展示了 deepface 库在面部分析方面的强大和灵活。

热门AI工具

更多
DeepSeek
DeepSeek

幻方量化公司旗下的开源大模型平台

豆包大模型
豆包大模型

字节跳动自主研发的一系列大型语言模型

通义千问
通义千问

阿里巴巴推出的全能AI助手

腾讯元宝
腾讯元宝

腾讯混元平台推出的AI助手

文心一言
文心一言

文心一言是百度开发的AI聊天机器人,通过对话可以生成各种形式的内容。

讯飞写作
讯飞写作

基于讯飞星火大模型的AI写作工具,可以快速生成新闻稿件、品宣文案、工作总结、心得体会等各种文文稿

即梦AI
即梦AI

一站式AI创作平台,免费AI图片和视频生成。

ChatGPT
ChatGPT

最最强大的AI聊天机器人程序,ChatGPT不单是聊天机器人,还能进行撰写邮件、视频脚本、文案、翻译、代码等任务。

相关专题

更多
json数据格式
json数据格式

JSON是一种轻量级的数据交换格式。本专题为大家带来json数据格式相关文章,帮助大家解决问题。

454

2023.08.07

json是什么
json是什么

JSON是一种轻量级的数据交换格式,具有简洁、易读、跨平台和语言的特点,JSON数据是通过键值对的方式进行组织,其中键是字符串,值可以是字符串、数值、布尔值、数组、对象或者null,在Web开发、数据交换和配置文件等方面得到广泛应用。本专题为大家提供json相关的文章、下载、课程内容,供大家免费下载体验。

546

2023.08.23

jquery怎么操作json
jquery怎么操作json

操作的方法有:1、“$.parseJSON(jsonString)”2、“$.getJSON(url, data, success)”;3、“$.each(obj, callback)”;4、“$.ajax()”。更多jquery怎么操作json的详细内容,可以访问本专题下面的文章。

334

2023.10.13

go语言处理json数据方法
go语言处理json数据方法

本专题整合了go语言中处理json数据方法,阅读专题下面的文章了解更多详细内容。

82

2025.09.10

pip安装使用方法
pip安装使用方法

安装步骤:1、确保Python已经正确安装在您的计算机上;2、下载“get-pip.py”脚本;3、按下Win + R键,然后输入cmd并按下Enter键来打开命令行窗口;4、在命令行窗口中,使用cd命令切换到“get-pip.py”所在的目录;5、执行安装命令;6、验证安装结果即可。大家可以访问本专题下的文章,了解pip安装使用方法的更多内容。

373

2023.10.09

更新pip版本
更新pip版本

更新pip版本方法有使用pip自身更新、使用操作系统自带的包管理工具、使用python包管理工具、手动安装最新版本。想了解更多相关的内容,请阅读专题下面的文章。

435

2024.12.20

pip设置清华源
pip设置清华源

设置方法:1、打开终端或命令提示符窗口;2、运行“touch ~/.pip/pip.conf”命令创建一个名为pip的配置文件;3、打开pip.conf文件,然后添加“[global];index-url = https://pypi.tuna.tsinghua.edu.cn/simple”内容,这将把pip的镜像源设置为清华大学的镜像源;4、保存并关闭文件即可。

801

2024.12.23

python升级pip
python升级pip

本专题整合了python升级pip相关教程,阅读下面的文章了解更多详细内容。

370

2025.07.23

C# ASP.NET Core微服务架构与API网关实践
C# ASP.NET Core微服务架构与API网关实践

本专题围绕 C# 在现代后端架构中的微服务实践展开,系统讲解基于 ASP.NET Core 构建可扩展服务体系的核心方法。内容涵盖服务拆分策略、RESTful API 设计、服务间通信、API 网关统一入口管理以及服务治理机制。通过真实项目案例,帮助开发者掌握构建高可用微服务系统的关键技术,提高系统的可扩展性与维护效率。

3

2026.03.11

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
最新Python教程 从入门到精通
最新Python教程 从入门到精通

共4课时 | 22.5万人学习

Django 教程
Django 教程

共28课时 | 4.9万人学习

SciPy 教程
SciPy 教程

共10课时 | 1.9万人学习

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号