|
|
| import os |
| import os.path as osp |
| import zipfile |
| from .download import download_file |
|
|
| BASE_REPO_URL = 'https://github.com/deepinsight/insightface/releases/download/v0.7' |
|
|
| def download(sub_dir, name, force=False, root='~/.insightface'): |
| _root = os.path.expanduser(root) |
| dir_path = os.path.join(_root, sub_dir, name) |
| if osp.exists(dir_path) and not force: |
| return dir_path |
| print('download_path:', dir_path) |
| zip_file_path = os.path.join(_root, sub_dir, name + '.zip') |
| model_url = "%s/%s.zip"%(BASE_REPO_URL, name) |
| download_file(model_url, |
| path=zip_file_path, |
| overwrite=True) |
| if not os.path.exists(dir_path): |
| os.makedirs(dir_path) |
| with zipfile.ZipFile(zip_file_path) as zf: |
| zf.extractall(dir_path) |
| |
| return dir_path |
|
|
| def ensure_available(sub_dir, name, root='~/.insightface'): |
| return download(sub_dir, name, force=False, root=root) |
|
|
| def download_onnx(sub_dir, model_file, force=False, root='~/.insightface', download_zip=False): |
| _root = os.path.expanduser(root) |
| model_root = osp.join(_root, sub_dir) |
| new_model_file = osp.join(model_root, model_file) |
| if osp.exists(new_model_file) and not force: |
| return new_model_file |
| if not osp.exists(model_root): |
| os.makedirs(model_root) |
| print('download_path:', new_model_file) |
| if not download_zip: |
| model_url = "%s/%s"%(BASE_REPO_URL, model_file) |
| download_file(model_url, |
| path=new_model_file, |
| overwrite=True) |
| else: |
| model_url = "%s/%s.zip"%(BASE_REPO_URL, model_file) |
| zip_file_path = new_model_file+".zip" |
| download_file(model_url, |
| path=zip_file_path, |
| overwrite=True) |
| with zipfile.ZipFile(zip_file_path) as zf: |
| zf.extractall(model_root) |
| return new_model_file |
|
|