- Notifications
You must be signed in to change notification settings - Fork41
Using convolutional neural networks to build and train a bird species classifier on bird song data with corresponding species labels.
License
johnmartinsson/bird-species-classification
Folders and files
| Name | Name | Last commit message | Last commit date | |
|---|---|---|---|---|
Repository files navigation
The official implementation of the code for the master's thesis "Bird Species Identification using Convolutional Neural Networks".
Cite as:
@techreport{Martinsson2017, author = {Martinsson, John}, title = {Bird Species Identification using Convolutional Neural Networks}, institution = {Chalmers University of Technology}, year = {2017}, pages = {68}, url = {http://publications.lib.chalmers.se/records/fulltext/249467/249467.pdf}}This repository is not actively maintained. It is the result of a master's thesis and the code has been made available as a reference if anyone would like to reproduce the results of the thesis.
These are the project files for a master's thesis carried out at Chalmers University of Technology. The aim of the project was to improve upon a state-of-the-art bird species classifier by using deep residual neural networks, multiple-width frequency-delta data augmentation, and meta-data fusion to build and train a bird species classifier on bird song data with corresponding species labels.
Please cite the master's thesis if this repository is useful for your research.
$ git clone https://github.com/johnmartinsson/bird-species-classification$ virtualenv -p /usr/bin/python3.6 venv$source venv/bin/activate(venv)$ pip install -r requirements.txt# Ubuntu/Linux 64-bit, CPU only, Python 3.6(venv)$ pip install --upgrade tensorflow# Ubuntu/Linux 64-bit, GPU enabled, Python 3.6# Requires CUDA toolkit 8.0 and CuDNN v5. For other versions, see "Install from sources" below.(venv)$ pip install --upgrade tensorflow-gpu
This section explains how to preprocess the birdCLEF2016 dataset, how to split the data set in to a training and validation set, how to train a model on the training data, and how to evaluate the model on the validation data.
First we need to down-sample the sound recordings.
$# Resample to 22050 Hz (stand in wav directory)$foriin*;do sox$i -r 22050 tmp.wav; mv tmp.wav$i;done
Secondly, the signal parts, and the noise parts of the recordings are extracted and split into three second segments. The signal segments are put in different directories depending on the class given in the xml data, and all noise segments are put in a separate noise directory.
$ python preprocess_birdclef.py --xml_dir=<path-to-xml-dir> \ --wav_dir=<path-to-wav-dir> \ --output_dir=<path-to-output-dir>
Lastly, the data is split into a training set and a validation set:
$ python create_dataset.py --src_dir=<path-to-signal-dir> \ --dst_dir=<path-to-destination-dir> \ --subset_size=<subset-size> \ --valid_percentage=<validation-percentage>
where src points to the signal segments, dst is the destination, subset size is an optional argument which makes training and validation data a randomly chosen subset of bird species from the whole data set, and the valid percentage is how many percent of the data that should be in the validation set.
$ python train.py --config_file=conf.ini
$ python run_predictions.py --experiment_path=<path-to-experiment>
$ python evaluate.py --experiment_path=<path-to-results>
In this project two different models have been used: a reimplementation of Elias Sprengelswinning solution for the BirdCLEF 2016 challenge, and a Keras implementation of thedeep residual neural network.
The following libraries are used in this method:
This is a collection of bird species classification challenges that, has been, and are carried out around the world.
- Rank 1 BirdCLEF 2016solution description
- Bird Audio Detection Challenge,
- Survey Paper andDiscussion,
- Blog Article: Generalization in Bird Audio Detection.
Original compilation source:xuewei4d
- Rank 1solution code anddescription by beluga,
- Rank 2solution description by Herbal Candy,
- Rank 3solution description by Anil Thomas,
- Rank 4solution description by Maxim Milakov,
- Solution thread.
This is a collection of applications which solve a similar problem.
About
Using convolutional neural networks to build and train a bird species classifier on bird song data with corresponding species labels.
Topics
Resources
License
Uh oh!
There was an error while loading.Please reload this page.
Stars
Watchers
Forks
Releases
Packages0
Uh oh!
There was an error while loading.Please reload this page.
Contributors2
Uh oh!
There was an error while loading.Please reload this page.