sur-1.2.2 Objectifs Les objectifs de ce stage sont entre autre, d’étudier d’abord, l’état de l’art des vaux existants dans la détection des mouvements des bébés en temps réel, pourmieux
Trang 1UNIVERSITÉ NATIONALE DU VIETNAM, HANỌ
INSTITUT FRANCOPHONE INTERNATIONAL
Abdoul Djalil OUSSEINI HAMZA
Real Time Multimodal Baby Monitoring System
Hệ thống giám sát em bé đa phương thức thời
Trang 2UNIVERSITÉ NATIONALE DU VIETNAM, HANỌ INSTITUT FRANCOPHONE INTERNATIONAL
Abdoul Djalil OUSSEINI HAMZA
Real Time Multimodal Baby Monitoring System
Hệ thống giám sát em bé đa phương thức thời
gian thực
Spécialité : Systèmes Intelligents et Multimédia
Code : Programme pilote
MÉMOIRE DE FIN D’ÉTUDES DU MASTER
INFORMATIQUE
Sous la direction de :
Dr NGUYEN Trong Phuc - Ifi-solution
HANỌ - 2020
Trang 3ATTESTATION SUR L’HONNEUR
J’atteste sur l’honneur que ce mémoire a été réalisé par moi-même et que les données
et les résultats qui y sont présentés sont exacts et n’ont jamais été publiés ailleurs Lasource des informations citées dans ce mémoire a été bien précisée
LỜI CAM ĐOAN
Tôi cam đoan đây là công trình nghiên cứu của riêng tôi Các số liệu, kết quả nêu trong Luận văn là trung thực và chưa từng được ai công bố trong bất kỳ công trình nào khác Các thông tin trích dẫn trong Luận văn đã được chỉ rõ nguồn gốc.
Signature de l’étudiant
Abdoul Djalil OUSSEINI HAMZA
Trang 4du Dr NGUYEN Trong Phuc était toujours ouverte chaque fois que je rencontrais un problème ou si j’avais une question sur mes recherches Il a toujours permis que ce document soit mon propre travail, mais il m’a guidé dans la bonne direction chaque fois qu’il pensait que j’en avais besoin.
Je tiens également à remercier M Hoan Dinh Van manager à Ifi-Solution qui a ticipé à la réalisation et validation de ce projet Ce travail n’aurait pu être accompli sans leur effort et leur contributions passionnées.
par-Je voudrais remercier notre responsable de Master Dr Ho Tuong Vinh ainsi que tous les personnels pédagogiques et administratifs de l’Institut Francophone International, Université National de Vietnam à Hanoi Je leur suis reconnaissant de tout cœur pour avoir assuré et amélioré la qualité de notre formation.
Enfin, je tiens à exprimer ma profonde gratitude à mes parents, à ma famille et àMme Võ Thu Trang pour m’avoir apporté un soutien indéfectible et des encourage-ments constants tout au long de mes années de Master Sans oublier mes amis qui onttoujours été là pour moi Votre soutien inconditionnel et vos encouragements ont étéd’une grande aide Je vous remercie
Abdoul Djalil OUSSEINI HAMZA
Trang 6Peu de travaux se sont intéressés à la détection des mouvements des bébés dansleur berceaux et les rares travaux qui ont traité ce problème ont plutơt utilisé les algo-rithmes classiques de Machine Learning comme les SVM en tant que classifier Dans
ce travail, nous proposons une nouvelle approche pour détecter les mouvement et lescris des nourrissons en se basant sur les nouvelles architectures des réseaux de neu-rones à convolution CNN La première partie porte sur la présentation de la structured’accueille ó est décrit les missions et les départements qui composent l’entreprise
La seconde partie fait mention de l’état de l’art dans laquelle les travaux connexes ontété développés et une étude comparative à été établie La troisième partie opère surles solutions proposées et les contributions apportées La quatrième partie fait l’objetdes expérimentations et résultats ó nous avons mené toutes nos expériences pour laréa-lisation du projet et enfin, la dernière partie porte sur la conclusion et lesperspectives pour les futures travaux dans le domaine
Mots clés : surveillance des bébés, détection d’objets, proposition de région, réseau neuronal convolutif, cri des bébé.
Trang 7Few studies have focused on detecting the movements of babies in their cradles,and the few studies that have dealt with this problem have instead used conventionalmachine learning algorithms such as SVM as classifiers In this work, we propose anew approach to detect movement and cry of infants based on new architectures ofCNN convolutional neural networks The first part relates to the presentation of thehosting structure where the missions and departments that make up the company aredescribed The second part mentions the state of the art in which the related workswere developed and a comparative study was established The third part operates onthe solutions proposed and the contributions made The fourth part is the subject ofexperiments and results where we conducted all our experiences for the realization ofthe project and finally, the last part relates to the conclusion and prospects for futurework in the field
Keywords : baby monitoring, object detection, region proposal, convolutional
neu-ral network, baby cry
Trang 8Table des matières
Liste des tableaux
Table des figures
Liste des tables
1.1 Présentation de l’établissement d’accueil
1.1.11.2 Contexte-objectifs-problématiques
1.2.11.2.21.2.3
2.1 Techniques classiques
2.1.12.1.22.1.3
2.2.1
2.2.2
2.3 Comparaison des méthodes utilisées
2.3.1
Trang 9TABLE DES MATIÈRES
2.3.2
2.3.3
3 SOLUTIONS PROPOSÉES & CONTRIBUTIONS
3.3 Déroulement de notre travail
3.4 Architecture générale de la solution
3.4.1
3.4.23.4.33.4.43.4.5
3.4.63.4.7
4.1 Problèmes rencontrés
4.1.14.1.24.1.34.2 Expérimentations
4.2.14.2.24.2.34.2.44.3 Résultats
4.3.14.3.24.3.3
5.1 Conclusion générale
5.2 Perspectives
Trang 10TABLE DES MATIÈRES
A Algorithmes
A.1 Implémentation du modèle Faster R-CNN
A.2 prepare batch
A.3 generate data
A.4 start train
Trang 11Table des figures
2.1 CNN architecture
2.2 Gradient descent
2.3 Backpropagation
2.4 Max pooling avec un filtre 2 × 2
2.5 Fonction d’activation : RelU
2.6 Fonction d’activation : RelU
2.7 Architecture Faster-RCNN
2.8 Architecture comparative entre SSD et YOLO
2.9 Architecture simplifiée Faster R-CNN
2.10 Architecture SSD
3.1 Transfer Learning
3.2 Architecture de la solution
3.3 Poids et batch_norm freezer
4.1 Preprocessing
4.2 Architecture générale pour intégrer le modèle dans le Raspberry 4.3 Pipeline de la solution
4.4 Fonction de perte
4.5 Pertes globales
4.6 Le métrique mAP
4.7 Posture : stand
4.8 Posture : Stand
4.9 Posture : Sleep
4.10 Posture : Sleep
4.11 Posture : Sit
4.12 Posture : Sit
Trang 12Liste des tableaux
2.1 extracteurs de caracterisques
2.2 Combinaison des modèles
3.1 Parametres impactants
4.1 State of the art results
4.2 Our experiment results
Trang 13Liste des sigles et acronymes
CNN
DNN
Convolution Neural Network
Deep Neural Network
Stochastic Gradient Descent
Single Shot MultiBox Detector
Trang 14Chapitre 1
INTRODUCTION GÉNÉRALE
Il est important d’avoir une vue permanente dans les chambres de nos bébés etdans leurs berceaux afin d’éviter tout accident malheureux auquel ces bébés pour-raient être confrontés Et de plus en plus de parents sont préoccupés par la sécurité deleur nouveau-né et veulent des mécanismes automatiques qui pourraient les aler-ter de
la situation instantanée de leur bébé Les parents utilisent souvent des dispositifs desurveillance pour bébés pour garder un œil sur les jeunes enfants pendant la nuit.Cependant, le mécanisme d’alerte de ces moniteurs est généralement déclenché surdes informations sonores et non visuelles Or, tous les cris de nuit ne nécessitent pasl’intervention d’un adulte Les dispositifs de surveillance des enfants auraient une plusgrande utilité s’ils sont capables de prendre en compte les informations visuelles etsonores pour déterminer si une alerte a besoin d’être déclencher ou pas
Notre travail s’inscrit dans ce sens afin de proposer une solution de monitoring quiappliquerait des techniques de l’état de l’art de deep learning et de vision par ordi-nateur notamment basés sur les architectures CNN de détection de mouvement et decris
L’organisation de ce documents est la suivante : premièrement nous allons ter l’état de l’art de ce domaine, dans un deuxième temps nous nous concentrions surles solutions théoriques que nous avons retenues, suivi de l’implémentions avec résul-tats et analyses et dans la dernière partie les perspectives et la conclusion
Trang 15présen-CHAPITRE 1 INTRODUCTION GÉNÉRALE
1.1 Présentation de l’établissement d’accueil
Ce stage s’est déroulé au sein de l’entreprise Ifi-solution dans un environnement
multiculturel(asiatique, européen et africain), majoritairement vietnamienne implantédans la capitale vietnamienne, Hanoi
1.1.1 Ifi-solution
Ifi-solution a été créée en 2003 et est devenue membre du Japan NTT Data Group
depuis 2012 Elle fournit des services professionnels d’externalisation de logiciels etest spécialisée dans la mise en œuvre de projets de développement et de test delogiciels pour des clients en France, en Italie, au Japon, en Suisse et en Allemagnedans des domaines technologiques tels que la gestion des bases de données, l’IoT, leslogiciels embarqués, les applications mobiles Ifi-solution est une entreprise dedéveloppement durable réputée à Hanoi
Avec plus de 15 ans d’expérience, Ifi-solution a un engagement élevé dans la lité, elle a réalisé avec succès des centaines de projets dans différents domaines, no-tamment les télécommunications, l’énergie, la santé, l’automobile, la gestion des don-nées, la finance et la banque
qua-Le système de gestion de la qualité et le système de gestion de la sécurité de
l’in-formation de l’entreprise est certifié ISO 9001 : 2015 De nombreuses sociétés comme
Airbus, Nokia, Thales, Toshiba et Panasonic, Docomo leurs ont rendu visite 1
Ifi-solution est pricipalement spécialisée dans les axes suivants :
— Mobile app development
— Front-end web application development
— Back-end (Server) web application development
— Embedded software development
— Software testing (automated testing, manual testing)
1 https ://www.ifisolution.com
Trang 16CHAPITRE 1 INTRODUCTION GÉNÉRALE
1.2 Contexte-objectifs-problématiques
1.2.1 Contexte
Étant donné les faiblesses et capacités limites de l’homme pour assurer une veillance permanente des nourrissons, il est alors primordiale de songer à mettre unsystème intelligent de monitoring basé multimodale, différent des autres systèmes etprenant en compte le sons et la vidéo afin d’aider les parents à surveiller efficacementleur bébé
sur-1.2.2 Objectifs
Les objectifs de ce stage sont entre autre, d’étudier d’abord, l’état de l’art des vaux existants dans la détection des mouvements des bébés en temps réel, pourmieux connaître ce qui existe afin de ne pas refaire les mêmes méthodes puis, sur labase de cette étude, proposer une nouvelle approche plus robuste basé sur lesréseaux de neu-rones convolutifs
tra-On dira que l’objectif principal de ce projet est de développer un prototype de méra intégrée dans un Raspberry Pi, surveillant les activités des bébés pendant leursommeil qui fait la reconnaissance de la voix et celle des mouvements appliquant l’ap-prentissage profond pour la reconnaissance d’activités
ca-Pour récapituler nos objectifs, nous les distinguons en 2 grandes parties :
1 Basé sur le visuel :
— Détection de l’état de sommeil du bébé (position couché)
— Détection de l’état d’éveil du bébé (position assis ou debout)
— Détection de visage couvert de bébé
2 Basé sur audio :
— Détection des pleurs du bébé
1.2.3 Problématiques
Sachant que pour faire de l’apprentissage profond il faut nécessairement un grandvolume de données structuré ou non structuré utilisant des algorithmes complexespour entraîner des réseaux de neurones Comme nous l’avons mentionné dans les ob-jectifs, le travail final doit être intégré dans un Raspberry Pi
Alors, nous nous posons ces questions afin de mieux affiner notre travail :
— Les données sont-elles disponibles ? Il y’a t-il au moins une base de données d’images de références ? Sinon, comment allons-nous les acquérir ?
— Quels traitements après acquisition ?
— Quels algorithmes de détections pour notre problème ?
Trang 17CHAPITRE 1 INTRODUCTION GÉNÉRALE
— Quels critères pour détecter la forme du bébé ?
— Quels systèmes mettre en place pour alerter les parents en temps réel ?
Comment l’associer à l’algorithme de détection choisi
— Quelles architectures de CNN utilisées ?
— Sur quelle base doit se faire le choix du modèle à intégrer dans le Raspberry Pi ? Comment se fait alors son déploiement finale dans le système embarqué ?
Trang 18Chapitre 2
ETAT DE L’ART
La détection d’objets dans les images et les caméras est un sujet dans lequel coup de travails ont été effectué ces dernières années Il consiste à prédire la classed’un objet dans une image (classification) et d’identifier l’emplacement d’un ou plu-sieurs objets dans une image et de dessiner un cadre de délimitation autour de leurétendue (emplacement) De nombreux algorithmes ont été développés pour détecter et/ ou suivre des objets dans les images et les caméras de vidéosurveillance
beau-La détection d’objets est décrite comme un processus pour identifier des objetsd’intérêt dans des séquences vidéo et pour regrouper les pixels de ces objets Ungrand nombre d’algorithmes pour détecter les objets en mouvement, à la fois entermes de techniques de traitement d’image conventionnelles et dans les méthodesplus récentes qui utilisent des réseaux de neurones
Pour les techniques classiques, on peut noter les plus fréquemment utilisés dans lalittérature et qui ont fait leur preuve dans les différentes expériences : La différence de
cadre (Frame Differencing), le flux optique (Optical Flow), le détecteurs de points (Point
detectors) et la soustraction de fond (Background Subtraction) Pour aller plus loin,
consulter [1], [2
2.1.1 Frame Differencing
La différenciation d’image implique la soustraction de l’image vidéo actuelle des imagesprécédentes [3] Dans la différenciation à deux images, les images actuelles et précédentesdans la vidéo sont soustraites et l’image résultante est seuillée Dans la différenciation àtrois images, les images actuelle, précédente et suivante sont considé-rées [4] Ladifférenciation à trois images est une extension de l’approche classique de différenciation àdeux images et améliore les performances globales et la vitesse de dé-tection [4] Lesméthodes de différenciation de trames peuvent être améliorées par des
Trang 19CHAPITRE 2 ETAT DE L’ART
processus de calcul supplémentaires tels que le seuillage automatique ou l’utilisationd’opérateurs linéaires [5], [3] cependant, des problèmes liés à l’occlusion, à l’éclairage
et aux bruits de fond se posent
2.1.2 Optical flow
[6] La méthode de flux optique permet de détecter l’objet en mouvement mêmelorsque la caméra est en mouvement La technique est très sensible aux bruits et re-quiert beaucoup de temps pour sa complexité de calcul Elle ne peut pas détecter lecontour exact de l’objet en mouvement [6] A K Chauhan et al., ont introduit une nou-velle méthode en combinant deux approches de détection de mouvement, le GaussianMixture Model (GMM) utilisé pour le suivi principal de l’objet et l’Optical Flow poursoustraire des images successives en utilisant également des filtres morphologiques etmédians pour éliminer le bruit Dans [7] on estime que les techniques de Flux op-tiquepeuvent être classés suivant deux méthodes : les méthodes locales telles que latechnique de Lucas Kanade ou méthode du tenseur de la structure de Big un, et enméthodes globales telles que l’approche de Horn / Schunck et son extension Les tech-niques locales selon [8] sont souvent plus robustes aux bruits alors que les méthodesglobales génèrent des champs d’écoulement denses Les techniques locales implique
la résolution du vecteur de flux optique en supposant que le vecteur sera similaire à unpetit voisinage entourant le pixel Il utilise une méthode des moindres carrés pondé-réspour estimer le flux optique au pixel (x, y) Cette technique présente de nombreuxavantages [8] Un moyen atypique de surmonter les problèmes posés par lesméthodes de flux optiques différentielles consiste à utiliser des techniques de lissage etdes hypo-thèses de régularité
Les détecteurs de points sont utilisés pour trouver des points utiles dans les imagesqui ont une texture expressive dans leur localités respective [9] Dans [5] ils présententune nouvelle méthode pour détecter les points d’intérêt en utilisant les informations del’histogramme Les détecteurs utilisés dans l’article incorporent des représentations
à base d’histogramme, et peuvent donc trouver des régions d’image présentant unedistribution distincte dans le voisinage Les résultats expérimentaux montrent que lesdétecteurs de points d’intérêt proposés basés sur un histogramme fonctionnent parti-culièrement bien pour les tâches consistant à faire correspondre des scènes texturéesdans des conditions de flou et d’éclairage, en termes de répétabilité et de caractèredis-tinct Plus de précisions concernant les descripteurs locaux et globaux sontdonnées dans les articles [5] et [10]
2.1.3 Background Subtraction
C’est l’une des techniques les plus utilisées dans la littérature Les deux filtres(moyen etmédian) sont les plus largement utilisés pour faire la modélisation en arrière-plan [11] Eneffet, [12] la méthode de soustraction de fond consiste à utiliser la méthode de différence del’image actuelle et l’image en arrière-plan pour détecter les objets en
Trang 20CHAPITRE 2 ETAT DE L’ART
mouvement, c’est-à-dire qu’elle [13] sépare le mouvement dans des images fixes Elledétecte les régions en mouvement en déduisant l’image courante nécessaire, pixel parpixel d’une image d’arrière-plan attribuée [9] Tout changement significatif d’une ré-giond’image par rapport au modèle d’arrière-plan est noté en tant qu’objet en mou-vement.Les pixels dans les régions du changement en cours sont marqués comme des objets
en mouvement et réservés pour un traitement ultérieur Dans [14] Rupali S.Rakibe etal., ont présenté un nouvel algorithme permettant de détecter des objets enmouvement à partir d’un scénario d’arrière-plan statique afin de détecter un ob-jet enmouvement sur la base d’une soustraction d’arrière-plan Les résultats de leurexpérience ont montré que la méthode proposée est rapide, précise et adaptée à la dé-tection simultanée
Les progrès dans le domaine des réseaux neuronaux notamment dans la détectiond’objets ont connu beaucoup d’évolution au cours des dernières décennies et ce, grâce
àde nombreux facteurs et efforts dans le milieu universitaire mais également dans lemonde réel avec des applications telles que : La détection des mouvements, le moni-toring, la vision robotique, la conduite autonome des véhicules et des trains Tout ceprogrès a été possible grâce au large développement de divers réseaux de neuronesconvolutifs profonds et aussi grâce à la forte puissance de calcul des GPU
2.2.1 Convolutional Neural Networks (CNNs/ConvNets)
1Les réseaux de neurones convolutifs sont constitués de neurones qui ont despoids et des biais apprenants Chaque neurone reçoit des entrées, effectue un produitsca-laire et le suit éventuellement avec une non-linéarité L’ensemble du réseauexprime toujours une seule fonction de score différenciable : des pixels d’image brutsd’un côté aux scores de classe de l’autre Et ils ont toujours une fonction de perte (parexemple SVM / Softmax) sur la dernière couche (entièrement connectée)
Les architectures ConvNet font l’hypothèse explicite que les entrées sont desimages, ce qui permet d’encoder certaines propriétés dans l’architecture Celles-cirendent alors la fonction directe plus efficace à mettre en œuvre et réduisentconsidérablement la quantité de paramètres dans le réseau
1 http ://cs231n.github.io/convolutional-networks/
Trang 21CHAPITRE 2 ETAT DE L’ART
FIGURE 2.1 – CNN architecture
2 À gauche : un réseau neuronal à 3 couches Droite : Un ConvNet organise sesneurones en trois dimensions (largeur, hauteur, profondeur), comme visualisé dansl’une des couches Chaque couche d’un ConvNet transforme le volume d’entrée 3D en
un volume de sortie 3D d’activations neuronales
On dira qu’un simple ConvNet est une séquence de couches, et chaque couched’un ConvNet transforme un volume d’activations en un autre grâce à une fonctiondiffé-renciable On utilise généralement trois principaux types de couches pour
construire des architectures ConvNet : la couche convolutif (Convolutional Layer), la couche de mise en commun (Pooling Layer) et la couche entièrement connectée (Fully-Connected Layer) À la fin, on empilera ces couches pour former une
architecture ConvNet com-plète
Couches d’entrée (Input Layer) : c’est la couche dans laquelle nous donnons une
entrée à notre modèle Le nombre de neurones dans cette couche est égal au nombretotal de caractéristiques de nos données (nombre de pixels dans le cas d’une image)
Couche cachée (Hiden Layer) : L’entrée de la couche d’entrée est ensuite
intro-duite dans la couche cachée Il peut y avoir de nombreuses couches cachées en tion de notre modèle et de la taille des données Chaque couche cachée peut avoirdifférents nombres de neurones qui sont généralement supérieurs au nombre de ca-ractéristiques La sortie de chaque couche est calculée par multiplication matricielle de
fonc-la sortie de fonc-la couche précédente avec les poids apprenants de cette couche, puis paraddition de biais apprenants suivis d’une fonction d’activation qui rend le réseau nonlinéaire
Couche de sortie (Output Layer) : La sortie de la couche cachée est ensuite
intro-duite dans une fonction logistique comme sigmọde ou softmax qui convertit la sortie
de chaque classe en score de probabilité de chaque classe
2 http ://cs231n.github.io/convolutional-networks/#pool
Trang 22CHAPITRE 2 ETAT DE L’ART
3 Les données sont ensuite introduites dans le modèle et la sortie de chaquecouche est obtenue, cette étape est appelée feedforward, on calcule ensuite l’erreur àl’aide d’une fonction d’erreur, certaines fonctions d’erreur courantes sont l’entropiecroisée, l’erreur de perte carrée, etc Après cela, on rétropropage dans le modèle encalculant les dérivées Cette étape est appelée rétropropagation, qui estessentiellement utilisée pour minimiser la fonction perte
— La descente de gradient est un algorithme optimal pour minimiser la fonction de
cỏt ou minimiser une erreur Le but est de trouver les minima local-globaux d’une fonction Cela détermine la direction que le modèle doit prendre pour ré-duire l’erreur
FIGURE 2.2 – Gradient descent
— La rétro-propagation est une technique pour améliorer les performances du
ré-seau Il rétropropage l’erreur et met à jour les poids pour réduire l’erreur
3 https ://www.geeksforgeeks.org/introduction-convolution-neural-network/#
4 https ://www.simplilearn.com/deep-learning-interview-questions-and-answers-article
Trang 23CHAPITRE 2 ETAT DE L’ART
Couche de pooling (POOL) 6 Le pooling réduit la taille spatiale d’une image
inter-médiaire, réduisant ainsi la quantité de paramètres et de calcul dans le réseau Il estdonc fréquent d’insérer périodiquement une couche de pooling entre deux couchesconvolutives successives d’une architecture de réseau de neurones convolutifs pourréduire le sur-apprentissage L’opération de pooling crée aussi une forme d’invariancepar translation
La couche de pooling fonctionne indépendamment sur chaque tranche de deur de l’entrée et la redimensionne uniquement au niveau de la surface La forme laplus courante est une couche de mise en commun avec des tuiles de taille 2 × 2 (lar-geur/hauteur) et comme valeur de sortie la valeur maximale en entrée (cf schéma) Onparle dans ce cas de « Max-Pool 2x2 »
profon-5 https ://towardsdatascience.com/build-up-a-neural-network-with-python-7faea4561b31
6 https ://fr.wikipedia.org/wiki/R%C3%A9seaun eur onal c onvol ut i f
Trang 24CHAPITRE 2 ETAT DE L’ART
FIGURE 2.4 – Max pooling avec un filtre 2 × 2
Couches de correction (ReLU) Souvent, il est possible d’améliorer l’efficacité du
traitement en intercalant entre les couches de traitement une couche qui va opérer unefonction mathématique (fonction d’activation) sur les signaux de sortie On a no-tamment la correction ReLU (abréviation de Unité Linéaire Rectifiée) : f ( x ) = m a x
( 0 , x ) f (x) ˘ max(0, x) f (x) ˘ max(0, x).
FIGURE 2.5 – Fonction d’activation : RelU
7 Cette fonction, appelée aussi « fonction d’activation non saturante »,
augmente
7 https ://www.quora.com/What-is-RELU-in-deep-learning
Trang 25CHAPITRE 2 ETAT DE L’ART
les propriétés non linéaires de la fonction de décision et de l’ensemble du réseau sansaffecter les champs récepteurs de la couche de convolution
Couche entièrement connectée (FC) Après plusieurs couches de convolution et
de max-pooling, le raisonnement de haut niveau dans le réseau neuronal se fait viades couches entièrement connectées Les neurones dans une couche entièrementconnec-tée ont des connexions vers toutes les sorties de la couche précédente Leursfonctions d’activations peuvent donc être calculées avec une multiplication matriciellesuivie d’un décalage de polarisation
FIGURE 2.6 – Fonction d’activation : RelU
Ainsi, cette couche prend les données de la couche précédente et calcule lesscores de classe et génère le tableau 1D de taille égale au nombre de classes
reference Il existe plusieurs architectures dans le domaine des réseaux convolutifs.Les plus courants sont 8 :
LeNet Les premières applications réussies des réseaux convolutifs ont été
dévelop-pées par Yann LeCun dans les années 1990 Parmi celles-ci, la plus connueest l’archi-tecture LeNet qui a été utilisée pour lire les codes postaux, les chiffres, etc
AlexNet Le premier ouvrage qui a popularisé les réseaux convolutifs en vision par
ordinateur a été l’AlexNet, développé par Alex Krizhevsky, Ilya Sutskever et Geoff ton L’AlexNet a été soumis au défi ImageNet ILSVRC en 2012 et a surpassé de ma-nière significative le deuxième finaliste (erreur 5% supérieure de 16% par rapport à ladeuxième place avec erreur 26%) Le réseau avait une architecture très similaire à Le-Net, mais était plus profond, plus grand et comportait des couches convolutionnelles
Hin-8 http ://cs231n.stanford.edu/
Trang 26CHAPITRE 2 ETAT DE L’ART
empilées les unes sur les autres (auparavant, il était courant de n’avoir qu’une seulecouche CONV toujours immédiatement suivie d’une couche POOL)
VGGNet Le finaliste de l’ILSVRC 2014 était le réseau de Karen Simonyan et Andrew Zisserman qui est devenu connu sous le nom de VGGNet Sa principale
contribution a été de montrer que la profondeur du réseau est un élément critique pour
de bonnes performances Leur meilleur réseau final contient 16 couches CONV / FC
et, de façon attrayante, présente une architecture extrêmement homogène quin’effectue que des convolutions 3x3 et un pool 2x2 du début à la fin Leur modèle pré-formé est disponible pour une utilisation plug and play dans Caffe Un inconvénient duVGGNet est qu’il est plus cher à évaluer et utilise beaucoup plus de mémoire et deparamètres (140M) La plupart de ces paramètres se trouvent dans la première coucheentièrement connec-tée, et il a été constaté depuis que ces couches FC peuvent êtresupprimées sans dé-gradation des performances, ce qui réduit considérablement lenombre de paramètres nécessaires
ResNet Réseau résiduel développé par Kaiming He et al a été le gagnant de
l’ILS-VRC 2015 Il présente des connexions spéciales et une utilisation intensive de lanorma-lisation par lots L’architecture manque également de couches entièrementconnectées à la fin du réseau
2.2.2 Quelques algorithmes de détection d’objets
Nous étudions dans cette section quelques algorithmes de détection et suivi jets qui ont fait leur preuves dans la littérature
Le R-CNN fonctionne très bien, mais il est vraiment assez lent pour quelques rai-sonssimples Il nécessite une transmission directe du CNN pour chaque proposition de régionpour chaque image Il doit former trois modèles différents séparément : le CNN pourgénérer des caractéristiques d’image, le classificateur qui prédit la classe et le modèle derégression pour resserrer les cadres de délimitation Cela rend le pi-peline extrêmementdifficile à former Ces deux problèmes ont été résolus dans Fast R-CNN [4] par le créateur
de R-CNN lui-même Pour la passe avant du CNN, Girshick s’est rendu compte que pourchaque image, un grand nombre de régions proposées pour l’image se chevauchaientinvariablement, nous obligeant à exécuter le même cal-cul CNN encore et encore Sonpoint de vue était simple : pourquoi ne pas exécuter le CNN une seule fois par image, puistrouver un moyen de partager ce calcul entre les propositions ? C’est exactement ce queFast R-CNN fait en utilisant une technique connue sous le nom de RoIPool (Region ofInterest Pooling) À sa base, RoI Pool par-tage la passe avant d’un CNN pour une image àtravers ses sous-régions Dans l’image ci-dessus, notez comment les entités CNN pourchaque région sont obtenues en sé-lectionnant une région correspondante sur la carte desentités CNN Ensuite, les fonc-tionnalités de chaque région sont regroupées (généralement
en utilisant le
Trang 27regroupe-CHAPITRE 2 ETAT DE L’ART
ment maximal) Donc, tout ce qu’il nous faut, c’est un passage de l’image d’origine Ladeuxième idée de Fast R-CNN est de former conjointement le CNN, le classificateur et
le régresseur de la boỵte englobante dans un modèle unique Là ó auparavant nousavions différents modèles pour extraire les caractéristiques de l’image (CNN), classer(SVM) et resserrer les boỵtes englobantes (régresseur), Fast R-CNN [4] a plutơt utilisé
un seul réseau pour calculer les trois Fast R-CNN a remplacé le classificateur SVMpar une couche softmax au-dessus du CNN pour produire une classification Il ắgalement ajouté une couche de régression linéaire parallèle à la couche softmax poursortir les coordonnées du cadre de délimitation De cette façon, toutes les sortiesnécessaires provenaient d’un seul réseau
La toute première étape pour détecter les emplacements des objets est de générer
un tas de boỵtes de délimitation potentielles ou de régions d’intérêt à tester Dans FastR-CNN, ces propositions ont été créées à l’aide de la recherche sélective, unprocessus assez lent qui s’est avéré être le goulot d’étranglement du processus global
Un R-CNN plus rapide [3] a trouvé un moyen de rendre l’étape de proposition de régionpresque gratuite Le point de vue de Faster R-CNN était que les propositions de régiondépen-daient des caractéristiques de l’image qui étaient déjà calculées avec la passeavant du CNN (première étape de classification) Alors pourquoi ne pas réutiliser cesmêmes résultats CNN pour les propositions de région au lieu d’exécuter un algorithme
de re-cherche sélective distinct ? En effet, c’est exactement ce que l’équipe Faster CNN a réalisé Dans ce modèle, un seul CNN est utilisé à la fois pour effectuer lespropositions de région et la classification De cette façon, un seul CNN doit être formé
R-et nous rece-vons des propositions de région presque gratuitement Comment lesrégions sont-elles générées ? Prenons un moment pour voir comment Faster R-CNNgénère ces propo-sitions de région à partir des fonctionnalités CNN Un R-CNN plusrapide ajoute un réseau entièrement convolutif en plus des fonctionnalités du CNN,créant ce que l’on appelle le réseau de propositions régionales
Trang 28CHAPITRE 2 ETAT DE L’ART
FIGURE 2.7 – Architecture Faster-RCNN
9
Le SSD fonctionne en convertissant des espaces de sortie discrets pour les boỵtesenglobantes en ensembles de boỵtes par défaut pour différents rapports d’aspect etpour chaque emplacement de carte d’entités Lors des prédictions, le modèle génèreles scores dans chaque case par défaut pour chaque objet détecté et met à l’échelle lacase par défaut pour s’adapter à la forme de l’objet Le SSD est plus simple que lesautres réseaux car il effectue tous les calculs dans un seul réseau SSD combine lesprédictions de nombreuses cartes de fonctionnalités ayant des résolutions différentespour gérer des objets de différentes tailles Cela n’implique pas la génération de propo-sitions régionales ou le rééchantillonnage de fonctionnalités comme les réseaux pré-cédents, ce qui facilite la formation et l’intégration dans les systèmes ó la détectionest requise
9 https ://ai.googleblog.com/2019/04/capturing-special-video-moments-with.html
Trang 29CHAPITRE 2 ETAT DE L’ART
FIGURE 2.8 – Architecture comparative entre SSD et YOLO
10
2.3 Comparaison des méthodes utilisées
Nous nous concentrons en premier lieu à faire d’abord une présentation de la vueglobale des algorithmes de détection d’objets (Faster R-CNN et SSD dans notre cas)que nous avons utilisé pour notre travail , ensuite, nous ferons une brève comparaison
de ces algorithmes et enfin, nous parlerons des problèmes auxquels nous avons étéconfronté durant ce projet
Afin de répondre à un de nos objectifs qui est le déploiement de l’un des rithmes dans un Raspberry Pi, la comparaison de ces deux algorithmes se basera
algo-alors sur les aspects : temps de calcul, précision et mémoire occupé.
2.3.1 Faster R-CNN
L’objectif du Faster R-CNN est de sortir un ensemble de boîtes de délimitation dedétection, chacune étiquetée avec une étiquette de classe d’objet Le pipeline complet secompose de deux étapes : la génération et la classification des propositions Premiè-rement, l’image d’entrée est traitée par un ConvNet 2D pour générer une carte d’entités 2D
Un autre réseau 2D ConvNet (appelé réseau de propositions régionales) est ensuite
10 https ://leonardoaraujosantos.gitbooks.io/artificial-inteligence/content/single-shot-detectors/ssd.html
Trang 30CHAPITRE 2 ETAT DE L’ART
utilisé pour générer un ensemble clairsemé de propositions de régions indépendantes
de la classe, en classant un groupe de boîtes d’ancrage à échelle variable centrées àchaque emplacement de pixel de la carte des entités Les limites des propositions sontégalement ajustées par rapport à la régression des cases d’ancrage Deuxièmement,pour chaque proposition de région, les caractéristiques de la région sont d’abord re-groupées dans u ne carte de caractéristiques de taille fixe (c’est-à-dire la mise en com-mun du RoI [15]) À l’aide de la fonction regroupée, un classificateur DNN calcule en-suite les probabilités de classe d’objet et régresse simultanément les limites de détec-tion pour chaque classe d’objet
FIGURE 2.9 – Architecture simplifiée Faster R-CNN
La normalisation par lots (batch normalization) est utilisée dans toutes les couchesconvolutives L’optimiseur utilisé est SGD (stochastic gradient descent) avec une im-pulsion (momentum) définie sur 0,9 Le taux d’apprentissage a été défini selon l’ex-tracteur de caracteristiques
VGG-16 : Le taux d’apprentissage (Learning rate) initial est défini sur 5e-4.
Resnet-101 : Le taux d’apprentissage initial est défini sur 3e-4, nous extrayons des
caractéristiques de la couche finale du bloc conv4, la taille du pas (stride size) est de
16 pixels
Inception Resnet : la taille du pas (stride size) est de 8 le taux d’apprentissage
(Learning rate) est de 1e-3
Trang 31CHAPITRE 2 ETAT DE L’ART
2.3.2 SSD(Single Shot Detector)
L’approche SSD est basée sur un réseau de convolution à action directe qui produitune collection de taille fixe de boîtes englobantes et des scores pour la présence d’ins-tances de classe d’objets dans ces boîtes, suivies d’une étape de suppression non maxi-male pour produire les détections finales Les premières couches de réseau sont baséessur une architecture standard utilisée pour la classification d’images de haute qualité queles auteurs appellent le réseau de base 2 Ils ajoutent ensuite une structure auxi-liaire auréseau pour produire des détections avec les caractéristiques clés suivantes :
Cartes d’entités multi-échelles pour la détection (Multi-scale feature maps for detection) Ils ajoutent des couches d’entités convolutives à la fin du réseau de base
tronqué Ces couches diminuent progressivement de taille et permettent des tions de détections à plusieurs échelles
prédic-Prédicteurs convolutifs pour la détection (Convolutional predictors for tion) Chaque couche d’entités ajoutée (ou éventuellement une couche d’entités exis-
detec-tante du réseau de base) peut produire un ensemble fixe de prédictions de détection àl’aide d’un ensemble de filtres convolutifs Ceux-ci sont indiqués au niveau de l’archi-tecture du réseau SSD à la (Fig.2.10)
Boîtes par défaut et proportions (Default boxes and aspect ratios) On associe
un ensemble de boîtes de délimitation par défaut à chaque cellule de carte d’entités,
pour plusieurs carte de caractéristiques du haut du réseau Les cases par défaut tuilent
la carte d’entités de manière convolutive, de sorte que la position de chaque case parrapport à sa cellule correspondante est fixe À chaque cellule de la carte d’entités, onprédit les décalages par rapport aux formes de boîte par défaut dans la cellule, ainsique les scores par classe qui indiquent la présence d’une instance de classe danschacune de ces boîtes
FIGURE 2.10 – Architecture SSD
11
11 https 1818603644ca
Trang 32://towardsdatascience.com/ssd-single-shot-detector-for-object-detection-using-multibox-CHAPITRE 2 ETAT DE L’ART
La normalisation par lots est utilisée dans toutes les couches et les poids sont tialisés avec un écart-type de 0,03 Les cartes de caractéristiques convolutives ont étéajoutées et toutes utilisées pour la prédiction, les couches convolutives étant ajoutéesavec une résolution spatiale, se désintégrant d’un facteur 2
ini-VGG-16 : la normalisation L2 a été utilisée dans la couche conv4_3, elle a été utilisée
avec les couches fc7 et ajoutée à d’autres couches avec la profondeur 512 et 4 autrescouches avec la profondeur 256.Nous utilisons un taux d’apprentissage initial de 0,003
Resnet-101 : la carte des caractéristiques (feature map) est utilisée à partir de la
der-nière couche du bloc Conv4, les foulées (strides) utilisées sont de 16 Des couchessup-plémentaires sont ajoutées, qui ont des résolutions spatiales respectivement de
512, 256, 256, 266, 256 Un taux d’apprentissage initial de 3e-4 est utilisé
Inception Resnet : le taux d’apprentissage initial est fixé à 0,005 La fonction
d’acti-vation ReLU est utilisée Des couches de convolutions supplémentaires deprofondeur 512,256,128
MobileNet : le taux d’apprentissage initial est fixé à 0,004 La fonction d’activation
ReLU est utilisée
TABLE 2.1 – extracteurs de caracterisques
Model NameVGG-16Resnet-101Inception ResnetMobileNet
12
12 https ://arxiv.org/abs/1907.09408
Trang 33CHAPITRE 2 ETAT DE L’ART
On remarque dans 2.1 une bonne précision (Accuracy) lorsqu’on combine les tracteurs de caractéristiques, comme le cas de Inception-Resnet, entraînés auparavantsur Imagenet (résultats de l’état de l’art) avec une précision de 0.804% pendant que laprecision de Mobilenet (résultat de l’état de l’art) et VGG-16, Resnet-101 tourne autour
ex-de 0.7%
TABLE 2.2 – Combinaison des modèles
SSD VGG-16
13
Les chiffres figurants dans la Table 2.2 sont les résultats de l’état de l’art On notera que lacombinaison de modèles la plus rapide était SSD MobileNet formée sur une image basserésolution de 300, La combinaison la plus lente était Faster R-CNN Inception Resnetformée sur une résolution de 600 Le modèle le moins précis était R-FCN Mobi-leNet,tandis que le modèle le plus précis était Faster R-CNN Inception Resnet
13 https ://ieeexplore.ieee.org/document/8627998
Trang 34tection model zoo car il était plus facile de travailler avec des modèles déjà formé sur
des bases de données de références et aussi parce que nous ne disposons pas assez
de données pour créer un modèle de ML de A à Z ni de bons matériels pour entraînercorrectement nos algorithmes
3.1 Pourquoi les algorithmes de Tensorflow detection
mo-del zoo ?
Nous pouvons continuer à former un modèle à partir de zéro, mais on finirait tainement par utiliser l’une des architectures de détection d’objets, que ce soit Mask R-CNN, Faster R-CNN, Yolo ou SSD Notre problème est une version simplifiée de ceque ces architectures tentent de résoudre Ce sont des détecteurs d’objets génériquesdont certains prennent en charge plus de 1000 classes alors que nous avons un pro-blème de détection de 3 classes seulement
research/object_detection/g3doc/detection_model_zoo.md