Undergraduate research · 2022
Classifying tree species from bark images
My undergraduate research explored CNN–VGG16 for tree-species identification using bark photographs. I led the development work, collected bark images and built the interface for the model.
Paul Domenic Trambulo · Kyle Symon Wagan
FAITH Colleges · Best Thesis Award · 2022
The approach
From a bark photo to a class label
A photograph is only the starting point. Dataset coverage, consistent preprocessing and careful evaluation determine how useful a classifier can be.
01 / Collect & label
Start with the bark
Photographs are organized into labeled classes. The archived folders include separate training, validation and test directories.
02 / Prepare
Make the inputs consistent
The saved notebook normalizes image pixels and applies rotation, zoom and horizontal flipping to training images. The validation generator uses preprocessing without those training augmentations.
03 / Learn
Adapt a VGG16 backbone
The notebook loads ImageNet-pretrained VGG16 without its original classification head, then adds dropout, flattening and a softmax classifier for the tree labels.
04 / Evaluate
Look beyond a single score
The evaluation code includes accuracy, a confusion matrix, precision and recall. This portfolio explains the approach without presenting an unverified final accuracy result.
An archived snapshot
Look at the data before the score
Explore the class folders preserved with the project. These are image-file counts from the archive, not a final benchmark or a count of unique trees.
- Label classes
- 10
- Training files
- 502
- Validation files
- 491
- Test files
- 228

Acacia
- Training
- 36
- Validation
- 39
- Test
- 30
One sample per class. Names follow the archived folder labels.
Training coverage 502 image files
Choose a row to inspect its sample. Bar lengths show file counts, not model confidence.
Archived folder snapshot reviewed in October 2026; image-file counts are not final evaluation results. Saved notebook outputs include another label set; the explorer reflects the folder snapshot shown here. This is a research explainer and archived dataset browser. It does not run the trained classifier or identify uploaded photographs.
Research insights
The useful questions go beyond the network
A class label needs enough examples
The archived training folders are uneven. Comparing their counts makes the data coverage visible before discussing a model score. The notebook also includes inverse-frequency class weights.
Preprocessing is part of the experiment
Training and prediction need a consistent input pipeline. The archived notebook uses pixel normalization; reproducing the work also means checking that preprocessing against the pretrained backbone's expectations.
An archive is evidence, not a fresh benchmark
Notebook outputs and dataset folders represent different saved states. Their labels are not identical, so this snapshot should not be treated as a reconstruction of the final thesis evaluation.
My contribution
As project lead, I coordinated the development and research work, collected bark photographs and built the model’s interface. The archived implementation uses TensorFlow/Keras and an existing VGG16 backbone; the research applies that approach to a selected tree-image dataset.
The title and credits were checked against the archived presentation; implementation details were inspected in the saved notebook. Reference projects stored alongside the thesis are not presented as my own results.