face_id.py
1.35 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
import MNN
import cv2
import numpy as np
import logging
class Face_Recognizer(object):
def __init__(self, model_path):
logging.info('******** Start Init Face ID ********')
self.reg_interpreter = MNN.Interpreter(model_path)
self.reg_session = self.reg_interpreter.createSession()
self.reg_input_tensor = self.reg_interpreter.getSessionInput(self.reg_session)
logging.info('******** Success Init Face ID ********')
def recognize(self, imgs):
feats = []
for i in range(len(imgs)):
img = imgs[i]
img = cv2.cvtColor(img, cv2.COLOR_BGR2RGB)
img = img.astype(np.float)
img = (img / 255. - 0.5) / 0.5
img = img.transpose(2, 0, 1)
img = np.expand_dims(img, axis=0)
img = img.astype(np.float32)
input_tensor = MNN.Tensor((1, 3, 112, 112), MNN.Halide_Type_Float, img, MNN.Tensor_DimensionType_Caffe)
self.reg_input_tensor.copyFrom(input_tensor)
self.reg_interpreter.runSession(self.reg_session)
output_tensor = self.reg_interpreter.getSessionOutput(self.reg_session, 'output0')
output = output_tensor.getData()
# feats.append(output[0])
feats.append(output)
feats_np = np.array(feats)
return feats_np