44 3.42 BOOSTING :Superposition des deux traces d’écriture du patch 2 avec la vidéo 2... Nous ferons d’abord une étude comparative des trackers d’OpenCv ayant donné de bonsrésultats dans
Trang 1INSTITUT FRANCOPHONE INTERNATIONAL
NGASSA TCHOUDJEUH TATIANA
Modélisation dynamique des gestes d’écritures médiévales par vidéo
Mô hình động các cử chỉ viết tay thời trung cổ bằng video
MEMOIRE DE FIN D’ETUDES DU MASTER INFORMATIQUE
HANOI – 2019
Trang 2INSTITUT FRANCOPHONE INTERNATIONAL
NGASSA TCHOUDJEUH TATIANA
Modélisation dynamique des gestes d’écritures médiévales par vidéo
Mô hình động các cử chỉ viết tay thời trung cổ bằng video
Spécialité: Systèmes intelligents et multimédia Code: Programme pilote
MEMOIRE DE FIN D’ETUDES DU MASTER INFORMATIQUE
Sous la direction de: Madame Treuillet Sylvie, Maitre de conférences de l’Université d’Orléans, Laboratoire PRISME (EA 4229) et Monsieur Matthieu Exbrayat, Maitre de conférences de l’Université d’Orléans, Laboratoire d’Informatique Fondamentale d’Orléans (LIFO).
HANOI – 2019
Trang 3J’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 La source 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
NGASSA TCHOUDJEUH TATIANA
Trang 4La rédaction de ce mémoire n’aurait été possible sans l’intervention de certaines personnes Qu’ellestrouvent ici l’expression de nos plus sincères remerciements pour leurs précieux conseils.
Nous tenons tout d’abord à exprimer notre reconnaissance et nos remerciements envers l’Agence sitaire Francophone (AUF) pour nous avoir accordé une bourse d’études de Master Nos remerciementsvont également à l’Institut de la Francophonie pour l’Innovation (IFI), à son administration et au corpsprofessoral pour la richesse et la qualité de leur enseignement et qui déploient de grands efforts pourassurer à leurs étudiants une formation actualisée Nos sincères remerciements au RTR IMAGE (RéseauThématique de Recherche Image) pour l’opportunité qu’il nous a accordé en nous accordant une bourse
Univer-de Master 2 au Laboratoire PRISME L’accueil fut chaleureux et nous avions bénéficié Univer-de bonnes tions de travail tout au long de notre séjour dans ses murs
condi-Nous adressons nos vifs remerciements à Madame Sylvie Treuillet, notre encadrante principale, et à sieur Matthieu Exbrayat, notre encadrant secondaire, pour nous avoir accueilli et intégré au sein de leuréquipe
Mon-Merci pour l’inspiration, leur apprentissage, leur collaboration, leur écoute et leur disponibilité tout aulong de notre stage Nos remerciements vont également à l’ensemble du personnel du laboratoire PRISMEpour son accueil et sa collaboration
Enfin, nous adressons nos plus sincères remerciements à nos parents, pour leur contribution, leur soutien
et leur patience, à tous nos proches et amis (es), qui nous ont toujours encouragé et soutenu au cours de
la réalisation de ce travail
Trang 51 Présentation du projet Graphoscan 1
1.1 introduction 1
1.2 Structure du code Graphoscan 1
1.2.1 Module « L’acquisition » 1
1.2.2 Module « tracking et reconstruction 3D »[11] 3
1.3 Les limites du système 3
1.4 Conclusion 5
2 Etude de trackers 6 2.1 INTRODUCTION 6
2.2 Descripteurs 6
2.2.1 Descripteurs globaux 6
2.2.2 Descripteurs locaux 7
2.3 Algorithmes de suivi 13
2.3.1 Conclusion 22
3 Tests des algorithmes de suivi d’objet 23 3.1 Introduction 23
3.2 Scénarii de tests avec la première vidéo 24
3.3 Scénarii de tests avec la deuxième vidéo 41
3.4 Conclusion 56
4 Recalage de la feuille 58 4.1 Introduction 58
4.2 Homographie[10] 58
4.3 Implémentation du recalage de la feuille 59
4.3.1 Recherche de marqueurs 59
4.3.2 Algorithme de recalage de la feuille 59
4.4 Tests 61
4.5 Conclusion 62
Trang 61 Activités de recherche de l’équipe IMAGE VISION du laboratoire PRISME vi
1.1 Système de stéréovision Graphoscan pour l’acquisition du geste d’écriture[21] 1
1.2 Ordinogramme de l’acquisition synchronsée multi-caméras[13] 2
1.3 Tests réalisés[11] 4
1.4 Caractéristique d’une séquence utilisée pour le test[11] 4
2.1 Exemples d’ondelettes de Haar[3] 7
2.2 Processus d’extraction des fonctionnalités HOG extrait de [12] 8
2.3 Construction de l’espace des échelles[16] 8
2.4 Détection des extrémas[16] 9
2.5 Création de l’histogramme des gradients[16] 9
2.6 Construction d’un motif local binaire et calcule du code LBP extrait de [25] 10
2.7 Image originale, image LBP et Histogramme LBP extrait de [25] 10
2.8 Définition d’une texture 11
2.9 LBP multi-échelle Exemples de voisinages obtenus pour différents couples (P, R) Extrait de [25] 11
2.10 Construction et uniformité d’un motif LBP (a) le motif construit ici est non uniforme, (c) exemple de motifs respectivement uniforme et non uniforme Extrait de [25] 12
2.11 Calcul LBP et CS-LBP descripteur pour 8 pixels voisins Extrait de [25] 12
2.12 Fonctionnement d’AdaBoos Extrait de [6] 16
2.13 Convolution locale extrait de [4] 17
2.14 Architecture du composant de détection Extrait de [22] 19
2.15 Conversion du patch en code binaire[22] 20
2.16 Architecture de TLD[22] 20
2.17 architecture de GOTURN[26] 22
3.1 10 images de la vidéo 1 23
3.2 10 images de la vidéo 2 24
3.3 Patch1 24
3.4 Patch2 25
3.5 Points du suivi avec patch 1 26
3.6 Points du suivi reliés avec le patch1 26
3.7 Superposition des écritures 26
3.8 Points du suivi pour le patch 2 27
3.9 Points du suivi pour le patch2 27
3.10 Superposition des deux traces d’écriture pour le patch2 28
3.11 Points du suivi avec le patch1 29
3.12 Points reliés 30
3.13 Superposition des deux traces d’écriture qvec patch2 30
3.14 Points du suivi pour le patch 2 31
3.15 Points du suivi reliés pour le patch 2 31
Trang 73.16 Superposition des deux traces d’écriture pour le patch2 32
3.17 Points du suivi avec patch1 32
3.18 Points de suivi reliés avec patch1 33
3.19 Superposition des deux traces d’écritures avec le patch1 33
3.20 Points du suivi pour le patch 2 34
3.21 Points du suivi reliés pour le patch 2 34
3.22 Superposition des deux traces d’écriture pour le patch 2 35
3.23 Points du suivi avec le patch1 35
3.24 Points de suivi reliés avec le patch1 36
3.25 Superposition des deux traces d’écritures avec le patch1 36
3.26 Points du suivi pour le patch 2 37
3.27 Points du suivi reliés pour le patch 2 37
3.28 Superposition des deux traces d’écriture pour le patch 2 38
3.29 Points du suivi avec patch1 38
3.30 Points du suivi reliés avec patch1 39
3.31 Superposition des deux traces d’écritures avec patch1 39
3.32 Points du suivi pour le patch 2 40
3.33 Points du suivi reliés pour le patch 2 40
3.34 Superposition des deux traces d’écriture pour le patch2 41
3.35 Patch1 41
3.36 Patch2 42
3.37 Points du suivi du patch 1 avec la vidéo 2 42
3.38 Points du suivi reliés du patch 1 avec la vidéo 2 43
3.39 Superposition des deux traces d’écriture du patch 1 de la vidéo 2 43
3.40 Points du suivi du patch 2 de la vidéo 2 43
3.41 Points du suivi reliés pour le patch 2 de la vidéo 2 44
3.42 BOOSTING :Superposition des deux traces d’écriture du patch 2 avec la vidéo 2 44
3.43 Points du suivi du patch 1 avec la vidéo 2 45
3.44 Points du suivi reliés du patch 1 avec la vidéo 2 45
3.45 Superposition des deux traces d’écriture du patch 1 de la vidéo 2 46
3.46 Points du suivi du patch 2 de la vidéo 2 46
3.47 Points du suivi reliés pour le patch 2 de la vidéo 2 47
3.48 Superposition des deux traces d’écriture du patch 2 de la vidéo 2 47
3.49 Points du suivi du patch 1 de la vidéo 2 48
3.50 Points du suivi reliés pour du patch 1 de la vidéo 2 48
3.51 Superposition des deux traces d’écriture du patch 1 de la vidéo 2 49
3.52 Points du suivi du patch 2 dela vidéo 2 49
3.53 Points du suivi reliés pour le patch 2 de la vidéo 2 50
3.54 Superposition des deux traces d’écriture du patch 2 de la vidéo 2 50
3.55 KCF-HOG : Points du suivi du patch 1 de la vidéo 2 51
3.56 Points du suivi reliés pour du patch 1 de la vidéo 2 51
3.57 Superposition des deux traces d’écriture du patch 1 de la vidéo 2 52
3.58 Points du suivi du patch 2 de la vidéo 2 52
3.59 Points du suivi reliés pour le patch 2 de la vidéo 2 53
3.60 Superposition des deux traces d’écriture du patch 2 de la vidéo 2 53
3.61 Points du suivi du patch 1 avec la vidéo 2 54
3.62 Points du suivi reliés pour le patch 1 de la vidéo 2 54
Trang 83.63 Superposition des deux traces d’écriture du patch 1 de la vidéo 2 55
3.64 Points du suivi du patch 2 de la vidéo 2 55
3.65 Points du suivi reliés pour le patch 2 de la vidéo 2 56
3.66 Superposition des deux traces d’écriture du patch 2 de la vidéo 2 56
4.1 Interprétation géométrique d’une homographie extrait de [10] 59
60figure.4.2 4.3 Feuille d’écriture 60
4.4 10 images de la vidéo 62
4.5 10 images recalées de la vidéo 62
Trang 9Graphoscan est un projet initié par la collaboration entre une paléographe de l’IRHT, un chercheur duLIFO et une chercheuse du laboratoire PRISME La production d’écritures anciennes est un art à la foisvisuel et manuel basé sur la réplication d’un ensemble de signes, de formes et d’images Le rôle des experts
en paléographie consiste en l’étude et le déchiffrage de ces écritures anciennes L’étude de l’évolution del’écriture a conduit les paléographes à s’intéresser de près aux spécialisations des ateliers de copies[29].Ces experts utilisent les traits d’écritures, marques leur permettant de définir la provenance, le contextehistorique ou géographique du texte ancien à analyser[29] L’objectif est de développer un nouvel outilinformatique pour aider le paléographe à analyser le « ductus »1 Contrairement aux travaux existants
en paléographie numérique qui se cantonnent à exploiter le traitement des images et la reconnaissance desformes pour faire de la transcription assistée par ordinateur[29][2] , il s’agit ici d’exploiter la stéréovisionpour accéder à des composantes dynamiques de l’écriture : en observant le geste d’un copiste, il devientpossible d’étudier la relation entre le mouvement de la plume dans l’espace et la trace écrite sur leparchemin, afin de proposer une nouvelle représentation des écritures médiévales Dans la continuité destravaux initiés, ce stage a pour principaux objectifs les points suivants :
1 Recherche bibliographique sur les algorithmes de suivi d’OpenCv
2 Tests des algorithmes de suivi d’OpenCv
3 Implémentation de l’algorithme de recalage de la feuille
Minis-9 ingénieurs, techniciens et administratifs Son champ pluridisciplinaire couvre un large spectre dans ledomaine des sciences pour l’ingénieur incluant : la combustion dans les moteurs, l’énergétique, l’aérody-namique, la mécanique des matériaux, le traitement du signal et de l’image, l’automatique, la robotique.L’équipe IMAGE VISION comprend une quinzaine d’enseignants-chercheurs Ses activités de rechercheconcernent le développement d’outils originaux théoriques et pratiques pour le traitement numérique desimages et la vision par ordinateur autour de plusieurs thèmes illustrés sur la figure 1
Laboratoire d’Informatique Fondamentale d’Orléans (LIFO)
Le Laboratoire d’Informatique Fondamentale d’Orléans (LIFO) est un laboratoire commun à sité d’Orléans et à l’INSA Centre Val de Loire, reconnu par le ministère de l’enseignement supérieur et
l’univer-de la recherche comme équipe d’accueil (EA 4022) Les recherches menées au LIFO concernent la scienceinformatique et les STIC Elles vont de l’algorithmique au traitement des langues naturelles, de l’appren-tissage au parallélisme massif, de la vérification et la certification à la sécurité des systèmes, du Big Dataaux systèmes embarqués Le laboratoire est structuré en cinq équipes : Contraintes et Apprentissage,
1 nombre, ordre et sens d’exécution des traits qui composent une écriture
2 https ://www.univ-orleans.fr/prisme
Trang 10Figure 1 – Activités de recherche de l’équipe IMAGE VISION du laboratoire PRISME.
Graphes et Modèles de Calcul, Sécurité des Données et des Systèmes, Langages Modèles et Vérification,
et Parallélisme Calcul Distribué et Bases de Données Il se compose à ce jour de 44 chercheurs permanents,d’environ 25 chercheurs non permanents et 5 ingénieurs et personnels administratifs
Institut de Recherche et d’Histoire des Textes (IRHT) L’Institut de Recherche et d’Histoire
des Textes (IRHT)3, créé en 1937, est une unité propre de recherche du CNRS (UPR 841), qui se consacre
à la recherche fondamentale sur les manuscrits médiévaux et les imprimés anciens L’histoire des textesécrits dans les principales langues de culture du pourtour méditerranéen, latin, langues romanes, hébreu,grec, copte, syriaque, arabe, y est traitée dans tous ses aspects : supports matériels de l’écrit, écriture
et décoration, contenu textuel, iconographie, diffusion et réception Il compte une centaine de membres,chercheurs, ingénieurs et techniciens, dont deux tiers environ font partie du personnel permanent duCNRS, les autres se partageant entre personnel contractuel et membres associés Le personnel de l’IRHTest réparti en services (administration, bibliothèque et pôle numérique) et sections de recherche, surcinq sites (siège : Centre Félix-Grat, 40 avenue d’Iéna, Paris 16e ; Centre Augustin-Thierry, Orléans/LaSource ; Collège de France ; Institut de France ; Paris-Sorbonne) Dans la première partie de ce rapport,nous présenterons le projet Graphoscan puis les travaux réalisés au cours de ce stage seront organisés entrois parties Nous ferons d’abord une étude comparative des trackers d’OpenCv ayant donné de bonsrésultats dans le problème de suivi d’objets, ensuite nous parlerons du problème de recalage et enfin lamise en relation de la trace écrite de chaque lettre avec la trajectoire 3D de la plume
3 http ://www.irht.cnrs.fr
Trang 11Présentation du projet Graphoscan
Le projet a été précédemment entamé par des étudiants de l’Université Orléans Il avait pour but dedevelopper un système de stéréovision pour enregistrer des vidéos synchronisées sous deux points de vuedifférents du geste d’écriture d’un calligraphe, pour ensuite faire une reconstruction 3D du mouvement
de la plume
Dans la suite, nous décrirons d’abord la structure du projet Graphoscan (matériel et code tique), puis nous présenterons les limites du système existant
Le projet Graphoscan se divise en deux modules :
le système mis en place
Figure 1.1 – Système de stéréovision Graphoscan pour l’acquisition du geste d’écriture[21]
Les deux caméras sont des modèles CM3-U3-13S2C de la famille Chameleon3 Elles ont objectif focale1
de 4 mm, une résolution2 de 1288*964 pixels et une vitesse d’acquisition de 30 FPS3 Le logiciel PGFlyCap2 permet d’acquérir une image et de l’enregistrer en format vidéo ou image
1 la distance comprise entre le foyer du système optique et le plan de formation de l’image sur la surface du capteur CCD de la caméra.
2 le nombre de pixels qui compose l’image de la vidéo
3 Frames per second
Trang 12Le système doit être préalablement calibré à l’aide d’une mire pour permettre la correction des torsions d’images dues à un objectif à courte focale (4 mm) et l’estimation les positions des caméraspour la reconstruction 3D Le calibrage consiste à estimer les paramètres intrinsèques (focale, résolution,distorsions) et extrinsèques (position, orientation) de chaque caméra Ce calibrage est effectuée grâce à
dis-la calibration Toolbox4de MATLAB
L’acquisition est faite via le logiciel développé, codé en C++ et utilisant les librairies OpenCV etFlyCapture2 SDK5(avec l’utilisation de son fichier d’entête flycapture.h), permet de capturer les vidéossynchronisées issues de plusieurs caméras via des connections USB 3, qui sont enregistrées sur ordinateursous forme de fichiers au format avi Le système d’exploitation utilisé est Windows et sur ce dernier
FlyCapture permet de faire deux types d’enregistrement : image ou vidéo Pour rappel, une vidéo est
une succession d’images Sachant que les images de nos caméras ont des distorsions, il est important deles corriger car celles-ci peuvent entrainer un mauvais suivi de la plume plus tard
Le processus d’enregistrement de la vidéo de chaque caméra est résumé par l’ordinogramme de lafigure ci-dessous
Figure 1.2 – Ordinogramme de l’acquisition synchronsée multi-caméras[13]
L’acquisition des vidéos se passe en deux étapes Premièrement, on enregistre les vidéos des caméras
et deuxièment on lit chaque image de vidéo que l’on stocke dans une matrice de pixels Mat C’est surl’objet Mat d’OpenCV que l’on enlève la distorsion dans l’image Imshow est une fonction d’affichage del’objet Mat sous forme d’image Il est important de préciser qu’avec l’outil FlyCapture, nous avons deuxmodes d’acquisition
La synchronisation des caméras s’effectue par le logiciel FlyCapture en utilisant le BusManager Il permet d’abord de détecter le nombre de caméras connectés par la fonction GetNumOfCameras et ensuite d’associer chaque caméra à un guid attribué par le système d’exploitation en utilisant Camera-
FromIndex La détection et l’associaion se font de la manière suivante :
4 http ://www.vision.caltech.edu/bouguetj/calibd oc/
5 codé en C
Trang 13bus_manager.GetNumOfCameras(num_devices) bus_manager.GetCameraFromIndex(i, guid)
ó
— num_devices correspond au nombre de caméras détectées ;
— i correspond à l’indice de chaque caméra ;
— guid correspond à l’identifiant attribué à chaque caméra.
Une fois l’identifiant de caméra obtenu, on connecte celle-ci par la fonction Connect() de l’objet Camera Ensuite on appelle la fonction StartCapture() de ce même objet pour effectuer la capture d’images.
La capture d’images se fait en appelant la fonction RetrieveBuffer de l’objet Camera Celle-ci prend en
entrée une instance de type Image correspond à l’image capturée par la caméra Cette instance doit êtreconvertie en une instance de type Mat manipulée par OpenCv Chaque image subit cette transformationavant d’étre écrite dans une instance de type VideoWriter pour constituer la vidéo de chaque caméra Par
la suite, des corrections des distorsions radiales seront appliquées sur les images des vidéos enregistrées.Une fois les vidéos enregistrées, la seconde phase, concernant le suivi du mouvement de la plume, peutêtre effectuée
1.2.2 Module « tracking et reconstruction 3D »[11]
L’opération de « tracking » consiste à suivre la position de la plume dans chaque vidéo Les deux
séries temporelles de positions obtenues permettent ensuite de reconstruire la trajectoire 3D de la plume
en appliquant le principe de la triangulation
Le tracking a été réalisé en utilisant la bibliothèque OpenCV, et plus particulièrement ses tions des algorithmes KCF et Template Matching Les étudiants ayant entamé ce travail, ont initialementtesté KCF et TLD ILs ont remarqué que TLD était trop lent et ont choisi Template Matching Cesalgorithmes seront présentés en détails dans le chapitre suivant KCF est à ce jour la méthode ayantdonné les meilleurs résultats pour le suivi de la plume Les positions de la plume suivies tout au long de
implémenta-la vidéo sont enregistrées dans un fichier <nom_camera.avi>[13].
La triangulation des positions 3D à partir des positions dans les images est effectuée par la tion triangulatePoints d’OpenCV, en utilisant les paramètres intrinsèques et extrinsèques préalablementestimés lors du calibrage Son prototype est le suivant :
fonc-cv : :triangulatePoints(InputArray projMatr1, InputArray projMatr2, InputArray
projPoints1, InputArray projPoints2, OutputArray points4D) ;
ó
— projMatr1 et projMatr2 sont les matrices de projection des caméras ;
— projPoints1 et projPoints2 sont les listes temporelles obtenues lors du suivi de la plume ;
— points4D est un tableau de taille 4xN array contenant les points reconstruits en coordonnées homogènes.
Une fois les coordonnées des points 3D obtenus, la librairie OpenGL est utilisée pour les afficher dansune vue 3D
Trois critères ont été évalués pour comparer les méthodes KCF et Template Matching :
Trang 141 La déviation moyenne des deux vidéos permettant de mesurer la dipersion des points 2D obtenuslors du suivi Sa formule est la suivante :
1
n
Pn i=1 |x i − x||
ó
— x i correspond à chaque point de la série temporelle ;
— x correspond à la moyenne des points de la série temporelle ;
— n correspond au nombre de points de la série temporelle.
2 Le nombre de frames (images de la vidéo) durant lesquelles le tracking se poursuit correctement
La mise à jour de la position de la plume lors du suivi se fait part la fonction "update" de l’objet
Tracker du module tracking d’OpenCV D’après la documentation d’OpenCV, update retourne true
si la position de l’objet a été trouvée et false en cas d’échec et de sortie du champ de vue Toutefois
l’algorithme de suivi peut retourner "true" et se tromper sur la position de la plume Ce simple
critère ne permet donc pas de détecter une interruption du tracking et ne permet pas de concluresur la qualité du tracking
3 Le temps de calcul du tracking
Le suivi de la plume avec KCF a montré de meilleur résultats que Template Matching pour lescritères précédent Toutefois seul le critère de déviation moyenne est réellement discriminant entre lesdeux méthodes Pour une bloỵte englobante sélectionnée par l’utilisateur, les tests effectués sur chacunedes vidéos ont donné les résultats résumés dansb le tableau ci-dessous
Figure 1.3 – Tests réalisés[11]
Son temps de calcul sur les vidéos gauche et droite étaient respectivment de 8.059 secondes et 10.42secondes tandis que la deuxième méthode donnait 8.13 secondes et 11.409 secondes
Ces résultats ont été obtenus sur des séquences ayant chacune les caractéristiques suivantes :
Figure 1.4 – Caractéristique d’une séquence utilisée pour le test[11]
Par ailleurs, KCF a montré ses faiblesses suite à certains mouvements de la part du calligraphe,présentés ci-après
Trang 151 Les mouvements du calligraphe
Lors de la copie d’un texte, le calligraphe peut être amené à effectuer des mouvements pour desraisons spécifiques Ce dernier peut effectuer des gestes de relaxation du poignet, afin de garder
sa fluidité d’écriture D’autre part, le calligraphe utilisant une plume ou un calame, est amenérégulièrement à tremper celle-ci dans l’encre, ce qui peut donner lieu à des sorties hors du champ devue suivant le positionnement du réservoir d’encre Ces mouvements ou sorties du champ de visiondoivent être détectés pour ne pas perturber le suivi et reconstituer le mouvement de l’écriture dutexte elle-même
2 Les mouvements de la feuille
En écrivant, le calligraphe doit de temps en temps déplacer la feuille pour se repositionner etcontinuer sa rédaction Ce qui entraîne un décalage des positions de la plume, en effet les positionssont exprimées par rapport au coin haut gauche de l’image
Le projet Graphoscan consistait d’une part à la mise en place d’un système de stéréovision et d’autrepart à la reconstruction 3D du mouvement de la plume Cette reconstruction n’est possible qu’après lesuivi de la plume à partir des videos des caméras Cependant des limites sur le suivi de la plume ont étéobservées Le chapitre suivant présentera d’abord d’autres algorithmes de suivi dans OpenCV, ensuiteune étude comparative de ces derniers sera faite Nous ferons encore référence aux algorithmes de suiviTLD et KCF car nous ne pouvons pas nous baser sur les observations précédentes pour déterminer lemeilleur parmi ces algorithmes Ceci s’explique par le fait que les vidéos avec lesquelles nous effectuerons
le suivi n’ont pas été prises dans les mêmes conditions d’éclairage et matériel d’acquisition
Trang 16Etude de trackers
Le premier travail réalisé consiste à étudier d’autres trackers de la bibliothèque d’OpenCV et d’enfaire une comparaison avec des vidéos d’écriture
Un tracker est un algorithme qui permet, une fois un objet identifié sous forme d’une région
rec-tangulaire, de le suivre image par image Les trackers s’appuient sur des descripteurs pour caractériserl’objet et le suivre Ce chapitre présente les descripteurs et trackers d’OpenCv que j’ai étudiés pour mestests
Les descripteurs de caractéristiques dans des scènes dynamiques ou statiques sont un domaine derecherche actif et le plus étudié en vision par ordinateur[24] Ces descripteurs s’appliquent dans lessystèmes de suivi des véhicules et détection de cibles militaires, analyse de la circulation, détection desactions suspectes, détection et suivi des personnes,etc
En vision par ordinateur, on distingue deux catégories de descripteurs : les descripteurs locaux et lesdescripteurs globaux
2.2.1 Descripteurs globaux
Les caractéristiques globales décrivent l’image dans son intégralité Les descripteurs globaux décriventune image en se basant soit sur la couleur, la texture ou la forme
1 Descripteurs couleur La couleur est une caractéristique de base pour la représentation de l’image
et invariant à l’échelle, la translation et la rotation Ainsi, elle est fortement utilisée pour créer desdescripteurs visuels performants Il y a plusieurs types de descripteurs couleurs :
(a) Les histogrammes :Un histogramme est la distribution du nombre de pixels dans une image.Ici, on distingue des sous-types : histogramme RGB, histogramme hue,Distribution de couleurtransformée etc
(b) Moments de couleur et invariants de moments
2 Les descripteurs de textures[15] Pour la recherche et la récupération d’images dans un volume dedonnées, la texture peut être une caractéristique utile Il n’a pas définition formelle de la texture,cependant ce descripteur fournit des mesures des propriétés telles que la finesse, la grossièreté
et régularité Les méthodes statistiques, structurelles et spectrales sont utilisées pour mesurer lespropriétés de texture d’une image[27] Dans cette catégorie de descripteur, on peut citer GLCM(graylevel co-occurrence matrix), le descripteur de Haralick.GLCM est l’un des descripteurs de textureles plus connus de nos jours
Trang 17Les descripteurs globaux ont l’avantage d’être faciles et rapides à calculer et nécessitent généralement peu
de mémoire Néanmoins, ceux-ci sont limités lorsque l’image subit des transformations significatives etsont sensibles à l’occultation Dans la section suivante, nous présenterons des descripteurs qui sont plusrobustes
2.2.2 Descripteurs locaux
Les descripteurs locaux s’attachent à représenter l’objet par un sous-ensemble de points ou de régionssingulières Contrairement aux descripteurs globaux impactés par une occultation même partielle, la mul-tiplicité des caractéristiques offre plus de robustesse à l’occultation d’une partie de l’objet Les applications
de reconnaissance et de suivi d’objet nécessitent souvent des descripteurs invariants au point de vue etaux changements d’éclairage Ainsi, les caractéristiques de l’image sont extraites de ces régions appelées
régions d’intérêts Comme descripteurs locaux, nous pouvons citer Harr-like features, HOG(Histogram
Oriented Gradient), SIFT(Scale Invariant Feature Transform) et LBP(Local Binary Pattern) pour neciter que ceux-ci
Figure 2.1 – Exemples d’ondelettes de Haar[3]
2 HOG(Histogram Oriented Gradient)[12]
L’histogrammes de gradients orientés (HOG) permet de représenter l’apparence et la forme d’unobjet par la répartition des contours selon leur direction Ceci est effectué en divisant l’image encellules et en calculant pour chaque cellule un histogramme des directions du gradient pour lespixels appartenant à cette cellule La concaténation de ces histogrammes forme le descripteur.Les caractéristiques du HOG sont extraites de régions locales de 16 × 16 pixels Histogrammes
de gradients avec 8 orientations sont calculées à partir de chacune des 4 × 4 cellules locales Lesgradients et les orientations sont obtenus en appliquant des filtres Sobel Ainsi, le nombre total decaractéristiques HOG est de 128 = 8 × (4 × 4) et constitue le vecteur de caractéristiques HOG
Ce descripteur est robuste à certains changements géométriques et photométriques (changementslocal d’apparence dans l’image et de position) Les avantages du descripteur HOG ne sont cependantpas suffissantes avec tous les challenges (occulation, illumination, ) rencontrés en suivi d’objets enmouvement Nous présenterons un descripteur présentant encore plus d’atouts que HOG
Trang 18Figure 2.2 – Processus d’extraction des fonctionnalités HOG extrait de [12]
3 Scale-Invariant Feature Transform(SIFT)[re26]
L’algorithme SIFT (Scale Invariant Feature Transform) a été proposé par David Lowe, en 1999pour détecter et décrire des zones d’intérêts (ou caractéristiques locales) dans une image[1] Cetalgorithme a eu un succès très important en vision par ordinateur, ainsi de nombreuses adapta-tions existent L’idée générale de SIFT est de trouver des caractéristiques dans une image qui sontinvariantes à plusieurs transformations : rotation, échelle, illumination et changements mineurs dupoint de vue Cet algorithme se fait en deux étapes
(a) Détection des extrémas dans l’espace des échelles (Scale-space)
La première étape consiste à détecter les points saillants dans l’image Cette étape consiste
à créer l’espace des échelles, calculer des DoG (différences gaussiennes) et localiser les pointsd’intérêt
— Création de l’espace des échelles(scale-space)
L’image est tout d’abord convoluée à différentes gaussiennes dont l’écart-type varie d’unfacteur à 2 Ce qui fournit une série d’images appelée octave illustrée par la figureci-dessous
Figure 2.3 – Construction de l’espace des échelles[16]
Ce procédé est réitéré avec l’image originale de l’octave précédent mais sous-échantillonnée
de moitié et ayant un écart type de 2
— calculer des DoG(différences gaussiennes)
Dans un second temps, pour chaque octave, les différences entre les images gaussiennes(DoG) sont calculées Un point d’intérêt est un extrema du DoG mais aussi des DoG desniveaux au-dessus et au-dessous
Trang 19Figure 2.4 – Détection des extrémas[16]
Tous les points d’intérêt détectés subissent ensuite quelques filtrages visant à éliminerles points les moins contrastés ainsi que les points situés sur une arrête
(b) Génération des descripteurs SIFT
Le descripteur est la caractérisation du comportement de l’image au voisinage des pointsd’intérêt D’abord, les orientations des gradients des pixels voisins du point d’intérêt détectésont calculées Ces orientations sont rangées dans un histogramme L’orientation du pointdétecté correspond au plus haut pic de l’histogramme
Figure 2.5 – Création de l’histogramme des gradients[16]
Les valeurs des histogrammes sont représentées sous la forme d’un vecteur pour chaquefenêtre Le descripteur SIFT est la concaténation de tous ces vecteurs en un seul vecteur Cedescripteur est ensuite normalisé
4 Local Binary Pattern (LBP)[25]
Ce sont des caractéristiques utilisées en vision par ordinateur pour la classification des textures, ladétection et le suivi des objets mobiles dans une séquence d’images Ces descripteurs se basent sur lacomparaison de niveau de luminance du pixel à analyser avec celui de ces proches voisins Ce pixelest caractérisé par la somme pondérée des pixels de son voisinage (code binaire) Selon l’échelle duvoisinage utilisé, certaines zones d’intérêts tels des coins ou des bords peuvent être détectées par cedescripteur Nous verrons dans la suite quelques exemples de motifs binaires locaux
Ce motif consiste à générer un motif binaire pour chaque pixel de l’image à analyser En effet, tousles voisins dans une région de taille R (exemple 3x3) prendront alors une valeur ”1” si leur valeurest supérieure ou égale au niveau de gris de pixel à analyser (central) et ”0” autrement Les pixels
de ce motif binaire sont alors multipliés par des poids (code binaire) et sommés afin d’obtenir uncode LBP du pixel courant On obtient ainsi une image sur 8 bits La figure ci-dessous illustre laprocédure de calcul de LBP sur une fenêtre de taille 3x3
Trang 20Figure 2.6 – Construction d’un motif local binaire et calcule du code LBP extrait de [25]Pour calculer un code LBP dans un voisinage de P pixels, dans un rayon R, on compte simplementles occurrences de niveaux de gris gp plus grands ou égaux à la valeur centrale Ci-dessous la formule
de calcul
LBP P,R =Pp−1
p=0 S(g c − g i) ∗ 2pavec S(x)=
(
1, si x ≥ 0
0, si x < 0
Où g i et g c sont respectivement les niveaux de gris d’un pixel voisin et du pixel central
La figure ci-dessous présente un exemple de calcul de l’opérateur LBP basique sur une image auniveau de gris
Figure 2.7 – Image originale, image LBP et Histogramme LBP extrait de [25]
Plusieurs variantes de la version basique de LBP ont été développées et utilisées pour la classificationdes images texturées, la segmentation et le suivi d’objet en mouvement Dans la suite, nous parlerons
de deux variantes de LBP
(a) LBP multi échelle
Elle est fondée sur le choix du voisinage afin de calculer un code LBP pour pouvoir traiter lestextures à différentes échelles Ainsi, étant donné un pixel de l’image, considéré comme pixel
central de niveau de gris g c , ses ”P” proches voisins, de niveau de gris g p avec p=0, , P-1,sont considérés répartis sur un cercle de rayon ”R” Nous avons donc la texture suivante :
Trang 21Figure 2.8 – Définition d’une texture
La définition des coordonnées des proches voisins se fait à partir du pixel central par laformule suivante[25] :
Le code LBP est obtenu de la même manière que le LBP basique
Nous présenterons dans la suite une version de LBP invariant à la rotation
(b) LBP invariant par rotation
Encore appelé motif binaire uniforme, il est basé sur la notion d’uniformité Celle-ci
permet de représenter les informations de primitives structurelles comme les arêtes (coins)
et les contours[25]
L’uniformité est assurée par 0 ou 2 transitions (01 ou 10) dans un parcours circulaire autour
du pixel central La figure ci-dessous montre un exemple de motif binaire uniforme (10000001
ou 00011000) et non uniforme (00101010)
Trang 22Figure 2.10 – Construction et uniformité d’un motif LBP (a) le motif construit ici est non uniforme,(c) exemple de motifs respectivement uniforme et non uniforme Extrait de [25]
Pour tout pixel (x, y), le calcul du motif est donné par Ojala[23] :
ROR(a,i) correspond au résultat de i décalages circulaires successifs vers la droite des bits
du nombre a (codé sur P bits)
Cette formule quantifie ainsi les statistiques d’occurrence de modèles individuels invariant enrotation correspondant à certaines microcaractéristiques de l’image Ce descripteur permet
de caractériser les textures en utilisant directement l’histogramme des codes binaires.(c) LBP centré symétrique
Il a été développée par Heikkila[25] pour la description des régions d’intérêt Son principe estbasé sur le calcul de la différence des valeurs des pixels symétriquement opposés par rapport
au pixel central ; contrairement au LBP La figure ci-dessous illustre le calcul
Figure 2.11 – Calcul LBP et CS-LBP descripteur pour 8 pixels voisins Extrait de [25]
Trang 23Cette méthode est moins sensible au problème de changement d’illumination, d’ó son lisation pour le suivi d’objet mobile.
uti-Les méthodes de type LBP ont l’avantage d’être faciles à calculer et ont une faible sensibilité auxchangements d’illumination
La sous-section suivante sera consacrée à la description des algorithmes de suivi
Le suivi d’objet est le problème de l’estimation des positions et d’autres informations sur les objets
en mouvement dans les séquences d’images L’objet en mouvement est une zone de l’image quipeut être modélisée par un ensemble d’attributs tel que : les contours, les points d’intérêt, pri-mitives géométriques, centroid, des imagettes ou patchs (fênetre englobante), etc Le suivi d’objetest utilisé dans de nombreuses applications en vision par ordinateur, parmi lesquelles : le domaine
de la surveillance automatique (détecter les activités suspectes ou inhabituelles par l’analyse de latrajectoire d’objet en mouvement dans la scène), la robotique pour la navigation, la reconnaissance
et suivi de visage et la compression, etc
Avant de présenter les trackers d’OpenCV utilisés quelques notions sont d’abord rappelées extraites
de [8]
Rappels de quelques concepts généraux sur le tracking
(a) Modèle d’apparence et modèle de mouvement
Le suivi d’un objet peut être facilité par un prédiction à partir de deux informations tantes : le modèle de mouvement (vitesse et direction du mouvement) et le modèle d’appa-rence (donne les informations sur les caractéristiques de l’objet)
impor-Le modèle de mouvement prédit l’emplacement approximatif de l’objet impor-Le modèle rence peaufine cette estimation pour fournir une estimation plus précise basée sur l’appa-rence
d’appa-L’apparence de l’objet suivi peut extrêmement changer lors des séquences Ceci est dû auxfacteurs tels que le changement de pose, l’éclairage et la déformation[14] Ainsi pour pallier
à ce changement d’apparence, beaucoup de trackers modernes utilisent un classifieur commemodèle d’apparence Ce classifieur est entraỵné directement au cours de la vidéo Le rơle duclassificateur est de classer une région rectangulaire d’une image comme objet ou arrière-plan
Le classificateur prend en entrée un patch d’image et renvoie un score compris entre 0 et 1pour indiquer la probabilité que le patch d’image contienne l’objet Le score est 0 lorsqu’ilest absolument certain que le patch d’image est l’arrière-plan et 1 lorsqu’il est absolumentcertain que le patch est l’objet
Trang 24dé-obtenu à l’issu de plusieurs itérations de l’algorithme de classification Ces itérations sontuniquement nécessaire lors de l’initialisation du tracker pour obtenir un modèle stable.
— Phase de tracking
Le classifieur (modèle) créé à l’initialisation est évalué au niveau d’une région d’intérêt
et pour chaque position une valeur de confiance est obtenue Une carte de confiancesera obtenue et analysée La fenêtre cible est déplacée vers le nouvel emplacement desmaxima Le modèle de mouvement pour l’objet cible permettrait de réduire la fenêtre derecherche Une fois la position de l’objet détectée, le classificateur doit être mis à jour afin
de s’adapter aux changements d’apparence de l’objet cible et aussi pour la distinction del’arrière plan de l’image Ainsi les exemples positifs du classifieur deviennent la régioncible actuelle de l’objet tandis que les les régions environnantes représentent à nouveaules échantillons négatifs
A chaque nouvelle image, la procédure précédente est répétée et le classifieur devientcapable de s’adapter aux changements éventuels d’apparence de l’objet et robuste face àl’arrière plan
La partie qui suit donnera une description des trackers d’OpenCV que j’ai retenus pourmes tests
Quelques trackers d’opencv.
Il est important de préciser que la version 3.4.2 d’OpenCv utilise Haar-like feature pour décrire l’objet
en mouvement
1 Trackers d’OpenCv utilisant la classification
(a) Boosting[6, 7]
Ce tracker est basé sur une version en ligne d’AdaBoost, l’algorithme utilisé par le détecteur
de visage basé sur la cascade HAAR Il suit le principe tel que définit précédemment poureffectuer la classification
i Fonctionnement
Le boosting utilise une classification binaire en ligne pour effectuer le suivi de l’objetcible[6, 7] A chaque étape de la mise à jour du suivi, le modèle d’apparence de l’objet estmis à jour en utilisant l’algorithme Adaboost pour la formation d’une collection de clas-sifieurs faibles Ces classifieurs utilisent pour la phase d’entraînement, le patch donné àl’initialisation comme exemple positif et échantillonne des patchs à proximité de la régiond’objet actuellement suivie comme exemples négatifs.La position de l’objet dans la tramesuivante est ensuite estimée en appliquant le classificateur binaire dans la trame suivante
et choix de l’emplacement le plus probable tel que prédit par le classifieur AdaBoost
Il est important pour nous de présenter comment se fait la mise à jour du tracker avecAdaBoost
ii Algorithme AdaBoost en ligne[6]
L’estimation de la nouvelle position de l’objet suivi se fait en utilisant l’algorithme boost en ligne La définition de certains termes est importante pour la compréhension decet algorithme
d’Ada-— Définitions de termes
Classifieurs faibles :
Trang 25Tout classifieur ayant un taux d’erreur strictement inférieur à 50% sera considérécomme classifieur faible L’hypothèse h faible générée par un tel classifieur ;
Selecteurs :Etant donné un ensemble de M classifieurs faibles avec chacun une
hy-pothèse h, le sélecteur sélectionne uniquement une de ces hyhy-pothèses
h sel (x) =h weak m (x)
Où m est le classifieur faible choisi à partir d’un critère d’optimisation Le sélecteurchoisi parmi les classifieurs faibles celui qui a le plus petit taux d’erreur
Classifieur fort : Le classifieur fort sera une combinaison linéaire de sélecteurs En
plus ce classifieur sera mesuré par sa confiance(conf)
Une fois les termes importants définis, nous pouvons présenter le fonctionnement del’algorithme Adaboost
— Fonctionnement d’Adaboost
Un ensemble fixe de n sélecteurs est initialisé aléatoirement, chacun avec son ensemble
de caractéristiques Lorsqu’on a de nouvelles données d’apprentissage, les sélecteurssont mis à jour Cette mise à jour est faite avec respect du poids d’importance del’échantillon courant La mise à jour des classifieurs faibles peut se faire avec n’im-porte quel algorithme d’apprentissage en ligne Dans OpenCV, l’algorithme utilisé estcelui de EM basé sur l’estimation de la probabilité de distribution d’exemples posi-tifs et négatifs Des hypothèses sont ainsi générées à partir de ces probabilités[6] Leclassifieur faible ayant la plus petite erreur est sélectionné par le sélecteur courant.Cette erreur est estimée à partir des poids des exemples correctement et mal classifiés.Les poids du sélecteurs courant et les poids des exemples sont par la suite mis à jour
et envoyé au sélecteur suivant.Cette procédure est ainsi répétée pour tous les autressélecteurs
La figure suivante décrit le fonctionnement de l’algorithme Adaboost appliqué àchaque frame d’une vidéo lors du tracking boosting
Trang 26Figure 2.12 – Fonctionnement d’AdaBoos Extrait de [6]
(b) MIL(Multiple Instance Learning)
Cet algoritme de suivi est similaire au boosting La grande différence est qu’au lieu de
ne considérer que la boîte englobante comme exemples positifs, ce dernier regarde dans unpetit voisinage autoure de cette boîte de potentiels exemples négatifs
(c) KCF
Le KCF[19] exploite la corrélation des niveaux d’intensité du patch précédemment extrait
à ceux d’une zone de recherche dans l’image courante La nouvelle position correspond àune corrélation maximale Dans un suivi standard basé sur un filtre de corrélation, le modèled’objet suivi n’est pas mis à jour Si l’apparence de l’objet change de manière significative, lesperformances du suivi se dégradent Dans un suivi standard basé sur un filtre de corrélation,
la complexité du calcul est une fonction d’ordre cubique, O(n3) Dans un suivi KCF, lemodèle de l’objet suivi est mis à jour en ligne à l’aide d’un modèle de régression linéaire Deplus, le nombre de calculs est réduit à l’aide des propriétés des matrices circulantes et desfonctions du noyau, jusqu’à un ordre de O(nlog (n)) Dans les sous-sections ci-dessous nousdéfinirons quelques concepts utilisés dans KCF
La régression linéaire :
L’apprentissage automatique a pour objectif de faire des prédictions sur des données.Appliquée au problème de suivi, la prédiction consistera à déterminer la présence ou
l’absence de l’objet suivi dans une séquence donnée Considérons que a iest une
collec-tion d’échantillons d’images et z iprend la valeur +1 si l’objet est présent dans l’image
et la valeur -1 si l’objet n’est pas présent dans l’image Le but de l’apprentissage est
de trouver une fonction g telle que :
La relation ci-dessus devrait également s’appliquer aux données (ai et zi) qui ne sontpas utilisées pendant la phase de d’apprentissage En vision par ordinateur, une mé-thode d’apprentissage couramment utilisée est la minimisation des risques régularisée
Trang 27Où L (g (a i ), z i ) est la perte associée à la prédiction des valeurs n de Z i en utilisant
la fonction de régression g et n valeurs de ai Pour éviter que la fonction de régression
g ne surapprenne uniquement les données d’apprentissage, le terme de régularisationΩ(g) est introduit
Nous ne détaillerons pas trop cette section Pour plus d’informations lire la rence[18]
réfe-Matrices circulantes :
Dans le cas du suivi, la fonction de régression est formée à toutes les versions décalées
de l’échantillon d’entrée a Ceci est fait de manière à augmenter la robustesse de lafonction apprise même dans le cas ó l’objet faisant l’objet du suivi subit une trans-lation Pour un vecteur de dimension m, la matrice circulante C(a) est une matrice
m × m qui consiste en des versions de l’image décalée de manière circulaire La trice circulante a la propriété de pouvoir représenter la convolution Il devient doncimportant pour nous de définir le terme fonction noyau
ma-Fonction noyau : Les fonctions du noyau, comme les fonctions gaussiennes, aident à
évaluer le produit scalaire dans l’espace de la dimension supérieure sans calculer cesvecteurs de la dimension supérieure eux-mêmes Elle se calcule de la manière suivante :
Où I est l’image dont on veut extraire les caractéristiques et la fonction noyau àappliquer à l’image Le schéma suivant illustre le processus
Figure 2.13 – Convolution locale extrait de [4]
Dans la suite nous decrirons brièvement le suivi avec KCF
— Tracking
Au début du tracking, la boỵte englobante correspondant à la position de l’objet suivi estutilisé pour entraỵner le modèle Pour chaque nouveau frame, les informations obtenuessur le boỵte précédente nous permettent pour détecter la position actuel de l’objet Ainsi
le modèle est mis à jour en fonction de cette nouvelle position détectée
Trang 28(d) TLD[22].
Tld est un tracker qui se décompose en 3 phases : le suivi, l’apprentissage et la détection.Celui-ci se base sur l’état de l’objet à suivre pour effectuer le suivi tout au long de la vidéo.Cet état correspond au cadre de sélection de l’objet à suivre dans la première image Dans
la suite, nous décrirons chacune des phases de ce tracker
— Le composant d’apprentissage
Son rôle est d’initialiser le détecteur d’objet dans le premier frame et de le mettre àjour au cours de l’exécution en utilisant les P-expert et N-expert[22] Nous décrirons soninitialisation,les P-experts N-experts
Initialisation :
Dans le premier cadre fourni par l’utilisateur, le composant entraîne le détecteur initial
à l’aide d’exemples labellisés et générés Les exemples positifs sont obtenus à partir
de la boîte englobante de l’objet à suivre Ces exemples sont utilisés pour mettre àjour le modèle Après cette phase d’initialisation, le détecteur d’objet est prêt pourl’exécution et doit être mis à jour par une paire de P-N experts
P-experts :Les P-experts permettre de découvrir de nouvelles apparences de l’objet et
ainsi augmenter la capacité de généralisation d’apparence du détecteur d’objet Ilsexploitent la structure temporelle dans la vidéo et suppose que l’objet se déplacesuivant une trajectoire Le p-expert se souvient de la position de l’objet dans le frameprécédent et estime la position de ce dernier dans le frame courant en utilisant le suivieffectué frame après frame Si le détecteur labellise une position comme négative, lep-expert générera à cette position un exemple positif
N-experts : Ils exploitent la position de l’objet dans la vidéo Ils supposent que l’objet
ne peut apparaître qu’à une seule position Ils analysent toutes les sorties du détecteurdans le frame courant et la réponse produite par le tracker pour générer des exemplesnégatifs
La suite est consacrée à la présentation du composant de suivi de l’objet de TLD
— Le composant de suivi
Le composant de suivi de TLD est basé sur le suivi de Median-Flow étendu avec ladétection d’échec Median-flow représente l’objet par une boîte englobante et estime sondéplacement entre frames consécutives Tld les déplacements d’un certain nombre depoints à l’intérieur de la boîte englobante de l’objet, estime leur fiabilité et vote avec 50%des déplacements les plus fiables pour le mouvement de la boîte englobante en utilisant
la médiane Median-Flow[21] suppose que le suivi de l’objet échoue si l’objet est tement caché ou n’est plus dans le champ de vue
Trang 29Le détecteur scanne l’image (boỵte englobante) en entrée avec une fenêtre pour tion de patches Pour chaque patch, il détecte la présence ou l’absence de l’objet Lesdimensions de la boỵte englobante de l’objet sont prises comme référence pour la fenêtred’extraction de patches Cette fenêtre est prise à des échelle différentes La taille de fe-nêtre minimale pour l’extraction des patches est 20 pixels Comme le nombre de patches
l’extrac-à évaluer est important, la classification de chaque patch doit être très efficace
Ci-dessous l’architecture du composant de détection
Figure 2.14 – Architecture du composant de détection Extrait de [22]
Dans la suite nous décrirons chacun des éléments de ce composant
La variance de patch : est une étape sélective des différents patches générés Ici on
re-jette tous les patchs pour lesquels la variance des valeurs de gris est inférieure à 50%
de la variance du patch sélectionné pour le suivi (boỵte englobante correspondant à laposition de l’objet suivi) Cette partie du composant de détection exploite le fait que
la variance des valeurs de gris d’un patch p peut être exprimée par E(p2) E2(p) et
que la valeur attendue E (p) peut être mesurée en temps constant à l’aide d’imagesintégrales Cette étape rejette généralement plus de 50% des patchs ne contenant pasl’objet suivi On peut définir un seuil de variance ; celui-ci limitera le changementd’aspect maximal de l’objet
Classifieur ensemble :Deuxième étape de la partie détection, l’ensemble de classifieurs
prend en entrée tous les patches ayant été sélectionnés dans l’étape précédente Cetensemble de classifieurs est composé de n classifieurs de base Chaque classifieur exé-cute un nombre de comparaisons de pixels sur chaque patch donnant un code binaire
x, qui indexe un tableau de valeurs postérieures P i(y | x), ó y ∈ 0,1 0 pour dire que
le patch ne correspond pas à l’objet et 1 pour dire que le patch correspond à l’objet
Le patch sera classifié comme objet si la moyenne des P i(y|x) est supérieur à 50% Lafigure suivante nous montre comment est converti un patch en code binaire
Cette étape permet une fois encore de réduire l’ensemble de patches candidats Uneautre étape en vue d’une sélection des patches restantes est effectuée
Classifieur 1-NN : Le modèle en ligne est utilisé pour classifier chaque patch restant
en utilisant le classifieur du plus proche voisin Le patch est classé comme objet si
la mesure de similarité relative entre le patch et le model Sr(p,M) est supérieure à
NN ; avec NN= 0.6 Les patches classés comme objet représentent les réponses dudétecteur
— Le modèle
Le modèle d’objet M est une structure de données qui représente l’objet suivi et son
Trang 30Figure 2.15 – Conversion du patch en code binaire[22]
environnement observé jusqu’à présent Constituée d’une collection de patchs positifs etnégatifs, chaque collection est ordonnée en fonction du moment ó le patch était ajouté
à la collection
La mise à jour du modèle consiste l’ajout de nouveau patch labellisé Ainsi, le patch estajouté au modèle si et seulement si son label estimé par le classifieur du plus proche voisinest différent du label donné par le P-N expert
La figure suivante représente l’architecture du tracker TLD
Figure 2.16 – Architecture de TLD[22]
Algorithmes de suivi d’objets basés sur le deeplearning
Cette sous-section est consacrée à un algorithme de suivi d’objet basé sur un réseau neuronal lutionnel(CNN)
convo-1 GOTURN[26]
GOTURN est le premier tracker de réseau neuronal générique de suivi d’objet capable de s’exécuter
à une fréquence de 100 frames par seconde Pour effectuer le suivi, ce tracker ne nécessite pas unétiquetage au niveau de la classe(type) des objets suivis GOTURN établit un nouveau frameworkpour le suivi dans lequel la relation entre l’apparence et le mouvement de l’objet suivi est connulors de l’apprentissage hors ligne de façon générique
Il est important de montrer l’architecture utilisé dans le tracker goturn pour le suivi d’objet
Trang 31— Architecture du tracker
Pour le suivi d’un seul objet, une architecture de suivi par comparaison d’images est définitelle que décrite dans la figure ci-dessous
Trang 32Figure 2.17 – architecture de GOTURN[26]
Dans ce modèle, l’objet cible(de la frame précédente) et la région de recherche(de la framecourante) sont introduits dans une séquence de couches convolutionnelles Le résultat de cescouches de convolution est un ensemble de caractéristiques qui contiennent la représentation
de l’image
Couches de convolution : Dans ce modèle, les 5 couches de convolution de l’architecture
CaffeNet sont utilisées comme couche de convolution dans ce modèle Les caractéristiques
de ces couches sont concaténées en un unique vecteurs de caractéristiques
Couches entièrement connectées : Ces dernières permettent de comparer les
caracté-ristiques de l’objet cible à celles du frame courant dans le but de trouver la position
de l’objet cible Entre ces deux séquences vidéo, l’objet peut avoir subi une translation,une rotation, un changement d’éclairage, une occlusion ou une déformation.La fonctiond’apprentissage des couches entièrement connectées tient compte de ces facteurs précé-demment cités lors de la comparaison des caractéristiques extraites dans les couches deconvolution pour sortir le mouvement relatif de l’objet cible
Ce vecteur résultant des couches de convolution est l’entrée des 3 couches entièrementconnectées, chacune ayant 4096 noeuds La dernière couche entièrement connectées estreliée à la couche de sortie qui contient 4 noeuds représentant le cadre de sélection ensortie
Le réseau de neurones est implémenté en utilisant Caffe Le modèle utilisé pour ce trackerest déjà pré-entrainé et téléchargeable sur internet Il est important de décrire comments’effectue le tracking de l’objet avec goturn
Trang 33Tests des algorithmes de suivi
d’objet
Nous avons enregistrés des vidéos avec différents stylos Dans cette section, nous voulons voir l’impact
du choix de la boîte englobante sélectionnée initiale sur le suivi de l’objet avec les différents algorithmes
de suivi d’objets précédemment évoqués
Ci-dessous un tableau donnant la liste des algorithmes et descripteurs utilisés pour les tests
Ci-dessous les vidéos utilisées pour nos tests :
Vidéo d’une copiste gauchère : cette vidéo contient 1289 images Ci-dessous 10 images de cette vidéo.
Figure 3.1 – 10 images de la vidéo 1
Trang 34Vidéo d’une copiste utilisant un stylo bille noir : cette vidéo contient 759 images Ci-dessous 10
images de cette vidéo
Figure 3.2 – 10 images de la vidéo 2
Une version de KCF avec les descripteurs HOG a été implémentée par [17] sera utilisée dans les tests.Nous avons essayé d’utiliser GOTURN, mais celui-ci ne donne pas de bons résultats et l’exécution sebloque Nous avons noté au cours du suivi de l’objet une augmentation extrême de la boîte englobante dusuivi Nous pouvons dire qu’il était prévisible que cet algorithme de suivi ne donne pas de bons résultatscar le modèle d’apparence utilisé a été entrainé avec des images ne quadrant pas avec notre contexte
Cette première partie de tests consistera a exécutée nos algorithmes avec deux patches de tailledifférente Tout d’abord voici les deux patches sélections pour nos tests :
Figure 3.3 – Patch1
Trang 35Figure 3.4 – Patch2
1 Boosting/HAAR
Boosting/HAAR
Exécution : Lors de son exécution,
cet algorithme suivait parfaitement
la cible A partir d’un moment, il
ne suivait plus la pointe du stylomais la main Cela peut s’expliquepar le fait que la couleur de cettepointe se confond à la couleur de lamain
Le temps d’exécution obtenu est de
56,52 secondes.
Exécution : Boosting a pu suivre le
stylo sans le perdre de vue dant il s’est exécuté en 74,99 se-condes Ce temps est plus long que
Cepen-le précédent et peut s’expliquer par
le fait que le patch sélectionné ici abeaucoup plus de pixels à traiter
Résultat1 :Nous avons comme résultat du suivi avec le patch1 l’ensemble de points affichésdans une image de même dimension que celle de la figure de la boîte englobante La figureci-dessous représente cette image
Trang 36Figure 3.5 – Points du suivi avec patch 1Lorsque nous relions ces points, nous obtenons l’image suivante :
Figure 3.6 – Points du suivi reliés avec le patch1Nous avons voulu comparer le résultat du suivi avec celle de l’écriture finale laissée par notrecopiste Nous avons juste superposer l’écriture du copiste sur celle du suivi d’ó la figureci-dessous
Figure 3.7 – Superposition des écritures
Nous pouvons remarquer un décalage entre les deux traces d’écritures Ceci est dû au faitque le copiste bouge la feuille de temps en temps Ce décalage sera corrigé dans la sectionsuivante
Trang 37— Résultat2 : A la fin de l’exécution du Boosting avec le patch2, nous avons obtenus les pointssuivants :
Figure 3.8 – Points du suivi pour le patch 2Ces points reliés nous donnent le résultat suivant
Figure 3.9 – Points du suivi pour le patch2
Trang 38Figure 3.10 – Superposition des deux traces d’écriture pour le patch2Cette figure est le résultat de la superposition de l’image du suivi sur l’image écrite par lecopiste.
Trang 392 TLD/HAAR
TLD/HAAR
Exécution : Cet algorithme est très
lent, avec un temps d’exécution de
179,147 secondes.
Exécution : Comme précédemment,
cet algorithme est très lent menter la zone de l’objet de réfé-rence pour le suivi le ralentit encoreplus Il n’arrive pas à suivre le stylodans la vidéo (trop de mauvaisesdétections) Son temps d’exécution
Aug-est de 183,80 secondes.
— Résultat1 : Le résultat du suivi du stylo nous a donné l’image ci-dessous
Figure 3.11 – Points du suivi avec le patch1
La figure ci-dessous, montre l’ensemble des points précédents reliés
Trang 40Figure 3.12 – Points reliésNous constatons que TLD donne de très mauvais résultats pour le suivi du stylo L’algorithmeconfond les images rouges et noires et parfois les cibles des angles du papier La superpositiondes deux traces d’écriture nous donne le résultat suivant :
Figure 3.13 – Superposition des deux traces d’écriture qvec patch2
— Résultat2 : Les figures suivantes sont les résultats obtenus après exécution de TLD :