近期工作需要调研关于人脸转换向量存储到自家的数据库去做人脸识别,所以我在网上pick了两种关于人脸转换向量的两种简单做法,但是作为一个java开发工程师,对python的使用不是很精通,所以代码仅供参考
import face_recognition as fr
#测试修改文件绝对路径
test_image = "C:\\Users\\admin\\Desktop\\128维实例\\test1.jpg"
image = fr.load_image_file(test_image)
face_locations = fr.face_locations(image)
face_encodings = fr.face_encodings(image, face_locations)
for face_encoding in face_encodings:
print(face_encoding)
上述的是图片转换128维度的向量
import argparse
import cv2
import sys
import numpy as np
import insightface
from insightface.app import FaceAnalysis
from insightface.data import get_image as ins_get_image
import face_recognition as fr
#检测insightface的版本是否大于等于0.3.0
assert insightface.__version__>='0.3'
parser = argparse.ArgumentParser(description='insightface app test')
parser.add_argument('--ctx', default=0, type=int, help='ctx id, <0 means using cpu')
parser.add_argument('--det-size', default=640, type=int, help='detection size')
args = parser.parse_args()
app = FaceAnalysis()
app.prepare(ctx_id=args.ctx, det_size=(args.det_size,args.det_size))
#测试修改文件绝对路径
test_image = "C:\\Users\\15372\\Desktop\\128维实例\\test1.jpg"
image = fr.load_image_file(test_image)
faces = app.get(image)
#face 的length就是一张图内人脸个数
#print(len(faces))
for face in faces:
print(face['embedding'])
上述为图片转换512维度的向量
萌新一枚,谢谢阅读~