Evidence
The number, and the number it replaces
Sign-language accuracy is usually quoted from a random train/test split. Public ASL
datasets are frames pulled from a handful of continuous recording sessions, so
neighbouring frames are near-duplicates of one another. Split them randomly and almost
every test image has a near-twin in training: the model scores beautifully, then falls
apart on a stranger's hand. Both numbers are here, because the contrast is the honest
answer.
Every fold, not just the average
One dot per held-out person. The spread between them is the honest measure of how much a
single reported figure can be trusted.
Where the errors are
Pooled across all five held-out folds, worst first. Every letter scores between 70% and
99%, so this plots what is left over rather than 24 near-identical full bars.
What the confidence number means
The readout shows a percentage beside every letter. A softmax is not a probability
just because it sums to one, so this is measured the same way everything else here
is — across held-out signers. Each row is a band of claimed confidence against how
often predictions in that band were actually right.
Where the commit threshold sits
A letter is only committed while the model is above a confidence floor. Raising it
trades frames away for accuracy; this is the trade at each setting.
What it confuses
Rows are the true letter, columns what the model said. The diagonal is drawn in
neutral grey because it is not the interesting part; errors carry the amber scale,
capped so a 5% mistake is still visible. Hover any cell.
The eight worst pairs
Share of the true letter that went to the wrong one.
Every figure on this page is read at load time from eval/results.json, the output of
ml/evaluate.py, so the page cannot claim an accuracy the repository did not
measure. The full protocol and limitations are in
docs/EVALUATION.md,
which is generated from the same file and doubles as the table view of these charts.