Bienvenu dans le dépot de projet pour l'UE Images, Sécurité et Deeplearning. Ce dépot regroupe notre travail sur le débruitage d'images chiffrées.
Encadrants :
- William Puech (https://www.lirmm.fr/~wpuech/)
- Bianca Jansen van Rensburg (bianca.jansen-van-rensburg@etu.umontpellier.fr)
- Nicolas Dibot (nicolas.dibot@etu.umontpellier.fr)
- Pauline Puteaux (https://paulineputeaux.github.io/)
Participants :
- Ange Clément (ange.clement@etu.umontpellier.fr)
- Erwan Reinders (erwan.reinders@etu.umontpellier.fr)
Nous avons vu en TP que si une image chiffrée était bruitée alors le déchiffrement était rendu difficile. L’objectif de ce projet de corriger une image chiffrée ou secrète qui a été bruitée par débruitage d’images. Nous nous intéresserons particulièrement aux chiffrements par bloc et au partage d’images secrètes basé sur la génération de polynômes comme proposé par Shamir en 1979. Le débruitage pourra se faire dans un premier temps à partir d’approches sans apprentissage profond, et dans un second temps en utilisant les réseaux de neurones convolutifs. Il s’agira d’évaluer et de comparer les résultats obtenus par différentes méthodes.
- Décrire un état de l'art sur le débruitage d’images avec ou sans apprentissage profond.
- Décrire un état de l’art sur le chiffrement d’images par bloc et sur le partage d’images secrètes.
- Choisir une méthode de débruitage sans apprentissage profond et l’implémenter.
- Tester et analyser les résultats obtenus sur une base de données. Proposer une évaluation des résultats obtenus.
- Choisir une méthode basée sur un réseau de neurones convolutifs et l’implémenter. Tester, analyser les résultats obtenus et effectuer une comparaison avec les résultats obtenus précédemment (en utilisant la même base de données).
- Appliquer la méthode sans apprentissage profond et celle utilisant les réseaux de neurones convolutifs (sans réentraîner le modèle) sur une nouvelle base de données et analyser les résultats obtenus.
- Créer une démonstration sous la forme d'un logiciel avec une interface.
Ce projet est fait via Python. Nous avons utilisé GoogleColab comme principal environnement de dévelopement. Nous avons utilisé les librairies :
- - Keras (TensorFlow)
- - OpenCV 2
Ce fichier comporte nos travaux sur les autoencodeurs. En première partie, il y a les premiers jets sur la défiinition d'un modèle grâce à un tutoriel. Ensuite, nous avons effectué des tests nous permettant de mieux comprendre l'architecture et les capacités d'un autoencodeur. Enfin, dans la troisième partie, il y a nos travaux sur les autoencodeurs utilisés dans le projet, ainsi que leurs évaluations et leurs applications.
Dans ce fichier, nous avons mis en place dans un premier temps des fonctions de manipulation d'images [Initialisation] (affichage, chargement d'images, prétraitements potentiels, bruitage). Ensuite, nous avons réutilisé Pycriptodome pour le chiffrement. Nous avons ensuite mis en place des cellules d'exécution, pour enfin mettre en place un Pipeline de traitement [Scenarios > Working Pipeline] depuis lequel on peut définir des cellules d'exécution simplifiées.