HomeProductsDownloadOrderSupportSearch
  
 
 Myriad Blog 1.3.0 Tuesday, Mar 19th, 2024 at 06:29am 

Dev News Thursday, Nov 27th, 2008 at 04:55pm
GroundHog

 
Nous avons commencé à coder le projet GroundHog. Lié par une clause de non divulgation, nous ne pouvons détailler ce que nous faisons. C'est dommage, mais tout à fait compréhensible. Disons que ce projet sera basé sur du recyclage de certaines de nos librairies, mais sur un support matériel original.  
Pourquoi ce nom d'abord ?  
Ben...  
Comme c'est un projet qui devra rester caché jusqu'au Printemps, cela nous a semblé approprié !
by Didier Guillion
 1 comment.

Dev News Tuesday, Nov 25th, 2008 at 05:09pm
Harmony 9.4 / Melody 7.4 et autre Etape 287

 
Cela faisait un certain temps que je papillonnais sur le Forum de Discussion sans aller au plus profond des sujets. Il faut dire qu'il commence à y avoir des Lucky Luke de la réponse juste qui me donnent de plus en plus l'impression de mieux connaître nos logiciels que moi... J'ai donc pris quelques heures pour lire les fils en cours et essayer de donner quelques éclaircissements.
 
Sinon :
- Ajout d'une commande de configuration du plug-in permettant de ne plus afficher la barre verticale montrant la position dans la musique.
- Correction d'un problème de reconnaissance d'accroche dans PDFtoMusic
 
Et on travaille toujours sur la reconnaissance des caractères !
by Didier Guillion

Dev News Monday, Nov 24th, 2008 at 04:44pm
ScanToMusic Etape 29

 
Les extractions de formes élémentaires (lignes, arcs) du caractère scanné s'étant avérées suffisamment stables, nous avons commencé à implémenter un module de reconnaissance proprement dit.
 
Une série de caractères connus (16000 caractères issus de diverses fontes) est envoyée à l'extracteur, et les formes élémentaires ainsi obtenues sont stockées.  
 
Une fois cet apprentissage terminé, une autre série de caractères, issus d'une page scannée cette fois, est envoyée au programme, qui, en les comparant à ce qu'il a stocké lors de l'apprentissage, essaie de déterminer de quels caractères il s'agit.
 
Premiers essais. Le programme n'est pas aveugle, mais un peu myope. Il commet des erreurs, mais donne généralement comme résultat un caractère assez proche (Q au lieu de O, c au lieu de e, etc.)
Il faut maintenant essayer d'améliorer tout cela.
by Olivier Guillion

Dev News Friday, Nov 21st, 2008 at 04:35pm
ScanToMusic étape 28 et autre

 
Rien de très palpitant aujourd'hui. Nous continuons à explorer les différents algorithmes de reconnaissance de caractère sans rien de concret à présenter ici.
Nous avons commencé à collecter des glyphes de caractères scannés afin de créer une base qui nous servira soit à l'apprentissage, soit à la validation du module.
Ah ! Si ! Le contrat pour le projet GroundHog est en passe d'être signé, il devrait aboutir mi 2009 et là nous pourrons enfin en parler.
 
Vous connaissez le tilt shift ? Quelques photos bluffantes sur ce site :
 
http://www.smashingmagazine.com/2008/11/16/beautiful-examples-of-tilt-sh ift-photography/
by Didier Guillion

Dev News Thursday, Nov 20th, 2008 at 04:54pm
ScanToMusic étape 27

 
L'extraction des caractères à bien progressé. Nous l'avons ajusté sur différents scans, plus ou moins "propres". Le module peut pécher par excès : découper un caractère unique en deux parce qu'il est parasité ou par défaut : ne pas reconnaître deux caractères comme séparés dans un même blob.
Mais, comme tous ceci est paramétrable le module sera vraisemblablement invoqué avec différents jeux de paramètres jusqu'à ce que tous les éléments du blob soient reconnus.  
Nous espérons pouvoir connecter très bientôt l'extraction à la reconnaissance et voir comment cela réagit...
by Didier Guillion

Dev News Wednesday, Nov 19th, 2008 at 04:23pm
ScanToMusic étape 26

 
Pendant qu'Olivier planche toujours sur la reconnaissance de caractères, j'ai attaqué l'autre bout de la chaîne : l'extraction des caractères.
Une première étape à permis de localiser les lignes de caractères puis d'isoler des ensembles de caractères dans ces lignes.
En effet, et en particulier lorsque les caractères sont en italiques, ils se chevauchent verticalement et on obtient ce que l'on appelle un "blob" : un ensemble de caractères comme celui-ci par exemple :
 

 
Nous avions en tête depuis le début un algo spécial qui pouvait éventuellement ce sortir de ce genre de cas. Et on obtient :
 




 
Mince! Ca marche !
 
On voit que l'accent du "e" à été extrait comme un caractère à part entière. C'est normal et nous nous y attendions. Il va falloir maintenant trouver un moyen logique de le rattacher au "e". Nous avons quelques idées, que nous essaierons demain...
by Didier Guillion

Dev News Tuesday, Nov 18th, 2008 at 04:21pm
iPhone, étape 6 et Fin ?

 
Enfin ! Notre première application pour iPhone est disponible sur l'AppleStore. Démarrée et terminée en Août de cette année, il a fallu presque trois mois pour franchir toutes les barrières imposées par Apple. A l'ère où l'information circule à la vitesse de la lumière (voire même plus vite pour certaines rumeurs sur la santé de notre iPapy), c'est assez paradoxal...
 
Comme elle est maintenant publiée, nous pouvons donc en parler.  
 
C'est un logiciel gratuit pour iPhone et iPod, qui assure une interface avec des dictionnaires de traduction sur le web. Plus précisément avec le site :
 
http://www.wordreference.com
 
L'application s'appelle également WordReference. Sur l' Apple Store elle est référencée sous le nom "WordReference.com Spanish-English Dictionary" mais en fait c'est uniquement parce que les dictionnaires accessibles au départ sont Anglais et Espagnol.  Une simple configuration des boutons permet d'accéder aux dictionnaires Français.
 
 
Cela a été une expérience très intéressante.  
Nous nous devons de le reconnaitre, les kits de développement d'Apple sont plutôt bien fait. Très en avance sur Android par exemple.
 
Elle ressemble à cela :
 

by Didier Guillion
 1 comment.

Dev News Monday, Nov 17th, 2008 at 05:01pm
ScanToMusic Etape 25

 
Pour faire suite au dernier billet, nous avons amélioré la recherche de formes élémentaires dans les images scannées.
 
En plus des segments de droites, nous avons ajouté des arcs de cercle. Voici ce que cela donne avec les caractères pris en exemple la dernière fois.
 
A gauche, l'image originale du caractère scanné, au centre, les primitives graphiques qui en ont été extraites, dessinées en lignes fines, et à droite, les mêmes, dessinées en lignes épaisses:
 

 
Certaines lignes dépassent, car les calculs prennent en compte les bords extérieurs de la forme d'origine. Les formes extraites sont donc généralement trop longues d'une demi-épaisseur du tracé du caractère scanné. Ce sera ajusté, si besoin est.
 
Il nous reste maintenant à trouver une manière efficace de comparer ces données à un jeu de référence. Nous planchons toujours là-dessus.
by Olivier Guillion
 5 comments.

Dev News Friday, Nov 14th, 2008 at 05:04pm
ScanToMusic Etape 24

 
Pour reconnaître un caractère, il faut pouvoir le comparer à un ou plusieurs caractères de référence, afin d'en déduire un niveau de similarité.
 
Mais quelles données comparer? La présence de pixels allumés ou éteints à tel ou tel endroit ? Cela est trop sensible à la fonte utilisé, la taille, le "bruit" dû aux imperfections du papier ou du scan...
 
Il faut donc fournir à l'algorithme de classification des données sur le caractère scanné à reconnaître, qui soient à la fois peu nombreuses, pour faciliter et accélérer les comparaisons, mais également qui décrivent bien la forme du caractère, pour que l'algorithme ait suffisamment de matériel pour discriminer.
 
Si l'extraction des caractéristiques de l'image du caractère scanné fournit des données qui, quelle que soit la manière dont on les représente, ne permettent pas à un observateur humain de savoir de quel caractère il s'agissait, il y a fort à parier qu'un algorithme ne le pourra pas non plus (ou mal).
 
Dans cette optique, nous avons essayé de "vectoriser" l'image, c'est-à-dire, à partir du dessin du caractère, trouver le nombre minimal de formes graphiques (droites, arcs de cercle, etc) qui permettent de redessiner ce caractère, et suffisantes pour qu'un observateur humain puisse déterminer de quel caractère il s'agissait.
 
Le travail est complexe, mais nous sommes arrivés à d'assez bon résultats. En voici quelques exemples, en utilisant seulement des lignes droites :
 
A gauche un petit "a" extrait d'un texte scanné.
A droite, l'image décomposée (vectorisée) par l'algorithme en seulement 5 lignes droites
 

 
Avec un peu d'imagination, on peut aisément reconnaitre le "a" dans le dessin de droite. Cela ressemble à un petit "a" tracé à la main par un allergique aux courbes
 
Même chose avec un petit "d" (4 lignes) :
 

 
Un "M" donne ceci (5 lignes, dont une pour le serif à gauche):
 

 
et enfin un grand A, décomposé en seulement trois lignes:
 

 
Les premiers résultats sont donc encourageants, car il réduisent grandement la quantité d'information fournie à l'algorithme. Il faut maintenant vérifier la stabilité de l'extraction des vecteurs, puis trouver comment comparer deux jeux de vecteurs afin de reconnaître la lettre.
 
Il n'est cependant pas encore certain que ce type de traitement sera retenu dans la version finale. Nous avons jusqu'ici développé une vingtaine d'algorithmes différents, avec plus ou moins de succès. Nous en conserverons, au final, un maximum de 3 ou 4. Tous les autres finiront à la poubelle
by Olivier Guillion

Dev News Wednesday, Nov 12th, 2008 at 04:55pm
Harmony 9.4 / Melody 7.4 et autre Etape 284

 
 
Aujourd'hui :
- Amélioration de l'import Finale
- PDFtoMusic : amélioration de la gestion des appogiatures, correction de l'interprétation de certains types de portées batteries. Les appogiatures barrées sont localisées et exportées. Certaines partitions pour cornemuse, bourrées de ce type de symbole, sont maintenant traitées sans erreur.
- Correction de l'ajout de note sur la portée standard en mode tablature prioritaire
- Correction de l'ajout de note sur la tablature en mode tablature non prioritaire
by Didier Guillion

Dev News Monday, Nov 10th, 2008 at 05:00pm
ScanToMusic Etape 23

 
Toujours à la recherche de l'algorithme parfait de reconnaissance de caractère, l'intuition rejoint les conclusions de la documentation disponible à ce sujet : un tel algorithme n'existe pas.
 
Certains sont efficaces, d'autres un peu moins, mais les meilleurs résultats finaux sont produits par des programmes qui utilisent plusieurs algorithmes à la fois.
 
Chacun analyse le dessin du caractère avec ses propres méthodes, s'attache plus précisément à tels ou tels aspects, le compare avec des caractères de référence qui lui sont propres.
 
A la fin, les résultats de tous les algorithmes sont comparés, et l'issue finale de la reconnaissance de ce caractère est soumise au vote.  Le gagnant est celui qui a été reconnu par le maximum d'algorithmes. Les taux globaux de reconnaissance sont, par ce principe, grandement améliorés.  
 
De là à généraliser, et avancer que l'union et la démocratie sont préférables à l'individualisme et la dictature...
by Olivier Guillion

Dev News Friday, Nov 7th, 2008 at 05:09pm
Harmony 9.4 / Melody 7.4 et autre Etape 283

 
- Les fichiers BMP tracés de haut en bas n'étaient pas gérés par Harmony. C'est corrigé.
- PDFtoMusic et Harmony : meilleur export des appogiatures en MusicXML.
Sinon, nous sommes en plein dans deux projets : l'application pour l'iPhone et le projet GroundHog, mais il nous est interdit d'en parler. Bientôt peut être...
by Didier Guillion
 1 comment.

Dev News Thursday, Nov 6th, 2008 at 05:07pm
ScanToMusic Etape 22

 
Nous sommes maintenant capables de faire à peu près ce que nous voulons sur l'aspect du caractère : en extraire un squelette, détecter les trous et les bosses, les parties indépendantes au sein d'un même caractère (par exemple les point et la virgule d'un point-virgule, ou le "e" et  son accent dans "é") et diverses données statistiques.
 
Il nous reste maintenant à choisir l'algorithme qui va déterminer la nature de ce caractère, par comparaison avec un jeu de référence (algorithme de discrimination).
 
Nous avons déjà exploré plusieurs possibilités, allant de la simple comparaison de matrice à un filtre bayesien, un réseau de neurones, la construction d'un arbre de décision, ou les modèles de Markov cachés (HMM)
 
Plusieurs de ces techniques s'avèrent efficaces, mais le résultat de l'apprentissage est difficile à vérifier à posteriori. On obtient une série de chiffres dont la signification n'est pas évidente pour l'observateur humain. En résumé, ça marche, mais c'est une boîte noire.
 
Or la pertinence des données que nous extrayons de la forme du caractère et qui servent à alimenter l'algorithme de discrimination  est cruciale. Il faut fournir à cet algorithme les données permettant de différencier le mieux possible chacun des caractères. Si nous envoyons ces données vers une boîte noire, nous ne pouvons pas savoir quel paramètre mériterait d'être affiné ou remplacé par un autre pour de meilleurs résultats. On peut simplement essayer, et voir si le résultat s'améliore. Cela revient un peu à tirer des flèches les yeux bandés en essayant de s'approcher du centre de la cible.  
 
Nous travaillons donc dans ce sens, en expérimentant et en recherchant de la documentation. Cela risque de prendre un peu de temps...
by Olivier Guillion

Dev News Tuesday, Nov 4th, 2008 at 04:57pm
PDftoMusic

 
La version 1.1.1 de PDFtoMusic est entrée doucement en chantier, alimentée par les remarques de nos utilisateurs.
Une bonne demi-journée à été passée sur un PDF récalcitrant : les textes y étaient tout mélangés. "Lord" s'écrivait "%(!G" par exemple.
Nous avons repris pas à pas le décodage des polices TrueType sans trouver d' irrégularité. En plus, la police était la bien connue "Times New Roman". Enfin, nous est venu l'idée de copier les textes depuis le visualiseur de PDF vers un éditeur de texte quelconque : même problème ! C'était donc la police embarquée qui était abîmée.
Pour pallier à ceci, toutes les polices texte peuvent maintenant être traitées par reconnaissance optique de caractère.
 
Un fichier PDF fourni présentait des appogiatures tracées avec un caractère par note (et non pas avec une tête, une ligne pour la tige et la hampe). PDFtoMusic a été modifié pour en autoriser le traitement.
by Didier Guillion
 1 comment.

Dev News Monday, Nov 3rd, 2008 at 05:07pm
ScanToMusic Etape 21

 
Afin de simplifier les comparaisons de caractères , nous avons travaillé sur la squelettisation.  
Ce procédé permet de transformer des formes pleines en "fil de fer". Grâce à cela, on pourrait s'affranchir des épaisseurs de caractères, pour ne conserver que les données constituant effectivement la forme.
 
A partir de notre texte d'exemple:
 

 
nous avons appliqué l'algorithme de Zang-Suen, assorti d'un amincissement maximal. Sur un squelette, on pourrait appeler ça une décalcification :
 

 
Un autre algorithme de squelettisation, morphologique, celui-là, suivi de la "décalcification", donne des résultats légèrement différents :
 

 
Certains détails sont mieux conservés, mais de petites barres matérialisent l'épaisseur d'origine du caractère à certains endroits.
 
Peut-être qu'avec un bon élagage de ces petites branches, nous pourrons nous en servir, en conjonction avec le squelette précédent.
 
Nous nous attaquons maintenant aux méthodes de discrimination, c'est-à-dire le coeur de la reconnaissance proprement dite. Cela risque d'être plus difficile de montrer  les résultats ici, de manière graphique.
by Olivier Guillion


Full view
Reduced view
Most recent first
Oldest first
All
Didier Guillion
Olivier Guillion
Sylvie Ricard
All
Mood
Technical
To be seen
Dev News
Memories
Myriad Life
30 previous days
Apr 2006
May 2006
Jun 2006
Jul 2006
Aug 2006
Sep 2006
Oct 2006
Nov 2006
Dec 2006
Jan 2007
Feb 2007
Mar 2007
Apr 2007
May 2007
Jun 2007
Jul 2007
Aug 2007
Sep 2007
Oct 2007
Nov 2007
Dec 2007
Jan 2008
Feb 2008
Mar 2008
Apr 2008
May 2008
Jun 2008
Jul 2008
Aug 2008
Sep 2008
Oct 2008
Nov 2008
Dec 2008
Jan 2009
Feb 2009
Mar 2009
Apr 2009
May 2009
Jun 2009
Jul 2009
Aug 2009
Sep 2009
Oct 2009
Nov 2009
Dec 2009
Jan 2010
Feb 2010
Mar 2010
Apr 2010
May 2010
Jun 2010
Jul 2010
Aug 2010
Sep 2010
Oct 2010
Nov 2010
Dec 2010
Jan 2011
Feb 2011
Mar 2011
Apr 2011
May 2011
Jun 2011
Jul 2011
Aug 2011
Sep 2011
Oct 2011
Nov 2011
Dec 2011
Jan 2012
Feb 2012
Mar 2012
Apr 2012
May 2012
Jun 2012
Jul 2012
Aug 2012
Sep 2012
Oct 2012
Nov 2012
Dec 2012
Jan 2013
Feb 2013
Mar 2013
Apr 2013
May 2013
Jun 2013
Jul 2013
Aug 2013
Sep 2013
Oct 2013
Nov 2013
Dec 2013
Jan 2014
Feb 2014
Mar 2014
Apr 2014
May 2014
Jun 2014
Jul 2014
Aug 2014
Sep 2014
Oct 2014
Nov 2014
Dec 2014
Jan 2015
Feb 2015
Mar 2015
Apr 2015
May 2015
Jun 2015
Jul 2015
Aug 2015
Sep 2015
Oct 2015
Nov 2015
Dec 2015
Jan 2016
Feb 2016
Mar 2016
Apr 2016
May 2016
Jun 2016
Jul 2016
Aug 2016
Sep 2016
Oct 2016
Nov 2016
Dec 2016
Jan 2017
Feb 2017
Mar 2017
Apr 2017
May 2017
Jun 2017
Jul 2017
Aug 2017
Sep 2017
Oct 2017
Nov 2017
Dec 2017
Jan 2018
Feb 2018
Mar 2018
Apr 2018
May 2018
Jun 2018
Jul 2018
Aug 2018
Sep 2018
Oct 2018
Nov 2018
Dec 2018
Jan 2019
Feb 2019
Mar 2019
Apr 2019
May 2019
Jun 2019
Jul 2019
Aug 2019
Sep 2019
Oct 2019
Nov 2019
Dec 2019
Jan 2020
Feb 2020
Mar 2020
Apr 2020
May 2020
Jun 2020
Jul 2020
Aug 2020
Sep 2020
Oct 2020
Nov 2020
Dec 2020
Jan 2021
Feb 2021
Mar 2021
Apr 2021
May 2021
Jun 2021
Jul 2021
Aug 2021
Sep 2021
Oct 2021
Nov 2021
Dec 2021
Jan 2022
Feb 2022
Mar 2022
Apr 2022
May 2022
Jun 2022
Jul 2022
Aug 2022
Sep 2022
Oct 2022
Nov 2022
Dec 2022
Jan 2023
Feb 2023
Mar 2023
Apr 2023
May 2023
Jun 2023
Jul 2023
Aug 2023
Sep 2023
Oct 2023
Nov 2023
Dec 2023
Jan 2024
Feb 2024
Mar 2024
Mar 18th, 2024 at 08:14pm 
Comment from Sylvain
Mar 18th, 2024 at 08:13pm 
Comment from Sylvain
@André
Mar 18th, 2024 at 07:28pm 
Comment from Antoine Bautista
Build 82....
Mar 18th, 2024 at 05:02pm 
Article from Didier Guillion
Harmony Assistant 9.9.8  étape 198
Mar 18th, 2024 at 05:02pm 
Article from Didier Guillion
Harmony Assistant 9.9.8  étape 198
Mar 17th, 2024 at 11:40am 
Comment from Antoine Bautista
Frite....
Mar 17th, 2024 at 11:40am 
Comment from Antoine Bautista
Frite....
Mar 16th, 2024 at 09:16am 
Comment from André Baeck
Mar 16th, 2024 at 09:16am 
Comment from André Baeck
Mar 16th, 2024 at 09:13am 
Comment from André Baeck

Top of page
Legal information Cookies Last update:  (c) Myriad