Skip to content

YohanCaillau/Computer_Vision

Repository files navigation

Computer Vision

Le Computer Vision pré-existait avant le Deep Learning. Des techniques classiques de CV :

  • filtrage

  • détection de traits (bords, coins, objets)

  • segmentation

Pour commencer

Installer Anaconda sur sa machine et travailler en local dans un répertoire que l'on mettra sur github à terme Créer un environnement conda, installer keras, opencv et tensorflow. Les développements se font dans des notebooks Jupyter.

Les datasets

Nous utiliserons 3 datasets :

  • Sign Language Digits: Il s'agit de photos de mains formant les 10 chiffres en langage des signes. Le dataset est disponible ici.

  • Fashion MNIST: Une base d'images de vêtements fournie par Zalando, qui se trouve ici.

  • Galaxy Zoo: Une base d'images extraites du projet Galaxy Zoo. Les données sont volumineuses, elles seront fournies sur clé USB (ou téléchargement : galaxy zoo data).

Test avec OpenCV

Introduction à OpenCV (cv2):

  • Traitement d'une image et transformations: OpenCV.ipynb

Exercice avec OpenCV:

OpenCV_exo.ipynb

  • Pour les images chargées en couleurs BGR, les convertir en HSV et en YUV
  • Choisir 5 images contenant des flammes (exemples : bougie, feu de cheminée, incendie, etc.) et 5 images sans flammes, les sauver dans un sous-répertoire images
  • En utilisant la bibliothèque cv2, appliquer une fonction de changement de taille d'image d'opencv à toutes les images précédentes et sauvegarder les images avec leur nouvelle taille dans le répertoire images avec un suffixe "_resized" et dans un encodage de votre choix (exemples : jpg, png, etc.).
  • Réfléchir à comment utiliser les espaces de couleur pour segmenter les images contenant des flammes pour isoler les zones contenant les flammes
  • Fabriquer des images binaires à partir de la segmentation précédente

Atelier sur le thème de la réduction de la dimensionnalité

Utiliser scikit-learn pour mettre en pratique sur le datasets 1 la méthode suivante :

PCA: PCA.ipynb

Classification d'images sans CNN

Appliquer des SVM au dataset 2 pour la classification. Evaluer la performance de l'algorithme choisi.

SVM: SVM.ipynb

Data Augmentation

Choisir 9 images quelconques de Hand Digits Générer des variantes avec les fonctions de Data Augmentation de Keras: DataAugmentation.ipynb

Voir ImageDataGenerator()

  • Appliquer une translation aléatoire
  • Appliquer une rotation aléatoire
  • Appliquer feature standardization
  • Appliquer le ZCA whitening (des explications ici).

Haar cascade with OpenCV

Lecture sur les cascades de Haar : ici.

Vidéo youtube exlicative pour Haar cascade with OpenCV.

  • Reconnaissance de la face d'un chat à partir de photo: Haar_cascade_catface.ipynb
  • Reconnaissance de la face d'un homme à partir d'une vidéo: Haar_cascade_face_eye_recognition.ipynb et Haar_cascade_face_eye_smile_profile_recognition.ipynb

Transfer learning

Choix d'un modèle sur étagère:

  • CNN_Pretrained_CNN.ipynb sur sign language.

Challenge Galaxy Zoo

Préparation des données

Choix de la classe1, traitement des données, algorithmes de compression des images:

  • Galaxy_zoo_Class1_separation.ipynb: Garder que les données de la classe 1.
  • Galaxy_zoo_Class1_testlibrary.ipynb: Tester la library opencv
  • Galaxy_zoo_Pre_Treatment.ipynb: Crop des images

Application sur un sous-ensemble de Galaxy Zoo:

Modèle CNN:

  • Galaxy_zoo_modelCNN.ipynb: Application à la classe 1 de Galaxy Zoo
  • Galaxy_zoo_GridSearchCV.ipynb: Pour chercher les meilleurs hyperparamètres du modèle
  • Galaxy_zoo_modelCNN_GridSearchParameters.ipynb: Modèle avec les meilleurs hyperparamètres

Transfert learning:

  • Galaxy_zoo_modelCNN-Cancero.ipynb: Modèle utilisé en cancérologie, appliqué aux galaxies
  • Galaxy_zoo_pretrainedCNN.ipynb

Tree classifier:

  • Galaxy_zoo_treeclassifier.ipynb: Arbre de décision, Random forest, Boosting

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published