mirror of
https://github.com/deepinsight/insightface.git
synced 2025-12-30 08:02:27 +00:00
67 lines
1.8 KiB
Python
67 lines
1.8 KiB
Python
import cv2
|
|
import sys
|
|
import numpy as np
|
|
import datetime
|
|
import os
|
|
import glob
|
|
from retinaface_cov import RetinaFaceCoV
|
|
|
|
thresh = 0.8
|
|
mask_thresh = 0.2
|
|
scales = [640, 1080]
|
|
|
|
count = 1
|
|
|
|
gpuid = 0
|
|
#detector = RetinaFaceCoV('./model/mnet_cov1', 0, gpuid, 'net3')
|
|
detector = RetinaFaceCoV('./model/mnet_cov2', 0, gpuid, 'net3l')
|
|
|
|
img = cv2.imread('n1.jpg')
|
|
print(img.shape)
|
|
im_shape = img.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])
|
|
#im_scale = 1.0
|
|
#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)
|
|
|
|
print('im_scale', im_scale)
|
|
|
|
scales = [im_scale]
|
|
flip = False
|
|
|
|
for c in range(count):
|
|
faces, landmarks = detector.detect(img,
|
|
thresh,
|
|
scales=scales,
|
|
do_flip=flip)
|
|
|
|
if faces is not None:
|
|
print('find', faces.shape[0], 'faces')
|
|
for i in range(faces.shape[0]):
|
|
#print('score', faces[i][4])
|
|
face = faces[i]
|
|
box = face[0:4].astype(np.int)
|
|
mask = face[5]
|
|
print(i, box, mask)
|
|
#color = (255,0,0)
|
|
if mask >= mask_thresh:
|
|
color = (0, 0, 255)
|
|
else:
|
|
color = (0, 255, 0)
|
|
cv2.rectangle(img, (box[0], box[1]), (box[2], box[3]), color, 2)
|
|
landmark5 = landmarks[i].astype(np.int)
|
|
#print(landmark.shape)
|
|
for l in range(landmark5.shape[0]):
|
|
color = (255, 0, 0)
|
|
cv2.circle(img, (landmark5[l][0], landmark5[l][1]), 1, color, 2)
|
|
|
|
filename = './cov_test.jpg'
|
|
print('writing', filename)
|
|
cv2.imwrite(filename, img)
|