9. Code Example: Loading & Preprocessing VGGFace2-HQ import cv2 import numpy as np from torch.utils.data import Dataset class VGGFace2HQ(Dataset): def init (self, root_dir, transform=None): self.root_dir = root_dir self.transform = transform self.samples = [] # list of (img_path, label) # Assume folder structure: root/identity_id/images/ for identity in os.listdir(root_dir): id_path = os.path.join(root_dir, identity) if not os.path.isdir(id_path): continue for img_file in os.listdir(id_path): if img_file.endswith(('.png', '.jpg')): self.samples.append(( os.path.join(id_path, img_file), int(identity) # label encoding ))
: Production systems, commercial use, or demographic fairness studies without careful bias analysis. vggface2-hq
If you need a deep dive into a specific aspect (e.g., creating your own HQ pipeline, training a recognition model, or comparing with other datasets), let me know. However, it inherits the original’s ethical and licensing
: +0.1–0.3% on clean benchmarks, more significant on blurred/noisy test sets. : +0.1–0.3% on clean benchmarks
For training recognition models, apply random erasing, color jitter, and blur to avoid overfitting to HQ artifacts. VGGFace2-HQ is a valuable research resource that fixes many flaws of the original VGGFace2, enabling high-resolution face recognition and generation. However, it inherits the original’s ethical and licensing constraints, and its artificial upscaling can introduce subtle artifacts.
| Model | Training Data | LFW (%) | AgeDB-30 (%) | CFP-FP (%) | |-------|---------------|---------|--------------|-------------| | ArcFace (R100) | VGGFace2 | 99.82 | 98.15 | 96.25 | | ArcFace (R100) | VGGFace2-HQ | 99.85 | 98.42 | 96.80 | | MobileFaceNet | VGGFace2 | 99.52 | 96.80 | 94.20 | | MobileFaceNet | VGGFace2-HQ | 99.60 | 97.10 | 94.90 |