← Home

2016 · Earlier ML work · Computer vision · Transfer learning

Food Recognition with VGG16 Transfer Learning

A 100-class UECFOOD100 classifier built in 2016 with ImageNet-pretrained VGG16 features, a custom classification head, augmentation, fine-tuning, and a phone-to-model recognition prototype.

VGG16KerasTheanoTransfer learningImage augmentation

Problem and data

UECFOOD100 contains visually similar food classes, uneven class sizes, and images with widely varying dimensions. The repository's working split contains 10,183 training images and 4,428 validation images across 100 classes.

Food image classification and calorie estimation project overview showing UECFOOD100, preprocessing, VGG16 transfer learning, custom classification, fine-tuning, predictions, and measured accuracy
Project overview. Transfer-learning pipeline and measured historical results from the 2016 capstone.

Original project material

Examples of ramen noodle and beef noodle images from the food-recognition project
Visually similar classes. Ramen noodle and beef noodle illustrate the fine-grained distinctions required across parts of UECFOOD100.

Transfer-learning pipeline

The first stage extracted bottleneck features from ImageNet-pretrained VGG16 and trained a custom classification head. The later stage reused those weights and fine-tuned the highest-level pretrained feature layer together with the classifier, with augmentation used during training.

Measured results

100food classes
~70%top-1 after fine-tuning
92%top-5 after fine-tuning

Historical project results record about 70% top-1 and 92% top-5 after fine-tuning. These are original 2016 project measurements rather than a modern benchmark reproduction.

End-to-end recognition demo

A demonstration sent a food photograph from a phone to the model running on a computer, returned the predicted class, and mapped that class to a calorie-per-serving lookup. The prototype did not estimate portion size from the image.

Sushi photograph correctly classified by the food-recognition model
Recognition example. The model classified this input image as sushi.

Historical context

This 2016 project is presented as historical ML work: transfer learning, fine-tuning, evaluation, and an end-to-end prototype using the practical deep-learning stack available at the time.