Beispiel #1
0
def test(FAPrefix, SSHPrefix, imgPath):
    FAPredictor = FaceAttributesPredictor(FAPrefix, epoch=1, ctxId=0)
    faceDetector = SSHDetector(SSHPrefix, epoch=0, ctx_id=0)
    images_name = get_images_name_list(imgPath)
    for img in images_name:
        print('image: %s' % (img))
        imgMat = cv2.imread(img)
        faces = faceDetector.detect(imgMat, threshold=0.8)
        print(faces.shape[0], ' faces detected.\n')
        imgMatList = []
        for num in range(faces.shape[0]):
            kpoint = faces[num, 5:15]
            kpoint = np.array(kpoint).reshape(5, 2)
            cropImg = norm_crop(imgMat, kpoint)
            imgMatList.append(cropImg)
        faResult = FAPredictor.predict(imgMatList)
        assert len(faResult) == len(imgMatList)
        show_face_rec_kpoint_attribute(faces, img, imgMat, faResult)
Beispiel #2
0
def main(args):
	detector = SSHDetector(args.prefix, args.epoch, args.gpuId)

	imgDir = args.imagesDir
	savePath = args.savePath
	imgNameList = os.listdir(imgDir)

	for imgName in imgNameList:
		imgPath = imgDir + imgName
		if not os.path.isfile(imgPath):
			continue
		print(imgPath)

		img = cv2.imread(imgPath)
		im_shape = img.shape
		print(im_shape)
		target_size = scales[0]
		max_size = scales[1]
		im_size_min = np.min(im_shape[0:2])
		im_size_max = np.max(im_shape[0:2])
		if im_size_min > target_size or im_size_max > max_size:
			im_scale = float(target_size) / float(im_size_min)
			# prevent bigger axis from being more than max_size:
			if np.round(im_scale * im_size_max) > max_size:
				im_scale = float(max_size) / float(im_size_max)
			img = cv2.resize(img, None, None, fx=im_scale, fy=im_scale)
			print('resize to', img.shape)

		# timea = datetime.datetime.now()
		faces = detector.detect(img, threshold=0.8)
		# timeb = datetime.datetime.now()

		for num in range(faces.shape[0]):
			bbox = faces[num, 0:4]
			cv2.rectangle(img, (bbox[0], bbox[1]), (bbox[2], bbox[3]), (0, 255, 0), 1)
			kpoint = faces[num, 5:15]
			for knum in range(5):
				cv2.circle(img, (kpoint[2 * knum], kpoint[2 * knum + 1]), 2, [0, 0, 255], 2)
		cv2.imwrite(savePath + imgName, img)
Beispiel #3
0
import cv2
import sys
import numpy as np
import datetime
#sys.path.append('.')
from ssh_detector import SSHDetector

scales = [1200, 1600]
t = 2
detector = SSHDetector('./model/e2ef', 0)

f = '../sample-images/t1.jpg'
if len(sys.argv) > 1:
    f = sys.argv[1]
img = cv2.imread(f)
im_shape = img.shape
print(im_shape)
target_size = scales[0]
max_size = scales[1]
im_size_min = np.min(im_shape[0:2])
im_size_max = np.max(im_shape[0:2])
if im_size_min > target_size or im_size_max > max_size:
    im_scale = float(target_size) / float(im_size_min)
    # prevent bigger axis from being more than max_size:
    if np.round(im_scale * im_size_max) > max_size:
        im_scale = float(max_size) / float(im_size_max)
    img = cv2.resize(img, None, None, fx=im_scale, fy=im_scale)
    print('resize to', img.shape)
for i in xrange(t - 1):  #warmup
    faces = detector.detect(img)
timea = datetime.datetime.now()
Beispiel #4
0
import cv2
import sys
import numpy as np
import datetime
sys.path.append('../SSH')
sys.path.append('../alignment')
from ssh_detector import SSHDetector
from alignment import Alignment
from embedding import Embedding

#short_max = 800
scales = [1200, 1600]
t = 2

detector = SSHDetector('../SSH/model/e2ef', 0)
alignment = Alignment('../alignment/model/3d_I5', 12)
embedding = Embedding('./model/model', 0)
out_filename = './out.png'

f = '../sample-images/t1.jpg'
if len(sys.argv) > 1:
    f = sys.argv[1]
img = cv2.imread(f)
im_shape = img.shape
print(im_shape)
target_size = scales[0]
max_size = scales[1]
im_size_min = np.min(im_shape[0:2])
im_size_max = np.max(im_shape[0:2])
if im_size_min > target_size or im_size_max > max_size:
    im_scale = float(target_size) / float(im_size_min)
Beispiel #5
0
import cv2
import sys
import numpy as np
import datetime
from alignment import Alignment
sys.path.append('../SSH')
from ssh_detector import SSHDetector

#short_max = 800
scales = [1200, 1600]
t = 2

detector = SSHDetector('../SSH/model/e2ef', 0)
alignment = Alignment('./model/3d_I5', 12)
out_filename = './out.png'

f = '../sample-images/t1.jpg'
if len(sys.argv)>1:
  f = sys.argv[1]
img = cv2.imread(f)
im_shape = img.shape
print(im_shape)
target_size = scales[0]
max_size = scales[1]
im_size_min = np.min(im_shape[0:2])
im_size_max = np.max(im_shape[0:2])
if im_size_min>target_size or im_size_max>max_size:
  im_scale = float(target_size) / float(im_size_min)
  # prevent bigger axis from being more than max_size:
  if np.round(im_scale * im_size_max) > max_size:
      im_scale = float(max_size) / float(im_size_max)
import cv2
import sys
import numpy as np
import datetime
#sys.path.append('.')
from ssh_detector import SSHDetector

scales = [1200, 1600]
#scales = [600, 1200]
t = 2
detector = SSHDetector('./model/e2ef', 0)


f = '../sample-images/t1.jpg'
if len(sys.argv)>1:
  f = sys.argv[1]
img = cv2.imread(f)
im_shape = img.shape
print(im_shape)
target_size = scales[0]
max_size = scales[1]
im_size_min = np.min(im_shape[0:2])
im_size_max = np.max(im_shape[0:2])
if im_size_min>target_size or im_size_max>max_size:
  im_scale = float(target_size) / float(im_size_min)
  # prevent bigger axis from being more than max_size:
  if np.round(im_scale * im_size_max) > max_size:
      im_scale = float(max_size) / float(im_size_max)
  img = cv2.resize(img, None, None, fx=im_scale, fy=im_scale)
  print('resize to', img.shape)
for i in xrange(t-1): #warmup
Beispiel #7
0
import pims
import lz

# v = pims.Video(lz.home_path + 'prj/insightface/datasets/facebank/video.mp4')
# shape = v.frame_shape
# v[0].shape
#
# for frame in v:
#     if frame is None:
#         break

scales = [1200, 1600]
# scales = [600, 1200]
t = 2

detector = SSHDetector('./model/e2ef', 0)

f = '../sample-images/t1.jpg'
if len(sys.argv) > 1:
    f = sys.argv[1]
img = cv2.imread(f)
xrange = range


def det_face(img):
    im_shape = img.shape
    print(im_shape)
    target_size = scales[0]
    max_size = scales[1]
    im_size_min = np.min(im_shape[0:2])
    im_size_max = np.max(im_shape[0:2])