Projets-2015-2016-SmartClassRoom/SRS: Difference between revisions
(8 intermediate revisions by the same user not shown) | |||
Line 49: | Line 49: | ||
A l'aide de ce document nous aimerions clarifier différents points de notre projet |
A l'aide de ce document nous aimerions clarifier différents points de notre projet [http://air.imag.fr/index.php/Projets-2015-2016-SmartClassRoom ProjetSmartClassroom] : |
||
* Présenter aux lecteurs les différentes parties de notre projet. |
* Présenter aux lecteurs les différentes parties de notre projet. |
||
* Permettre aux lecteurs de découvrir les technologies que nous choisissons. |
* Permettre aux lecteurs de découvrir les technologies que nous choisissons. |
||
Line 95: | Line 95: | ||
'''General :''' |
'''General :''' |
||
Ce projet est un projet de fin d'étude, qui se déroule à Polytech Grenoble, et soutenu par la FABMSTIC. La page du projet sur le wiki air est disponible via ce lien [http://air.imag.fr/index.php/Projets-2015-2016-SmartClassRoom ProjetSmartClassroom] |
Ce projet est un projet de fin d'étude, qui se déroule à [http://www.polytech-grenoble.fr Polytech Grenoble], et soutenu par la [http://fabmstic.liglab.fr FABMSTIC]. La page du projet sur le wiki air est disponible via ce lien [http://air.imag.fr/index.php/Projets-2015-2016-SmartClassRoom ProjetSmartClassroom] |
||
'''Technical :''' |
'''Technical :''' |
||
Line 133: | Line 133: | ||
==2.2 Product functions== |
==2.2 Product functions== |
||
===2.2.1 Interactive board=== |
|||
'''Text detection''' |
|||
Dans un premier temps, à partir d'un vidéo projecteur placé en face du tableau, il est possible en temps réel de: |
|||
* Capturer des images des textes manuscrits |
|||
* Récupérer des strings à partir de ces images |
|||
'''Translation or arithmetic and conversion''' |
|||
Dans un second temps, le résultat de la sortie récupérée est projetée sur le tableau. |
|||
Deux étapes sont nécessaires : |
|||
*Traitement |
|||
*Conversion |
|||
Si la sortie correspond à une opération mathématique ou une équation, son résultat (ou sa courbe) est affichée avec au préalable. Sinon si elle correspond à un texte, elle est d'abord traduite puis le texte traduit est converti en format image. |
|||
===2.2.2 Touch tables=== |
|||
'''Tiled display''' |
|||
Une fois le serveur lancé et les clients connectés, chaque utilisateur (un par table tactile par exemple), a la possibilité de : |
|||
* Créer un objet (charger une video, une image, un pdf) |
|||
* Définir si cet objet est créé localement ou bien sur toutes les tables |
|||
* Réaliser de multiples interactions avec cet objet (mise en plein écran, déplacement d'une table à une autre, rotation,...) |
|||
==2.3 User characteristics== |
==2.3 User characteristics== |
||
Line 169: | Line 147: | ||
==2.5 Assumptions and dependencies== |
==2.5 Assumptions and dependencies== |
||
* Une connexion haut-débit est requise |
* Une connexion haut-débit et avec une faible latence est requise pour accélérer le processus de traduction de Goslate et la projection de vidéos HD en tiled display |
||
* Pour bénéficier de cette connexion, des dongles wifi sont nécéssaires |
* Pour bénéficier de cette connexion, des dongles wifi sont nécéssaires |
||
* Pour la capture d'images et la projection il faut respectivement un appareil photo et un vidéo projecteur |
* Pour la capture d'images et la projection il faut respectivement un appareil photo et un vidéo projecteur |
||
Line 181: | Line 159: | ||
==3.1 Requirement X.Y.Z (in Structured Natural Language)== |
==3.1 Requirement X.Y.Z (in Structured Natural Language)== |
||
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Morbi imperdiet dignissim mi et venenatis. Proin dictum ligula odio, ut fringilla nulla tincidunt in. Maecenas eu euismod augue, ut mollis libero. |
|||
'''<image>''' |
|||
Nullam pulvinar sagittis orci nec cursus. Donec non sodales ipsum. Phasellus eleifend lobortis tortor, ut vulputate nisi interdum non. Fusce nec commodo tortor, id varius ante. Cras tincidunt tellus porta egestas bibendum. |
|||
=== 3.1.1 Text detection === |
|||
'''Description''': Le texte écrit sur le tableau est capturé et extrait à partir d'une image |
|||
'''Inputs''': Image récupéré du tableau |
|||
'''Source''': Appareil photo et SDK gphoto2 |
|||
'''Outputs''': Fichier texte contenant le texte écrit au tableau |
|||
'''Destination''': Le script de traduction Python |
|||
'''Action''': |
|||
L'appareil capture la surface manuscrite délimitée par les jetons. La bibliothèque Tess4J lance une détection sur l'image générée et insère le texte trouvé dans un fichier. |
|||
'''Non functional requirements''': L'extraction du texte doit être fait en temps réel et rapidement |
|||
'''Pre-condition''': Disposer d'un appareil photo et installer les librairies gphoto2 et Tess4J |
|||
'''Post-condition''': Le texte doit être bien reconnu |
|||
'''Side-effects''': Échec dans la détection du texte, Image d'entrée floue |
|||
=== 3.1.2 Translation and text projection === |
|||
'''Description''': Le fichier de sortie de Tess4J est traduit puis transformé en image pour être projeté |
|||
'''Inputs''': Un fichier texte |
|||
'''Source''': Script de traduction Python Goslate |
|||
'''Outputs''': Une image contenant le texte traduit |
|||
'''Destination''': Le vidéo-projecteur |
|||
'''Action''': |
|||
Le fichier de sortie de Tess4J est donnée en entrée au script Python qui procède à sa traduction. Le nouveau fichier obtenu est ensuite transformé en image grâce à la bibliothèque ImageMagick. |
|||
'''Non functional requirements''': La traduction du texte doit être parfaite. La durée d’exécution du script ne doit pas être longue. |
|||
'''Pre-condition''': Avoir un vidéo projecteur et installer Python 2.7 et la librairie Goslate. |
|||
'''Post-condition''': Le texte de sortie n'est pas vide |
|||
'''Side-effects''': |
|||
=== 3.1.3 Tiled Display (video example) === |
|||
'''Description''': Affichage d'une vidéo en tiling display sur deux tables tactiles accolées |
|||
'''Inputs''': vidéo .mp4 |
|||
'''Source''': tables tactiles |
|||
'''Outputs''': chaque table affiche sa moitié de la vidéo |
|||
'''Destination''': affichage des tables |
|||
'''Action''': un client charge la vidéo et décide de l'afficher en tiling display. Le serveur envoie toutes les 50ms l'image que chaque client doit afficher. |
|||
'''Non functional requirements''': il ne doit pas y avoir de latence entre l'affichage des deux tables |
|||
'''Pre-condition''': tables connectées au serveur, présence de l'ensemble des librairies ainsi que du projet sur les deux tables, fichier video présent sur la table qui charge l'objet |
|||
'''Post-condition''': affichage en plein écran sur les deux tables qui doivent toujours rester connectées au serveur |
|||
=== 3.1.4 Translation from the teacher to the students === |
|||
'''Description''': Capture du texte et envoie de la traduction aux tables tactiles |
|||
'''Inputs''': image du tableau |
|||
'''Source''': appareil photo |
|||
'''Outputs''': texte |
|||
'''Destination''': affichage tables tactiles |
|||
'''Action''': le texte est détecté, traduit, puis envoyé sur le serveur auquel sont connectées les tables |
|||
'''Non functional requirements''': réseau local entre les tables et le pc réalisant l'analyse d'image et la traduction |
|||
'''Pre-condition''': tables et ordinateur du tableau interactif connectés au serveur |
|||
'''Post-condition''': affichage de la traduction sur les tables |
|||
=4. Product evolution= |
=4. Product evolution= |
||
*Résolution d'équations |
|||
*Animation de figures avec moteurs physiques |
|||
*Sélection de données à distance à partir d'une tablette |
|||
=5. Appendices= |
=5. Appendices= |
||
Line 284: | Line 167: | ||
* Un autre groupe en RICM4 travaille aussi sur ce projet. Leur page wiki est accessible via le lien ci-dessous: |
* Un autre groupe en RICM4 travaille aussi sur ce projet. Leur page wiki est accessible via le lien ci-dessous: |
||
:- [http://air.imag.fr/index.php/Proj-2014-2015-SmartClassroom Proj-2014-2015-SmartClassroom] |
:- [http://air.imag.fr/index.php/Proj-2014-2015-SmartClassroom Proj-2014-2015-SmartClassroom] |
||
* Un autre groupe en RICM5. Avait déjà réalisé ce projet l'an dernier, n'hésitez pas à consulter leur page wiki : |
|||
:- [http://air.imag.fr/index.php/Proj-2014-2015-SmartClassRoom Proj-2014-2015-SmartClassroom] |
|||
=6. Index= |
=6. Index= |
Latest revision as of 09:43, 1 February 2016
The document provides a template of the Software Requirements Specification (SRS). It is inspired of the IEEE/ANSI 830-1998 Standard.
Version | Date | Authors | Description | Validator | Validation Date | |
---|---|---|---|---|---|---|
0.1.0
|
January 2015
|
Thibault SAUSSAC
|
First description
|
Thibault SAUSSAC
|
January, 27th 2015
|
1. Introduction
1.1 Purpose of the requirements document
A l'aide de ce document nous aimerions clarifier différents points de notre projet ProjetSmartClassroom :
- Présenter aux lecteurs les différentes parties de notre projet.
- Permettre aux lecteurs de découvrir les technologies que nous choisissons.
- Présenter l'approche et les solutions que nous avons proposées pour mener à bien ce projet
- Donner des améliorations envisageables pour des travaux futurs.
1.2 Scope of the product
L'objectif à moyen voir à long terme de ce projet est de mettre en place des technologies qui permettent d'améliorer les enseignements dans les salles de cours en utilisant des technologies innovantes inspiré par des résultats de travaux de recherche.
On peut ainsi imaginer des activités pédagogiques interactives comme des évaluations fournissant des réponses instantanées et permettant ainsi aux enseignants de voir quand un concept doit être révisé ou quand ils doivent davantage aider les élèves. Ce projet est donc principalement destiné aux enseignants. Il leur permettra de passer d'un type d'enseignement à un autre plus évolué, c'est à dire gérer plus efficacement leurs classes, et évaluer la compréhension des élèves durant le cours. On distingue ensuite les élèves qui pourront entre autres organiser leurs propres fichiers multimédias, prendre des notes, collaborer avec d'autres élèves ou partager des fichiers avec les enseignants.
1.3 Definitions, acronyms and abbreviations
OCR
- La reconnaissance optique de caractères (ROC, en anglais optical character recognition : OCR) désigne les procédés informatiques pour la traduction d'images de textes imprimés ou dactylographiés en fichiers de texte.
Goslate
- C'est une API gratuite en python qui fournit un service de traduction de Google en interrogeant le service de Google Traduction.
Tesseract
- Tesseract est un moteur open source de reconnaissance optique de caractères qui peut être utilisé :
- soit directement, en ligne de commandes soit par l'intermédiaire d'une interface graphique pour reconnaitre du texte avec mise en page basique ; cet usage est déjà fonctionnel.
- soit avec des surcouches gérant les mises en page complexes, etc., comme ocropus (encore en version beta).
Tiled Display
- Le principe est de créer un écran géant composé de plusieurs écrans plus petits :
N'importe quel écran peut être utilisé pour un wall display (il est tout de même nécessaire d'adapter ensuite la technologie et les outils utilisés). Par exemple il est possible d'utiliser :
- les écrans d'ordinateurs ou de télévisions
- plusieurs vidéoprojecteurs
- les écrans de téléphone mobile
NowJS
- Ce module utilise les socket.io et permet de créer des applications web fonctionnant en temps-réel.
Fonctionnement : Un composant “now” est partagé entre le serveur et tous les clients. On peut ainsi lancer une fonction implémentée sur le serveur à partir d’un client, et aussi avoir accès à tous les composants déposés dans “now”.
node-demux
- Ce module permet de décoder en temps-réel une video en images brutes. Il utilise la technologie ffmpeg.
fluent-ffmpeg
- Ce module très puissant permet d’utiliser la technologie ffmpeg sur NodeJS. Contrairement à node-demux, il permet de décoder des videos en temps-réel et en plusieurs formats, comme .flv, en incluant les sons. Il permet aussi de décoder uniquement la partie audio d’un fichier vidéo. Ce module est très efficace pour faire du streaming vidéo.
1.4 References
General :
Ce projet est un projet de fin d'étude, qui se déroule à Polytech Grenoble, et soutenu par la FABMSTIC. La page du projet sur le wiki air est disponible via ce lien ProjetSmartClassroom
Technical :
Le Tiled Display - http://air.imag.fr/index.php/Tiled_Display
Librairies:
Tess4J - http://tess4j.sourceforge.net/
ImageMagick - http://www.imagemagick.org/
Goslate: Free Google Translate API - http://pythonhosted.org/goslate/
NowJS - https://github.com/Flotype/now/
node-demux - https://github.com/tmarrinan/node-demux
fluent-ffmpeg - https://github.com/fluent-ffmpeg/node-fluent-ffmpeg
1.5 Overview of the remainder of the document
Le reste de ce document présente les caractéristiques techniques du projet telles que les exigences et les contraintes, ainsi que les caractéristiques nécessaires à l'utilisateur. La section 3 décrit les exigences détaillées, spécifiques et fonctionnelles, de performance, système et autres exigences relatives au projet. Des renseignements complémentaires sur les annexes sont également fournis dans cette même section.
2. General description
L'objectif à long terme de ce projet est de mettre en place des technologies qui permettront d'améliorer les techniques d'enseignement dans les salles de cours.
Ce projet se divise en deux parties :
- Tableau interactif avec numérisation de l'information
- Tiled display sur tables tactiles
2.1 Product perspective
Nous devons en effet tenir compte de l'évolution possible de ce projet. Pour le tableau interactif, l'utilisateur effectue une manipulation virtuelle de données sur un tableau blanc physique. En effet il écrit son texte et la traduction de celui-ci est projeté dans la langue qu'il a choisie parmi celles proposées. Une idée d'amélioration est d'intégrer de la résolution automatique d'équations et d'animations de schémas physiques. Pour la table, on pourrait imaginer la réalisation d'applications communes (par exemple un cours d’anatomie) pouvant tirer profit du tiling display.
2.2 Product functions
2.3 User characteristics
Ce projet est principalement destiné aux enseignants. Il leur permettra de passer d'un type d'enseignement à un autre plus évolué, c'est à dire gérer plus efficacement leurs classes, et évaluer la compréhension des élèves durant le cours. On distingue ensuite les élèves qui pourront entre autres organiser leurs propres fichiers multimédias, prendre des notes, collaborer avec d'autres élèves ou partager des fichiers avec les enseignants.
Toutefois, on peut les distinguer des utilisateurs développeurs qui pourront ajouter de nouvelles fonctionnalités au projet.
2.4 General constraints
- L'image capturée du tableau ne doit pas être vide ou corrompue
- Pour les fichiers d'entrée et de sortie le format est .txt
- Le format de sortie des images est .png (peu importe leur format d'entrée)
- Le script de traduction est écrit en Python
- Une connexion internet est nécessaire pour l’exécution du script
2.5 Assumptions and dependencies
- Une connexion haut-débit et avec une faible latence est requise pour accélérer le processus de traduction de Goslate et la projection de vidéos HD en tiled display
- Pour bénéficier de cette connexion, des dongles wifi sont nécéssaires
- Pour la capture d'images et la projection il faut respectivement un appareil photo et un vidéo projecteur
3.Specific requirements, covering functional, non-functional and interface requirements
- document external interfaces,
- describe system functionality and performance
- specify logical database requirements,
- design constraints,
- emergent system properties and quality characteristics.
3.1 Requirement X.Y.Z (in Structured Natural Language)
4. Product evolution
5. Appendices
5.1 Specification
- La page principale du projet peut être trouvée ici
- Un autre groupe en RICM4 travaille aussi sur ce projet. Leur page wiki est accessible via le lien ci-dessous:
- Un autre groupe en RICM5. Avait déjà réalisé ce projet l'an dernier, n'hésitez pas à consulter leur page wiki :