The problem
Touchless control is the natural interface for media players, presentations and smart displays — but static image classifiers miss the motion that defines a gesture. A thumbs-up is not a pose; it is a movement through time. 3D convolutions extend CNNs along the temporal axis, learning spatio-temporal patterns from short video clips instead of single frames. The 20BN-Jester dataset gives this problem a real benchmark: 148,092 crowd-recorded webcam clips across 27 gesture classes, noisy backgrounds included. This project turns that into a complete student build: a 3D-CNN trained on an 8-class Jester subset (matched to a student GPU budget), wrapped in a recognizer demo that classifies a clip, smooths the prediction and fires the mapped command on screen. The report and viva can discuss the genuinely interesting engineering — why temporal smoothing and a confidence gate matter more than raw accuracy for a usable live demo.
Performs gestures to control media commands.
How it works
- Jester v1 clips for the 8 selected classes are decoded to 16 uniformly sampled frames at 112×112 grayscale, respecting the official train/valid/test annotation splits.
- A 3D-CNN (three conv3d+maxpool blocks, global average pooling, dense softmax head) trains with Adam and categorical cross-entropy for about 40 epochs.
- Training augmentation applies temporal jitter and spatial crops so the model tolerates timing and framing variation.
- At inference, live webcam frames are buffered into 16-frame clips; predictions are smoothed over a 5-clip window and gated at 0.6 confidence.
- The recognized gesture is displayed with its confidence score and the mapped command is fired and shown on screen.
- The notebook evaluates clip-level accuracy, per-class F1 and the confusion matrix on the validation split.
Tech stack:
- Python 3.10, TensorFlow/Keras (Conv3D layers)
- OpenCV (video decode, frame sampling, live capture)
- NumPy, scikit-learn (metrics, confusion matrix)
- Matplotlib (training curves, per-class F1 bars)
- 20BN-Jester v1 dataset (148,092 clips, 27 classes; 8-class subset used)
- Single-file HTML/CSS/JS demo app (recognizer UI, dataset explorer)
| Parameter | Value |
|---|---|
| Model | 3D-CNN: 3× (Conv3D + MaxPool) → global avg pool → dense softmax |
| Dataset | 20BN-Jester v1: 148,092 clips, 27 classes; 8-class subset trained |
| Input | 16-frame clips, 112×112 grayscale, from webcam or clip folders |
| Output | Gesture class, confidence score, mapped media-player command |
| Training | ~40 epochs, Adam; design target ≈ 80%+ clip-level validation accuracy |
| Evaluation | Accuracy, per-class F1, confusion matrix — computed by the notebook on your build |
| Inference | ~28 ms per clip on GPU; smoothing window 5 clips, confidence gate 0.6 |
Project features
- [8-gesture vocabulary] Swiping left/right, thumb up/down, stop sign, two-finger zoom in/out and no-gesture — the Jester classes most useful for media control.
- [3D-CNN classifier] Stacked 3D convolution + pooling blocks over 16-frame 112×112 grayscale clips, trained with augmentation (temporal jitter, spatial crops).
- [Confidence gating] Predictions below 0.6 confidence are suppressed, so uncertain frames never fire stray commands.
- [Temporal smoothing] A 5-clip voting window stabilizes the live output against flicker between similar gestures.
- [Gesture-to-command mapping] A configurable table maps each gesture to a media-player action (next/previous track, volume, play/pause, fullscreen).
- [Dataset explorer view] Jester statistics and the 8-class mapping table inside the demo app.
- [Full evaluation logging] Clip-level accuracy, per-class F1 and the confusion matrix on the Jester validation split — computed during the build, never pre-claimed.
What is included
- Complete source code (frame extraction, 3D-CNN training, evaluation, live inference, demo app)
- Jupyter training and evaluation notebook (buyer-run procedure: extract frames, train, evaluate)
- Project report PDF (background, 3D-CNN theory, Jester analysis, methodology, evaluation, error analysis)
- PPT presentation for final review
- Viva Q&A preparation document (3D convolutions, Jester, smoothing/gating, video augmentation)
- Setup guide (environment, Jester download via official annotations, training, running the recognizer)
Advantages
- 8-gesture vocabulary: swiping left/right, thumb up/down, stop sign, two-finger zoom in/out and no-gesture — the Jester classes most useful for media control.
- 3D-CNN classifier: stacked 3D convolution + pooling blocks over 16-frame 112×112 grayscale clips, trained with augmentation (temporal jitter, spatial crops).
- Confidence gating: predictions below 0.6 confidence are suppressed, so uncertain frames never fire stray commands.
- Temporal smoothing: a 5-clip voting window stabilizes the live output against flicker between similar gestures.
- Gesture-to-command mapping: a configurable table maps each gesture to a media-player action (next/previous track, volume, play/pause, fullscreen).
- Dataset explorer view with Jester statistics and the 8-class mapping table, plus full evaluation logging of clip-level accuracy, per-class F1 and the confusion matrix on the Jester validation split.
Disadvantages
- Only the 8 trained gestures are recognized; unseen gestures, two hands and sign-language vocabulary are outside scope.
- Inference expects one hand clearly in frame under reasonable lighting with a mostly static background — cluttered, moving backgrounds degrade accuracy.
- The Jester v1 download is large (approximately 23 GB); the setup guide documents the official annotation-based fetch and a smaller quick-run subset.
- Similar motion pairs (zoom-in vs zoom-out with two fingers) are the main confusion source; the confusion matrix documents it.
- This is an educational prototype, not an accessibility-certified control system — latency and miss rates are unsuitable for safety-critical use.
Limitations & prerequisites
- Only the 8 trained gestures are recognized; unseen gestures, two hands and sign-language vocabulary are outside scope.
- Inference expects one hand clearly in frame under reasonable lighting with a mostly static background — cluttered, moving backgrounds degrade accuracy.
- The Jester v1 download is large (≈ 23 GB); the setup guide documents the official annotation-based fetch and a smaller quick-run subset.
- Similar motion pairs (zoom-in vs zoom-out with two fingers) are the main confusion source; the confusion matrix documents it.
- This is an educational prototype, not an accessibility-certified control system — latency and miss rates are unsuitable for safety-critical use.
Frequently Asked Questions
Which dataset is used?
20BN-Jester v1: 148,092 crowd-recorded webcam clips across 27 predefined gesture classes, with official train/valid/test annotation CSVs. This build trains an 8-class subset matched to a student GPU budget; the pipeline supports adding more classes.
Which model is used?
A 3D-CNN — three Conv3D+MaxPool blocks with global average pooling and a dense softmax head — operating on 16-frame 112×112 grayscale clips, so it learns motion, not just poses.
Is the accuracy guaranteed?
No. The design target is ≈ 80%+ clip-level validation accuracy on the 8-class subset, but final performance is measured by the training notebook during your build — the report documents your own numbers and per-class F1.
Can it work with a live camera?
Yes — the inference module buffers live webcam frames into 16-frame clips, smooths predictions over a 5-clip window and gates at 0.6 confidence before firing a command. One hand clearly in frame and reasonable lighting are required.
What are the main limitations?
8 trained gestures only; needs clear single-hand framing and decent lighting; the dataset download is ≈ 23 GB; not suitable for safety-critical control.
Is this project suitable for a final-year project?
Yes — for Computer Science, AI/ML and Electronics programs. It demonstrates 3D convolutions, video datasets, real-time inference engineering (smoothing, gating) and honest evaluation, all strong viva material. Suitable for B.E./B.Tech final-year projects in Computer Science, AI/ML and Electronics.
Components & software requirements
- Python 3.10, TensorFlow/Keras (Conv3D layers)
- OpenCV (video decode, frame sampling, live capture)
- NumPy, scikit-learn (metrics, confusion matrix)
- Matplotlib (training curves, per-class F1 bars)
- 20BN-Jester v1 dataset (148,092 clips, 27 classes; 8-class subset used)
- Single-file HTML/CSS/JS demo app (recognizer UI, dataset explorer)
Delivery information
Built-to-order project. Delivery timeline is shared after order confirmation based on current queue.
Support terms
Complete documentation, setup guide, and viva preparation included. Support for setup and explanation provided.
Download free synopsis (PDF)
Enter your name and WhatsApp number — the synopsis PDF downloads immediately. We may send occasional project updates on WhatsApp; no spam.
Materzynska et al. — The Jester Dataset: A Large-Scale Video Dataset of Human Gestures (ICCVW, 2019)