Proj-2014-2015-SmartClassRoom/SRS: Difference between revisions

From air
Jump to navigation Jump to search
No edit summary
 
(51 intermediate revisions by 2 users not shown)
Line 2: Line 2:




{|class="wikitable alternance"
{|class="wikitable alternance"
|+ Document History
|+ Document History
|-
|-
Line 22: Line 22:
|
|


February 2014
March 2014




April 2014
March 2014


April 2014
March 2014
| El Hadji Malick Fall
| El Hadji Malick Fall
Benoît Perruche
Adam Tiamiou


El Hadji Malick Fall
El Hadji Malick Fall


Benoît Perruche
Adam Tiamiou
| First description
| First description


Line 42: Line 42:
Third description
Third description
| El Hadji Malick Fall
| El Hadji Malick Fall
Benoit Perruche
Adam Tiamiou


Benoit Perruche
Adam Tiamiou


El Hadji Malick Fall
El Hadji Malick Fall
|
|
Month, dayth 2015
March, 14th 2015




March, 16th 2014
Month, dayth 2015


March, 19th 2014
Month, dayth 2015


|}
|}



=1. Introduction=
=1. Introduction=
Line 63: Line 62:


Les principaux objectifs de ce document qui décrit notre projet '''SmartClassroom''' sont:
Les principaux objectifs de ce document qui décrit notre projet '''SmartClassroom''' sont:
*permettre aux gens d'identifier les différentes parties de notre projet
*permettre aux lecteurs d'identifier les différentes parties de notre projet
*permettre aux gens de découvrir les technologies que nous allons développer
*permettre aux lecteurs de découvrir les technologies que nous avons développer
*expliquer l'approche adoptée et les solutions que nous avons proposées
*expliquer l'approche adoptée et les solutions que nous avons proposées
*fournir une base de travail pour de futures améliorations
*fournir une base de travail pour de futures améliorations
Line 70: Line 69:
==1.2 Scope of the product==
==1.2 Scope of the product==


L'objectif à long terme de ce projet est de mettre en place des technologies qui permettent d'améliorer les techniques d'enseignement dans les salles de cours. 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 se divise en deux parties :
* Tableau interactif
* Tiled display sur tables tactiles
L'objectif à long terme de ce projet est de mettre en place des technologies qui permettent d'améliorer les techniques d'enseignement dans les salles de cours. 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 aider davantage les élèves.


==1.3 Definitions, acronyms and abbreviations==
==1.3 Definitions, acronyms and abbreviations==
Line 103: Line 99:


'''fluent-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 son. 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.
::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==
==1.4 References==
Line 109: Line 105:
'''General :'''
'''General :'''


Ce projet est un projet d'école, 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/Proj-2014-2015-SmartClassRoom]
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/Proj-2014-2015-SmartClassRoom ProjetSmartClassroom]


'''Technical :'''
'''Technical :'''


Le Tiled Display - http://air.imag.fr/index.php/Tiled_Display
<A remplir>


'''Librairies:'''
'''Librairies:'''
Line 131: Line 127:
==1.5 Overview of the remainder of the document==
==1.5 Overview of the remainder of the document==


Le reste de ce document présentera les caractéristiques techniques du projet telles que les exigences et les contraintes, et les caractéristiques des utilisateurs.
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 est également fourni dans cette même section.
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=
=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.
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==
==2.1 Product perspective==
Nous devons en effet tenir compte de l'évolution possible de ce projet.
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 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).
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.2 Product functions==
Line 149: Line 148:
Dans un premier temps, à partir d'un vidéo projecteur placé en face du tableau, il est possible en temps réel de:
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
* Capturer des images des textes manuscrits
* Récupérer du texte à partir de ses images
* Récupérer des strings à partir de ces images




'''Translation and conversion'''
'''Translation or arithmetic and conversion'''


Dans un second temps, le texte traduit est projeté sur le tableau.
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 :
Cela nécessite deux étapes:
*Traitement
* Traduction du texte
* Conversion du texte traduit en format image
*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===
===2.2.2 Touch tables===
'''Tiled display'''
'''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)
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Donec vehicula non sem sed tempus. Maecenas euismod vulputate erat, blandit interdum dolor ultrices tincidunt. Phasellus a pharetra ex. Nunc commodo, ex et gravida pretium, tellus ligula vehicula turpis, eu lacinia neque leo sed augue.
* 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==
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, é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.
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 distinguer des utilisateurs développeurs qui ajouteront de nouvelles fonctionnalités au projet.
Toutefois, on peut les distinguer des utilisateurs développeurs qui pourront ajouter de nouvelles fonctionnalités au projet.


==2.4 General constraints==
==2.4 General constraints==
* L'image capturée du tableau ne doit pas être vide ou corrompue
* Unlike existing technologies, our robotic arm must have the feature of being able to detect an object with a marker and get it back.
* Pour les fichiers d'entrée et de sortie le format est '''.txt'''
* It must also be able to interpret a series of instructions that will be given to him.
* Le format de sortie des images est '''.png''' (peu importe leur format d'entrée)
* A format is imposed for writing data : XML.
* Le script de traduction est écrit en Python
* The file format that records the result of the detection should not be changed. This may affect the detection of the position of the object when moving it.
* Une connexion internet est nécessaire pour l’exécution du script
* The marker detection is written in C++
* The system of agents is written in Python
* The simulator is written in Python


==2.5 Assumptions and dependencies==
==2.5 Assumptions and dependencies==
Line 192: Line 192:
==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.
This diagram below describes how our project works.


'''<image>'''
[[File:GlobalArchitecture.png|400px|thumb|center]]


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.
First, the Client Agent launches the detection with ArUco and gets a marker vector. It applies then a regular expression that allows him to extract the coordinates of
marker vector and transform them into XML tags that are successively transmitted to the Agent Server that receives them in order to form the file that will allow him to begin its simulation.


=== 3.1.1 Markers detection ===
=== 3.1.1 Text detection ===


'''Description''': The camera detects the marker on the object and locates it
'''Description''': Le texte écrit sur le tableau est capturé et extrait à partir d'une image


'''Inputs''': Video stream and markers
'''Inputs''': Image récupéré du tableau


'''Source''': ArUco library detection
'''Source''': Appareil photo et SDK gphoto2


'''Outputs''': Fichier texte contenant le texte écrit au tableau
'''Outputs''': Video stream with markers highlighted with their id and an file which contains one of the found marker vector (its id and the coordinates of the four points which is made up of)


'''Destination''': All people, all object which can be taken by the robot
'''Destination''': Le script de traduction Python


'''Action''':
'''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.
The ArUco library detects borders and analyzes in rectangular regions which may be markers. When a marker is found, its vector is write into a file.


'''Non functional requirements''': The marker detection should be done in real time and faster
'''Non functional requirements''': L'extraction du texte doit être fait en temps réel et rapidement


'''Pre-condition''': Have a camera and ArUco library installed
'''Pre-condition''': Disposer d'un appareil photo et installer les librairies gphoto2 et Tess4J


'''Post-condition''': The marker has to be well recognized.
'''Post-condition''': Le texte doit être bien reconnu


'''Side-effects''': Failure of the marker recognition
'''Side-effects''': Échec dans la détection du texte, Image d'entrée floue


=== 3.1.2 Coordinates transfer ===
=== 3.1.2 Translation and text projection ===


'''Description''': Coordinates are extracted in the marker vector and transferred as XML Tags
'''Description''': Le fichier de sortie de Tess4J est traduit puis transformé en image pour être projeté


'''Inputs''': A file
'''Inputs''': Un fichier texte


'''Source''': Spade Agents (Client and Server), a platform connexion
'''Source''': Script de traduction Python Goslate


'''Outputs''': An XML file
'''Outputs''': Une image contenant le texte traduit


'''Destination''': The Agent Server
'''Destination''': Le vidéo-projecteur


'''Action''':
'''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.
The Agent Client applies a regular expression to extract coordinates into the file and send it to the Server


'''Non functional requirements''': The messages have to be delivered quickly and arrive in order. A message must not be lost.
'''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''': Download, configure and launch SPADE platform connexion (in localhost or in a specific IP adress)
'''Pre-condition''': Avoir un vidéo projecteur et installer Python 2.7 et la librairie Goslate.


'''Post-condition''': All messages have reached their destination in order
'''Post-condition''': Le texte de sortie n'est pas vide


'''Side-effects''': Acknowledgments are sent by the server
'''Side-effects''':


=== 3.1.3 Graphic Simulation ===
=== 3.1.3 Tiled Display (video example) ===


'''Description''': Affichage d'une vidéo en tiling display sur deux tables tactiles accolées
'''Description''': The XML file is parsed and then the marker position is calculted and displayed on a graphic interface


'''Inputs''': An XML file
'''Inputs''': vidéo .mp4


'''Source''': Python xmldom and TKinter librairies
'''Source''': tables tactiles


'''Outputs''': A graphical interface
'''Outputs''': chaque table affiche sa moitié de la vidéo


'''Destination''': To the robot and people who used it (as the other group)
'''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.
'''Action''':

The Server Agent interprets XML tags and gets back the coordinates of the corresponding point and display it. The point depicting the robot is also displayed and can be moved with the keyboard
'''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''': The version of the XML file must be 1.0.


'''Non functional requirements''': réseau local entre les tables et le pc réalisant l'analyse d'image et la traduction
'''Pre-condition''': The XML file is readable and contains no error


'''Pre-condition''': tables et ordinateur du tableau interactif connectés au serveur
'''Post-condition''': The point is displayed on the screen with the exact coordinates given in parameter


'''Post-condition''': affichage de la traduction sur les tables
'''Side-effects''': A pop-up window is generated when the robot reachs the marker's position


=4. Product evolution=
=4. Product evolution=
*Résolution d'équations
*Résolution d'équations plus complexes
*Animations de figure avec moteurs physiques
*Animation de figures avec moteurs physiques
*Sélection de données à distance à partir d'une tablette
*Sélection de données à distance à partir d'une tablette
*Giving to the robot type of markers to detect as parameters
*Automatic recalibration of the position of the robot if the detected marker position is not optimal


=5. Appendices=
=5. Appendices=

Latest revision as of 09:10, 1 February 2016

The document provides a template of the Software Requirements Specification (SRS). It is inspired of the IEEE/ANSI 830-1998 Standard.


Document History
Version Date Authors Description Validator Validation Date
0.1.0


0.1.1

1.0.1

March 2014


March 2014

March 2014

El Hadji Malick Fall

Benoît Perruche

El Hadji Malick Fall

Benoît Perruche

First description


Second description

Third description

El Hadji Malick Fall

Benoit Perruche

Benoit Perruche

El Hadji Malick Fall

March, 14th 2015


March, 16th 2014

March, 19th 2014

1. Introduction

1.1 Purpose of the requirements document

Les principaux objectifs de ce document qui décrit notre projet SmartClassroom sont:

  • permettre aux lecteurs d'identifier les différentes parties de notre projet
  • permettre aux lecteurs de découvrir les technologies que nous avons développer
  • expliquer l'approche adoptée et les solutions que nous avons proposées
  • fournir une base de travail pour de futures améliorations

1.2 Scope of the product

L'objectif à long terme de ce projet est de mettre en place des technologies qui permettent d'améliorer les techniques d'enseignement dans les salles de cours. 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.

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.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

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 est requise pou 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)

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

  • Résolution d'équations plus complexes
  • Animation de figures avec moteurs physiques
  • Sélection de données à distance à partir d'une tablette

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:
- Proj-2014-2015-SmartClassroom

6. Index