Académique Documents
Professionnel Documents
Culture Documents
Réalisé par
KAFRAOUI Yassine
KAMAL Anis
MANAR Alae eddine
Encadré par
Le rapport de projet de fin d’année est un projet en soi. Il est important à retenir que le but
est de faire en sorte que tous les éléments qu’il présente permettent de remettre ensemble et dans
le bon enchainement les différentes composantes du projet
Dédicace
Je dédie ce travail :
Avec tout mon amour et mon affection, je vous souhaite une vie
pleine de bonheur et de réussite et je vous remercie pour votre soutien
durant toutes les périodes difficiles.
Nous remercions tout d’abord Dieu tout puissant de nous avoir permis de
mener à terme ce projet qui présente pour nous le point de départ de notre carrière.
Ainsi, nous tenons à remercier nos encadrants Mr. El Wardani DADI pour
leurs directives précieuses et leurs conseils pertinents qui ont été d’un appui
considérable au cours de ce projet.
Mots Clés:
Abstract
This report is the result of a collective work that we carried out within the framework
of the end-of-year project of the Computer Engineering sector within the National School
of Applied Sciences of Al Hoceima (ENSAH).
This is indeed the development and implementation of an object recognition system
using Deep Learning. First, we carried out a relevant and exhaustive study of different
technologies, guaranteeing the recognition of objects.
In a second place, we presented the main models of neural networks in a
homogeneous way and to justify the choice of the model in which we were particularly
interested.
Subsequently, we developed a mobile application that will allow the user to identify
objects that can be of different categories or the same categories thanks to the camera of
the smartphone in deployment a model pre-trained on Flutter intended for recognition
Objects.
This application is based on Deep Learning, using models included in the Keras
Framework, which have shown interesting recognition results as well as a reduced error
rate. Finally, we designed a system capable of recognizing objects via the Deep Learning
algorithm.
Keywords:
ii
............................................................................................................................................................... 9
5- Prendre la photo avec CameraController : ..................................................................................... 10
6- Afficher l’image avec une Image widget: ........................................................................................ 11
II. Compilation sur l’émulateur d’Android : ..................................................................................... 12
1. Compilation sur le navigateur chrome : .......................................................................................... 12
2) Compilation avec le téléphone :...................................................................................................... 12
3.Compilation de la connexion avec la camera : ................................................................................. 12
II - Connexion du deep learning: ......................................................................................................... 14
1.Entraînement du modèle avec mobileNet: ...................................................................................... 14
2. Obtenir les indices de classe: .......................................................................................................... 14
3)Enregistrer le modèle sous format HDFS: ........................................................................................ 14
4) Convertir le modèle en modèle Tflite: ............................................................................................ 15
5).Convertir le modèle en TFLITE: ....................................................................................................... 15
Partie Flutter :...................................................................................................................................... 16
1) Création du fichier d’enregistrement des noms: ............................................................................ 16
2) Ajout des dépendances: .................................................................................................................. 16
3) Faire les importations nécessaires: ................................................................................................. 16
4) Créer les variables nécessaires : ...................................................................................................... 17
5) Appeler la fonction initState(): ........................................................................................................ 17
6) Créer les fonctions nécessaires pour faire fonctionner notre modèle: .......................................... 17
iii
Liste des figures
Figure 1:Différence entre apprentissage supervisé et apprentissage non supervisé ................................. 10
Figure 2:Apprentissage Semi-Supervisé ...................................................................................................... 11
Figure 3: L’algorithme de k-plus proche voisin ........................................................................................... 12
Figure 4 :Perceptron multicouche ............................................................................................................... 15
Figure 5:apprentissage profound ................................................................................................................ 15
Figure 6:la différence entre Machine learning et Deep learning ................................................................ 16
Figure 7:Extraction des informations d’une image ..................................................................................... 17
Figure 8:DES MODÈLES QUI RECONNAISSENT DE MIEUX EN MIEUX LES PLANTES .................................... 20
Figure 9:Keras .............................................................................................................................................. 21
Figure 10:thrano .......................................................................................................................................... 22
Figure 11:tensorflow ................................................................................................................................... 23
Figure 12:jupyter ........................................................................................................................................... 1
Figure 13:flutter............................................................................................................................................. 1
Figure 14:dart ................................................................................................................................................ 2
Figure 15 : Diagramme de cas d'utilisation ................................................................................................... 6
Figure 17 : l’icône de l’application flutter sur le téléphone ........................................................................ 13
Figure 16: La première interface ................................................................................................................. 13
Figure 18 : Commande pour enregistrer le modèle sous format HDFS ...................................................... 15
Figure 19 : Commande pour convertir le modèle a un modèle Tflite ......................................................... 15
Figure 20 :(Suite) Commande pour convertir le modèle a un modèle Tflite .............................................. 15
iv
Liste des tableaux
Tableau 1 : Comparaison entre les capacités du cerveau humain et l'ordinateur………………………1
v
Introduction général
De nos jours, il existe des ordinateurs capables d’effectuer des tâches faites par l’homme, qui
demandent de l’intelligence. Malgré tout ce progrès, la machine est toujours située à des années
lumières du cerveau humain si comparaison a eu lieu entre les deux.
Ceci est dû principalement à la complexité des tâches que nous cherchons à automatiser ainsi
la méconnaissance de cerveau, cet organe mystérieux, et des mécanismes qui régissent directement
l'activité de celui-ci.
S’investir dans le domaine de la reconnaissance des images est sans doute motivé par la
multiplicité et la variété des champs d’application (outils destiné pour les aveugles, médecine).
En vision par ordinateur on désigne par détection d'objet (ou classification d'objet) une
méthode permettant de détecter la présence d'une instance (reconnaissance d'objet) ou d'une classe
d'objets dans une image numérique. Une attention particulière est portée à la détection de visage et
la détection de personne. Ces méthodes font souvent appel à l'apprentissage supervisé et ont des
applications dans de multiples domaines, tels la recherche d'image par le contenu ou la vidéo
surveillance.
Depuis 2011, le challenge PlantCLEF met en avant les progrès des modèles d’identification
reposant sur l’apprentissage automatique appliqué à la botanique. L’arrivée des réseaux de
neurones convolutionels (CNN) a permis de nettes avancées.
Identifier une plante peut être complexe, même pour un botaniste. L’idée d’utiliser des outils
d’identification automatique à base de machine learning a été proposée dès 2004.
Il existe aujourd’hui plusieurs applications d’identification de la flore à partir d’images prises
avec un smartphone comme Seek, PlantSnap, PictureThis ou Pl@ntNet
.
6
Chapitre 1. Présentation Générale du projet de la reconnaissance
d’objets
I. Introduction
Les chercheurs essaient d'injecter des notions d'intelligence humaine dans des
machines. Étant conçue et fabriquée par l'homme, on qualifie l’injection des notions
d’intelligence humaine dans des machines comme une intelligence artificielle.
Cette dernière est souvent définie comme une science de développement des
systèmes capable d'accomplir des tâches qui nécessitentl'intelligence.
Depuis les débuts de l'IA dans les années 1950, ce domaine de recherche s'est enrichit
avec des nombres incalculables de recherches et d’expériences qui ont était fait dans les
derniers 60 ans.
Aujourd'hui, il existe des ordinateurs capables de résoudre des équations et des
problèmes en quelques millisecondes, dont l'homme était incapable de résoudre il y a 100
ans, il existe des ordinateurs capables de mener une discussion avec un être humain, qui
sont capables de répondre à des questions; il y a même des ordinateurs capables de
reconnaître son "propriétaire" juste par la voix.
Effectivement, grâce à l'IA, il existe aujourd'hui des ordinateurs et des systèmes
capablesde réaliser des tâches incroyables.
Mais cette "intelligence" vient d'une source commune: l'homme, qui a transmis à
ces ordinateurs ses propres capacités; c'est sûrement un des développements le plus
important dans l'histoire moderne de l'humanité et qui continue à nous révolutionner la
façon de vivre.
7
En général, l'objectif de l'apprentissage automatique est de comprendre la structure
des données et de les intégrer dans des modèles qui peuvent être compris et utilisés par
les tout le monde.
2. L'apprentissage supervisé
L'apprentissage supervisé (supervised learning en anglais) est une technique
d'apprentissage automatique où l'on cherche à produire automatiquement des règles à
partir d'une base dedonnées d'apprentissage contenant des « exemples ».
Prenons le cas de la reconnaissance d’objets : un problème supervisé correspond au
cas où le label « voiture » est bien associé, en base, à des photos de voitures, le label «
chat » à des photos de chat, etc.
8
classifié correctement les exemples, il peut ensuite généraliser ce classement à des
nouvelles données : classifiercorrectement des images de voiture ou de chat qu’il n’a
jamais vues durant la phase d’apprentissage.
9
Figure 1:Différence entre apprentissage supervisé et apprentissage non supervisé
1.2. Clustering semi-supervisé : Clustering des données sans labels en s'aidant des
données avec labels ou paires de contraintes
10
Figure 2:Apprentissage Semi-Supervisé
11
Dans la classification ou la régression, l'entrée consistera en les k exemples
d'entraînement les plus proches dans un espace.
Lorsque nous choisissons k = 3, l'algorithme trouvera les trois plus proches voisins
de la sphère verte afin de le classer soit dans la classe des ronds, soit dans la classe des
carrés.
Dans notre diagramme, les trois plus proches voisins de la sphère verte sont un carré
et deux ronds. Par conséquent, l'algorithme classera la sphère avec la classe des ronds.
2. Arbre de décision
Pour un usage général, les arbres de décision sont utilisés pour représenter
visuellement les décisions et montrer ou éclairer la prise de décision. Lorsque vous
travaillez avec l'apprentissage automatique et l'exploration de données, les arbres de
décision sont utilisés comme modèle prédictif. Ces modèles cartographient les
observations de données et tirent des conclusions sur la valeur cible des données.
L'objectif de l'apprentissage par arbre de décision est de créer un modèle qui prédira
la valeur d'une cible en fonction de variables d'entrée. Dans le modèle prédictif, les
attributs des données qui sont déterminés par l'observation sont représentés par les
branches, tandis que les conclusions sur la valeur ciblée des données sont représentées
dans les feuilles.
Il faut noter qu'il existe d'autres méthodes d'apprentissage automatique pour la
prédiction tel que le réseau de Bayes, SVM, etc. De plus, une grande classe des méthodes
12
d'apprentissage automatique dédiée à la description des données tel que classification
hiérarchiques, k-mean, etc.
Le Cerveau L’ordinateur
Nombre des unités de 1011 109
traitement
Type des unités de traitement Neurones Transistors
Type de calcule En parallèle En série
Stockage de données Les adresses basées
Temps de commutation 10-3 par s 10-9 par s
3.1 Concept
13
Un réseau de neurones artificiels, où réseau neuronal artificiel, est un modèle de
calcul dont la conception est très schématiquement inspirée du fonctionnement des
neurones biologiques.
Ces réseaux ont été développés pour résoudre des problèmes:
De contrôle.
De reconnaissance
De formes.
De décision.
De mémorisation.
14
Figure 4 :Perceptron multicouche
4.1 Historique
Le concept de Machine Learning date du milieu du 20ème siècle. Dans les années
1950, le mathématicien britannique Alan Turing imagine une machine capable
d’apprendre, une « Learning Machine ».
Au cours des décennies suivantes, différentes techniques de MachineLearning ont été
développées pour créer des algorithmes capables d’apprendre et de s’améliorer de
manière autonome, et parmi les principales technologies de Machine Learning et
d’intelligence artificielle
On cite. Le Deep Learning, ou apprentissage profond.
4.2 Définition
4.3 Fonctionnement
Au sein du cerveau humain, chaque neurone reçoit environ 100 000 signaux
électriques des autres neurones. Chaque neurone en activité peut produire un effet
excitant ou inhibiteur sur ceux auxquels il est connecté. Au sein d’un réseau artificiel, le
principe est similaire. Les signaux voyagent entre les neurones.
Toutefois, au lieu d’un signal électrique, le réseau de neurones assigne un certain
poids à différents neurones. Un neurone qui reçoit plus de charge exercera plus d’effet
sur les neurones adjacents. La couche finale de neurones émet une réponse à ces signaux.
Évidemment, le Deep Learning utilise une approche des petits calculateurs
artificiels reliés entre eux. Ils ont un fonctionnement pratiquement similaire à la fonction
des neurones de notre cerveau. C’est pourquoi, ils forment un « réseau neuronal » qui
reçoit une entrée l’analyse, prend une décision à ce sujet et est informé si sa détermination
est correcte.
Dans l’hypothèse où la réponse est fausse, les connexions entre les neurones sont
ajustées par l’algorithme. Et par conséquent va changer ses prévisions futures.
Initialement, le réseau sera erroné plusieurs fois.
Mais comme nous alimentons en millions d’exemples, les connexions entre les
neurones seront réglées de sorte que le réseau neuronal rend des décisions correctes sur
presque toutes les occasions.
Grâce à ce processus, avec une efficacité croissante nous pouvons maintenant :
16
Reconnaître les éléments en images,
Traduire entre les langues en temps réel,
Utiliser la parole pour commander des appareils (Google Apple et
maintenant, Amazon Alexa et Microsoft Cortana),
Prédire comment la variation génétique effectuera la transcription
d’ADN,
Analyser le sentiment dans les évaluations des clients,
Analyser les mauvais comportements en voiture,
Détecter des tumeurs dans des images médicales.
4.4Exemple
Pour pouvoir identifier les chats sur les photos, l’algorithme doit être
en mesure de distinguer les différents types de chats, et de reconnaître
un chat de manière précise quel que soit l’angle sous lequel il est
photographié.
17
Afin d’y parvenir, le réseau de neurones doit être entraîné. Pour ce
faire, il est nécessaire de compiler un ensemble d’images d’entraînement
pour pratiquer le Deep Learning.
5. Conclusion
19
Chapitre 2: Présentation du projet et des outils de
travail
I. Présentation du projet
1. présentation du sujet
Le travail de thèse présenté ci-après et intitulé « Analyse d’images
des fleurs par méthode de Deep Learning». Celui-ci fait appel à
l’intelligence artificielle ainsi qu’aux systèmes de vision afin d’avoir une
bonne reconnaissance des fleurs.
20
L’ensemble du monde végétaux est estimé à plus 360 000 espèces
dans le monde. Il est difficile pour une personne ordinaire de connaître
les différentes espèces de ces plantes.
SOLUTION APPORTÉE
1.1 Keras
Figure 9:Keras
Keras est une API de réseaux de neurones de haut niveau, écrite en Python et
capable de fonctionner sur TensorFlow ou Theano. Il a été développé en mettant
21
l'accent sur l'expérimentation rapide. Être capable d'aller de l'idée à un résultat
avec le moins de délaipossible est la clé pour faire de bonnes recherches.
Il a été développé dans le cadre de l'effort de recherche du projet ONEIROS
(Open-ended Neuro-Electronic Intelligent Robot Operating System), et son
principal auteur et mainteneur est François Chollet, un ingénieur Google. En 2017,
l'équipe TensorFlow de Google a décidé de soutenir Keras dans la bibliothèque
principale de TensorFlow.
Chollet a expliqué que Keras a été conçue comme une interface plutôt
quecomme un cadre d'apprentissage end to end. Il présente un ensemble
d'abstractions de niveau supérieur et plus intuitif qui facilitent la configuration
des réseaux neuronaux indépendammentde la bibliothèque informatique de
backend. Microsoft travaille également à ajouter un backend CNTK à Keras aussi
Pourquoi Keras?
Léger et rapide: Keras est conçu pour éliminer le code standard. Quelques
lignes de code Keras atteindront beaucoup plus que le code Tensorflow
natif. Vous pouvez facilement concevoir CNN et RNN et pouvez les
exécuter sur GPU ou CPU.
Gagnant potentiel émergent: Keras est une API qui fonctionne sur un back-
end. Ce back-end peut être Tensorflow ou Theano. Microsoft travaille
également à fournir CNTK en tant que back-end à Keras.
1.2 Theano
Figure 10:thrano
22
1.3 TensorFlow
Figure 11:tensorflow
TensorFlow est un Framework de programmation pour le calcul numérique qui
a été rendu Open Source par Google en Novembre 2015.
Depuis son release, TensorFlow n’a cessé de gagner en popularité, pour devenir
très rapidement l’un des Framework les plus utilisés pour le Deep Learning et donc
les réseaux de neurones.
Son nom est notamment inspiré du fait que les opérations courantes sur des
réseaux de neurones sont principalement faites via des tables de données
multidimensionnelles, appelées Tenseurs (Tensor).
Un Tensor à deux dimensions est l’équivalent d’une matrice. Aujourd’hui, les
principaux produits de Google sont basés sur TensorFlow: Gmail, Google Photos,
Reconnaissance de voix.
23
1.4 Jupyter
Figure 12:jupyter
Jupyter est une application web utilisée pour programmer dans plus de 40 langages
de programmation, dont Julia, Python, R, Ruby ou encore Scala1.
Jupyter est une évolution du projet IPython. Jupyter permet de réaliser des
notebooks, c'est-à-dire des programmes contenant àla fois du texte en réduction et du
code en Julia, Python, R... Ces notebooks sont utilisés en science des données pour
explorer et analyser des données.
1.5 FLUTTER
Figure 13:flutter
1
La première version de Flutter était connue sous le nom de code "Sky" et fonctionnait
sur le système d'exploitation Android.
Elle a été dévoilée lors du sommet des développeurs Dart de 20153, avec l'intention
déclarée de pouvoir effectuer un rendu cohérent à 120 images par seconde4.
Lors du discours d'ouverture des Google Developer Days à Shanghai, Google a
annoncé la sortie de Flutter Release Preview 2 qui est la dernière grande version avant
Flutter 1.0.
Le 4 décembre 2018, Flutter 1.0 a été publié lors de l'événement Flutter Live, ce qui
représente la première version "stable" du Framework.
Le 11 décembre 2019, Flutter 1.12 a été publié lors de l'événement Flutter
Interactive5.
Le 6 mai 2020, le SDK de Dart en version 2.8 et celui de Flutter en version 1.17.0
sont sortis. La prise en charge de l'API Metal a été ajoutée, améliorant les performances
des appareils iOS (environ 50 %), de nouveaux widgets Material et de nouveaux outils de
suivi de réseau.
Le 3 mars 2021, l'équipe de développement de Flutter a annoncé la release de son
SDK en version 2.0.0. De nombreux bugs et problèmes de jeunesse ont par cette occasion
été résolus (ajout de null safety par exemple). De plus, l'utilisation de Windows, Linux et
la version Web sont ajoutés à la release.
Figure 14:dart
2
Dart est un langage de programmation optimisé pour les applications sur plusieurs
plateformes. Il est développé par Google et est utilisé pour créer des applications mobiles,
de bureau, de serveur et web.
Dart est un langage orienté objet, basé sur la classe, récupérateur de mémoire avec
une syntaxe de type C1. Dart peut se compiler en code natif ou en JavaScript. Il prend en
charge les interfaces, les mixins,les classes abstraites, les génériques réifiés et l' inférence
de type2.
3
Chapitre 3. Étude du projet :
I. Contexte du projet:
L’ensemble du monde végétaux est estimé à plus 360 000 espèces dans le monde. Il
est difficile pour une personne ordinaire de connaître les différentes espèces de ces
plantes.
Il est aussi important de connaître que la différence d’une espèce à une autre peut
résider à des détails minime tels que des bourgeons, des épines qui peuvent échapper à
l’œil de certain expert.
Notre application va donc permettre grâce à une photo prise sur son smartphone de
détecter le nom de la plante.
4
permettant d’avoir une idée sur la répartition des plantes dans l’espace, leur évolution et
ainsi de suite.
5
IV - Modélisation :
6
Chapitre 4. Réalisation du projet :
I. Connexion de camera :
Pour la réalisation de notre projet, nous avons besoin de connecter la camera du
smartphone pour prendre des photos. Le framework flutter contient des plugins
permettant d’obtenir une liste des appareils photos disponible, afficher un aperçu
provenant d’un appareil photo spécifique et prendre des photos ou des vidéos.
Afin de réaliser cela nous devons suivre les étapes suivantes :
7
2 – Obtenir la liste des cameras disponible :
Pour obtenir la liste des caméras, nous devons procéder aux étapes suivant :
8
4 – Utilisez cameraPreview pour afficher le flux de la caméra :
9
5- Prendre la photo avec CameraController :
Nous pouvons utiliser le CameraController pour prendre des photos à l'aide de la
takePicture()méthode , qui renvoie une XFile, une Fileabstraction simplifiée multi
plateforme .
Sur Android et IOS, la nouvelle image est stockée dans leurs répertoires de cache
respectifs, et le path à cet emplacement est renvoyé dans le fichier XFile.
Dans cet exemple, créez un FloatingActionButtonqui prend une photo en utilisant le
CameraController lorsqu'un utilisateur appuie sur le bouton.
Prendre une photo nécessite 2 étapes :
- Assurez-vous que la caméra est initialisée- Utilisez le contrôleur pour prendre une
photo et assurez-vous qu'elle renvoie un fichier Future<Xfile>.
10
6- Afficher l’image avec une Image widget:
Si la photo est prise avec succès, nous pouvons alors l’afficher à l’aide d’un Image
Widget. Dans ce cas l’image est stockée sous forma de ficher sur l’appareil.
Compilation du code :
Pour la réalisation de notre application, nous avons utilisé Visual Studio Code
comme éditeur. Cette éditrice est le mieux adapté pour réaliser des applications avec
11
flutter.
Nous avons installé les plugins permettant de compiler directement sur l’éditeur.
Ces plugins vont nous permettre d’optimiser notre travail en nous évitant d’ouvrir
Android studio.
Le plugin en question est flutter. Ce dernier installe aussi le plugin dart.
Avec le Framework flutter, nous avons trois mode de compilation qui sont :
12
connecter.
Par la suite attendre que la compilation se fasse. Nous avons remarqué après la
compilation, l’icône de l’application flutter sur le téléphone
13
II - Connexion du deep learning:
Il est à savoir que le code de deep learning est déjà disponible. Il s’agit d’un code
python permettant de faire la détection des fleurs par une image.
Pour pouvoir faire la connexion du deep leaning avec la photo prise par la caméra
nous devons suivre les étapes suivantes:
14
Figure 18 : Commande pour enregistrer le modèle sous format HDFS
15
Partie Flutter :
16
modèle, et le package qui permet de traiter les images.
17
_outputs est une liste de probabilité la plus appropriée de la prédiction, le premier
élément aura la probabilité la plus élevée
Ainsi -outputs [0] sera le résultat.
18
Conclusion générale :
Ce rapport présente le résultat d'un travail soutenu et assidu qui s'inscrit dans le cadre
de la réalisation d'un projet de fin d'année.
Dans ce projet nous avons réalisé un système de reconnaissance des fleurs en utilisant
le Deep Learning.
Nous avons développé, une application mobile pour la reconnaissance des objets en
utilisant un modèle python.
Ce projet nous a donnée l’opportunité d’apprendre le Framework Flutter qui est un
Framework d’actualité.
Cette expérience nous a permis d’appliquer les connaissances qui nous ont été
inculquées au cours de notre formation Ingénieur d’État en Génie Informatique à l’École
Nationale des Sciences Appliquée Al-Hoceima.
Aussi, ce travail constituait pour nous l’occasion de découvrir et d’utiliser de
nouveaux outils afin d’exploiter nos connaissances acquises et d’apprendre à produire
des applications informatiques de qualité.
19
Bibliographie :
https://dataanalyticspost.com/modeles-reconnaissent-mieux-en-mieux-les-plantes/
https://tel.archives-ouvertes.fr/tel-03022934/document
https://fr.wikipedia.org/wiki/D%C3%A9tection_d%27objet
https://www.kaggle.com/rajmehra03/flower-recognition-cnn-keras consulté le 15/05/2021
https://www.numerama.com/tech/281269-lapplication-plantnet-le-shazam-des-plantes-et-des-
fleurs.html consulté le 20/06/2021
https://www.inovex.de/blog/tensorflow-mobile-android-app/consulté le 21/06/2021
https://medium.com/analytics-vidhya/run-cnn-model-in-flutter-10c944cadcba consulté le
21/06/2021
http://stackoverflow.com consulté le 18/06/2021
https://www.grss-ieee.org/wp-content/uploads/2009/phdTheses/Erus_These_250608.pdf
consulté le 01/04/2021
https://deeplearning4j.org/ consulté le 06/06/2021
https://tel.archives-ouvertes.fr/tel-00932263/document consulté le 20/05/2021
https://spring.io/tools/sts consulté le 06/06/2021
http://ramok.tech/2017/12/13/java-digit-recognizer-with-convolutional- neural-
networks/#Putting_all_together consulté le 01/06/2021
http://www.fredzone.org/naissance-et-evolution-de-lintelligence-artificielle-002 consulté le
15/04/2021
http://cache.media.eduscol.education.fr/file/ISN_Tle_S/23/8/lyceeGT_ressource_ISN_27_06
_ Tle_ S_01_introduction_219238.pdf consulté le 15/05/2021
http://histoire3d.siggraph.org/images/6/69/ImNu-CHTS-Pau-93.pdf consulté le 20/05/2021
Tinne Tuytelaars & Krystian Mikolajczyk. Local invariant feature detectors : a survey.
Found.
Trends. Comput. Graph. Vis., vol. 3, no. 3, pages 177–280, July 2008.
C. Harris & M. Stephens. A Combined Corner and Edge Detector. In Proceedings of the 4th
Alvey Vision Conference, pages 147–151, 1988.
P. R. Beaudet. Rotationally invariant image operators. In Proceedings of the 4th International
Joint Conference on Pattern Recognition, pages 579–583, Kyoto, Japan, nov 1978.
20
Jiri Matas, Ondrej Chum, Martin Urban & Tomás Pajdla. Robust wide baseline stereo from
maximally stable extremal regions. In British Machine Vision Conference, volume 1, 2002.
Laurent Itti, Christof Koch, E Niebur & Others. A model of saliency-based visual attention
for rapid scene analysis. IEEE Transactions on pattern analysis and machine intelligence, vol.
20, no. 11, pages 1254–1259, 1998.
https://tel.archives-ouvertes.fr/tel-01175465/document consulté le 15/05/2021
21