La réalisation de la partie software du SleepyNot s’effectuera en deux étapes. D’abord nous allons procéder à une étude des règles et des opérations à faire afin d’aboutir à la détection des yeux fermés dans une image statique. Cette première étape, très orientée recherche, se déroulera sous l’environnement LabView et se concrétisera à la fin par un algorithme. Deuxièmement, nous allons effectivement implanter cet algorithme dans un logiciel, en faisant appel à un langage de programmation indépendant de la plateforme, le JAVA.
LabView
Pour le développement de l’algorithme capable de détecter la fermeture des yeux nous allons faire appel à la plateforme de programmation LabView. C’est un outil spécialisé pour tout ce qui est traitement du signal. Il est graphique, très intuitif et facile à utiliser. Dans le cadre de notre projet, LabView jouera le rôle d’environnement de recherche des algorithmes.
Lors de nos essais, pour aboutir à un algorithme capable de répondre à toutes les exigences fonctionnels et de performances imposées par le caractère de notre futur produit, nous serons forcement obligés d’apporter à notre algorithme beaucoup de modifications et de tester plusieurs possibilités d’implantations. Par conséquent, il nous faudrait un outil de programmation très flexible aux changements et surtout capable d’afficher les résultats des tests. LabView est plus qu’adapté à nos besoins. Il propose des fonctionnalités avancées de traitement du signal, d’analyse et le plus important de visualisation des résultats des transformations et traitements subit par un signal. Il ne nécessite pas d’écriture de code, ni de compilation. Il va nous faire donc gagner du temps pour tout ce qui aurait été modification de code, compilation, déboguage de syntaxe etc. des problématiques inévitables dans le cas du développement de l’algorithme directement dans un langage de programmation classique.
Une fois l’algorithme défini, il faut le passer sous un langage plus approprié à nos besoins pour un produit embarqué. LabView est dépendant d’une plateforme et en plus il est un langage interprété et visuel, donc pas assez rapide pour des applications temps réel comme la notre. Par conséquence il n’est pas adapté pour notre produit final. Ce qui n’est pas le cas pour JAVA qui est indépendant de la plateforme en plus d’être un langage compilé, donc plus rapide. Il répond parfaitement aux exigences temporelles et de portabilité de notre produit.
Java
Pour notre programme java, nous allons opter pour une architecture la plus flexible possible. Nous allons procéder à une décomposition en modules indépendants, afin de faciliter le travail en parallèle pendant la phase de réalisation technique du projet et d’assurer en même temps un passage léger vers des versions améliorées lors d’éventuels développements ultérieurs. La chaîne de traitement des données par notre logiciel, pourrait être synthétisée de la manière suivante :
Dostları ilə paylaş: |