← Projects

palmNet

A computer-vision experiment, a mobile prototype, and a lesson in how easily a model can learn the wrong clue.

Context
University neural-networks project
My contribution
Model experiments, API and mobile integration, saliency-map analysis
Models
MobileNet · ResNet-50 · earlier multi-output CNN experiments
Archive
Report and saliency outputs recovered · source repository private

The finding that stayed with me

A ring became
an age shortcut.

The model’s attention gathered around an accessory rather than a meaningful biological signal.

Original palmNet output showing a dorsal hand with a ring beside its blue saliency map. The strongest response is concentrated near the ring.

The report records the ring as a prominent feature for the model’s “female” prediction and notes that the age saliency map also attended to rings, tending toward an older classification.

I remember the effect as roughly “ten years older”. That size was not reported, so I keep it as a recollection rather than a measured result.

Original project output. Input image and gradient saliency map from It’s All in the Palm of Your Hand.

Where it started

The 11K Hands dataset contained 11,076 palmar and dorsal hand images from 190 people. We explored whether convolutional networks could predict age, skin-colour categories and the dataset’s binary gender labels from those images.

For the age experiment, the report restricted the data from ages 18–75 to ages 18–30 while retaining roughly 99% of the images. The code and paper sometimes use “race” or “ethnicity” where the actual labels are skin-colour categories. Those terms are not interchangeable, and none of these predictions establish identity.

From experiment
to interface.

The project connected modelling, a mobile prototype and tools for questioning the output.

  1. Model

    MobileNet classifiers for the reported gender and skin-colour tasks, with ResNet-50 for continuous age prediction.

  2. Connect

    An API linked the model to an iOS / Android app prototype so a hand image could move through the full pipeline.

  3. Inspect

    Gradient saliency maps showed which pixels most influenced an output and exposed possible shortcuts.

The report documents the separate task models and saliency analysis. The API and app integration are described from my contribution; no live inference runs on this page.

What the numbers said

The headline classification scores looked encouraging. The context made them much less simple.

Reported test results from the recovered project paper.
TaskModelReported resultWhat matters
Gender labelMobileNet0.88 accuracyFemale F1 0.90; male F1 0.86.
Skin colourMobileNet0.97 accuracyThe dataset was heavily concentrated in the “medium” category.
AgeResNet-50MAE 1.203 years
R² −0.2169
The small average error sat beside a negative R², meaning the model did not beat a mean-value baseline.

The negative R² is the most revealing result. A number that appears impressive in isolation can tell a very different story when another metric and the data distribution are considered.

The shortcut
was not unique.

Painted nails also became a strong visual cue for the model’s “female” label.

Original palmNet output showing a hand with painted nails beside a blue saliency map with strong responses around the fingers and nails.
Original project output. The paper describes this as evidence of bias toward the dataset’s “female” label, not a valid inference about gender.

What the ring taught me

A plausible prediction can come from an implausible shortcut. A model may improve its score by learning correlations around jewellery, nail polish or a narrow age distribution rather than anything we intended it to learn.

Saliency maps do not prove causation, but they gave us a way to challenge the model. The useful question became less “is the output correct?” and more “what evidence is the system using, and would that evidence survive outside this dataset?”

Looking back critically

The lasting value of palmNet is the experience of building an image-to-interface pipeline and then interrogating what it had learned. It is not presented as a reliable or appropriate system for inferring personal characteristics from a photograph.

Dataset labels, representation, privacy and consent all matter. A convincing interface, a high aggregate accuracy or a bright attention map is not evidence that a demographic prediction is fair, valid or useful.

What is preserved in the project archive?

The recovered report documents the reported models, results and original saliency figures. The two surviving notebooks preserve a Keras multi-output experiment and a separate PyTorch MobileNetV3 age-group experiment; those notebook copies contain no saved training outputs.

The app screens and API implementation have not been recovered. The report and notebooks also represent different iterations of the project, so this page names which source supports each part rather than collapsing them into one architecture.