mirror of
				https://github.com/PaddlePaddle/FastDeploy.git
				synced 2025-10-31 11:56:44 +08:00 
			
		
		
		
	 1dabfdf3f1
			
		
	
	1dabfdf3f1
	
	
	
		
			
			* 更新交叉编译 * 更新交叉编译 * 更新交叉编译 * 更新交叉编译 * 更新交叉编译 * 更新交叉编译 * 更新交叉编译 * 更新交叉编译 * 更新交叉编译 * Update issues.md * Update fastdeploy_init.sh * 更新交叉编译 * 更新insightface系列模型的rknpu2支持 * 更新insightface系列模型的rknpu2支持 * 更新说明文档 * 更新insightface * 尝试解决pybind问题 Co-authored-by: Jason <928090362@qq.com> Co-authored-by: Jason <jiangjiajun@baidu.com>
		
			
				
	
	
		
			82 lines
		
	
	
		
			2.1 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
			
		
		
	
	
			82 lines
		
	
	
		
			2.1 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
| import fastdeploy as fd
 | |
| import cv2
 | |
| import numpy as np
 | |
| 
 | |
| 
 | |
| def cosine_similarity(a, b):
 | |
|     a = np.array(a)
 | |
|     b = np.array(b)
 | |
|     mul_a = np.linalg.norm(a, ord=2)
 | |
|     mul_b = np.linalg.norm(b, ord=2)
 | |
|     mul_ab = np.dot(a, b)
 | |
|     return mul_ab / (mul_a * mul_b)
 | |
| 
 | |
| 
 | |
| def parse_arguments():
 | |
|     import argparse
 | |
|     import ast
 | |
|     parser = argparse.ArgumentParser()
 | |
|     parser.add_argument(
 | |
|         "--model", required=True, help="Path of insgihtface onnx model.")
 | |
|     parser.add_argument(
 | |
|         "--face", required=True, help="Path of test face image file.")
 | |
|     parser.add_argument(
 | |
|         "--face_positive",
 | |
|         required=True,
 | |
|         help="Path of test face_positive image file.")
 | |
|     parser.add_argument(
 | |
|         "--face_negative",
 | |
|         required=True,
 | |
|         help="Path of test face_negative image file.")
 | |
|     parser.add_argument(
 | |
|         "--device",
 | |
|         type=str,
 | |
|         default='cpu',
 | |
|         help="Type of inference device, support 'cpu' or 'gpu'.")
 | |
|     parser.add_argument(
 | |
|         "--use_trt",
 | |
|         type=ast.literal_eval,
 | |
|         default=False,
 | |
|         help="Wether to use tensorrt.")
 | |
|     return parser.parse_args()
 | |
| 
 | |
| 
 | |
| def build_option(args):
 | |
|     option = fd.RuntimeOption()
 | |
| 
 | |
|     if args.device.lower() == "gpu":
 | |
|         option.use_gpu()
 | |
| 
 | |
|     if args.use_trt:
 | |
|         option.use_trt_backend()
 | |
|         option.set_trt_input_shape("data", [1, 3, 112, 112])
 | |
|     return option
 | |
| 
 | |
| 
 | |
| args = parse_arguments()
 | |
| 
 | |
| runtime_option = build_option(args)
 | |
| model = fd.vision.faceid.ArcFace(args.model, runtime_option=runtime_option)
 | |
| 
 | |
| face0 = cv2.imread(args.face)  # 0,1 同一个人
 | |
| face1 = cv2.imread(args.face_positive)
 | |
| face2 = cv2.imread(args.face_negative)  # 0,2 不同的人
 | |
| 
 | |
| result0 = model.predict(face0)
 | |
| result1 = model.predict(face1)
 | |
| result2 = model.predict(face2)
 | |
| 
 | |
| embedding0 = result0.embedding
 | |
| embedding1 = result1.embedding
 | |
| embedding2 = result2.embedding
 | |
| 
 | |
| cosine01 = cosine_similarity(embedding0, embedding1)
 | |
| cosine02 = cosine_similarity(embedding0, embedding2)
 | |
| 
 | |
| print(result0, end="")
 | |
| print(result1, end="")
 | |
| print(result2, end="")
 | |
| print("Cosine 01: ", cosine01)
 | |
| print("Cosine 02: ", cosine02)
 | |
| print(model.runtime_option)
 |