PROJET-INFO5 2021 Wildcount

=Le projet= =L'équipe=
 * Elisa Beaugrand
 * Louis De Gaudenzi
 * Tom Graugnard
 * Alexis Rollin

Supervisé par : Didier Donsez, Georges Quénot

=Journal=

Jeudi 28/01

 * Choix des projets
 * Constitution des groupes

Vendredi 29/01

 * Réunion avec les porteurs, M. Donsez et M. Quénot
 * Mise au point des résultats des projets
 * Établissement du cahier des charges
 * Création du serveur Discord et conversation Messenger

Mercredi 10/02

 * Prise en main des outils de collaboration
 * Répartition du travail
 * Réunion avec les IESE, apprentissage de Git

Jeudi 11/02

 * Prise en main des technologies
 * Première version d'un réseau de neurone basique avec Pytorch
 * Début du Scraping sur Google

Vendredi 12/02

 * Abandon du Scraping sur Google pour se concentrer sur Bing
 * Tri des images
 * Récupération des images du Valbonnais

Interruption pédagogique du 15/02

 * Scraping d'images Zooniverse
 * Écriture d'un script de labellisation d'images scrappées
 * Premiers jets d'entrainement de réseau de neurones
 * Demande des accès Grid5000 car nos ordinateurs ne sont pas assez puissants

Lundi 22/02

 * Réception des identifiants Grid5000
 * Configuration et connexion aux serveurs Grid5000

Mardi 23/02

 * Réunion avec les porteurs du projet :

 Présent : All

Ordre du jour : Ce qui a été réalisé (étudié)
 * MAJ du git
 * GC: creation des comptes Grid5000
 * DD: achat caméra -->dépot caméra au fablab
 * All IESE ? :Implémentation d’un mobil net sur la carte
 * GC :Capture d’image
 * AR :Envoie de la valeur en UART (Rx/Tx) après avoir fait une capture d’image.
 * EB :Algorithme de scraping
 * Bing
 * ARo, TG :Premier jet d’IA avec dataset custom
 * EB : Base d’images sur le drive
 * LDG : tableau de bord Grafana

Ce que vous allez réaliser (étudié) jusqu’à Mardi prochain
 * GC :Ajout des différents capteurs
 * Température humidité, GPS, RTC, carte SD, PIR
 * PIR et RTC en priorité, ensuite la carte SD Carte.
 * AR :Mise en forme des trames pour le module LoRa envoyé via UART.
 * ARo, TG :Entrainement d’IA et recherche du meilleur modèle sur Grid5000
 * Scraping Zooniverse
 * Aspirateur site Zooniverse
 * https://www.zooniverse.org/projects/crea-mont-blanc/wild-mont-blanc/collections
 * Ajouter des humains (usagers des parcs naturels, personnes à secourir) à la base d'entrainement
 * Ajouter des images de controle (ie sans rien --> paysage …)
 * Organiser les bases d’images


 * Format des messages Wildcount (montant et descendant) → à discuter entre IESE5 et INFO5
 * Message de diagnostic à ajouter
 * 1 bit par device, raison. (Fat non formaté)
 * Codec Wildcount (C et Javascript)→ à discuter entre IESE5 et INFO5
 * Test/réglage des objectifs avec une mire (sur differentes distances)
 * prévoir dans le code un mode “réglage de objectif” ?

Difficulté(s)
 * EB: :Carte GapPocA INFO5 en défaut→ écrire à Yao + Xavier
 * App Android de diag ?

Questions divers 
 * Soutenance finale en commun
 * https://air.imag.fr/index.php/Projets_2020-2021#Soutenance_finale_S10
 * DD: questionner David Eon (resp projet S10 IESE5)
 * Fablab
 * boitier transparent
 * DD: boitier electrique (ajouter une “vitre”) + bombe peinture cam (castorama)
 * DD: Commande Farnell → Muriel

Mercredi 24/02

 * Réunion avec M. Quénot pour la prise en main de Grid5000 et des outils de travail pour les réseaux de neurones

Vendredi 26/02

 * Soutenance de mi-parcours

Lundi 01/03

 * Réunion en présentiel avec les IESE pour essayer de faire marcher notre carte GreenWave

Mardi 02/03

 * Réalisation du poster en anglais en collaboration avec les IESE

Mercredi 03/03
 Ordre du jour
 * Réunion avec les porteurs du projet :

Ce qui a été réalisé (étudié)


 * MAJ du git
 * All : Mise en place des daily meetings
 * AR, TG : MobileNet : Exemple fonctionne grâce à un environnement tensorflow1, le dataloading en cours d’implémentation (problème tensorflow encore une fois)
 * IESE -> récupération matériel ok
 * EB : outils scraping d’images ok (Bing et Zooniverse)
 * EB: Organisation base image ok
 * EB : Labellisation des images -> Ok pour Bing et les images du drive
 * EB : Ajout d’images de cyclistes, promeneurs (via scraping Bing)
 * AR, TG, EB, LDG : Payload
 * All : Test de la GapPocA des INFO -> matériel ok, pb logiciel
 * Aurélien R : communication UART (RN2483 ←> pc)
 * GC : lecture RTC avec GapPoc

Ce que vous allez réaliser (étudié) jusqu’à Mardi prochain -> Gitlab: kanban lien
 * EB: trier les images scrapées de Zooniverse puis les labelliser grâce au script
 * EB: transférer les images scrapées sur irim
 * GC : Ecriture sur RTC
 * GC : Implémentation carte SD
 * Format des messages Wildcount (montant et descendant) → à discuter entre IESE5 et INFO5 (lien)
 * Message de diagnostic à ajouter
 * 1 bit par device, raison. (Fat non formaté)
 * Codec Wildcount (C et Javascript)→ à discuter entre IESE5 et INFO5
 * Test/réglage des objectifs avec une mire (sur différentes distances)
 * prévoir dans le code un mode “réglage de objectif” ?

Difficulté(s)
 * Environnement Tensorflow Jupyter (a priori réglé)
 * Spéc de la payload floues
 * Problème logiciel de la carte (toujours pas résolu à ce jour, mais on est sûr que ça ne vient pas de la carte maintenant
 * Aurélien R : Problème de communication UART entre le module LoRa RN2483 et un terminal série (gestion du ) ---> Normalement résolu en langage C par l’ajout d’un “\n” en fin de fonction printf ou sprint.
 * GC : Problème de doc i2c
 * GC : Problème de doc composant aliexpress
 * Boite surement trop petite

Questions divers 
 * Conserve GapPocB (IR) ? Non mais préparer firmware pour.
 * Payload
 * Où les fonctions sont-elles utilisées ? Ajout de nœuds dans NodeRed ?
 * L’encodeur et le décodeur communiquent-ils entre eux ? Si oui pq le décodeur décode plus de choses que ce qui est encodé ?

Jeudi 04/03

 * Début modification script réseau de neurones
 * Décodage et encodage de la payload avancés du coté serveur

Vendredi 05/03

 * Discussion avec les IESE à propos des payloads
 * Tri et transfert des images

Lundi 08/03

 * Programmation de la payload côté carte

Mardi 09/03

 * Tentative d'exportation du réseau de neurone en TFlite

Mercredi 10/03
 Ordre du jour
 * Réunion avec les porteurs du projet

Ce qui a été réalisé (étudié)


 * Aurélien : Résolution du problème dans la communication UART entre le GAP8 et le module RN2483.
 * Tom, Louis: Payload JS ok, payload en C commencé (attention mappage little/big endian)
 * Elisa: Scraping ok, Transfert des images sur irim ok
 * AR : notebook avec Mobilenetv2 que l’on peut train, retrain, qui sauvegarde des graphes et checkpoints régulièrement, et qui peut être exporter en tflite.

Ce que vous allez réaliser (étudié) jusqu’à Mardi prochain ->
 * Aurélien : Communication complète Rx/Tx avec le RN2483 et réalisation d’une fonction qui code le payload.
 * Finir payload C avec aide des IESE
 * Tester tflite sur la carte -> demander à Benoit quel commit il avait pris pour résoudre problème de carte
 * Lancer gros entraînement

Difficulté(s) Or le 0x00 correspond à une commande pour le module LoRa RN2483 (commande “changer le baudrate”) et attend donc une réponse spécifique 0x55 (ignore toute les autres commandes).
 * Aurélien : Le GAP8 envoie une commande (= 0x00) à l’init de l’UART.
 * La solution: envoyer le caractère “U” à l’init car il s’agit en ASCII de 0x55.
 * Grégoire : Problème avec la carte SD : incompréhension des bibliothèques de greenwaves
 * Bénoît: Que faites-vous ?

Questions divers
 * Repartir du checkpoint de base MobileNet ? (vrai avantage en terme de reco ? Modèle MobileNet avec trop grand nombre de labels -> compatibilité ?)

Remarque: 
 * le payload est encodé en Big Endian
 * Où sont les tests unitaires ?

Jeudi 11/03

 * Tests payload UP
 * Tentative d'exportation en TFlite et dernières modifications

Vendredi 12/03

 * Tests payload DOWN
 * Tentative d'exportation en TFlite et dernières modifications

Lundi 15/03
Réunion avec les porteurs du projet  Ordre du jour

Ce qui a été réalisé (étudié)
 * Alexis, Elisa, Aurélien -> exportation en tflite testée et a dû être revue : problème de quantification, problème d’opérations non autorisées (AddV2), actuellement problème de Parallel Feature, en attente d’une réponse de GreenWaves
 * Tom: tests payload
 * Aurélien : Lien entre payload et envoie via UART.

Ce que vous allez réaliser (étudié) jusqu’à Vendredi prochain ->
 * Docs : Mettre à jour air imag, rapport, soutenance finale
 * En fonction de la réponse de Greenwaves charger sur la GAP8 le TFLite
 * Connecter les payloads

LNS
 * Application Wildcount (pour RN2483)
 * Donnez a DD tous les DevEUI, AppKey

Difficulté(s)
 * TFLite : installation d’un simulateur mais trop flexible et accepte tous nos modèles donc tests avec Aurélien, problème quantification, opérations non autorisées (Addv2) -> downgrade à mobilenet v1 et passage en uint8
 * Tests payload non automatisés car problème sécurité sur navigateur

Questions divers 
 * Montrer modèle à Georges pour voir s’il trouve une anomalie
 * Invités démo: GW, PNE, PGHM, PIA (ONF)
 * présentiel @ Polytech, hybride
 * DD apporte un camera
 * DD reserve une grande salle aupres
 * Réserver salle à Polytech (DD)

Mardi 16/03

 * Écriture du compte-rendu
 * Tentative d'exportation en TFlite et dernières modifications

Mercredi 17/03

 * Écriture du compte-rendu
 * Tentative d'exportation en TFlite et dernières modifications
 * Réunion en présentiel avec les IESE pour préparer la présentation et la démonstration

Jeudi 18/03

 * Écriture du compte-rendu
 * Réalisation du diaporama
 * Réalisation du flyer

Vendredi 19/03

 * Soutenance finale

=Liens=
 * Gitlab