def __getitem__(self, idx): img_path, label = self.samples[idx] image = cv2.imread(img_path) image = cv2.cvtColor(image, cv2.COLOR_BGR2RGB) if self.transform: image = self.transform(image) return image, label
def __len__(self): return len(self.samples)
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. vggface2-hq
| 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 |
: +0.1–0.3% on clean benchmarks, more significant on blurred/noisy test sets. def __getitem__(self, idx): img_path, label = self
: Researchers with access to original VGGFace2 who need cleaner, aligned, high-res faces without collecting new data.
: Production systems, commercial use, or demographic fairness studies without careful bias analysis. For training recognition models, apply random erasing, color
VGGFace2-HQ is a high-quality, cleaned-up version of the original VGGFace2 dataset. The original VGGFace2, released by the Visual Geometry Group at Oxford, contains over 3.3 million images of 9,131 identities, but it suffers from common web-scraping issues: mislabeled samples, extreme pose variations, heavy compression artifacts, and low-resolution faces.
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.
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 ))