Projets:Image2Touch

De wikilab
Image2Touch

ImageWikilab4 small.png

Informations
Description Logiciel permettant de transformer un schéma ou carte en couleurs en un modèle 3D à imprimer.
Catégorie Malvoyance
Etat d'avancement En cours
Techniques modélisation 3d
Durée de fabrication
Coût matériel
Niveau
Licence autre: CECIL
Date de création 2020-09-03
Équipe
Porteur de projet Francois LB
Contributeurs
Fabmanager Delphine
Référent documentation Delphine
Partenaires: Lab4i
Nom humanlab Humanlab_MHK
Documentation
Statut de la documentation Partielle
Relecture de la documentation Non vérifiée

Description du projet

Image2Touch est un logiciel permettant de charger une image (png, bmp, gif), et de générer un modèle 3D (stl) à partir de cette image. Le modèle 3D généré, une fois imprimé en 3D, permet la "lecture" de cette image au toucher. Le logiciel ne supporte pas les dégradés de couleur : les images utilisées doivent être composées d'aplats de couleurs.


Ainsi, cet outil transforme une image pour la convertir en objet en relief pour les personnes malvoyantes et aveugles. Il est utilisable par une personne déficiente visuel. En effet, l’IHM du logiciel a été développée avec la librairie WX python pour assurer un bon niveau d’accessibilité numérique. Ce logiciel est donc parfaitement utilisable sur PC avec le lecteur d’écran NVDA.

Cahier des charges

Le but du projet est de réaliser un logiciel open-source permettant de :

  • Charger une image représentant une carte ou un schéma, dans le plus grand nombre de formats possibles
  • Générer au format STL un modèle 3D à partir de cette image pouvant être "lu" au toucher (sorte de bas-relief)
  • Utiliser un lecteur d'écran pour son utilisation par une personne malvoyante
  • Ajuster les paramètres de génération du modèle 3D

Analyse de l'existant et liens utiles

Prototypes de génération de modèles 3D à partir de fichiers STL :

Sources d'images adaptées aux malvoyants :

Matériel

L'utilisation du logiciel nécessite un ordinateur. Bien que non nécessaire à l'utilisation du logiciel, l'impression du modèle généré nécessite d'avoir accès à une imprimante 3D.

Outils

Les outils principaux utilisés pour le développement de ce logiciel sont les suivants :

  • Python 3.10
  • WxPython 4.2
  • Blender 3.4

Coût

L'outil est disponible gratuitement. Le seul coût à l'utilisation est celui de l'impression 3D.

Fichiers source

Les fichiers sources sont disponibles sur GitHub. Les fichiers sont disponibles sur GitHub :


Note : vérifier la presence d’éventuelles mises à jour dans le dépôt.


Se reporter à la documentation fournie dans le fichier Readme disponible sur ces dépôts. Le menu aide de l’application apportera des informations complémentaires à l’utilisateur.

Etapes de fabrication pas à pas

Une archive est disponible au téléchargement sur GitHub. Elle doit être extraite dans un dossier vide. L'exécutable qu'elle contient permet d'utiliser le programme.

Pour garantir les meilleurs résultats, choisir une image selon les critères suivants :

  • Une image pas trop petite pour éviter la pixellisation
  • Une image avec des aplats de couleurs. Eviter les dégradés de couleurs, les photos...
  • Une image sans lignes fines. Si votre image contient des lignes fines, le mieux est de les enlever ou de les épaissir à la main avant utilisation du logiciel.
  • Une image qui ne contient pas trop de couleurs différentes. Attention, certaines images contiennent beaucoup de couleurs similaires, qui semblent identiques de loin.

Pour convertir une image, la procédure est la suivante :

  • Ouvrez le programme (Image2Touch.exe) et attendez que l'interface apparaisse
  • Cliquez sur "Open a file..." (Alt+O), et choisissez l'image à convertir, puis cliquez sur "OK".
  • Attendez que l'image soit traitée (cela peut prendre de quelques secondes à une minute). La barre de progression indique l'avancement de cette tâche.
  • Si besoin, ajustez les hauteurs associées à chaque couleur. Ces hauteurs ne sont pas en millimètres, mais sont des valeurs arbitraires qui seront ensuite mises à l'échelle en fonction de l'épaisseur choisie. Par défaut, les couleurs les plus représentées sur l'image ont les hauteurs les plus faibles, afin d'économiser de la matière.
  • Changez les dimensions du modèle généré
  • Sélectionnez le ou les formats de sortie (fichiers STL et/ou BLEND)
  • Cliquez sur "Generate" (Alt+G).
  • Attendez que le fichier soit généré. Cela peut prendre jusqu'à quelques minutes. La barre de progression indique l'avancement de cette tâche.
  • Récupérez les fichiers générés, placés à côté de l'image initiale.

Retours utilisateurs

Pour l'instant, seul François a testé le logiciel. Ses retours sont positifs, attestant de la capacité du logiciel à être utilisé par des malvoyants, ainsi que de la qualité des modèles générés.

Perspectives

Les perspectives d'amélioration pour le projet sont les suivantes :

  • Tester le programme sur une plus grande variété d'images (par exemple, des images en niveaux de gris), et améliorer la génération 3D en conséquence
  • Améliorer la détection des couleurs. Cette détection peut être lente et donne parfois trop de couleurs, en particulier avec des images en niveaux de gris.
  • Permettre de réaliser des surfaces texturées (hachurées par exemple) en plus des surfaces planes. Chaque couleur pourrait être associée à une texture.
  • Permettre d'ignorer certaines couleurs, par exemple pour éliminer les lignes fines
  • Permettre au programme de gérer automatiquement les lignes fines
  • Effectuer une démarche UX pour rendre l'outil plus facile d'utilisation
  • Ajouter plus de paramètres pour l'utilisation du programme en ligne de commande
  • Permettre de sauvegarder et charger des paramètres de génération (par exemple dans un fichier xml, ou json)
  • Intégrer un support pour une conversion du texte en braille. Cette fonctionnalité semble difficile mais pourrait être réalisable.
  • Diminuer la taille de l'exécutable en utilisant les scripts Blender de l'environnement. En effet, l'environnement python est intégré à l'exécutable, mais pour l'instant les scripts Blender doivent être placés à côté pour être détectés.
  • Etudier la possibilité d'utilisation du programme sous Linux.
  • Utiliser GitHub actions pour générer automatiquement l'exécutable pour chaque nouvelle version, plutôt que de le fournir manuellement