Problem and data
The task was multiclass recognition of food dishes from photographs. UECFOOD100 contains many visually similar classes, uneven numbers of examples per class, and images with widely varying dimensions. The working split used by the repository contains 10,183 training images and 4,428 validation images across 100 classes.
Original project material
Examples from the 2016 project illustrate one of the central classification challenges: different food classes can be visually very similar.
Transfer-learning pipeline
The first stage extracted bottleneck features from an ImageNet-pretrained VGG16 network 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. Image augmentation was used to reduce overfitting on a relatively small, imbalanced image collection.
Measured results
Historical project results record roughly 52% accuracy for the custom classifier trained on VGG16 bottleneck features, improving to about 70% top-1 and 92% top-5 after fine-tuning. These are original project measurements rather than a modern benchmark reproduction.
Compute and implementation
The repository uses Keras with a Theano GPU backend and records execution on a GeForce GTX 960M. The project also compared training on AWS, where the reported run was about 3.28× faster than the laptop. The model code explicitly reconstructs the VGG16 convolutional stack, loads pretrained weights, extracts bottleneck features, and trains the 100-class head.
End-to-end recognition demo
The project did not stop at an offline notebook. A demonstration sent a food photograph from a phone to the model running on a computer, classified it as sushi, mapped the predicted class to a calorie-per-serving value, and returned the annotated result. The calorie value was a class-level lookup; the prototype did not estimate portion size from the image.
Historical context
This 2016 project used the transfer-learning stack available at the time and combined data preparation, GPU training, transfer learning, fine-tuning, evaluation, cloud compute, and an end-to-end prototype. It is presented as historical ML work rather than current state-of-the-art food recognition.