• Aucun résultat trouvé

Sciences Numériques et Technologie

N/A
N/A
Protected

Academic year: 2022

Partager "Sciences Numériques et Technologie"

Copied!
27
0
0

Texte intégral

(1)

Photographie Numérique

Sciences Numériques et Technologie

Willard S. Boyle Co-inventeur du

capteur CCD avec Georges E.

Smith dans les laboratoires Bell

en 1969

(2)

Sciences Numériques et Technologie

Retrouvez ces diapos sur

jusdeliens.com/mjsnt2021

(3)

Photographie Numérique

• Développement d’un programme Python pour détecter un obstacle

• Entrées : image caméra

• Contrôleur et capteur : Carte ESP32-CAM Wifi avec caméra intégrée

• Sorties : afficher la présence d’un obstacle et la position

Cahier des charges du projet

(4)

Photographie Numérique

Schéma fonctionnel

Capteur

Capter des images

Données

Transmettre les images captées

Algorithme

Détecter un obstacle à partir des images reçues

(5)

Photographie Numérique

Architecture matérielle

Serveur IOT ESP32-Cam

ESP32-Cam

Routeur wifi

PC

Programme Python

PC

Programme Python

Commutateurs routeur Internet

(6)

Photographie Numérique

• 3 séances de 1h

• 1 carte pour 4-5 personnes, travail individuel

• 1ere séance

Prise en main des outils

Brainstorming : quel algorithme pour détecter un obstacle ?

• 2e séance :

Réalisation du programme

• Dernière séance :

Présentations : 3 min pour présenter le travail effectué

Evaluation individuelle au format QCM et réponses courtes

Organisation

(7)

Photographie Numérique

Développez votre programme en ligne sur

repl.it/@jusdeliens/pyscopx

(8)

Photographie Numérique

Développez votre programme en ligne

4) Exécutez votre programme

1) Connectez vous : Sign up -> log in

2) Editez votre programme : - Changer "CamXXXX"

- Changer « PrenomNOM"

- Implémenter l’algorithme

3) Renommer votre programme

5) Utiliser la console pour vérifier la sortie de votre

programme

(9)

Photographie Numérique

Visualiser votre caméra en ligne sur https://jusdeliens.com/play/pyscopx/

Username : « mariejo »

Password : « riennestacraindre » Identifiant : « PrenomNOM »

Caméra : « CamXXXX »

Remplacer par les 2 lettres et 2 chiffres inscrits

au dos de la platine Remplacer par votre

prénom et nom

(10)

Photographie Numérique

Visualiser votre caméra en ligne

1) Observer l’image de votre caméra en temps

réel

2) Observer le filtre pour vérifier votre

algorithme

NE PAS UTILISER CETTE INTERFACE Travailler uniquement sur

pyscopx.jusdeliens.com

(11)

Photographie Numérique

Comprendre l’algorithme pyscopx en langage naturel

Se connecter à la caméra avec les identifiants spécifiés Répéter tant que le programme est en run

Récupérer les données de la caméra Si la camera est connectée

Afficher la taille de l’image reçue Générer une couleur aléatoire

Répéter pour chaque colonne de l’image Répéter pour chaque ligne de l’image

Si la luminosité du pixel à la ligne et colonne est supérieure à 50 Changer la couleur du pixel du filtre à la ligne colonne en cours par la couleur générée aléatoirement

Sinon

Changer la couleur du pixel du filtre à la ligne colonne en cours par la couleur noir

(12)

Photographie Numérique

Comprendre l’algorithme pyscopx en algorigramme

Se connecter à la caméra avec les identifiants spécifiés

Récupérer les données de la caméra la caméra est connectée ? Afficher la taille de l’image reçue

Générer une couleur aléatoire

Répéter pour chaque colonne x

Répéter pour chaque ligne y Luminosité est supérieure à 50 ?

Le programme est en run ?

Colorier pixel en x,y en noir Colorier pixel en x,y avec la couleur aléatoire

Après avoir répéter pour toutes les

colonnes

Après avoir répéter pour toutes les lignes

NON

OUI NON

OUI OUI

(13)

Photographie Numérique

Modifier l’algorithme pyscopx pour détecter un obstacle

Se connecter à la caméra avec les identifiants spécifiés Répéter tant que le programme est en run

Récupérer l’image de la caméra Si la camera est connectée

Afficher la taille de l’image reçue

Initialiserla variable nPixelObstacle à 0 Répéter pour chaque colonne de l’image

Répéter pour chaque ligne de l’image

Si la luminosité du pixel à la ligne et colonne est supérieure à 50 Incrémenter la variable nPixelObstacle

Sinon

Changer la couleur du pixel du filtre à la ligne colonne en cours par la couleur noir Si nPixelObstacle est supérieur à 1000

Ecrire dans la console « Obstacle présent » Sinon

Ecrire dans la console « Pas d’obstacle » Seuil de détection

(14)

Photographie Numérique

Modifier l’algorithme pyscopx pour détecter un obstacle

Répéter pour chaque colonne x

Répéter pour chaque ligne y Luminosité est supérieure à 50 ?

Colorier pixel en x,y en noir Incrémenter variable nPixelsObstacle

Après avoir répéter pour toutes les

colonnes

Après avoir répéter pour toutes les lignes

OUI NON

nPixelsObstacle supérieur à 1000

Ecrire dans la console «Pas d’obstacle» Ecrire dans la console « Obstacle présent »

OUI NON

Initialiser variable nPixelsObstacle à 0

Le programme est en run ?

(15)

Photographie Numérique

Améliorer l’algorithme pyscopx pour détecter un obstacle

Définir le seuil de détection d’obstacle en fonction de la taille de l’image

Remplacer 1000 par une formule tenant compte de la définition de la dernière image reçue

Diviser l’image en 2 parties (gauche et droite) et

compter le nombre de pixels d’obstacle dans chacune

Si le nombre de pixels d’obstacle est plus grand qu’un seuil (fonction de la définition de chaque partie), alors afficher « obstacle à gauche » ou « obstacle à droite » selon la partie concernée

(16)

LANGAGE, PROGRAMMATION, PHOTOGRAPHIE NUMERIQUE

Les prérequis à comprendre pour réaliser ce projet

(17)

Photographie Numérique

Image, pixel, couleur RVB et luminosité

x

y

(x=0,y=0)

(x=0, y=hauteur)

(x=largeur, y=0)

(18)

Photographie Numérique

Pyscopx et les fonctions et variables camera

camera = pyscopx.Camera("CamXXXX", "PrenomNOM")

Se connecte à la caméra avec les identifiants spécifiés

camera.actualiser()

Fonction pour actualiser les données de la caméra (images, infos de connexion…) et réinitialiser le filtre à la dernière image reçue

camera.lirePixelRouge(x,y)

camera.lirePixelVert(x,y)

camera.lirePixelBleu(x,y)

camera.lirePixelLuminosite(x,y)

Fonctions renvoyant la composante correspondante (rouge, vert, bleu, luminosité, teinte, saturation) du pixel dans la dernière image reçue à la colonne x et ligne y

camera.ecrirePixel(x,y, rouge,vert,bleu)

Fonction pour colorier le pixel du filtre à la colonne x et ligne y, avec la couleur spécifiée en rouge vert bleu

camera.largeur

Variable contenant le nombre de colonnes dans l’image

camera.hauteur

Variable contenant le nombre de lignes dans l’image

(19)

Langages et programmation

Les types de base

• Les types « str » pour ‘’string’’ (ou chaine de caractères)

• Les types « int » pour ‘’integer’’ (ou entier)

• Les types « float » pour ‘’float’’ (ou flottant)

(20)

Langages et programmation

Les entrées/sorties

• Sortie d’affichage

• Entrée au clavier

(21)

Langages et programmation

Les variables

• Affectation

• Opérations

(22)

Langages et programmation

Structures de contrôle : les conditions

ATTENTION : la tabulation représente ce qui est dans le bloc du « SI ALORS »

(23)

Langages et programmation

Structures de contrôle : les tests

ATTENTION à mettre 2 signes ‘’=‘’ pour le test

‘’!=‘’ signifie

‘’différent de’’

(24)

Langages et programmation

Structures de contrôle : les boucles

ATTENTION : la tabulation représente ce qui est dans le bloc de la boucle

(25)

Photographie Numérique

• Mots clés du langage Python : import, print, while, if, else, for

• Notions de variables : affectation, opérateurs

• Conditions, tests et boucles : comparaison, bornées/non bornées, indentation, seuil

• Notion de fonctions : syntaxe, utilisation, renvoie de valeur

• Photographie numérique : définition, résolution, filtre, pixel, couleur, luminosité

Notions à comprendre et retenir

(26)

Photographie Numérique

• Evaluation pour tester vos connaissances et votre compréhension du projet réalisé au format QCM

• Soutenance projet de 3 min par personne

Prochaine séance

(27)

Modalités d’évaluation

Soutenance de projet

Recherche de contenu

Recherche de sources différentes en rapport avec la thématique: tutoriels, codes … 1 Appropriation des ressources collectées : traitement, choix et analyse 1 Organisation Démarche de travail en amont : planification, organisation du travail 3 Communication Niveau de langue oral et écrit : vocabulaire précis , clarté du langage, fautes d’orthographe 3 Voix et attitude : parler fort, regarder son auditoire, ton dynamique 3 Respect du plan

Introduction : cahier des charges

Développement : organisation, état initial, solutions développées, état final

Conclusion : difficultés rencontrées, ce qui a été compris et pas compris, évolutions possibles

4

Respect du temps : + ou – 1 min 2

Questions Réponses aux questions posées 3

Références

Documents relatifs

ROUGE ROSE BLEU VERT BLANC NOIR.. rouge rose bleu vert blanc

Consigne : Relie les noms des couleurs... Prendre des indices de reconnaissance

Un nœud de toutes les couleurs Comme celui de ma petite sœur. Violet

[r]

[r]

Si l’on juxtapose les mots de Deleuze : « C’est de chaque écrivain qu’il faut dire : c’est un voyant, c’est un entendant, ‘mal vu mal dit’, c’est un coloriste,

ajouté par le cerveau) (Les rectangles rouges et gris sont de même couleur). Segmentation

Colle dans chaque garage une voiture de la couleur demandée. JAUNE ROUGE BLEU