def create_mtcnn(self, sess, model_path): tf.disable_eager_execution() if not model_path: model_path, _ = os.path.split(os.path.realpath(__file__)) with tf.variable_scope('pnet'): data = tf.placeholder(tf.float32, (None, None, None, 3), 'input') pnet = mtcnn_detect_face.PNet({'data': data}) pnet.load(os.path.join(model_path, 'det1.npy'), sess) with tf.variable_scope('rnet'): data = tf.placeholder(tf.float32, (None, 24, 24, 3), 'input') rnet = mtcnn_detect_face.RNet({'data': data}) rnet.load(os.path.join(model_path, 'det2.npy'), sess) with tf.variable_scope('onet'): data = tf.placeholder(tf.float32, (None, 48, 48, 3), 'input') onet = mtcnn_detect_face.ONet({'data': data}) onet.load(os.path.join(model_path, 'det3.npy'), sess) self.pnet = K.function([pnet.layers['data']], [pnet.layers['conv4-2'], pnet.layers['prob1']]) self.rnet = K.function([rnet.layers['data']], [rnet.layers['conv5-2'], rnet.layers['prob1']]) self.onet = K.function([onet.layers['data']], [ onet.layers['conv6-2'], onet.layers['conv6-3'], onet.layers['prob1'] ])
def create_mtcnn(sess, model_path): with tf.variable_scope('pnet'): data = tf.placeholder(tf.float32, (None,None,None,3), 'input') pnet = mtcnn_detect_face.PNet({'data':data}) pnet.load(os.path.join(model_path, 'det1.npy'), sess) with tf.variable_scope('rnet'): data = tf.placeholder(tf.float32, (None,24,24,3), 'input') rnet = mtcnn_detect_face.RNet({'data':data}) rnet.load(os.path.join(model_path, 'det2.npy'), sess) with tf.variable_scope('onet'): data = tf.placeholder(tf.float32, (None,48,48,3), 'input') onet = mtcnn_detect_face.ONet({'data':data}) onet.load(os.path.join(model_path, 'det3.npy'), sess) return pnet, rnet, onet