针对insightface换脸部分的一些解读
def get(self, img, target_face, source_face, paste_back=True):
aimg, M = face_align.norm_crop2(img, target_face.kps, self.input_size[0])
blob = cv2.dnn.blobFromImage(aimg, 1.0 / self.input_std, self.input_size,
(self.input_mean, self.input_mean, self.input_mean), swapRB=True)
latent = source_face.normed_embedding.reshape((1,-1))
latent = np.dot(latent, self.emap)
latent /= np.linalg.norm(latent)
# 双输入模型
pred = self.session.run(self.output_names, {
self.input_names[0]: blob, self.input_names[1]: latent})[0]
#print(latent.shape, latent.dtype

该文章介绍了使用InsightFace进行换脸操作的技术细节,包括人脸检测、特征映射、模型预测和图像融合的过程。
最低0.47元/天 解锁文章
1万+

被折叠的 条评论
为什么被折叠?



