Skip to content

orcasound/orcaal

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

OrcaAL

License: MIT

Developed by Diego R. Saltijeral in 2020 and funded by the Google Summer of Code program. The binary classification model and the preprocessing of labeled data were developed by Kunal Mehta; the research about it is located in this repo.

OrcaAL is an active learning tool that aims to help an orca detection model perform better. You can access it here: https://orcasound.github.io/orcaal/.

orca-spectrogram

This tool is part of the AI for orcas project, and it aims to solve the problem stated on this GH issue. You can greatly contribute by providing your user experience feedback in this Google Form, or you can directly add issues here.

How does it work?

A machine learning algorithm can perform better with less training if it is allowed to choose the data from which it learns. Such an algorithm, known as an "active learner" poses queries in the form of unlabeled data instances to be labeled by a human annotator that already understands the nature of the problem.

The tool has been divided into different modules:

  • A webapp: it includes an audio player/visualizer and UI for labeling sound clips that our model found confusing. When a goal of N labeled instances has been reached, the model will retrain and learn from the recently annotated clips by calling the API, which then calls the ML Endpoint. Users can also view how the model progresses over time and more detailed statistics after each training round.
  • An API: which serves as an interface between the machine learning model and the webapp. Makes use of AWS CLI and PostgreSQL. Both the API and the ML Endpoint are containerized and hosted on AWS Lightsail.
  • Preprocessing of unlabeled data: it contains a Python script that generates mp3 files and spectrograms, given a directory containing audio data.
  • A Machine Learning Endpoint: which is a small flask app that -- given an h5 file, a labeled dataset and an unlabeled dataset -- trains an ML model on the labeled data and predicts on the unlabeled data.

Go into each directory to learn how to get started with it. You will want to visit the directories in this order: preprocess --> train_and_predict --> api --> webapp.

Flowchart of how the tool works:
flowchart

Architecture of the tool: architecture

Blog posts about the project and GSoC

My Journey as a Google Summer of Code participant with Orcasound
Two months listening and learning about orca sounds
GSoC’s active learning tool: progress after 1 month

Questions?

Ask GSoC-specific questions in the #GSoC channel of the Orcasound Slack workspace.

Discuss more general software and hardware development questions within the Orcasound dev email distribution list.

More questions about being a GSoC mentor or student? Check out the GSoC mentor & student guides.

Open source tools we used and love: