mirror of
https://github.com/serengil/deepface.git
synced 2025-06-08 12:35:22 +00:00
specify model directory via DEEPFACE_HOME env variable
This commit is contained in:
parent
5b280dcb81
commit
5a61a20ecf
@ -10,6 +10,8 @@ import os
|
|||||||
from pathlib import Path
|
from pathlib import Path
|
||||||
import gdown
|
import gdown
|
||||||
|
|
||||||
|
from deepface.commons import functions
|
||||||
|
|
||||||
#url = "https://drive.google.com/uc?id=1LVB3CdVejpmGHM28BpqqkbZP5hDEcdZY"
|
#url = "https://drive.google.com/uc?id=1LVB3CdVejpmGHM28BpqqkbZP5hDEcdZY"
|
||||||
|
|
||||||
def loadModel(url = 'https://github.com/serengil/deepface_models/releases/download/v1.0/arcface_weights.h5'):
|
def loadModel(url = 'https://github.com/serengil/deepface_models/releases/download/v1.0/arcface_weights.h5'):
|
||||||
@ -26,7 +28,7 @@ def loadModel(url = 'https://github.com/serengil/deepface_models/releases/downlo
|
|||||||
#---------------------------------------
|
#---------------------------------------
|
||||||
#check the availability of pre-trained weights
|
#check the availability of pre-trained weights
|
||||||
|
|
||||||
home = str(Path.home())
|
home = functions.get_deepface_home()
|
||||||
|
|
||||||
file_name = "arcface_weights.h5"
|
file_name = "arcface_weights.h5"
|
||||||
output = home+'/.deepface/weights/'+file_name
|
output = home+'/.deepface/weights/'+file_name
|
||||||
|
@ -44,7 +44,7 @@ def build_gbm():
|
|||||||
#this is not a must dependency
|
#this is not a must dependency
|
||||||
import lightgbm as lgb #lightgbm==2.3.1
|
import lightgbm as lgb #lightgbm==2.3.1
|
||||||
|
|
||||||
home = str(Path.home())
|
home = functions.get_deepface_home()
|
||||||
|
|
||||||
if os.path.isfile(home+'/.deepface/weights/face-recognition-ensemble-model.txt') != True:
|
if os.path.isfile(home+'/.deepface/weights/face-recognition-ensemble-model.txt') != True:
|
||||||
print("face-recognition-ensemble-model.txt will be downloaded...")
|
print("face-recognition-ensemble-model.txt will be downloaded...")
|
||||||
|
@ -7,6 +7,8 @@ from tensorflow import keras
|
|||||||
from tensorflow.keras.models import Model
|
from tensorflow.keras.models import Model
|
||||||
from tensorflow.keras.layers import Conv2D, Activation, Input, Add, MaxPooling2D, Flatten, Dense, Dropout
|
from tensorflow.keras.layers import Conv2D, Activation, Input, Add, MaxPooling2D, Flatten, Dense, Dropout
|
||||||
|
|
||||||
|
from deepface.commons import functions
|
||||||
|
|
||||||
#-------------------------------------
|
#-------------------------------------
|
||||||
|
|
||||||
#url = 'https://drive.google.com/uc?id=1uRLtBCTQQAvHJ_KVrdbRJiCKxU8m5q2J'
|
#url = 'https://drive.google.com/uc?id=1uRLtBCTQQAvHJ_KVrdbRJiCKxU8m5q2J'
|
||||||
@ -41,7 +43,7 @@ def loadModel(url = 'https://github.com/serengil/deepface_models/releases/downlo
|
|||||||
|
|
||||||
#---------------------------------
|
#---------------------------------
|
||||||
|
|
||||||
home = str(Path.home())
|
home = functions.get_deepface_home()
|
||||||
|
|
||||||
if os.path.isfile(home+'/.deepface/weights/deepid_keras_weights.h5') != True:
|
if os.path.isfile(home+'/.deepface/weights/deepid_keras_weights.h5') != True:
|
||||||
print("deepid_keras_weights.h5 will be downloaded...")
|
print("deepid_keras_weights.h5 will be downloaded...")
|
||||||
|
@ -5,6 +5,8 @@ import gdown
|
|||||||
import numpy as np
|
import numpy as np
|
||||||
from pathlib import Path
|
from pathlib import Path
|
||||||
|
|
||||||
|
from deepface.commons import functions
|
||||||
|
|
||||||
class DlibResNet:
|
class DlibResNet:
|
||||||
|
|
||||||
def __init__(self):
|
def __init__(self):
|
||||||
@ -16,7 +18,7 @@ class DlibResNet:
|
|||||||
|
|
||||||
#---------------------
|
#---------------------
|
||||||
|
|
||||||
home = str(Path.home())
|
home = functions.get_deepface_home()
|
||||||
weight_file = home+'/.deepface/weights/dlib_face_recognition_resnet_model_v1.dat'
|
weight_file = home+'/.deepface/weights/dlib_face_recognition_resnet_model_v1.dat'
|
||||||
|
|
||||||
#---------------------
|
#---------------------
|
||||||
|
@ -3,6 +3,8 @@ from pathlib import Path
|
|||||||
import gdown
|
import gdown
|
||||||
from functools import partial
|
from functools import partial
|
||||||
|
|
||||||
|
from deepface.commons import functions
|
||||||
|
|
||||||
import tensorflow as tf
|
import tensorflow as tf
|
||||||
tf_version = int(tf.__version__.split(".")[0])
|
tf_version = int(tf.__version__.split(".")[0])
|
||||||
|
|
||||||
@ -555,7 +557,7 @@ def loadModel(url = 'https://github.com/serengil/deepface_models/releases/downlo
|
|||||||
|
|
||||||
#-----------------------------------
|
#-----------------------------------
|
||||||
|
|
||||||
home = str(Path.home())
|
home = functions.get_deepface_home()
|
||||||
|
|
||||||
if os.path.isfile(home+'/.deepface/weights/facenet_weights.h5') != True:
|
if os.path.isfile(home+'/.deepface/weights/facenet_weights.h5') != True:
|
||||||
print("facenet_weights.h5 will be downloaded...")
|
print("facenet_weights.h5 will be downloaded...")
|
||||||
|
@ -3,13 +3,15 @@ from pathlib import Path
|
|||||||
import os
|
import os
|
||||||
import gdown
|
import gdown
|
||||||
|
|
||||||
|
from deepface.commons import functions
|
||||||
|
|
||||||
def loadModel(url = 'https://github.com/serengil/deepface_models/releases/download/v1.0/facenet512_weights.h5'):
|
def loadModel(url = 'https://github.com/serengil/deepface_models/releases/download/v1.0/facenet512_weights.h5'):
|
||||||
|
|
||||||
model = Facenet.InceptionResNetV2(dimension = 512)
|
model = Facenet.InceptionResNetV2(dimension = 512)
|
||||||
|
|
||||||
#-------------------------
|
#-------------------------
|
||||||
|
|
||||||
home = str(Path.home())
|
home = functions.get_deepface_home()
|
||||||
|
|
||||||
if os.path.isfile(home+'/.deepface/weights/facenet512_weights.h5') != True:
|
if os.path.isfile(home+'/.deepface/weights/facenet512_weights.h5') != True:
|
||||||
print("facenet512_weights.h5 will be downloaded...")
|
print("facenet512_weights.h5 will be downloaded...")
|
||||||
|
@ -7,6 +7,8 @@ from tensorflow import keras
|
|||||||
from tensorflow.keras.models import Model, Sequential
|
from tensorflow.keras.models import Model, Sequential
|
||||||
from tensorflow.keras.layers import Convolution2D, LocallyConnected2D, MaxPooling2D, Flatten, Dense, Dropout
|
from tensorflow.keras.layers import Convolution2D, LocallyConnected2D, MaxPooling2D, Flatten, Dense, Dropout
|
||||||
|
|
||||||
|
from deepface.commons import functions
|
||||||
|
|
||||||
#-------------------------------------
|
#-------------------------------------
|
||||||
|
|
||||||
def loadModel(url = 'https://github.com/swghosh/DeepFace/releases/download/weights-vggface2-2d-aligned/VGGFace2_DeepFace_weights_val-0.9034.h5.zip'):
|
def loadModel(url = 'https://github.com/swghosh/DeepFace/releases/download/weights-vggface2-2d-aligned/VGGFace2_DeepFace_weights_val-0.9034.h5.zip'):
|
||||||
@ -24,7 +26,7 @@ def loadModel(url = 'https://github.com/swghosh/DeepFace/releases/download/weigh
|
|||||||
|
|
||||||
#---------------------------------
|
#---------------------------------
|
||||||
|
|
||||||
home = str(Path.home())
|
home = functions.get_deepface_home()
|
||||||
|
|
||||||
if os.path.isfile(home+'/.deepface/weights/VGGFace2_DeepFace_weights_val-0.9034.h5') != True:
|
if os.path.isfile(home+'/.deepface/weights/VGGFace2_DeepFace_weights_val-0.9034.h5') != True:
|
||||||
print("VGGFace2_DeepFace_weights_val-0.9034.h5 will be downloaded...")
|
print("VGGFace2_DeepFace_weights_val-0.9034.h5 will be downloaded...")
|
||||||
|
@ -11,6 +11,8 @@ from tensorflow.keras.layers import MaxPooling2D, AveragePooling2D
|
|||||||
from tensorflow.keras.models import load_model
|
from tensorflow.keras.models import load_model
|
||||||
from tensorflow.keras import backend as K
|
from tensorflow.keras import backend as K
|
||||||
|
|
||||||
|
from deepface.commons import functions
|
||||||
|
|
||||||
#---------------------------------------
|
#---------------------------------------
|
||||||
|
|
||||||
#url = 'https://drive.google.com/uc?id=1LSe1YCV1x-BfNnfb7DFZTNpv_Q9jITxn'
|
#url = 'https://drive.google.com/uc?id=1LSe1YCV1x-BfNnfb7DFZTNpv_Q9jITxn'
|
||||||
@ -232,7 +234,7 @@ def loadModel(url = 'https://github.com/serengil/deepface_models/releases/downlo
|
|||||||
|
|
||||||
#-----------------------------------
|
#-----------------------------------
|
||||||
|
|
||||||
home = str(Path.home())
|
home = functions.get_deepface_home()
|
||||||
|
|
||||||
if os.path.isfile(home+'/.deepface/weights/openface_weights.h5') != True:
|
if os.path.isfile(home+'/.deepface/weights/openface_weights.h5') != True:
|
||||||
print("openface_weights.h5 will be downloaded...")
|
print("openface_weights.h5 will be downloaded...")
|
||||||
|
@ -2,6 +2,8 @@ import os
|
|||||||
from pathlib import Path
|
from pathlib import Path
|
||||||
import gdown
|
import gdown
|
||||||
|
|
||||||
|
from deepface.commons import functions
|
||||||
|
|
||||||
import tensorflow as tf
|
import tensorflow as tf
|
||||||
tf_version = int(tf.__version__.split(".")[0])
|
tf_version = int(tf.__version__.split(".")[0])
|
||||||
|
|
||||||
@ -71,7 +73,7 @@ def loadModel(url = 'https://github.com/serengil/deepface_models/releases/downlo
|
|||||||
|
|
||||||
#-----------------------------------
|
#-----------------------------------
|
||||||
|
|
||||||
home = str(Path.home())
|
home = functions.get_deepface_home()
|
||||||
output = home+'/.deepface/weights/vgg_face_weights.h5'
|
output = home+'/.deepface/weights/vgg_face_weights.h5'
|
||||||
|
|
||||||
if os.path.isfile(output) != True:
|
if os.path.isfile(output) != True:
|
||||||
|
@ -44,16 +44,18 @@ def initialize_input(img1_path, img2_path = None):
|
|||||||
return img_list, bulkProcess
|
return img_list, bulkProcess
|
||||||
|
|
||||||
def initialize_folder():
|
def initialize_folder():
|
||||||
|
home = get_deepface_home()
|
||||||
home = str(Path.home())
|
|
||||||
|
|
||||||
if not os.path.exists(home+"/.deepface"):
|
if not os.path.exists(home+"/.deepface"):
|
||||||
os.mkdir(home+"/.deepface")
|
os.makedirs(home+"/.deepface")
|
||||||
print("Directory ",home,"/.deepface created")
|
print("Directory ", home, "/.deepface created")
|
||||||
|
|
||||||
if not os.path.exists(home+"/.deepface/weights"):
|
if not os.path.exists(home+"/.deepface/weights"):
|
||||||
os.mkdir(home+"/.deepface/weights")
|
os.makedirs(home+"/.deepface/weights")
|
||||||
print("Directory ",home,"/.deepface/weights created")
|
print("Directory ", home, "/.deepface/weights created")
|
||||||
|
|
||||||
|
def get_deepface_home():
|
||||||
|
return str(os.getenv('DEEPFACE_HOME', default=Path.home()))
|
||||||
|
|
||||||
def loadBase64Img(uri):
|
def loadBase64Img(uri):
|
||||||
encoded_data = uri.split(',')[1]
|
encoded_data = uri.split(',')[1]
|
||||||
|
@ -3,9 +3,11 @@ import gdown
|
|||||||
import bz2
|
import bz2
|
||||||
import os
|
import os
|
||||||
|
|
||||||
|
from deepface.commons import functions
|
||||||
|
|
||||||
def build_model():
|
def build_model():
|
||||||
|
|
||||||
home = str(Path.home())
|
home = functions.get_deepface_home()
|
||||||
|
|
||||||
import dlib #this requirement is not a must that's why imported here
|
import dlib #this requirement is not a must that's why imported here
|
||||||
|
|
||||||
|
@ -5,10 +5,11 @@ import cv2
|
|||||||
import pandas as pd
|
import pandas as pd
|
||||||
|
|
||||||
from deepface.detectors import OpenCvWrapper
|
from deepface.detectors import OpenCvWrapper
|
||||||
|
from deepface.commons import functions
|
||||||
|
|
||||||
def build_model():
|
def build_model():
|
||||||
|
|
||||||
home = str(Path.home())
|
home = functions.get_deepface_home()
|
||||||
|
|
||||||
#model structure
|
#model structure
|
||||||
if os.path.isfile(home+'/.deepface/weights/deploy.prototxt') != True:
|
if os.path.isfile(home+'/.deepface/weights/deploy.prototxt') != True:
|
||||||
|
@ -4,6 +4,8 @@ from pathlib import Path
|
|||||||
import gdown
|
import gdown
|
||||||
import numpy as np
|
import numpy as np
|
||||||
|
|
||||||
|
from deepface.commons import functions
|
||||||
|
|
||||||
import tensorflow as tf
|
import tensorflow as tf
|
||||||
tf_version = int(tf.__version__.split(".")[0])
|
tf_version = int(tf.__version__.split(".")[0])
|
||||||
|
|
||||||
@ -38,7 +40,7 @@ def loadModel(url = 'https://github.com/serengil/deepface_models/releases/downlo
|
|||||||
|
|
||||||
#load weights
|
#load weights
|
||||||
|
|
||||||
home = str(Path.home())
|
home = functions.get_deepface_home()
|
||||||
|
|
||||||
if os.path.isfile(home+'/.deepface/weights/age_model_weights.h5') != True:
|
if os.path.isfile(home+'/.deepface/weights/age_model_weights.h5') != True:
|
||||||
print("age_model_weights.h5 will be downloaded...")
|
print("age_model_weights.h5 will be downloaded...")
|
||||||
|
@ -3,6 +3,8 @@ import gdown
|
|||||||
from pathlib import Path
|
from pathlib import Path
|
||||||
import zipfile
|
import zipfile
|
||||||
|
|
||||||
|
from deepface.commons import functions
|
||||||
|
|
||||||
import tensorflow as tf
|
import tensorflow as tf
|
||||||
tf_version = int(tf.__version__.split(".")[0])
|
tf_version = int(tf.__version__.split(".")[0])
|
||||||
|
|
||||||
@ -49,7 +51,7 @@ def loadModel(url = 'https://github.com/serengil/deepface_models/releases/downlo
|
|||||||
|
|
||||||
#----------------------------
|
#----------------------------
|
||||||
|
|
||||||
home = str(Path.home())
|
home = functions.get_deepface_home()
|
||||||
|
|
||||||
if os.path.isfile(home+'/.deepface/weights/facial_expression_model_weights.h5') != True:
|
if os.path.isfile(home+'/.deepface/weights/facial_expression_model_weights.h5') != True:
|
||||||
print("facial_expression_model_weights.h5 will be downloaded...")
|
print("facial_expression_model_weights.h5 will be downloaded...")
|
||||||
|
@ -4,6 +4,8 @@ from pathlib import Path
|
|||||||
import gdown
|
import gdown
|
||||||
import numpy as np
|
import numpy as np
|
||||||
|
|
||||||
|
from deepface.commons import functions
|
||||||
|
|
||||||
import tensorflow as tf
|
import tensorflow as tf
|
||||||
tf_version = int(tf.__version__.split(".")[0])
|
tf_version = int(tf.__version__.split(".")[0])
|
||||||
|
|
||||||
@ -36,7 +38,7 @@ def loadModel(url = 'https://github.com/serengil/deepface_models/releases/downlo
|
|||||||
|
|
||||||
#load weights
|
#load weights
|
||||||
|
|
||||||
home = str(Path.home())
|
home = functions.get_deepface_home()
|
||||||
|
|
||||||
if os.path.isfile(home+'/.deepface/weights/gender_model_weights.h5') != True:
|
if os.path.isfile(home+'/.deepface/weights/gender_model_weights.h5') != True:
|
||||||
print("gender_model_weights.h5 will be downloaded...")
|
print("gender_model_weights.h5 will be downloaded...")
|
||||||
|
@ -6,6 +6,8 @@ import gdown
|
|||||||
import numpy as np
|
import numpy as np
|
||||||
import zipfile
|
import zipfile
|
||||||
|
|
||||||
|
from deepface.commons import functions
|
||||||
|
|
||||||
import tensorflow as tf
|
import tensorflow as tf
|
||||||
tf_version = int(tf.__version__.split(".")[0])
|
tf_version = int(tf.__version__.split(".")[0])
|
||||||
|
|
||||||
@ -38,7 +40,7 @@ def loadModel(url = 'https://github.com/serengil/deepface_models/releases/downlo
|
|||||||
|
|
||||||
#load weights
|
#load weights
|
||||||
|
|
||||||
home = str(Path.home())
|
home = functions.get_deepface_home()
|
||||||
|
|
||||||
if os.path.isfile(home+'/.deepface/weights/race_model_single_batch.h5') != True:
|
if os.path.isfile(home+'/.deepface/weights/race_model_single_batch.h5') != True:
|
||||||
print("race_model_single_batch.h5 will be downloaded...")
|
print("race_model_single_batch.h5 will be downloaded...")
|
||||||
|
Loading…
x
Reference in New Issue
Block a user