-
Notifications
You must be signed in to change notification settings - Fork 0
Home
Identification de chants d'oiseaux (Kaggle Competition)
*Analyse, Extraction d'informations d'image spectrogramme*
Birdcall-identification (GitHub)
• Birdcall-identification (Wiki)
isabelleysseric (GitHub)
• isabelleysseric.com (Portfolio)
• isabelle-eysseric (LinkedIn)
- Isabelle Eysseric
- Valdez Fritz Essoh
- Olivier Flamand
BirdCLEF 2021, concours Kaggle est une compétition Kaggle[1] qui a pour but de classifier des chants d’oiseaux par espèce. Cette tâche est très complexe en raison des enregistrements très bruités. Nous proposons d’extraire le mel-spectrogramme des fichiers audio et d’utiliser un réseau à couches de convolution afin d’effectuer la classification. Les modèles ResNet semblent les plus prometteurs bien que le pré-entraînement de ces réseaux ne semble pas être bénéfique. Le Resnet 34 obtient une accuracy en test de 52.48%. Ce qui laisse entendre que la tâche est réalisable mais qu’il y a toujours place à amélioration.
L’identification des cris oiseaux est une tâche complexe qui relève de la classification audio. Pour ce faire il faut normalement passer par deux étapes : 1) détecter les signaux sonores et 2) les classifier. Cette tâche est rarement simple puisque les fichiers audio sont de nature très bruitées en raison des multiples bruits qui ne sont pas en lien avec ce que nous cherchons à classifier.
Un modèle pouvant reconnaître adéquatement des oiseaux en se basant sur leur cris pourrait être utile afin de localiser les espèces sans avoir à les reconnaître visuellement. Plusieurs oiseaux peuvent être difficiles à observer en raison de leurs multiples techniques de camouflage ce qui motive ce projet de classification audio. En installant des dispositifs de reconnaissance de chants à des endroits clés, il serait possible, par exemple, d’identifier les départs et arrivées des migrations de certains oiseaux ou même de délimiter les territoires que chacune des espèces occupe.
Le jeu de données contient des fichiers audio pour 397 différentes espèces d’oiseaux. Chaque fichier audio est d’une longueur variable allant de 10 secondes à 2 minutes. Ces enregistrements sont des fichiers avec extension .ogg. De plus, il est à noter que le nombre d’enregistrements n’est pas constant d’espèce en espèce. La classe la plus représentée contient environ 500 enregistrements tandis que la moins représenté en contient seulement une vingtaine. Les enregistrements sont de nature très bruités puisqu’ils sont enregistrés dans l’habitat naturel des espèces. Nous pouvons donc entendre, par exemple, le bruit du vent dans les feuilles.
L’objectif de la compétition kaggle est de classifier les chants d’oiseaux dans une séquence audio de 10 minutes pour chaque période de 5 secondes contenues dans cette séquence. Nous modifions l’objectif de la compétition afin d’obtenir une tâche de classification plus classique. Nous cherchons donc à identifier le chant d’un oiseau pour une période de 5 secondes seulement. De cette façon, il était plus facile de séparer les données d’entraînement et de test. De plus, cette approche était plus semblable à ce que nous avions vu en cours, nous pouvions donc mettre la grande partie de nos efforts sur l’expérimentation de différentes architectures plutôt que passer une majeure partie du temps sur le traitement des données.
Plusieurs modèles classiques d’apprentissage automatique ont été utilisés afin d’attaquer la tâche de la classification audio. Par exemple, les machines à vecteurs de support ont été utilisées pour différencier entre deux accents anglais[2] et dans un autre cas pour classifier un enregistrement selon 8 émotions différentes[3]. Cependant, puisque nous cherchons à utiliser l’apprentissage profond afin de résoudre le problème de la classification des chants d’oiseaux, nous nous tournerons davantage vers ces méthodes.
Plusieurs auteurs recommandent l’utilisation de réseaux profond à couches de convolutions. L’utilisation de ces réseaux est cependant principalement réservée aux tâches de classification d’images. C’est pourquoi l’extraction de spectrogram à partir des enregistrements est utilisée par plusieurs auteurs. Par exemple, l’utilisation des spectrograms est utilisé afin d’identifier l’instrument principal d’une séquence musicale[4] ou bien lors de la reconnaissance vocale[5].
Nous avons testé plusieurs modèles de ResNet (18 et 34) pour constater que nous avions de meilleurs résultats avec ResNet 34. Les modèles plus grands comme ResNet 50 ou 100 n’ont pas pu être testé car le Kaggle notebook ne nous permettait pas d’allouer assez de mémoire pour les entraîner. Nous aurions possiblement de légèrement meilleurs résultats en utilisant les architectures plus profondes.

Table 1: Tableau récapitulatif des différentes architectures testées
Les tests sur l’architecture VGG 11 ont été faits avec les mêmes hyperparamètres que ceux utilisés pour le ResNet 34, mais les résultats sont très décevants. L’ accuracy en entraînement et validation reste en dessous de 1%. Ce qui indique qu’il y a probablement un problème d’initialisation du réseau qui l’empêche d’apprendre le jeu de données d’entraînement. La deuxième expérimentation qui n’a pas très bien fonctionné est l’utilisation du masque ayant pour but de binariser nos images. En utilisant plusieurs seuils différents, peut-être que nous aurions été capable d’obtenir de meilleurs résultats avec cette approche.
Nous pouvons aussi conclure que l’utilisation des réseaux pré-entrainés n’était pas utile pour notre tâche de classification. La nature très différentes de nos images avec celles de la base de données ImageNet sont d’après nous la cause principale qui explique pourquoi cette approche donne de mauvais résultats.
Les différentes techniques visant à réduire le surapprentissage (early stopping, dropout et taux d’apprentissage adaptatif) semblent améliorer nos résultats sur l’ensemble de test. Le ResNet 34, entraîné sans ces techniques, obtient une accuracy en test de 49.33% versus 52.48% avec l’entraînement utilisant ces techniques.
La première amélioration qu’il serait possible d’implémenter est d’extraire le mel-spectogram des fichiers audio en version couleur plutôt qu’en teintes de gris. Ceci produirait probablement un meilleur contraste entre les signaux d’intérêt et le bruit contenu dans les images, ce qui permettrait aux réseaux de mieux classifier les données.
Afin de régler le problème de débalancement des classes, il serait possible d’extraire plus de 3 mel-spectrogram par fichier audio pour les classes sous-représentés et de n’en extraire 3 pour les classes avec une grande quantité d’enregistrement. Nous pourrions aussi utiliser une autre métrique que l’accuracy afin de comparer nos modèles. Comme nous avons un très grand nombre de classes, le top-k accuracy ou le score F1 pourraient être appropriés.
L’utilisation de plusieurs réseaux avec différentes architectures et effectuer un vote de majorité pour obtenir la prédiction finale pourrait aussi être une façon d’obtenir de meilleures performances.
Bien que la tâche de classifier les chants d’oiseaux n’est pas un problème simple à résoudre, le modèle le plus performant obtient une accuracy de 52.48% sur l’ensemble de test. Ceci peut sembler faible, mais puisque les données sont très bruitées et que le nombre de classe est très élevé, nous considérons ces performances comme raisonnables. En ayant accès à des ressources de calcul plus performantes et en implémentant différentes architectures plus profondes, nous pourrions probablement obtenir de meilleurs résultats. Nous croyons cependant qu’une extraction couleur et un traitement des images plus sophistiqué nous donneraient les meilleurs gains de performances.
[1] Lien du concour Kaggle organisé par le Laboratoire d’ornithologie de Cornell: birdclef-2021
[2] Pedersen C, Diederich J (2007) Accent classification using support vector machines. In: Annual IEEE/ACIS, international conference on computer and information science, pp 444–449.
[3] Shegokar P, Sircar P (2016) Continuous wavelet transform based speech emotion recognition. In: International conference on signal processing and communication systems, pp 1–8.
[4] Han Y, Kim J, Lee K (2017) Deep convolutional neural networks for predominant instrument recognition in polyphonic music. IEEE/ACM Trans Audio Speech Lang Process 25(1):208–221.
[5] 5Hannun AY, Case C, Casper J, Catanzaro B, Diamos G, Elsen E, Prenger R, Satheesh S, Sengupta S, Coates A, Ng AY (2014) Deep speech: scaling up end-to-end speech recognition.
[6] Article ”Understanding the Mel Spectrogram” de Leland Roberts, écrit le 5 mars 2020, sur le site Medium.com.
Lien: Understanding the Mel Spectrogram