当前位置:首页 > 文章列表 > 文章 > python教程 > 使用 Python 中的 Serengil/DeepFace 库分析情绪、年龄和性别

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

来源:dev.to 2024-12-26 20:19:13 0浏览 收藏

一分耕耘,一分收获!既然都打开这篇《使用 Python 中的 Serengil/DeepFace 库分析情绪、年龄和性别》,就坚持看下去,学下去吧!本文主要会给大家讲到等等知识点,如果大家对本文有好的建议或者看到有不足之处,非常欢迎大家积极提出!在后续文章我会继续更新文章相关的内容,希望对大家都有所帮助!

在本文中,我们将讨论如何使用 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 分析给定的人脸图像并返回分析结果。

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 库在面部分析方面的强大和灵活。

今天带大家了解了的相关知识,希望对你有所帮助;关于文章的技术知识我们会一点点深入介绍,欢迎大家关注golang学习网公众号,一起学习编程~

版本声明
本文转载于:dev.to 如有侵犯,请联系study_golang@163.com删除
电脑无法开机,可能出现的原因和解决方法电脑无法开机,可能出现的原因和解决方法
上一篇
电脑无法开机,可能出现的原因和解决方法
用离散语义熵和困惑度检测法学硕士的幻觉
下一篇
用离散语义熵和困惑度检测法学硕士的幻觉
查看更多
最新文章
查看更多
课程推荐
  • 前端进阶之JavaScript设计模式
    前端进阶之JavaScript设计模式
    设计模式是开发人员在软件开发过程中面临一般问题时的解决方案,代表了最佳的实践。本课程的主打内容包括JS常见设计模式以及具体应用场景,打造一站式知识长龙服务,适合有JS基础的同学学习。
    542次学习
  • GO语言核心编程课程
    GO语言核心编程课程
    本课程采用真实案例,全面具体可落地,从理论到实践,一步一步将GO核心编程技术、编程思想、底层实现融会贯通,使学习者贴近时代脉搏,做IT互联网时代的弄潮儿。
    509次学习
  • 简单聊聊mysql8与网络通信
    简单聊聊mysql8与网络通信
    如有问题加微信:Le-studyg;在课程中,我们将首先介绍MySQL8的新特性,包括性能优化、安全增强、新数据类型等,帮助学生快速熟悉MySQL8的最新功能。接着,我们将深入解析MySQL的网络通信机制,包括协议、连接管理、数据传输等,让
    497次学习
  • JavaScript正则表达式基础与实战
    JavaScript正则表达式基础与实战
    在任何一门编程语言中,正则表达式,都是一项重要的知识,它提供了高效的字符串匹配与捕获机制,可以极大的简化程序设计。
    487次学习
  • 从零制作响应式网站—Grid布局
    从零制作响应式网站—Grid布局
    本系列教程将展示从零制作一个假想的网络科技公司官网,分为导航,轮播,关于我们,成功案例,服务流程,团队介绍,数据部分,公司动态,底部信息等内容区块。网站整体采用CSSGrid布局,支持响应式,有流畅过渡和展现动画。
    484次学习
查看更多
AI推荐
  • AI边界平台:智能对话、写作、画图,一站式解决方案
    边界AI平台
    探索AI边界平台,领先的智能AI对话、写作与画图生成工具。高效便捷,满足多样化需求。立即体验!
    21次使用
  • 讯飞AI大学堂免费AI认证证书:大模型工程师认证,提升您的职场竞争力
    免费AI认证证书
    科大讯飞AI大学堂推出免费大模型工程师认证,助力您掌握AI技能,提升职场竞争力。体系化学习,实战项目,权威认证,助您成为企业级大模型应用人才。
    48次使用
  • 茅茅虫AIGC检测:精准识别AI生成内容,保障学术诚信
    茅茅虫AIGC检测
    茅茅虫AIGC检测,湖南茅茅虫科技有限公司倾力打造,运用NLP技术精准识别AI生成文本,提供论文、专著等学术文本的AIGC检测服务。支持多种格式,生成可视化报告,保障您的学术诚信和内容质量。
    170次使用
  • 赛林匹克平台:科技赛事聚合,赋能AI、算力、量子计算创新
    赛林匹克平台(Challympics)
    探索赛林匹克平台Challympics,一个聚焦人工智能、算力算法、量子计算等前沿技术的赛事聚合平台。连接产学研用,助力科技创新与产业升级。
    249次使用
  • SEO  笔格AIPPT:AI智能PPT制作,免费生成,高效演示
    笔格AIPPT
    SEO 笔格AIPPT是135编辑器推出的AI智能PPT制作平台,依托DeepSeek大模型,实现智能大纲生成、一键PPT生成、AI文字优化、图像生成等功能。免费试用,提升PPT制作效率,适用于商务演示、教育培训等多种场景。
    190次使用
微信登录更方便
  • 密码登录
  • 注册账号
登录即同意 用户协议隐私政策
返回登录
  • 重置密码