Hackathon Journey with Computer Vision
For most of my hackathon journey, I am expected to deliver an ML model working backend. The two most popular computer vision tasks are 1) Image Classification and 2) Object Detection. Due to the fast development of Deep CNNs, the performance of most SOTA models are very closed to each other. Below is my development process for my most hackathon journeys and the models I use:
- MobilenetV2 for image classification
- YOLOv5 Light for object detection
The hackathon for me usually can be divided into two parts:
I. Define Project’s Scope
At this stage, team members need to discuss the topic of the project and how to build a simple prototype to illustrate the idea. Usually, we need to draw the architecture for the system. Generally speaking, a complete Machine Learning (ML) system typically involves frontend development, backend development, and ML development. For ML development, the ‘data scientist’ job is to build and serve the model on the cloud, so the system can get the prediction result from the model serving on AWS/GCP.
II. Work with Data and Model
- Data Preparation: Data is the food of the ML model. The best idea for building a good demo is to collect the data directly onsite. Let’s say you want to build a trash classifier for the demo. You can take a video or picture of rubbish during the hackathon to build a simple train, dev, and test dataset.
- Train, Test and Evaluate the Model: Since most hackathons aim at learning when building fast, I myself do not recommend using the Github repos which has low stars and forks. Most models are already good enough. It is not a Kaggle competition, pick most mainstream models (e.g. Res-net, Yolo, Faster-RCNN) then train, test, and evaluate ‘roughly’.
- Serve the Model: Communicate with your teammate, define input data structure and names for the backend system sending the request, and fetch the results. Using Flask or TorchServe or Tensorflow Serving (TFX) in combination with docker is enough for this stage.
Hope you enjoy the journey as a ‘data engineer or scientist’ in the hackathon.