在本文中,我们将讨论如何使用 serengil 的 deepface 库来分析面部图像中的情绪、年龄和性别。本文将包括四个主要部分:(1)所使用的库的讨论,(2)如何使用库,(3)代码解释,以及(4)分析结果。
1。 deepface 库的讨论
deepface 是一个基于 python 的开源库,提供面部分析功能。该库由 serengil 开发,已成为许多面部识别和面部属性分析应用程序的强大工具。 deepface 能够检测和识别人脸,并能高精度分析情绪、年龄和性别等属性。
deepface 使用已在大型面部图像数据集上进行训练的机器学习模型。该模型利用深度学习来提取面部特征并进行精确的属性分类。 deepface 使用的一些深度学习模型包括 vgg-face、google facenet、openface 等。选择和组合这些模型的能力在各种应用场景中提供了灵活性和可靠性。
2。如何使用图书馆
要使用deepface,我们需要先安装一些依赖项。详细步骤如下:
- 使用以下命令安装 deepface 库:
pip install deepface
安装所有依赖项后,我们就可以开始编写代码来分析人脸了。
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免费学习笔记(深入)”;
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 库在面部分析方面的强大和灵活。