人脸识别--insightface (一)

insightface 库中,FaceAnalysis 类返回的人脸分析结果包含多个字段,每个字段代表不同的分析信息。以下是各字段的含义:

  1. det_score(检测分数):这是人脸检测的置信度分数,表示检测到的区域是人脸的概率。分数越高,表示检测结果越可靠。

  2. bbox(边界框):这是人脸在图像中的位置和大小,以矩形框的形式表示。bbox 是一个包含四个值的数组 [x1, y1, x2, y2],表示矩形框的左上角和右下角的坐标。

  3. landmark(关键点):这是人脸的关键点坐标,通常包括五个关键点,分别是两只眼睛、鼻尖和两嘴角的位置。关键点用于人脸对齐和姿态估计等任务。

  4. embedding(嵌入向量):这是从人脸图像中提取的特征向量,通常用于人脸识别。embedding 是一个固定长度的高维向量,用于表示人脸的特征,在比较两个人脸是否属于同一人时非常有用。

  5. pose(姿态):这是人脸的姿态信息,通常包括三个角度:横滚角(roll)、俯仰角(pitch)和偏航角(yaw),表示人脸在三维空间中的旋转情况。

  6. gender(性别):这是人脸的性别预测结果,通常为二值分类(男性或女性)。表示检测到的人脸的性别。

  7. age(年龄):这是人脸的年龄预测结果,通常为一个整数,表示预测的人脸年龄。

以下是一个具体的示例,展示如何使用 FaceAnalysis 类并解释返回的每个字段:

from insightface.app import FaceAnalysis
import cv2

# 初始化FaceAnalysis对象
app = FaceAnalysis()
app.prepare(ctx_id=0, det_size=(640, 640))

# 读取图像
image_path = 'path_to_your_image.jpg'
img = cv2.imread(image_path)

# 进行人脸分析
faces = app.get(img)

# 打印分析结果
for face in faces:
    print(f"Detection score: {face['det_score']:.2f}")
    print(f"Bounding box: {face['bbox']}")
    print(f"Landmarks: {face['landmark']}")
    print(f"Embedding (first 5 values): {face['embedding'][:5]}")  # 只打印前5个值
    print(f"Pose (roll, pitch, yaw): {face['pose']}")
    print(f"Gender: {'Male' if face['gender'] == 1 else 'Female'}")
    print(f"Age: {face['age']}")

示例输出解释

假设输出结果如下:

Detection score: 0.98
Bounding box: [34.5, 45.3, 120.6, 180.2]
Landmarks: [[50.2, 70.1], [90.4, 70.1], [70.1, 100.3], [55.2, 140.5], [85.1, 140.5]]
Embedding (first 5 values): [0.01, -0.02, 0.03, 0.04, 0.05]
Pose (roll, pitch, yaw): [0.1, -0.2, 0.05]
Gender: Male
Age: 25
  • Detection score: 0.98 表示检测到的区域是人脸的置信度很高。
  • Bounding box: [34.5, 45.3, 120.6, 180.2] 表示人脸的边界框,左上角坐标为 (34.5, 45.3),右下角坐标为 (120.6, 180.2)。
  • Landmarks: [[50.2, 70.1], [90.4, 70.1], [70.1, 100.3], [55.2, 140.5], [85.1, 140.5]] 表示人脸的五个关键点:两只眼睛、鼻尖和两嘴角的位置。
  • Embedding (first 5 values): [0.01, -0.02, 0.03, 0.04, 0.05] 是从人脸中提取的特征向量的一部分,用于人脸识别。
  • Pose (roll, pitch, yaw): [0.1, -0.2, 0.05] 表示人脸的姿态,分别为横滚角、俯仰角和偏航角。
  • Gender: Male 表示检测到的人脸的性别是男性。
  • Age: 25 表示检测到的人脸的年龄是25岁。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

科技追踪者

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值