Ci-dessous, les différences entre deux révisions de la page.
Les deux révisions précédentes Révision précédente Prochaine révision | Révision précédente | ||
cours:plim:projet16_17:gr8:gr8 [2016/10/24 15:54] acolombet [Ressouces utilisées dans le Projet] |
cours:plim:projet16_17:gr8:gr8 [2017/02/17 16:47] (Version actuelle) qsalmeron [APK] |
||
---|---|---|---|
Ligne 11: | Ligne 11: | ||
=== Un scénario d'illustration du Projet === | === Un scénario d'illustration du Projet === | ||
- | Bob est un flemmard de première. Il souhaite envoyer des messages à ses contacts pour leur anniversaire, mais n'a pas d'imagination. Grâce à notre application Circle Messenger, celle-ci va détecter le type de contact (ami, famille, collègue) et personnaliser un message d'anniversaire pour lui. Merci Circle Messenger ! | ||
- | |||
- | ==== Matériel disponbile ==== | ||
- | |||
- | * Référence du SmartPhone : [[http://www.gsmarena.com/htc_one-5313.php|HTC One M7]] | ||
- | * Caractéristiques techniques | ||
- | * [[http://example.com|Lien vers les fiches techniques du constructeur]] | ||
- | * Résumé des fiches techniques en terme de ressources du SmartPhone (capteurs mais aussi Data collectés par le Mobile) | ||
- | * Caractéristiques de l'OS et des environnements logiciels utilisables pour développer sur ce SmartPHone | ||
- | * Autre Commentaires | ||
- | |||
- | ==== Ressouces utilisées dans le Projet ==== | ||
- | |||
- | * Liste des capteurs mais aussi Data collectés par le Mobile, utilisés pour le projet : | ||
- | * Journal d’appels | ||
- | * Journal de SMS | ||
- | * Répertoire de contacts | ||
- | * Liste des SDK et API pour l'accès à ces informations | ||
- | * Environnement de logiciel : | ||
- | * Android Studio | ||
- | * Version OS : | ||
- | * Android 6.0 (API 23) | ||
- | * [[http://example.com|Lien vers la page de doc]] | ||
- | * Conclusion sur la Faisabilité du Projet | ||
- | |||
- | |||
- | ==== Rendu du 24/10/2016 ==== | ||
- | === Circle Messenger === | ||
- | |||
- | |||
- | == Membres du groupe == | ||
- | |||
- | Aurélien COLOMBET et Quentin SALMERON | ||
- | |||
- | == Définition du sujet de projet == | ||
- | |||
- | == Ecrire un scénario d’utilisation sur 10 lignes max == | ||
Bobby est une personne débordée, mais il tient à envoyer des messages d’anniversaire à ses contacts. | Bobby est une personne débordée, mais il tient à envoyer des messages d’anniversaire à ses contacts. | ||
Aujourd’hui, c’est l’anniversaire d’Alexandra, une amie de Bobby. Notre application Circle Messenger catégorise Alexandra comme faisant partie de son cercle d’amis à partir des données récupérées dans le journal d’appels et le journal de SMS. Bobby reçoit une notification lui informant que c’est l’anniversaire d’Alexandra, et lui propose un message personnalisé pour lui souhaiter un bon anniversaire sur un ton familier. | Aujourd’hui, c’est l’anniversaire d’Alexandra, une amie de Bobby. Notre application Circle Messenger catégorise Alexandra comme faisant partie de son cercle d’amis à partir des données récupérées dans le journal d’appels et le journal de SMS. Bobby reçoit une notification lui informant que c’est l’anniversaire d’Alexandra, et lui propose un message personnalisé pour lui souhaiter un bon anniversaire sur un ton familier. | ||
Un autre jour, l’anniversaire de Charles, un collègue de travail, arrivera. Ce jour-là, Circle Messenger proposera à Bobby d’envoyer à Charles un message lui souhaitant un joyeux anniversaire, mais sur un ton plus formel. | Un autre jour, l’anniversaire de Charles, un collègue de travail, arrivera. Ce jour-là, Circle Messenger proposera à Bobby d’envoyer à Charles un message lui souhaitant un joyeux anniversaire, mais sur un ton plus formel. | ||
- | == Définir la cible mobile que vous allez utiliser == | ||
- | Notre projet a pour cible mobile Android, version 6.0. Nous avons à notre disposition deux smartphones : | ||
- | * Huawei Honor 5C : | ||
- | {{ :cours:plim:projet16_17:gr8:stat_honor.png?300 |}} | ||
- | * Huawei P8 : | + | === Activité reconnue === |
- | {{ :cours:plim:projet16_17:gr8:stathuawei.png?300 |}} | + | |
- | == Définir l’environnement logiciel que vous allez utiliser == | + | Notre application a pour but de catégoriser les contacts en fonction des interactions avec l'utilisateur. Nous allons donc reconnaître la relation entre l'utilisateur et ses contacts à partir de leur communication. |
- | Nous partons sur un développement natif sur Android. Nous allons utiliser l’environnement logiciel d’Android Studio pour le développement de notre application. | + | |
- | + | == Algorithme mis en oeuvre == | |
- | == Définir l’activité que vous allez reconnaître et utiliser == | + | |
- | Notre application a pour but de catégoriser les contacts en fonctions des interactions avec l’utilisateur, nous allons donc reconnaître la relation entre l’utilisateur et ses contacts. | + | |
- | == Définir les capteurs que vous allez utiliser == | ||
- | Circle Messenger n’aura pas besoin d’utiliser des capteurs présents sur le smartphone, mais plusieurs sondes, les principales étant le journal d’appel, le journal de SMS et le répertoire de contacts. | ||
- | | ||
- | == Définir les algorithmes que vous allez mettre en œuvre == | ||
Le but de notre application étant avant tout de catégoriser les contacts de l’utilisateur, nous avons choisi comme type d’algorithme le clustering, un algorithme non supervisé répondant exactement à notre besoin. | Le but de notre application étant avant tout de catégoriser les contacts de l’utilisateur, nous avons choisi comme type d’algorithme le clustering, un algorithme non supervisé répondant exactement à notre besoin. | ||
Nous avons choisi plus particulièrement l’algorithme K-means, algorithme qui nous a été présenté et facile à utiliser. | Nous avons choisi plus particulièrement l’algorithme K-means, algorithme qui nous a été présenté et facile à utiliser. | ||
- | Pour notre algorithme, nous utilisons comme métrique les différentes informations récupérées par les sondes du smartphone traitées pour n’obtenir que ce qui suit : | + | Pour notre algorithme, nous utilisons comme métrique les différentes informations récupérées par les sondes du smartphone traitées pour n’obtenir que ce qui suit : |
- | {{ :cours:plim:projet16_17:gr8:vector.png |}} | + | |
+ | Les types de données suivants sur une période d'une heure : | ||
- | == Vérifier la faisabilité de vos choix en énumérant les solutions technologiques et surtout logicielles qui seront mises en œuvre == | + | |Nombre de SMS|Nombre d'appels|temps d'appel cumulé|Temps d'appel moyen|Est en semaine|Moment de la journée (matinée, journée, soirée)|Contact Type| |
+ | ==== Matériel disponbile ==== | ||
- | Tout d’abord, le SDK Android 6.0 (API 23) noud permet d’accéder aux sondes dont nous avons besoin. Ensuite, la bibliothèque « Java Machine Learning Library » nous permet d’utiliser l’algorithme K-means en Java : | + | * Référence du SmartPhone : Huawei Honor 5C |
- | + | * Caractéristiques techniques | |
- | Classe KMeans : http://java-ml.sourceforge.net/api/0.1.7/net/sf/javaml/clustering/KMeans.html | + | * {{:cours:plim:projet16_17:gr8:stat_honor.png?300|}} |
+ | * Résumé des fiches techniques en terme de ressources du SmartPhone (capteurs mais aussi Data collectés par le Mobile) | ||
+ | * Caractéristiques de l'OS et des environnements logiciels utilisables pour développer sur ce SmartPhone | ||
+ | * Android 6.0 | ||
+ | * Référence du SmartPhoe : Huawei P8 | ||
+ | * Caractéristiques techniques | ||
+ | * {{:cours:plim:projet16_17:gr8:stathuawei.png?300|}} | ||
+ | * Résumé des fiches techniques en terme de ressources du SmartPhone (capteurs mais aussi Data collectés par le Mobile) | ||
+ | * Caractéristiques de l'OS et des environnements logiciels utilisables pour développer sur ce SmartPhone | ||
+ | * Android 6.0 | ||
+ | ==== Ressouces utilisées dans le Projet ==== | ||
+ | |||
+ | * Liste des capteurs mais aussi Data collectés par le Mobile, utilisés pour le projet | ||
+ | * Journal d'appels | ||
+ | * Journal de SMS | ||
+ | * Répertoire de contacts | ||
+ | * Liste des SDK et API pour l'accès à ces informations | ||
+ | * Environnement de logiciel : Android Studio | ||
+ | * Version OS : Android 6.0 (API 23) | ||
+ | * [[https://developer.android.com/about/versions/marshmallow/android-6.0.html|Lien vers la page de doc]] | ||
+ | * Conclusion sur la Faisabilité du Projet | ||
+ | * Tout d’abord, le SDK Android 6.0 (API 23) noud permet d’accéder aux sondes dont nous avons besoin. <del>Ensuite, la bibliothèque « Java Machine Learning Library » nous permet d’utiliser l’algorithme K-means en Java. [[http://java-ml.sourceforge.net/api/0.1.7/net/sf/javaml/clustering/KMeans.html|La documentation ici]]</del> | ||
+ | * Au final nous avons utilisé la librairie RandomForest du langage R que nous avons couplé avec un serveur PHP qui permet de faire la passerelle entre notre application mobile et notre serveur. Coté serveur nous avons donc mis en place un systeme qui permet de faire l'apprentissage grâce aux données collectés. Un système qui permet de récupérer les données depuis l'application et un système qui permet d'estimer un type de contact grâce à une liste de vecteur de celui-ci. | ||
+ | ==== Rendu final ==== | ||
+ | Dépôt GitHub : https://github.com/KingdomCodeur/Circle-Messenger | ||
+ | APK : https://drive.google.com/file/d/0B-AGqqBLH05SV0kxLXJob0dxRDQ/view?usp=sharing |