1. 程式人生 > >Mtcnn進行人臉剪裁和對齊B

Mtcnn進行人臉剪裁和對齊B

pos steps app inter pil std tdi creating port

 1 from scipy import misc
 2 import tensorflow as tf
 3 import detect_face
 4 import cv2
 5 # import matplotlib.pyplot as plt
 6 from PIL import Image
 7 import os
 8 # import scipy.misc
 9 # %pylab inline
10 fin = D:\data\male
11 fout = D:\data\\rain\male
12 minsize = 20  # minimum size of face
13 threshold = [0.6, 0.7, 0.7] # three steps‘s threshold 14 factor = 0.709 # scale factor 15 margin = 44 16 frame_interval = 3 17 batch_size = 1000 18 image_size = 182 19 input_image_size = 160 20 21 print(Creating networks and loading parameters) 22 23 with tf.Graph().as_default(): 24 gpu_options = tf.GPUOptions(allow_growth=True)
25 sess = tf.Session(config=tf.ConfigProto(gpu_options=gpu_options, log_device_placement=False)) 26 with sess.as_default(): 27 pnet, rnet, onet = detect_face.create_mtcnn(sess, D:\\code\\real-time-deep-face-recognition-master\\20170512-110547) 28 29 30 i= 0 31 32 for file in os.listdir(fin):
33 try: 34 35 file_fullname = fin + / + file 36 img = misc.imread(file_fullname) 37 # i+= 1 38 # img = misc.imread(image_path) 39 bounding_boxes, _ = detect_face.detect_face(img, minsize, pnet, rnet, onet, threshold, factor) 40 nrof_faces = bounding_boxes.shape[0] # 人臉數目 41 print(nrof_faces) 42 #print(‘找到人臉數目為:{}‘.format(nrof_faces)) 43 44 # print(bounding_boxes) 45 46 crop_faces = [] 47 if nrof_faces != 0 : 48 for face_position in bounding_boxes: 49 face_position = face_position.astype(int) 50 print(face_position[0:4]) 51 cv2.rectangle(img, (face_position[0], face_position[1]), (face_position[2], face_position[3]), (0, 255, 0), 2) 52 crop = img[face_position[1]:face_position[3], 53 face_position[0]:face_position[2], ] 54 # print(crop) 55 # crop = cv2.resize(crop, (96, 96), interpolation=cv2.INTER_CUBIC) 56 crop_faces.append(crop) 57 img2 = Image.open(file_fullname) 58 a = face_position[0:4] 59 # print(‘crop_faces:‘,crop_faces) 60 # a = [face_position[0:4]] 61 box = (a) 62 roi = img2.crop(box) 63 i = roi.resize((224, 224)) 64 65 out_path = fout + / + file 66 67 i.save(out_path) 68 print(success) 69 else: 70 pass 71 except: 72 pass

Mtcnn進行人臉剪裁和對齊B