Project 09 / 10 · Vision

Human Action Recognition

Systematic benchmark of four CNN architectures classifying 40 human actions across 9,500+ Stanford 40 images — scratch vs. transfer learning.

01 / Context

The problem

This study tests how four established CNN families behave on a relatively small, diverse action dataset, comparing models trained from scratch against ImageNet transfer learning under a consistent setup.

02 / System workflow

From input to output

  1. 01Stanford 40 images
  2. 02Resize + normalize
  3. 03CNN training
  4. 04Held-out evaluation
  5. 05Streamlit inference

03 / Architecture

Inside the system

A1

The dataset contains 9,532 still images across 40 action classes with a 75/15/10 train, validation, and test split.

A2

VGG-16, ResNet-50, DenseNet-121, and GoogLeNet are implemented in a shared training and evaluation pipeline.

A3

Images are resized to 224×224 and normalized with ImageNet statistics; Adam and cross-entropy are used across experiments.

04 / Engineering decisions

What shaped the build

Decision 01

Transfer learning benchmark

Pretrained and scratch variants reveal the value of ImageNet features when labeled task data is limited.

Decision 02

Architecture-level comparison

Training curves, confusion matrices, precision, recall, and weighted F1 preserve more evidence than a single accuracy number.

Decision 03

Interactive validation

The Streamlit application supports live training and random-image predictions with true and predicted labels.

05 / Evidence

Measured, not implied

77.99%

Best accuracy

Fine-tuned DenseNet-121 on held-out test data.

77.90%

Weighted F1

DenseNet-121 precision and recall balance.

40

Action classes

Stanford 40 categories across 9,532 images.

06 / Delivery

What shipped

  • 01A command-line training entry point keeps model runs reproducible from the shared configuration.
  • 02The Streamlit interface exposes dataset selection, live loss and accuracy plots, and image prediction.
  • 03The repository keeps the research notebook, report, model modules, and application together for inspection.

Constraint documented

Scratch-trained DenseNet and GoogLeNet reach only 31.76% and 19.60% accuracy, showing that the available dataset is not large enough to learn comparable representations from initialization.