{
  "classes": [
    "neutral",
    "happy",
    "surprise",
    "sad",
    "angry",
    "disgust",
    "fear",
    "contempt"
  ],
  "input_resolution": 96,
  "sources": [
    "ferplus",
    "affectnetplus",
    "rafdb",
    "affectnet",
    "expw",
    "yolo_emotions",
    "mutfer2024",
    "ferv39k_16f",
    "caer",
    "caers",
    "cremad",
    "ravdess"
  ],
  "raw_prepared_count": 555376,
  "excluded": {
    "near_duplicate": 44556,
    "exact_duplicate": 33450,
    "same_original_face_different_crop": 48437,
    "affectnet_annotation_conflict_content": 8024,
    "protected_named_origin": 40704,
    "protected_source_group": 2653,
    "conflicting_representative_removed": 865,
    "conflicting_near": 527,
    "protected_original_FER_holdout": 338,
    "conflicting_named_origin": 1650,
    "conflicting_exact": 466,
    "visual_overlap_protected_group": 1332,
    "baseline_seen_external_excluded": 5
  },
  "splits": {
    "test": {
      "n": 3360,
      "class_counts": [
        1166,
        907,
        414,
        422,
        312,
        22,
        91,
        26
      ],
      "source_counts": {
        "ferplus": 3360
      },
      "content_sha256": "325edbcf0aa15dfc64b84633a5ffd05772efb7b9ecea47f7040b4f73bf7e3b82"
    },
    "calibration": {
      "n": 10933,
      "class_counts": [
        3077,
        2800,
        984,
        1527,
        1488,
        536,
        472,
        49
      ],
      "source_counts": {
        "ferplus": 1660,
        "rafdb": 219,
        "affectnet": 332,
        "expw": 1450,
        "yolo_emotions": 2136,
        "ferv39k_16f": 4269,
        "caer": 556,
        "ravdess": 311
      },
      "content_sha256": "ef8a0b5b6354ec3a78e1c4c0d0740e34980e83c23199ba21068d98751299b1fb"
    },
    "validation": {
      "n": 39018,
      "class_counts": [
        10961,
        9767,
        3347,
        5528,
        5483,
        2121,
        1637,
        174
      ],
      "source_counts": {
        "ferplus": 1657,
        "rafdb": 888,
        "affectnet": 1427,
        "expw": 6084,
        "yolo_emotions": 7455,
        "ferv39k_16f": 17489,
        "caer": 2194,
        "cremad": 912,
        "ravdess": 912
      },
      "content_sha256": "f96214e67ab91d2d7a678d01e92e4189252710c19dbc4a62a22c5141381deeb8"
    },
    "train": {
      "n": 240369,
      "class_counts": [
        66962,
        58353,
        22091,
        32174,
        27764,
        16868,
        14317,
        1840
      ],
      "source_counts": {
        "ferplus": 25000,
        "rafdb": 8772,
        "affectnet": 12259,
        "expw": 55909,
        "yolo_emotions": 7889,
        "mutfer2024": 5843,
        "ferv39k_16f": 46313,
        "caer": 19010,
        "caers": 38126,
        "cremad": 16446,
        "ravdess": 4802
      },
      "content_sha256": "d106b1b1808a90956a092f2ce2a622f19d72c389eaaa8a0be7d72a79a3daedc3"
    },
    "external_test": {
      "n": 78689,
      "class_counts": [
        19072,
        17204,
        8006,
        11207,
        10245,
        6518,
        5732,
        705
      ],
      "source_counts": {
        "affectnetplus": 3979,
        "rafdb": 3064,
        "affectnet": 1925,
        "expw": 8843,
        "yolo_emotions": 10530,
        "ferv39k_16f": 21881,
        "caer": 6515,
        "caers": 18409,
        "cremad": 2452,
        "ravdess": 1091
      },
      "content_sha256": "b6aa2227ebdea1838673a3c39bc21bb8f0838ef515747cb18fd9bd2f30d36c2b"
    }
  },
  "protocol": "Holdouts precede training. Protect original FER public/private names and original RAF names across merged datasets. Exact canonical 48x48 SHA256 dedup; near duplicates require pHash Hamming<=4, dHash<=6 and normalized correlation>=0.985. Same training duplicate with conflicting majority labels removes the representative. FER test retained exactly for paired comparison. Other evaluations are cleaned custom cohorts. Video clips/actors kept in one split; MUTFER has no reliable participant IDs and is train-only. Known AffectNet and ExpW original image names are also protected across the YOLO repack. Single-face FER/RAF/AffectNet originals are retained once even if crops differ; conflicting training labels for the same original exclude all of its training variants. External tests exclude visual/named overlap with all original FER training, validation and calibration images so the baseline comparison does not include previously seen examples. Named/visual duplicate evidence links source groups. The strongest holdout priority applies to the entire connected video, actor or image group, including frames processed before the match was found. FER identities in the YOLO repack are resolved from original full-image pixel hashes because the repack renumbers FER filenames; filename numbers are not trusted. Matched retained FER originals preserve the original FER training/validation/calibration/test partition instead of adopting the repack random split.",
  "limitations": [
    "No face identity model was used: unknown same-person overlap across web sources can remain.",
    "Near duplicates with substantially different crops/poses can remain.",
    "AffectNet+ official Kaggle release contains validation images only; valid eight-class labels are held out, none/no-face/uncertain excluded.",
    "RAVDESS audiovisual and video-only versions share performances; only video-only was used.",
    "Video-level labels were applied to three spaced frames with lower weight; labels may vary within a clip.",
    "CAER-S filenames do not expose parent-video IDs. Matched content links groups across CAER/CAER-S, but unmatched frames from the same underlying clip may still cross source splits."
  ],
  "cohort_fingerprint": "9f707626ce7e1a0da081898b9fba7eac5d71a1a5cab59832764521ebaec22459"
}