Opencv学习项目3——人脸识别

上一个项目我们使用2个函数检测了两张图片的人脸是否为同一个人,这次我们将他的相似度使用face_distance来显示

face_distance函数参数说明

face_recognition.face_distance(known_face_encodings, face_to_compare)

参数说明

  • known_face_encodings: 这是一个列表,包含了已知的多个人脸编码(通常是从已知的图像中提取得到的)。每个人脸编码是一个128维的向量。

  • face_to_compare: 这是一个单独的人脸编码,通常是从另一张图像中提取的。也是一个128维的向量。

返回值

  • 函数返回一个包含浮点数的数组,表示 face_to_compareknown_face_encodings 中每个人脸编码之间的欧氏距离。

功能和用途

  • 欧氏距离计算: 对于每个人脸编码对,函数计算其欧氏距离。欧氏距离越小,表示两个人脸编码之间越相似。

  • 相似度比较: 通过比较欧氏距离,可以判断两个人脸是否属于同一个人,或者在人脸识别任务中,用于识别最相似的人脸。

接下来我们来看代码

代码实现

复制代码
import cv2
import face_recognition

# 加载图像文件
img1 = face_recognition.load_image_file('lyf1.png')
img2 = face_recognition.load_image_file('lyf2.png')
# 将图像从 BGR 格式转换为 RGB 格式
img1 = cv2.cvtColor(img1, cv2.COLOR_BGR2RGB)
img2 = cv2.cvtColor(img2, cv2.COLOR_BGR2RGB)
# 第一个人的人脸位置信息
faceloc1 = face_recognition.face_locations(img1)[0]
faceloc2 = face_recognition.face_locations(img2)[0]
# 提取人脸编码
face_encoding1 = face_recognition.face_encodings(img1, [faceloc1])[0]
face_encoding2 = face_recognition.face_encodings(img2, [faceloc2])[0]
#框出人脸
cv2.rectangle(img1, (faceloc1[3], faceloc1[0]), (faceloc1[1], faceloc1[2]), (0, 255, 0), 3)
cv2.rectangle(img2, (faceloc2[3], faceloc2[0]), (faceloc2[1], faceloc2[2]), (0, 255, 0), 3)
#比对人脸特征
res = face_recognition.compare_faces([face_encoding1],face_encoding2)
facedis = face_recognition.face_distance([face_encoding1],face_encoding2)
print(res,round(facedis[0],2))
cv2.putText(img1,f'{res}{round(facedis[0],2)}',(50,50),cv2.FONT_HERSHEY_COMPLEX,1,(0,255,0),3)
#打印人脸位置信息
# print(faceloc1)
# print(faceloc2)

cv2.imshow('lyf1', img1)
cv2.imshow('lyf2', img2)
cv2.waitKey(0)

效果演示

这样就完成了

相关推荐
MGS浪疯1 小时前
我用 WorkBuddy 做了一个能记住前文的 AI 小说编辑器
人工智能·编辑器·腾讯云·腾讯云ai代码助手·workbuddy开发者分享季·codebuddy开发者分享季
IT_陈寒1 小时前
Python的线程池把我CPU跑满了,原来少传了个参数
前端·人工智能·后端
Microvision维视智造1 小时前
买视觉系统踩过的坑,都是选型时没问对的问题,真实案例手把手教你选择视觉合作伙伴!
人工智能·计算机视觉·视觉检测·机器视觉
BSD_CGQ1 小时前
FSR压力传感器的MCU采集方案与校准算法实现
人工智能·计算机视觉·目标跟踪·adc·压力传感器·fsr·深圳源头厂家
老猿AI洞察1 小时前
阿里Qwen-Image-3.0发布:4.5K token长输入+10px小字渲染,AI生图终于能从“好看“走向“好用“了
人工智能·阿里云
淼澄研学2 小时前
深入解析AI不确定推理:5种工程化落地方案与代码实战
人工智能
RSABLOCKCHAIN2 小时前
AI Agents in LangGraph-1
人工智能·系统架构
四方云2 小时前
以芒格多元思维破局营销内卷:用机制与工具实现收支稳态
人工智能·机器人·外呼系统·销售成长·拓客
SEONIB_Explorer2 小时前
2026独立站AI收录底层逻辑:为什么内容可被Google收录,却无法被AI检索引用?
大数据·人工智能·跨境电商·视频制作·seonib·veonib
breeze jiang2 小时前
Vibe Coding 越写越乱?用 Harness Engineering 给 AI 开发加上流程
人工智能