{"id":7307,"date":"2022-07-04T22:31:42","date_gmt":"2022-07-04T21:31:42","guid":{"rendered":"https:\/\/telefab.fr\/?p=7307"},"modified":"2026-04-30T17:33:59","modified_gmt":"2026-04-30T15:33:59","slug":"text-ml-la-reconnaissance-de-caractere-grace-a-lintelligence-artificielle","status":"publish","type":"projet","link":"https:\/\/hub.imt-atlantique.fr\/fablab\/projet\/text-ml-la-reconnaissance-de-caractere-grace-a-lintelligence-artificielle\/","title":{"rendered":"TEXT-ML : La reconnaissance de caract\u00e8re gr\u00e2ce \u00e0 l&rsquo;intelligence artificielle"},"content":{"rendered":"<p><span style=\"font-weight: 400;\">Malgr\u00e9 le d\u00e9veloppement de la dactylographie, l\u2019\u00e9criture manuscrite conserve une place importante dans notre quotidien : elle est toujours enseign\u00e9e aux enfants et reste un moyen naturel pour fixer la pens\u00e9e. Cependant, l\u2019\u00e9criture manuscrite pr\u00e9sente des d\u00e9fauts : elle reste fig\u00e9e sur un support mat\u00e9riel, difficilement duplicable, volumineux et par cons\u00e9quent plus difficile \u00e0 transmettre. Une solution pour concilier les avantages du manuscrit avec la\u00a0<\/span><span style=\"font-weight: 400;\">flexibilit\u00e9 du num\u00e9rique est de concevoir un stylo pouvant num\u00e9riser et stocker l\u2019information et permettre son partage sur plusieurs appareils. C\u2019est le cas du stylo fabriqu\u00e9 par STABILO DigiVision, le Digipen. Celui-ci enregistre, gr\u00e2ce \u00e0 plusieurs capteurs de mouvements, les donn\u00e9es du mouvement de la main lors de l\u2019\u00e9criture d\u2019une lettre. Afin de rendre ce stylo utilisable, il est n\u00e9cessaire de le coupler \u00e0 un algorithme pouvant reconna\u00eetre des caract\u00e8res manuscrits \u00e0 partir de ces donn\u00e9es issues de capteurs.\u00a0<\/span><\/p>\n<p><span style=\"font-weight: 400;\">L\u2019objectif du projet TEXT-ML, r\u00e9alis\u00e9 dans le cadre du projet CODEVSI, est de d\u00e9velopper cet algorithme d\u2019apprentissage. L\u2019algorithme prend en entr\u00e9e les donn\u00e9es inertielles correspondantes aux caract\u00e8res manuscrits et fournit en sortie les caract\u00e8res identifi\u00e9s. Il doit \u00eatre capable de reconna\u00eetre toutes les lettres de l\u2019alphabet latin en minuscule et en majuscule dans une configuration qui s\u2019approche d\u2019un cas d\u2019utilisation r\u00e9el.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">L\u2019\u00e9quipe projet est compos\u00e9e de 4 \u00e9tudiants de FISE-1A : Adrien Faye, Fr\u00e9d\u00e9ric Lin, L\u00e9o Stengel, Touzi Ali et est encadr\u00e9e par Charlotte Langlais et Gulia Lioi.<\/span><\/p>\n<p>&nbsp;<\/p>\n<h2><strong><span style=\"text-decoration: underline;\">R\u00e9alisation.<\/span><\/strong><\/h2>\n<p><span style=\"font-weight: 400;\">La r\u00e9alisation du produit s\u2019est faite en plusieurs parties.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">Tout d\u2019abord, nous avons r\u00e9cup\u00e9r\u00e9 un ensemble de donn\u00e9es, ou dataset, cr\u00e9\u00e9 par l\u2019\u00e9quipe de recherche STABILO Digipen et disponible en ligne. Cet ensemble est constitu\u00e9 de 31000 \u00e9chantillons de donn\u00e9es directement issues des capteurs int\u00e9gr\u00e9s au stylo, chacun \u00e9tant associ\u00e9 \u00e0 la lettre correspondante. Ces donn\u00e9es brutes sont difficilement manipulables et assez peu adapt\u00e9es \u00e0 l\u2019entra\u00eenement des mod\u00e8les. Il a donc \u00e9t\u00e9 n\u00e9cessaire de pr\u00e9parer les donn\u00e9es avant l\u2019\u00e9tape d\u2019entra\u00eenement des mod\u00e8les, c\u2019est l\u2019\u00e9tape dite de preprocessing. Celle-ci consiste \u00e0 formater et normaliser l\u2019ensemble du dataset, puis \u00e0 le s\u00e9parer en trois ensembles distincts : entra\u00eenement, validation et test.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">Vient ensuite l&rsquo;\u00e9tape de l\u2019entra\u00eenement des mod\u00e8les avec notre jeu de donn\u00e9es pr\u00e9par\u00e9. Pour cela, nous impl\u00e9mentons les mod\u00e8les sur Python en passant en param\u00e8tre le jeu de donn\u00e9es que nous avons format\u00e9 lors de l&rsquo;\u00e9tape pr\u00e9c\u00e9dente \u00e0 l\u2019algorithme du mod\u00e8le.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">Finalement, une fois l&rsquo;entra\u00eenement d\u2019un mod\u00e8le achev\u00e9, nous comparons nos r\u00e9sultats avec ceux de l\u2019\u00e9tat de l\u2019art, qui servent de r\u00e9f\u00e9rence dans ce projet. Les premiers r\u00e9sultats sont souvent assez faibles, il faut donc modifier les param\u00e8tres des mod\u00e8les afin d&rsquo;am\u00e9liorer les r\u00e9sultats. Cela constitue la troisi\u00e8me \u00e9tape de ce projet : l&rsquo;optimisation des mod\u00e8les. Plusieurs param\u00e8tres sont test\u00e9s et, de mani\u00e8re empirique, nous d\u00e9terminons les param\u00e8tres les plus adapt\u00e9s pour l&rsquo;entra\u00eenement des mod\u00e8les.<\/span><\/p>\n<p><a href=\"https:\/\/hub.imt-atlantique.fr\/fablab\/wp-content\/uploads\/archives\/2022\/07\/IM1.png\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-medium wp-image-7308\" src=\"https:\/\/hub.imt-atlantique.fr\/fablab\/wp-content\/uploads\/archives\/2022\/07\/IM1-300x36.png\" alt=\"\" width=\"300\" height=\"36\" \/><\/a><\/p>\n<p><span style=\"font-weight: 400;\">En parall\u00e8le de ce processus\u00a0 se d\u00e9roule la conception de l\u2019interface graphique permettant l\u2019utilisation des mod\u00e8les entra\u00een\u00e9s de mani\u00e8re intuitive et accessible \u00e0 des utilisateurs externes.<\/span><\/p>\n<p>&nbsp;<\/p>\n<h2><strong><span style=\"text-decoration: underline;\">Pr\u00e9sentation du produit.<\/span><\/strong><\/h2>\n<p><span style=\"font-weight: 400;\">Le produit fini se pr\u00e9sente sous la forme d\u2019un programme Python qui, une fois ex\u00e9cut\u00e9, ouvre une interface graphique. L\u2019archive du projet est disponible au t\u00e9l\u00e9chargement sur :\u00a0<a href=\"https:\/\/gitlab.imt-atlantique.fr\/g20lioi\/text-ml-2022\">https:\/\/gitlab.imt-atlantique.fr\/g20lioi\/text-ml-2022<\/a><\/span>.<\/p>\n<p><span style=\"font-weight: 400;\">L\u2019interface graphique se pr\u00e9sente comme ci-dessous :<\/span><\/p>\n<p><span style=\"font-weight: 400;\">\u00a0<a href=\"https:\/\/hub.imt-atlantique.fr\/fablab\/wp-content\/uploads\/archives\/2022\/07\/IM2.png\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-medium wp-image-7309\" src=\"https:\/\/hub.imt-atlantique.fr\/fablab\/wp-content\/uploads\/archives\/2022\/07\/IM2-300x152.png\" alt=\"\" width=\"300\" height=\"152\" \/><\/a><\/span><\/p>\n<p><span style=\"font-weight: 400;\">L\u2019utilisateur entre un caract\u00e8re, choisit un mod\u00e8le puis appuie sur le bouton Start pour d\u00e9marrer la reconnaissance d\u2019un caract\u00e8re manuscrit : ce caract\u00e8re est choisi parmi tous les caract\u00e8res dans le dataset de test qui correspondent au caract\u00e8re entr\u00e9 par l\u2019utilisateur. La pr\u00e9diction du mod\u00e8le est alors affich\u00e9e en verte si celle-ci est correcte sinon elle est affich\u00e9e en rouge comme ci-dessous :<\/span><\/p>\n<p><a href=\"https:\/\/hub.imt-atlantique.fr\/fablab\/wp-content\/uploads\/archives\/2022\/07\/IM3.png\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-medium wp-image-7310\" src=\"https:\/\/hub.imt-atlantique.fr\/fablab\/wp-content\/uploads\/archives\/2022\/07\/IM3-300x300.png\" alt=\"\" width=\"300\" height=\"300\" \/><\/a><\/p>\n<p><span style=\"font-weight: 400;\">Pour des utilisateurs plus exp\u00e9riment\u00e9s dans le domaine, une page m\u00e9trique de performance a \u00e9t\u00e9 ajout\u00e9e \u00e0 l\u2019interface et ceux-ci peuvent retrouver les \u00e9volutions des performances selon certains param\u00e8tres pour chacun des mod\u00e8les et les r\u00e9sultats de performances des diff\u00e9rents mod\u00e8les.<\/span><a href=\"https:\/\/hub.imt-atlantique.fr\/fablab\/wp-content\/uploads\/archives\/2022\/07\/IM4.png\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-medium wp-image-7311\" src=\"https:\/\/hub.imt-atlantique.fr\/fablab\/wp-content\/uploads\/archives\/2022\/07\/IM4-300x137.png\" alt=\"\" width=\"300\" height=\"137\" \/><\/a><\/p>\n<p>&nbsp;<\/p>\n<h2><strong><span style=\"text-decoration: underline;\">Perspectives d&rsquo;\u00e9volutions du projet.<\/span><\/strong><\/h2>\n<p>&nbsp;<\/p>\n<p><span style=\"font-weight: 400;\">L&rsquo;\u00e9quipe du projet propose une vari\u00e9t\u00e9 de mod\u00e8les diff\u00e9rents, dont certains obtiennent une meilleure pr\u00e9cision que l&rsquo;\u00e9tat de l&rsquo;art, et ces mod\u00e8les peuvent \u00eatre d\u00e9ploy\u00e9s sur un stylo muni de capteurs inertiels. Il semble alors int\u00e9ressant d&rsquo;am\u00e9liorer les mod\u00e8les moins performants. Mais, plus important encore, impl\u00e9menter une transmission directe entre un stylo et l&rsquo;interface graphique sera n\u00e9cessaire par la suite pour s&rsquo;approcher de la num\u00e9risation de l&rsquo;\u00e9criture manuscrite.\u00a0<\/span><\/p>\n<p><span style=\"font-weight: 400;\">Par ailleurs, \u00e9tendre ce type de reconnaissance \u00e0 tout type de caract\u00e8res, voire \u00e0 des trac\u00e9s, para\u00eet in\u00e9vitable pour la num\u00e9risation de textes manuscrits complets. Pour parvenir \u00e0 un stylo dont nous pourrions totalement num\u00e9riser les mouvements, certains obstacles restent \u00e0 franchir, mais une num\u00e9risation des textes manuscrits semble \u00eatre dans un futur proche.<\/span><\/p>\n","protected":false},"author":1,"featured_media":7310,"parent":0,"menu_order":0,"template":"","meta":{"_acf_changed":false,"footnotes":""},"categories":[15,20],"type_projet":[],"class_list":["post-7307","projet","type-projet","status-publish","has-post-thumbnail","hentry","category-formation","category-projets"],"acf":{"objectifs":"","categorie":false,"fichiers_associes":null},"_links":{"self":[{"href":"https:\/\/hub.imt-atlantique.fr\/fablab\/wp-json\/wp\/v2\/projet\/7307","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/hub.imt-atlantique.fr\/fablab\/wp-json\/wp\/v2\/projet"}],"about":[{"href":"https:\/\/hub.imt-atlantique.fr\/fablab\/wp-json\/wp\/v2\/types\/projet"}],"author":[{"embeddable":true,"href":"https:\/\/hub.imt-atlantique.fr\/fablab\/wp-json\/wp\/v2\/users\/1"}],"version-history":[{"count":1,"href":"https:\/\/hub.imt-atlantique.fr\/fablab\/wp-json\/wp\/v2\/projet\/7307\/revisions"}],"predecessor-version":[{"id":10403,"href":"https:\/\/hub.imt-atlantique.fr\/fablab\/wp-json\/wp\/v2\/projet\/7307\/revisions\/10403"}],"wp:attachment":[{"href":"https:\/\/hub.imt-atlantique.fr\/fablab\/wp-json\/wp\/v2\/media?parent=7307"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/hub.imt-atlantique.fr\/fablab\/wp-json\/wp\/v2\/categories?post=7307"},{"taxonomy":"type_projet","embeddable":true,"href":"https:\/\/hub.imt-atlantique.fr\/fablab\/wp-json\/wp\/v2\/type_projet?post=7307"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}