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
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. vggface2-hq
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 )) def __getitem__(self, idx): img_path, label = self
def __len__(self): return len(self.samples) Code Example: Loading & Preprocessing VGGFace2-HQ import cv2
| 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 |