Prepare paired data
Create grayscale–colour image pairs from a licensed dataset (for example convert CIFAR-10 / ImageNet samples to grayscale), and reserve a held-out validation set.
Image colorization workflow. Judge colour plausibility.
Image colourization maps single-channel (grayscale) images to plausible multi-channel (RGB) outputs. The task is ambiguous: many colourings can be perceptually acceptable. Real-error modes include hue shifts, desaturated outputs, blown highlights and colours inconsistent with semantic content (e.g. skin tones). Evaluation mixes pixel metrics with perceptual checks and user inspection.
Learning concept · Not a validated service
Image colourization maps single-channel (grayscale) images to plausible multi-channel (RGB) outputs. The task is ambiguous: many colourings can be perceptually acceptable. Real-error modes include hue shifts, desaturated outputs, blown highlights and colours inconsistent with semantic content (e.g. skin tones). Evaluation mixes pixel metrics with perceptual checks and user inspection.
A proposed application is restoring and colourising historical and archival photographs to aid public engagement; this extension requires human review to avoid introducing misleading colours and is not implemented by the supplied starter.
Create grayscale–colour image pairs from a licensed dataset (for example convert CIFAR-10 / ImageNet samples to grayscale), and reserve a held-out validation set.
Train a small convolutional U-Net or encoder–decoder that predicts chrominance channels from the grayscale input and use data augmentation for robustness.
Measure PSNR and LPIPS for fidelity, and run a human inspection pass to check colour plausibility and failure cases like incorrect skin or object colours.
Provide side-by-side grayscale, predicted colour and ground-truth colour images and let a reviewer flag implausible colourisation before publishing.
The supplied starter loads sklearn's handwritten-digits dataset, splits it, trains a RandomForestClassifier to predict digit labels, prints a classification report and shows a confusion matrix. It does not implement any image-to-image colourisation model or produce RGB reconstructions.
digits = load_digits()
X_train, X_test, y_train, y_test = train_test_split(
digits.data,
digits.target,
test_size=0.25,
random_state=42,
stratify=digits.target,
)
model = RandomForestClassifier(n_estimators=300, random_state=42)
model.fit(X_train, y_train)The starter performs digit classification on sklearn.datasets.load_digits and not image colourisation: it has no grayscale→RGB mapping, no image-to-image model (such as a CNN/U-Net), and the labels are digit classes rather than colour channels or colour histograms.
A proposed extension is a small proof-of-concept pipeline that converts archive greyscale photos into colour using a pretrained encoder–decoder, with an annotation interface for conservators to accept or correct colours.
This is a potential application pathway, not a delivered product. The supplied starter does not implement this service or validate it with real users.
Networkers Home runs this topic inside its AI Engineer Course, with placement support and hands-on labs.