activity_recognition_from_accelerometer_data_set
Différences
Ci-dessous, les différences entre deux révisions de la page.
Les deux révisions précédentesRévision précédenteProchaine révision | Révision précédente | ||
activity_recognition_from_accelerometer_data_set [2020/10/21 11:01] – [Création des fichiers de données] serge | activity_recognition_from_accelerometer_data_set [2021/12/14 09:50] (Version actuelle) – ↷ Liens modifiés en raison d'un déplacement. 62.210.73.184 | ||
---|---|---|---|
Ligne 2: | Ligne 2: | ||
<WRAP center round box 60% centeralign> | <WRAP center round box 60% centeralign> | ||
- | **{{tagpage> | + | **[[intelligence_artificielle|Intelligence Artificielle]]** |
</ | </ | ||
+ | |||
Votre mission: **Reconnaître l' | Votre mission: **Reconnaître l' | ||
Ligne 30: | Ligne 31: | ||
* **[[https:// | * **[[https:// | ||
+ | sudo pip3 install numpy matplotlib scipy tensorflow | ||
+ | | ||
+ | Sur xubuntu 20.04, pb avec cublas (qui n'est pas là où il faudrait, erreur nvidia), dans le dossier du projet: | ||
+ | export LD_LIBRARY_PATH=/ | ||
+ | python3 main_keras_clean_smooth.py | ||
=====Installation et matériel requis===== | =====Installation et matériel requis===== | ||
Une carte graphique n'est pas nécessaire, | Une carte graphique n'est pas nécessaire, | ||
Ligne 35: | Ligne 41: | ||
Il faut installer au moins: numpy, matplotlib, scipy, tensorflow | Il faut installer au moins: numpy, matplotlib, scipy, tensorflow | ||
- | Ce projet a été développé sur Debian 10 Buster Mate, et testé aussi sur Xubuntu 18.04 avec [[installation_de_cuda|Cuda]]. | + | Ce projet a été développé sur Debian 10 Buster Mate, et testé aussi sur Xubuntu 18.04 avec [[compilation_de_oepncv_avec_cuda_sur_ubuntu|Cuda]]. |
=====Représentation des datas===== | =====Représentation des datas===== | ||
{{ : | {{ : | ||
{{: | {{: | ||
- | |||
- | ===== Apprentissage avec les données brutes ===== | ||
- | ====Avec la norme du vecteur accélération==== | ||
- | Basé sur le script [[uneiaen50lignesdecode|Une I.A. en 50 lignes de code]]. | ||
- | * [[https:// | ||
- | |||
- | ====Avec les 3 composants des vecteurs des données brutes et Keras==== | ||
- | * [[https:// | ||
=====Recherche des zones valable en Input de Keras===== | =====Recherche des zones valable en Input de Keras===== | ||
Ligne 76: | Ligne 74: | ||
</ | </ | ||
</ | </ | ||
- | |||
- | |||
- | |||
====Après correction==== | ====Après correction==== | ||
Ligne 91: | Ligne 86: | ||
====Conclusion après analyse des courbes==== | ====Conclusion après analyse des courbes==== | ||
**Une seule personne a fait 15 fois le même parcours avec les mêmes activités**, | **Une seule personne a fait 15 fois le même parcours avec les mêmes activités**, | ||
- | |||
- | Soit un Rasberry Pi alimenté par batterie 5v USB. | ||
- | |||
- | Soit un téléphone avec une application fixé sur la poitrine. | ||
===== Apprentissage / Test avec les données nettoyées===== | ===== Apprentissage / Test avec les données nettoyées===== | ||
====Création des fichiers de données==== | ====Création des fichiers de données==== | ||
- | [[https:// | + | * [[https:// |
Par exemle, les paquets de 900 array de 3 soit: | Par exemle, les paquets de 900 array de 3 soit: | ||
Ligne 108: | Ligne 99: | ||
900 fois | 900 fois | ||
...] | ...] | ||
- | < | + | </code> |
sont créés en décalant la 1ère valeur de " | sont créés en décalant la 1ère valeur de " | ||
{{ : | {{ : | ||
- | Avec gliss, le fichier de datas obtenu | + | Avec gliss, le fichier de datas obtenu |
==== Apprentissage / Test ==== | ==== Apprentissage / Test ==== | ||
- | ====Modèle==== | + | * [[https:// |
+ | |||
+ | Les labels de sortie sont un array de shape=(32100, ) soit\\ | ||
+ | [ 0\\ 5\\ 4\\ 1\\ 2\\ 4\\ 6\\ ...] avec 32100 valeurs. | ||
+ | |||
+ | Il faut ABSOLUMENT les transformer en vecteurs " | ||
+ | |||
+ | [ 1 0 0 0 0 0 0]\\ | ||
+ | [ 0 0 0 1 0 0 0]\\ | ||
+ | [ 0 0 0 0 1 0 0]\\ | ||
+ | [ 0 0 0 0 0 0 0]\\ | ||
+ | [ 0 0 1 0 0 0 0]\\ | ||
+ | [ 0 1 0 0 0 0 0]\\ | ||
+ | [ 0 0 0 0 0 0 1]\\ | ||
+ | ... jusqu' | ||
+ | |||
+ | ===one-hot-encoding=== | ||
+ | {{: | ||
+ | |||
+ | Le one-hot-encoding est obtenu avec | ||
+ | <code lang=python> | ||
+ | train_label = utils.to_categorical(data[" | ||
+ | </ | ||
+ | |||
+ | ====Build Model==== | ||
Inspiré de [[https:// | Inspiré de [[https:// | ||
et | et | ||
Ligne 120: | Ligne 136: | ||
<code python> | <code python> | ||
- | | + | # Choix du model |
+ | self.model = Sequential() | ||
+ | # Input layer | ||
+ | self.model.add(layers.Dense(units=4, | ||
+ | self.model.add(layers.Flatten()) | ||
- | | + | |
- | model.add(layers.Dense(units=4, input_shape=(PAQUET, 3))) | + | self.model.add(layers.Dense(64, activation=' |
- | model.add(layers.Flatten()) | + | |
- | | + | |
- | model.add(layers.Dense(64)) | + | self.model.add(layers.Dense(7, activation=' |
- | + | ||
- | # Output | + | |
- | | + | |
</ | </ | ||
+ | ====Compile Model==== | ||
+ | |||
+ | <code python> | ||
+ | self.model.compile( loss=self.loss, | ||
+ | optimizer=self.optimizer, | ||
+ | metrics=self.metrics) | ||
+ | | ||
+ | " | ||
+ | " | ||
+ | " | ||
+ | </ | ||
+ | | ||
+ | | ||
+ | | ||
====Résultats==== | ====Résultats==== | ||
+ | Les meilleurs | ||
+ | {{: | ||
+ | |||
+ | mais aussi les plus mauvais | ||
+ | |||
+ | {{: | ||
+ | |||
+ | ====Conclusion==== | ||
+ | Les courbes d'une activité à l' | ||
=====Construction de mon propre capteur===== | =====Construction de mon propre capteur===== | ||
====Application Android==== | ====Application Android==== | ||
Ligne 143: | Ligne 182: | ||
====Roulez Bourrez==== | ====Roulez Bourrez==== | ||
C'est le fameux projet: **[[roulez_bourrez|Roulez Bourrez]]** | C'est le fameux projet: **[[roulez_bourrez|Roulez Bourrez]]** | ||
+ | |||
+ | =====Vision artistique des datas d' | ||
+ | Du son et des images avec [[https:// | ||
+ | sudo pip3 install opencv-python sounddevice | ||
+ | |||
+ | {{ : | ||
+ | =====Autres idées===== | ||
+ | La personne utilise son téléphone normalement, | ||
+ | Pour créer les datas d' | ||
{{tag> ia keras python realisations_logicielles }} | {{tag> ia keras python realisations_logicielles }} |
activity_recognition_from_accelerometer_data_set.1603278060.txt.gz · Dernière modification : 2020/10/21 11:01 de serge