Inspiration

When I think of 'nautical', I tend to think of sea traversal, and boats are exactly the type of vehicle made for that job. Since I am interested in applying my knowledge of deep learning models to a program, I decided to make a classification web application that would be able to categorize boats via images.

What it does

This app trains a Keras sequential model on a dataset of boat images supplied from Kaggle. In addition, it is possible to simply use a pre-trained model and test it on the data. I had also planned for users to be able to upload their own boat images for the model to classify, but I was not able to implement it in time.

How I built it

This was programmed in Python, with heavy usage of the Tensorflow library and Keras. Streamlit was used for the front-end web application, allowing for very quick and easy production and testing of the project.

Challenges I ran into

Since I had never used Streamlit before, I ran into some issues on areas with some aspects of Streamlit I did not know about. I had problems with nested buttons, and needed to reformat the organization of them to be able to have them work properly. In addition, training the model on my laptop's CPU took a very long amount of time. I had attempted training the model on a Google Colab notebook first, but for some reason it would not properly work when I transferred it to my local machine and tested there. I decided to just take the time and train the model on my personal device and save the model from that for future usage.

Accomplishments that we're proud of

I am proud of the model having a decent 75% training accuracy, with decent results on the test dataset too. Even though my sequential model is likely not very optimized and could use several changes to improve accuracy, this is a pretty good result for something made within such a short timeframe. In addition, the web application itself generally works fine, although it is still a bit buggy in some aspects. For a first-time use of Streamlit, I learned a lot and had a good time using the framework.

What I learned

I learned a lot about the web application framework that is Streamlit, and am planning on delving into it more and seeing if I can continue using it to construct more machine learning-related applications. It seems like a tool that is very quick and easy to set up, and also great for demoing and testing code.

What's next for BoatExpert

I'm thinking of trying to at the very least implement a way for users to upload their own boat images for the deep learning model to classify, so that BoatExpert would actually be able to serve as a tool. In addition, I would also like the improve my model accuracy if possible, aiming for roughly 85-90% accuracy at least.

Built With

  • keras
  • python
  • streamlit
  • tensorflow
Share this project:

Updates