← All courses

Computer Vision (Developer) · Level 301

Computer Vision Developer 301 — Your Own Model

Scope and deliver a CNN project yourself — compare models, tune training and evaluate on a held-out test set.

2 modules Peak District Landscape Lab VS Code · Jupyter Notebook · Python · numpy · matplotlib · scikit-learn · TensorFlow/Keras · eurosat_loader.py (from starter kit; optional TensorFlow Datasets)

Computer Vision (Developer) · Level 301

Computer Vision Developer 301 — Your Own Model

Scope and deliver a CNN project yourself — compare models, tune training and evaluate on a held-out test set.

2 modules Peak District Landscape Lab VS Code · Jupyter Notebook · Python · numpy · matplotlib · scikit-learn · TensorFlow/Keras · eurosat_loader.py (from starter kit; optional TensorFlow Datasets)

Prerequisite: Computer Vision Developer 201.

Guided modules are over. You assemble and write the full ML workflow yourself.

Prefer a briefing memo without training models? See Computer Vision Analyst 301.

Module 1 — Your Own Project

Manager email

From: Andy Ipping
Subject: One question — scoped like our Turing DSG brief

Production maps are only the start. We now need change detection, subclass reliability checks, and fragmentation analysis (see our wet grassland work in Remote Sensing 2023). Pick one project below — or propose your own at similar scope — and deliver:

  1. A notebook with your full workflow
  2. One chart for a busy colleague (confusion matrix, change map, or sample gallery)
  3. report/cnn301_project_report.md (500–700 words)

Write for rangers and Landscape Recovery partners, not ML researchers.

— Andy

Why this matters

Land-cover analysts are hired to turn an vague request into a defensible map. The guided modules taught you pixels, filters, training and briefs. This module tests whether you can assemble them when nobody numbers the notebook cells for you.


Step 1 — Choose your project

Pick one. Each is achievable with the skills from Computer Vision Developer 101 and 201.

Download the project notebook (cnn-developer-301-project.ipynb).

Option A — Subclass confusion audit (Taylor schema)

The production model's second pass predicts subclasses (heather moor, deciduous woodland, wet grassland and rush pasture) inside high-level masks.

Task: Using EuroSAT or patches from pdnpa/cnn-land-cover, train or evaluate a model and produce a confusion matrix focused on the hardest subclass pairs. Write which mistakes would matter for grazing decisions vs woodland expansion monitoring.

Deliverable focus: confusion matrix + two paragraphs tied to uses described in the 2023 press release.


Option B — Change detection scoping (Turing DSG style)

The published project's next research priority is land-cover change between 2010 and 2020 APGB imagery (Turing DSG report, 2023).

Task: You may not have both date stacks on a home laptop. Instead, design a change-detection study: state which classes you would track, how you would handle different flight dates and resolutions, and what accuracy would make the result actionable for Landscape Recovery. Optionally prototype on EuroSAT subsets or synthetic before/after tiles.

Deliverable focus: methodology memo + optional proof-of-concept notebook.


Option C — Fragmentation of a rare habitat

The published Remote Sensing paper analysed fragmentation of wet grassland and rush pasture across the park using CNN predictions.

Task: Choose one rare class (in EuroSAT or synthetic data). Measure something simple about fragmentation — e.g. number of disconnected patches above a size threshold — and discuss why fragmentation matters for conservation monitoring.

Deliverable focus: one chart + recommendation for field survey priority.


Option D — Architecture comparison for operational use

Task: On the same four-class EuroSAT subset from Computer Vision Developer 201, compare baseline CNN vs MobileNetV2 transfer learning. Report test accuracy, training time, and which you would deploy if a training laptop must retrain before the next APGB drop.

Deliverable focus: bar chart + memo paragraph on cost vs accuracy.

See worked examples.


Option E — Explore pdnpa/cnn-land-cover (recommended stretch goal)

Task: Clone the public repository. Summarise what data it contains (patch size, labels, code entry points). Run or extend one script. Report one finding about high-level vs subclass performance that would help a new analyst interpret published maps.

External learners: If the repo setup is too heavy, document what you would run and what you learned from the README and paper abstract.


Option F — Your own proposal

One paragraph: a land-cover question a national park might ask (monitoring, recovery, species, planning), data source, success metric, and limitations. Andy's rule: one week part-time, held-out test evaluation, brief suitable for a ranger or Landscape Recovery partner.


Step 2 — Follow the workflow

Copy cnn301_project.ipynb into notebooks/ — section headings are already in place.

Use this structure in notebooks/cnn301_project.ipynb. You define every step, but the headings stay the same:

  1. Question — one sentence a ranger would understand.
  2. Classes — what land types (or objects) you are mapping.
  3. Data — source, size, train/val/test split rule.
  4. Model — architecture; say if you use augmentation or transfer learning.
  5. Training — epochs, batch size, anything you tuned.
  6. Evaluation — test accuracy, confusion matrix, example mistakes.
  7. Chart — save to outputs/charts/cnn301_main.png.
  8. Recommendation — usable map? for what decision? with what checks?

Step 3 — Suggested notebook skeleton

Question

What are you trying to map, and for whom?

Code — load and prepare data

import numpy as np
import matplotlib.pyplot as plt
from sklearn.model_selection import train_test_split
from sklearn.metrics import ConfusionMatrixDisplay, confusion_matrix
from tensorflow import keras

# Recommended: copy eurosat_loader.py from the CNN 201 starter kit
# from eurosat_loader import load_eurosat

# Your loading and filtering code here

Code — model, train, evaluate

Document one test-set evaluation at the end. If you tried multiple models, say so — but quote the test score of the model you would actually deliver.

Chart

Confusion matrices work well. So do side-by-side correct vs incorrect tiles — rangers understand pictures faster than layer diagrams.


Step 4 — Report checklist

report/cnn301_project_report.md should include:

Section Content
Introduction Client question and why it matters
Method Data, classes, model (plain English)
Results Test accuracy + main confusion
Limitations At least three specific weaknesses
Recommendation Usable / not usable / usable with ground checks
Reflection Did you enjoy this work? What was hardest?

What Andy will look for

He is not grading the highest accuracy. He wants:

  • a narrow, answerable question tied to national-park monitoring or recovery work;
  • honest test-set evaluation;
  • limitations that show you know EuroSAT ≠ Bluesky APGB over Derbyshire;
  • a recommendation a ranger or Landscape Recovery partner could act on;
  • evidence you can work without numbered instructions.

Reflection questions

  • Which option did you pick, and why?
  • Where would your map mislead someone if they skipped the limitations section?
  • Would you rather spend another week improving accuracy or another week walking fields to validate labels?

Manager feedback

From: Andy Ipping

Open briefs separate people who wait for instructions from people who build maps someone might actually use. Read your limitations section aloud. If it sounds uncomfortable, it is probably honest enough.

— Andy


Module 2 — What You Have Learned

When you finish CNN 301, you will have learned to:

  1. choose a land-cover or aerial-image project scoped for a real decision-maker;
  2. assemble tools from CNN 101 and 201 without step-by-step guidance;
  3. prepare satellite or synthetic imagery, train a CNN, and evaluate on a held-out test set;
  4. communicate accuracy, confusions and limitations to a non-technical client;
  5. reflect on whether computer vision for environmental mapping fits you.

You have completed the Computer Vision Developer track at PDLL:

Related analyst path (interpret maps, write briefs — less code):

If interpreting and improving habitat maps from aerial photography felt motivating, continue with operational datasets at github.com/pdnpa/cnn-land-cover or the broader Machine Learning track.