Spaces:
Sleeping
Sleeping
import argparse | |
import json | |
import os | |
from typing import Dict, Optional | |
from prepare_cacd import collect_faces | |
def get_parser(): | |
parser = argparse.ArgumentParser(description="AgeDB") | |
parser.add_argument( | |
"--dataset_path", | |
default="data/AgeDB", | |
type=str, | |
required=True, | |
help="path to dataset with AgeDB folder", | |
) | |
parser.add_argument( | |
"--detector_weights", default=None, type=str, required=False, help="path to face and person detector" | |
) | |
parser.add_argument("--device", default="cuda:0", type=str, required=False, help="device to inference detector") | |
return parser | |
if __name__ == "__main__": | |
parser = get_parser() | |
args = parser.parse_args() | |
data_dir = args.dataset_path | |
if data_dir[-1] == "/": | |
data_dir = data_dir[:-1] | |
faces_dir = os.path.join(data_dir, "AgeDB") | |
# https://github.com/paplhjak/Facial-Age-Estimation-Benchmark-Databases/tree/main | |
json_path = os.path.join(data_dir, "AgeDB.json") | |
with open(json_path, "r") as stream: | |
annotations = json.load(stream) | |
detector_cfg: Optional[Dict[str, str]] = None | |
if args.detector_weights is not None: | |
detector_cfg = {"weights": args.detector_weights, "device": "cuda:0"} | |
splits = ["0", "1", "2", "3", "4", "5", "6", "7", "8", "9"] | |
collect_faces( | |
faces_dir, | |
annotations, | |
data_dir, | |
detector_cfg, | |
padding=0.1, | |
splits=splits, | |
db_name="agedb", | |
find_persons=True, | |
use_coarse_faces=True, | |
) | |