From 43652bd61393bb926bcfc56d9b021b1b401e471d Mon Sep 17 00:00:00 2001 From: Duncan Tourolle Date: Sat, 5 Sep 2026 18:49:26 +0200 Subject: [PATCH] Say where the positives really come from, not where they were going to MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit `calibrate.rs` claimed its positive pairs came from user confirmations "then burst siblings, since FR-CULL-5 already groups bursts", and repeated it beside the pair floor: "the positives are bootstrapped from bursts and a handful of early confirmations". Neither is true and neither ever has been. Nothing in the workspace pushes a burst pair into a `Pairs`; nothing pushes any pair at all outside this file's own tests. The sentence was written while both halves of docs/faces.md §8.1 were being planned together, describing a source that was going to exist, and it has read since as a description of what the code does. The distinction matters more here than in most comments, because this file is the one place in the subsystem allowed to say what a similarity *means*. A reader who believes the fit is drawing on bursts believes a young library is gathering positives on its own, which is precisely the opposite of the state FR-CULL-9 legislates for — a library with no fit, no valid calibration, and a reference curve it must not present as a measurement of itself. The floor of 200 positive pairs looks arbitrary under the wrong story and obvious under the right one: confirmations arrive one at a time, from a person. So the comment now says what is here — a positive is a pair confirmed onto one person, and there is no second source — and keeps the burst idea where it belongs, as §8.1's proposal, with the two reasons it is not in the code: this crate is handed cosines and cannot see a catalog, and the purity of a burst pair is a thing to measure before it is a thing to trust. No behaviour changes; the arithmetic is untouched. --- core/dr-face/src/calibrate.rs | 26 ++++++++++++++++++-------- 1 file changed, 18 insertions(+), 8 deletions(-) diff --git a/core/dr-face/src/calibrate.rs b/core/dr-face/src/calibrate.rs index 21c15f2..859a53a 100644 --- a/core/dr-face/src/calibrate.rs +++ b/core/dr-face/src/calibrate.rs @@ -21,11 +21,20 @@ //! fails. The exceptions (mirrors, photographs of photographs, collages) are //! rare enough to be noise at this scale. //! -//! **Positives have to be earned.** In order of trustworthiness: pairs the user -//! has confirmed onto one person; then burst siblings, since FR-CULL-5 already -//! groups bursts and two faces in adjacent frames are near-certainly the same -//! person. Nothing else — bootstrapping positives from high cosine is circular, -//! fitting the calibration to the belief it was supposed to test. +//! **Positives have to be earned.** A positive is a pair of faces the user has +//! confirmed onto one person (FR-CULL-10), and there is no second source: the +//! only labelling this subsystem has is the labelling somebody did by hand. +//! Bootstrapping positives from a high cosine is circular — it fits the +//! calibration to the belief it was supposed to test — and that is the whole +//! of the alternative. +//! +//! docs/faces.md §8.1 names one more that would cost no labelling at all: two +//! faces in adjacent frames of one burst are near-certainly the same person, +//! and FR-CULL-5's grouping is sitting there. Nothing draws on it. This crate +//! cannot see a catalog, let alone the bursts in one — it is handed cosines by +//! whoever assembled the pair — and no caller does that assembly on its behalf +//! yet. Until one does, and until the purity of a burst pair is *measured* +//! rather than assumed, the positives are the confirmations and nothing else. //! //! Which is why a fresh library has **no valid calibration** — no fit of its //! own — and says so. It is not left without a curve: it uses the reference @@ -44,9 +53,10 @@ const BINS: usize = 200; /// Far stricter than the reference implementation's floor of two positives and /// one negative. That floor is reasonable there: its pairs come from a curated /// gallery of labelled reference portraits, where a positive pair is -/// trustworthy by construction. Here the positives are bootstrapped from bursts -/// and a handful of early confirmations, and the whole risk is fitting -/// confidently to too few of them. +/// trustworthy by construction. Here every positive is a pair somebody +/// confirmed while working through a young library's suggestions — a handful, +/// arriving slowly — and the whole risk is fitting confidently to too few of +/// them. pub const MIN_POSITIVE_PAIRS: u64 = 200; pub const MIN_NEGATIVE_PAIRS: u64 = 2_000;