↓ Skip to main content
Ship Classification and Localisation
Output of the demo notebook on nine test images: predicted and annotated boxes with their IoU, and the predicted class for each ship.
  1. Projects/

Ship Classification and Localisation

Period
MSc coursework
Where
Sapienza University of Rome, Computational Intelligence (Prof. Antonello Rizzi)
Role
Co-author, with Peyman Javaheri
Status
Completed

The problem
#

The Game of Deep Learning ship dataset comes with class labels only. The goal here was both to say what kind of ship is in an image and where it is, so the localisation labels had to be created first.

What we did
#

  • Annotation. Drew bounding boxes for 6,182 images with LabelImg (2,125 cargo, 916 carrier, 776 cruise, 1,148 military, 1,217 tanker), then converted the XML annotations to CSV for training. The annotated CSVs are in the repo.
  • Model 1, multi-output. One MobileNetV2 backbone with two heads: a softmax classifier over the five classes and a regression head for the bounding box. Trained jointly from a custom generator yielding images, labels and boxes.
  • Model 2, split. A dedicated Xception classifier plus a separate MobileNetV2 box regressor, each trained on its own task with augmentation (flips, rotations).
  • Evaluation. Classification accuracy for the label, IoU between predicted and true boxes for localisation, and a demo notebook that loads the trained weights and draws predictions and box centroids on test images. On the nine demo images shown above, every ship is assigned the correct class and box IoU ranges from 56% to 88%.

Stack
#

Python, TensorFlow/Keras, MobileNetV2, Xception, LabelImg, Google Colab.