Two deep learning approaches to Sound Event Detection for bird sounds in the arctic biosphere

Denne masteroppgaven dreier seg rundt et arbeid for å skape et dyp-lærings-basert system for lydhendelsesdeteksjon (”sound event detection”) for fugler i den arktiske biosfæren. Oppgaven presenterer en arbeidsflyt fra råe lydfiler, til en fullt fungerende, toppmoderne modell for oppgaven av lydhende...

Full description

Bibliographic Details
Main Author: Bogfjellmo, Bendik
Other Authors: Dutilleux, Guillaume
Format: Master Thesis
Language:English
Published: NTNU 2021
Subjects:
Bak
Online Access:https://hdl.handle.net/11250/2825827
Description
Summary:Denne masteroppgaven dreier seg rundt et arbeid for å skape et dyp-lærings-basert system for lydhendelsesdeteksjon (”sound event detection”) for fugler i den arktiske biosfæren. Oppgaven presenterer en arbeidsflyt fra råe lydfiler, til en fullt fungerende, toppmoderne modell for oppgaven av lydhendelsesdeteksjon. Oppgaven inneholder beskrivelser av tilnærminger til annotering av lyddata, datasett-skaping, augmentering & egenskapsskaping for lyddata, toppmoderne dyplærings-modeller, utvikling av algoritme for postprossessering av prediksjoner, og produktivitetsfokusert eksperimentelt oppsett for modelltrening. Sist, men ikke minst omhandler oppgaven utvikling av en omfattende kodebase som forenkler utvikling av “glidevindu”-løsninger for lydhendelsesdeteksjonsproblemer i fremtiden. Gjennom oppgaven har datasett for trening og validering blitt annotert fra opptak gjort av Norsk Institutt for Naturforskning (NINA). Opptakene som annoteringene er gjort på, består til sammen av 450 timer med lydopptak, og fra disse har det blitt annotert til sammen 5740 unike lydhendelser som spenner 5 forskjellige klasser. Et testdatasett for å verfisere generalisering av modellen har blitt hentet ut fra brukerbidrag til Xeno Canto, og fra disse bidragene har det blitt annotert 677 lydhendelser som spenner de 5 samme lydklassene. Under oppgaven har det blitt gjort et forsøk på å skape en lydhendelsesdeteksjons-parallell av “Single Shot Multibox Detector”. Denne arkitekturen førte til en “mean Average Precision” (mAP) på 0.001 regnet ut med en terskelverdi for “Inetersection over Union” (IoU) på 0.5 for en sann positiv prediksjon, dette førte til at videre implementasjon av en praktisk applikasjon ble utelukket i arbeidet. En forholdsvis konvensjonell spektrografisk “glidevindu”-klassifisator-tilnærming til lydhendelsesdeteksjon, i likhet med “BirdNet” har også blitt utviklet. Resultater fra hundrevis av eksperimentelle treningsøkter på klassifisatorer for dette er presentert. Den beste klassifisatoren klarte å oppnå en mAP på 0.989 på valideringsdatasettet, og 0.971 på testdatasettet. Dette ble gjort med vindustørrelse på 2.5 sekund, og med en antakelse om at dersom 25% av vinduet inneholder en lydhendelse av en klasse, er det en positiv instans for klassen. Denne klassifisatoren ble dømt til å være passende for implementasjon, og en algoritme for postprossessering av flertallige klasseprediksjoner for enkeltvindu til kontinuerlige lydhendelsesprediksjoner presenteres. Den praktiske tilnærmingen inklduerer også mulighet for eksportering til csv-filer eller Audacity-kompatible merkelapp-filer. Eksempler på lydhendelser som er predikert, er også presentert. Arbeidet under oppgaven inkluderer også implementeringen av en omfattende, utvidbar, gjenbrukbar, og nærmest fullt konfigurerbar kodebase for lydhendelsesdeteksjonsproblemer. Kodebasen er først og fremst implementert gjennom pytorch-rammeverket forpython, med torchvision og torchaudio som støtterammeverk. Kodebasen skal ha mulighet for å støtte tilnærmet hvilket som helst lydhendelsesdeteksjonsproblem med enklere innsats fra en bruker. Oppgaven er skrevet med en antakelse om at leseren har litt bakgrunnskunnskap innen toppmoderne dyp-læring-teknikker, samt en forholdsvis grei kjennskap til pytorch-rammeverket. Et par oversiktlige ideer bak noen av de mer toppmoderne teknikkene innenfor dyp læring er presentert, men oppgaven går ikke inn på detalj på den matematiske kjernen til kunstige nevrale nett. En anbefaling for en introduksjon til kunstige nevrale nett er Michael Nielsens ”Neural networks and deep learning” samt Grant Sandersons videoserie på temaet, publisert på YouTube-kanalen “3Blue1Brown”. For å få en praktisk, samt teoretisk forståelse for noen av de mer toppmoderne teknikkene innenfor emnet, kan det anbefales å lese artiklene om noen av de større nyvinningene innen emnet, samt lese deres implementering i pytorch. To anbefalinger til noen mer moderne artikler er SSD og ResNet. Tilleggsvis kan det nevnes at pytorch kan beskrives som en av de best dokumenterte rammeverkene til python som er offentlig tilgjengelig, og det kan anbefales på det høyeste å anvende dokumentasjonen deres som en læringskilde. This master’s thesis revolves around the work on creating a deep learning based sound event detection system for birds in the arctic biosphere. The thesis presents a workflow starting from raw audio data, to a fully functional state-of-the-art model for the task of sound event detection. The work undertaken and described includes approaches to annotation of audio data, dataset creation, augmentation & feature engineering, state-of-the-art deep learning model creation, inference algorithm development, and productivity focused experimental setups for training. Lastly, the work includes an extensive codebase which simplifies creation of models for solving sound event detection problems. The training and validation datasets have been annotated from audio provided by Norsk Institutt for Naturforskning (NINA) , amounting to a total of 5740 sound events spanning 5 different sound event classes, annotated from a source of 450 hours of audio. A test dataset to verify generalization of the model has been sourced from user contributed recordings from Xeno Canto, amounting to 677 sound events, spanning the same 5 classes. An attempt has been made to benefit from a state-of-the-art-image based object detection method, the Single Shot Multibox Detector (SSD), to create a custom multiline, equivalent architecture. This architecture performed at a classwise mean Average Precision (mAP) of 0.029, given a threshold value for Intersection over Union (IoU) of 0.5 implying a true positive prediction, this resulted in it being deemed unfit for practical applications. A conventional spectrographic “sliding-window” (SED) classifier apporach to Sound Event Detection, as in the example of BirdNET has also been developed. The training results of hundreds of individual training sessions of this classifier are presented. The best performing classification model achieved a mAP of 0.989 on the classifier validation dataset and 0.971 on the classifier test dataset, with a window size of 2.5 seconds and positive ground truths implying 25% of the window containing the sound event. Due to its results, this classifier was deemed fit for practical application and a sliding-window moving average inference algorithm has been implemented, with ability to format output as csv-files or Audacity-compliant label-files. Some examples of the outputs of the inference algorithm are also presented. The work in this thesis also includes an implementation of an extensive, extendable, reusable, and nearly fully configurable, sliding-window sound event detection codebase, which is mainly implemented through the pytorch framework, using torchvision and torchaudio as supplementary frameworks. The codebase should be suitable for application on most sound event detection problems with minimal efforts except annotation, allowing further work to be done more effectively in the future. This thesis is written under the assumption that the reader has some background knowledge within state-of-the-art deep learning techniques, and has at least an introductory level familiarity with the pytorch-framework. A couple of key ideas behind state-of-the-art techniques are elaborated upon, but it does not elaborate on the core mathematical fundamentals of how ANNs work. A recommendation for an introduction to ANNs is Michael Nielsens “Neural networks and deep learning” in addition to Grant Sandersons introductory video series on the topic, published on his YouTube channel “3Blue1Brown”. To get both a practical and a theoretical grip on the pytorch framework and some of the more state-of-the-art deep learning techniques, reading papers on the techniques and pytorch-implementations of them is recommended. A couple of recommendations are the ResNet-paper and the SSD-paper. Additionally, pytorch can be described as one of the best documented frameworks that’s publically available, and it can be highly recommended as a learning source.