note de synthèse

publicité
ALLIOT Jean-François
Lycée René Cassin
91290 Arpajon
Du bit à l’algorithme de Sobel
I- Présentation
Ce projet a été réalisé avec une vingtaine d’élèves de terminale S au lycée Cassin d’Arpajon, quasiment tous
débutants en informatique. A travers des activités pédagogiques différentes, il a pour but d’amener les élèves à
proposer un script Python traitant des algorithmes de traitement d’images, plus particulièrement l’algorithme de
Sobel pour la détection des contours.
Ce projet s’est construit avec le partenariat de l’Université d’Evry, qui a proposé la venue d’un enseignant chercheur
en classe qui nous a ensuite reçu dans une salle de TP.
Même si le projet a commencé de manière assez classique avec des apports théoriques qui ont permis aux élèves de
se familiariser avec la notion de transmission de l’information (découverte du codage binaire et des octets, du
codage RVB et de la représentation matricielle des images bitmap), il s’est vite tourné vers un travail par projet :
celui de présenter un algorithme, assez complexe pour des élèves débutants, devant un panel d’enseignants
chercheurs.
Quelques TP ont permis aux élèves de se familiariser avec des algorithmes simples de traitement d’images
numériques exécutés en Python : niveau de gris, négatif, miroir horizontal et vertical. Il leur a fallu bien comprendre
le lien entre la matrice et l’image numérique, chaque coefficient de la matrice étant représenté par un tableau de 3
valeurs codées chacune sur un octet.
Après un travail de recherche, de compréhension de l’algorithme de Sobel, d’écriture du code source et
d’élaboration d’une présentation pour vidéoprojecteur, un groupe a été désigné pour présenter le projet fini à
l’université d’Evry.
II- L’algorithme de Sobel
L’algorithme de Sobel utilise des matrices de convolution. La matrice (ici de taille 3×3) subit une convolution avec
l'image. Il utilise les huit points autour du point considéré pour calculer le gradient.
Les élèves ont pris l’initiative de tester de nombreuses matrices de convolution en essayant d’associer à chacune,
quand cela était possible, une transformation connue d’image.
L’algorithme proposé lors de la présentation finale transformait d’abord une image en niveau de gris puis effectuait
une détection de contour grâce à deux matrices de convolution.
III- Conclusion
Les élèves ont beaucoup progressé lors de ce projet, et sont surtout devenus acteurs de leur apprentissage. Certains
ont développé un réel goût pour l’informatique et ont exprimé l’envie d’élargir leurs connaissances.
Le plus difficile étant toujours de trouver un bon compromis entre les apports théoriques nécessaires et
l’apprentissage par la découverte, il a fallu s’appuyer sur un projet capable de fédérer un groupe. Le challenge de
présenter un algorithme de traitement d’images non classiques devant un groupe d’universitaires a poussé les
élèves à s’investir pleinement dans leur projet.
Ce projet s’est même poursuivi :
- deux élèves ont créé un mini logiciel de traitement d’images en Python et l’ont présenté à l’épreuve du
baccalauréat
- afin de leur montrer l’importance de la puissance de calculs lors du traitement d’algorithmes compliqués, nous
avons visité le supercalculateur Curie au CEA de Bruyères le Chatel.
- en 2nde GT, cette année en 2016-2017, un projet de découverte de l’informatique est basé sur le même principe :
création d’un tableau graphique avec le module Turtle de Python, choix d’une ou plusieurs équipes représentant la
classe, présentation du projet final devant un panel de professeurs du lycée.
IV- Synthèse du projet
Apports théoriques
Travaux pratiques
Travaux de recherche et projets de groupe
Septembre
Le codage binaire.
Qu’est-ce qu’un octet ?
Novembre
Décembre
Le codage RVB.
Le type list en Python.
Découverte des matrices.
Les images numériques.
Les images bitmap.
Le traitement des images.
---->Participation d’un enseignant
chercheur
Présentation des matrices de
convolution.
Rôle dans le traitement des images
numériques.
TP à l’université d’Evry : Découverte
d’algorithmes simples de traitement
d’images numériques.
TP en classe :
Réécriture des algorithmes simples de
traitement d’images numériques en
Python. Utilisation du module PIL.
Découverte et programmation de
l’algorithme de Sobel en Python.
Juin
2016-17 :
Projet en
2nde GT :
tableau
graphique.
Visite du supercalculateur Curie :
Puissance de calculs nécessaires aux
algorithmes de simulation numérique.
----> CEA Bruyères Le Chatel
Présentation par les élèves d’un
diaporama expliquant l’algorithme.
Présentation du code source.
Exécution du script.
----> Amphithéâtre de l’université
d’Evry devant des enseignants
chercheurs
Création
d’un petit logiciel de
d’enseignant.
retouche d’images élaboré de janvier
à mai.
----> Projet final baccalauréat
Téléchargement