Inspiration

We were inspired to do this project after viewing the HackTheWave poster, and seeing the picture of the whale. Combined with the theme, "Useless", we though something that automatically detected whales would be pretty darn useless if you had a pair or working eyes.

What it does

Our web app lets you upload any image, and will accurately tell you if that image has a whale or not.

How we built it

For such a simple concept, it took a lot of complicated tech to build. After training machine-learning models to recognize whales, and those machine-learning models only classifying images that are already in the dataset, we decided to use a siamese neural network, in order to accurately and much more accurately detect between whales and non-whales.

Challenges we ran into

We were constantly running into issues with configuring the model. Neural networks can be very finicky, and can take hours alone to train and configure. We spent hours configuring the model, adding weights, and adding to the dataset.

Accomplishments that we're proud of

This is the first time we ever created a neural net, which is ironic because its being used to detect whales. After hours of frustration, and tinkering with the webpage we managed to create an extremely accurate model, which was so satisfying to see work after hours of changing weights, running, changing distance modes, running, etc.

What we learned

Deep Learning and Neural Networks: We gained hands-on experience with designing, implementing, and training deep neural network models.

Siamese Networks: We delved into the world of one-shot learning using Siamese Networks, a special architecture designed for similarity and verification tasks.

Keras and TensorFlow: We learned how to efficiently use the Keras API with TensorFlow backend for building and training deep learning models.

Image Processing: We worked with image preprocessing techniques, including resizing, normalization, and data augmentation, to prepare data for our neural network.

Feature Extraction: We used pre-trained models like VGG16 for feature extraction and understood the importance of transfer learning in computer vision tasks.

Regularization Techniques: We employed techniques such as dropout to prevent overfitting in our neural network models.

Custom Loss Functions: We designed a custom contrastive loss function tailored for our Siamese Network's objectives.

Model Saving and Serialization: We learned how to save and load trained neural network models for future predictions without retraining.

Python Programming: We honed our Python skills, especially in the domains of file handling, loops, and exception handling.

Optimization Techniques: We explored different optimizers, learning rates, and distance metrics to enhance our model's performance.

Built With

Share this project:

Updates