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