使用 Python 中的 Serengil/DeepFace 库分析情绪、年龄和性别
来源:dev.to
时间:2024-12-26 20:19:13 416浏览 收藏
一分耕耘,一分收获!既然都打开这篇《使用 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:包含你要分析的图像,我用来分析的图像的示例
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学习网公众号,一起学习编程~
-
501 收藏
-
501 收藏
-
501 收藏
-
501 收藏
-
501 收藏
-
376 收藏
-
246 收藏
-
436 收藏
-
387 收藏
-
151 收藏
-
435 收藏
-
- 前端进阶之JavaScript设计模式
- 设计模式是开发人员在软件开发过程中面临一般问题时的解决方案,代表了最佳的实践。本课程的主打内容包括JS常见设计模式以及具体应用场景,打造一站式知识长龙服务,适合有JS基础的同学学习。
- 立即学习 542次学习
-
- GO语言核心编程课程
- 本课程采用真实案例,全面具体可落地,从理论到实践,一步一步将GO核心编程技术、编程思想、底层实现融会贯通,使学习者贴近时代脉搏,做IT互联网时代的弄潮儿。
- 立即学习 507次学习
-
- 简单聊聊mysql8与网络通信
- 如有问题加微信:Le-studyg;在课程中,我们将首先介绍MySQL8的新特性,包括性能优化、安全增强、新数据类型等,帮助学生快速熟悉MySQL8的最新功能。接着,我们将深入解析MySQL的网络通信机制,包括协议、连接管理、数据传输等,让
- 立即学习 497次学习
-
- JavaScript正则表达式基础与实战
- 在任何一门编程语言中,正则表达式,都是一项重要的知识,它提供了高效的字符串匹配与捕获机制,可以极大的简化程序设计。
- 立即学习 487次学习
-
- 从零制作响应式网站—Grid布局
- 本系列教程将展示从零制作一个假想的网络科技公司官网,分为导航,轮播,关于我们,成功案例,服务流程,团队介绍,数据部分,公司动态,底部信息等内容区块。网站整体采用CSSGrid布局,支持响应式,有流畅过渡和展现动画。
- 立即学习 484次学习