HomeProductsDownloadOrderSupportSearch
  
 
 Myriad Blog 1.3.0 Tuesday, Dec 3rd, 2024 at 02:58am 

Dev News Friday, Mar 23rd, 2007 at 05:34pm
Hasta la Vista, baby !

 
L'opportunité nous a été donnée de tester (enfin) Windows Vista.
 
La compatibilité de nos programmes semble assurée, l'installation et l'exécution s'étant déroulée sans problème notable. Simplement, comme prévu, Vista est bourré d'alertes de sécurité. S'apercevant que les systèmes précédents étaient des passoires dans ce domaine, Vista, à l'instar de MacOS X, décharge la responsabilité sur l'utilisateur, qui doit à tout bout de champ confirmer l'installation des programmes, l'usage des plug-ins dans le navigateur, l'utilisation des panneaux de configuration, etc.
 
Par exemple, lors du lancement de l'installateur, on obtient (sur une version anglaise du système) :

 
Brr, ça fait peur !  
 
Donc, je suppose que nous aurons des tonnes de demandes au support technique, disant "Y'a Windows qui me dit que votre programme veut accéder à mon ordinateur. Qu'est-ce que je dois faire"?
 
Jusqu'à ce que nous nous soyons décidés à acheter une signature numérique, et la mettre en place sur nos programmes...
 
Sinon, les programmes fonctionnent bien, la preuve :

 
Il n'y a plus qu'à faire un thème d'écran "Vista" (sans les icônes qui bougent) pour Harmony/Melody, afin ne pas perturber ceux qui ne connaîtront que cette interface graphique.
by Olivier Guillion
 3 comments.

Dev News Wednesday, Mar 21st, 2007 at 06:03pm
ScanToMusic, étape 11

 
Alors que nous améliorons la reconnaissance des portées sur la page, des tests doivent être réalisés avec autant que possible de partitions différentes, pour localiser les éventuels problèmes.
 
Durant nos recherches de partitions scannées pouvant servir d'exemple, ce site a attiré notre attention :

Historic American Sheet music

 
Il contient de très nombreuses partitions anciennes (1850-1920), scannées avec une bonne précision et un soin particulier.  
 
Les typographies sont parfois assez bizarres (dessinées à la main?) :

Le fait que ces partitions proviennent de sources diverses permettra de fournir à ScanToMusic des jeux de caractères très différents, pour juger de son adaptabilité.
by Olivier Guillion
 5 comments.

Dev News Tuesday, Mar 20th, 2007 at 04:46pm
ScanToMusic, étape 10

 
La première connexion entre les modules de traitement d'image et les modules de traitement des informations musicales a été effectuée.
 
Le traitement d'image repère les lignes horizontales, suit leurs petites imprécisions, élimine les "trous", les classe, puis transmet ces données brutes à un module de recherche de portées, similaire à celui utilisé dans PDFtoMusic.
 
A partir de là, on obtient les premières informations concernant la structure de la partition scannée, c'est-à-dire la position des portées et la valeur de l'espace entre les lignes.
 
Ceci permettra d'entamer une deuxième phase d'analyse d'image, car la valeur de l'interligne conditionne la taille des objets que l'on peut rencontrer sur la portée (altérations, têtes de notes...). Connaître cette valeur facilite la discrimination entre les objets pouvant avoir à peu près la même forme, mais à des échelles différentes, comme par exemple une tête de noire et un point.
 
by Olivier Guillion

Dev News Wednesday, Mar 14th, 2007 at 05:16pm
ScanToMusic, étape 9

 
Une des premières opérations généralement effectuées par un logiciel de reconnaissance optique de partition, OMeR inclus, est de "seuiller" l'image, c'est-à-dire de remplacer les nuances de gris par du noir ou du blanc pur.
 
Ceci permet de simplifier grandement les calculs, chaque point de l'image ne pouvant alors avoir que deux états, allumé ou éteint.
 
Dans ScanToMusic, nous avons décidé, dès le début, de conserver les niveaux de gris de l'image. "Pourquoi ?" me demanderez-vous,
"C'est simple", vous répondrai-je :
 
lorsque l'oeil - ou le cerveau- humain regarde une forme dessinée avec des niveaux de gris, les gris plus ou moins foncés sur le pourtour des objets lui permettent d'affiner ce contour. Cela permet de voir des formes aux contours arrondis même si la précision du scan est faible, alors qu'une image seuillée noir/blanc fait apparaître un crénelage.
 
Voici un exemple:


Cette note, extraite d'une partition scannée, est présentée en taille réelle sur la ligne du haut et en taille double sur la ligne du bas.
 
En A, l'image originale en niveaux de gris, telle que la traite ScanToMusic. Même s'il apparaît un peu flou, le symbole est bien visible, et sa forme et ses courbes se voient clairement.
 
En B, C, D, la même image en noir/blanc, réalisée avec divers niveaux de seuillage. On se rend nettement compte de la perte de qualité et de définition qui résulte de cette opération.
 
Partant du principe qu'il est préférable de conserver un maximum d'information utile dans l'image avant d'entamer la phase de reconnaissance de symboles, les niveaux de gris seront donc conservés tout au long du traitement par ScanToMusic.  
by Olivier Guillion
 5 comments.

Dev News Tuesday, Mar 13th, 2007 at 05:27pm
ScanToMusic, étape 8

 
Les premiers tests de reconnaissance de symboles musicaux ont été effectués. Il a suffi de sauvegarder tous les symboles qui ont été isolés sur la partition scannée puis de les fournir au module d'OCR musical de PDFtoMusic.
 
Ces premiers résultats sont prometteurs, le module reconnaissant quasiment 100% des clés de sol, 90% des rondes, noires et blanches. Sachant que, pour l'instant, les symboles sont fournis au module de reconnaissance avec les lignes de portées, c'est-à-dire traversés de part en part par une ou plusieurs lignes horizontales noires, on peut considérer ces résultats comme prometteurs.
 
Il faut maintenant améliorer les algorithmes de "mise en boîte", afin d'éviter de fournir à ce module soit des morceaux de symboles considérés comme indépendants, alors qu'ils constituent le même signe (clés de fa, certains chiffres indicateurs de mesure, etc), soit plusieurs symboles distincts mais pris pour un seul signe (notes accrochées ou en accord, groupe "note+altération" lorsque cette dernière est proche, etc.).
by Olivier Guillion

Dev News Monday, Mar 12th, 2007 at 05:35pm
ScanToMusic, étape 7

 
Le module le plus important de ScanToMusic va être la reconnaissance de caractères musicaux (et alphanumériques). Afin de permettre de tester rapidement ce système, nous avançons rapidement, en laissant de coté le "fignolage" des modules en amont.
 
Après une élimination rapide des lignes de portées, des algorithmes de "mise en boîte" des divers objets ont été mis en place. Ces algorithmes sont destinés à séparer sur la page scannée les divers éléments qui la composent, et de les extraire un à un pour les soumettre à l'analyse de caractères.  Ceci pose des problèmes lorsque deux lettres apparaissent "collées" l'une à l'autre dans un mot, ou lorsque des notes sont reliées par des barres d'accroche par exemple. Mais pour l'instant nous faisons abstraction de ces problèmes, pour savoir rapidement quels résultats nous pourrons obtenir sur les éléments bien séparés.
 
Afin que ce blog reste lisible par un non-initié, nous simplifions ici le plus possible les concepts qui sont abordés. De même, pour des raisons de confidentialité, nous n'entrons pas dans le détail des algorithmes que nous mettons en place. Certains d'entre vous (et je pense notamment  à Jean-Armand) ont posté dans les étapes précédentes des suggestions et même des algorithmes fort bien faits, sur lesquels nous étions déjà en train de travailler. Merci, et chapeau !
 
Je ne suis jamais contre un petit coup de main, et échanger des idées est le meilleur moyen d'en trouver des nouvelles et des bonnes, mais si possible, pour discuter précisément du programme, je préfèrerais que cela se fasse par e-mail. Il y a déjà des produits dans ce créneau, et probablement d'autres à venir, donc cela m'embêterait un peu de fournir publiquement un mode d'emploi pas à pas sur l'art et la manière de développer un tel projet, avec tous les algorithmes que nous utilisons expliqués en détail
by Olivier Guillion
 2 comments.

Dev News Friday, Mar 9th, 2007 at 04:43pm
ScanToMusic, étape 6

 
Aujourd'hui, nous avons commencé à essayer de gommer les lignes de portées, sans trop abîmer les caractères qui sont imprimés dessus.  
Ce n'est pas aussi facile que ça peut en avoir l'air. Il faut parvenir à "deviner" ce qu'il y avait imprimé sur la partie noire de la ligne, sans pour l'instant pouvoir s'appuyer sur une quelconque connaissance des caractères typographiques, puisque c'est justement cette étape qui est destinée à isoler les objets graphiques à reconnaitre.
 
Si, au bout du compte, nous nous apercevons que cette opération ne peut pas s'effectuer sans dommage, nous pouvons encore changer notre fusil d'épaule, et considérer que les lignes de portées font partie intégrante du caractère à reconnaître.
Mais cela compliquerait alors la partie reconnaissance proprement dite, car pour une tête de note, par exemple, il faudrait pouvoir reconnaître les quatre glyphes:
- tête de note entre deux lignes
- tête de note sur une ligne ou sur une petite ligne supplémenraire (ledger line)
- tête de note avec une ligne dessous (Sol aigu pour une clé de sol)
- tête de note avec une ligne dessus (Ré grave pour une clé de sol).
 
En somme, multiplier les calculs de reconnaissance par quatre...
 
by Olivier Guillion
 2 comments.

Dev News Thursday, Mar 8th, 2007 at 05:39pm
ScanToMusic, étape 5

 
Le suivi des déformations des lignes horizontales de portées a été mis en place.
L'algorithme corrige donc les rotations de page jusqu'à +/- 4°, avec une précision qui a été augmentée pour atteindre le 30ème de degré.
Les déformations sont également gérées, le programme permet donc de déterminer la courbe que forment les lignes, et de la compenser.
 
Voici un extrait d'une partition scannée, puis détériorée artificiellement, juste pour rendre les choses plus difficiles :
 

 
Voici la même partition, une fois débruitée, recontrastée et redressée :
 

 
Maintenant que les lignes horizontales sont bien horizontales, on peut attaquer l'étape suivante, qui consiste à s'intéresser aux symboles qui sont écrits sur les portées...
by Olivier Guillion
 1 comment.

Dev News Tuesday, Mar 6th, 2007 at 04:48pm
ScanToMusic étape 4

 
Aujourd'hui, premiers tests sur de vrais scans de partition. Les algorithmes de suivi de lignes de portées fonctionnent correctement sur ce type de document, mais ceux destinés à l'amélioration du contraste sont perturbés par les particularités liées au scan :  
pages tachées, froissées, ou laissant apercevoir le verso par transparence.
Ces algorithmes ont donc été repris pour tenir compte de ces particularités.
 
L'angle maximal de rotation de la page scannée a été réduit à un intervalle de -4° à +4°
 
Faites l'essai avec un logiciel de traitement d'image, en appliquant une rotation à une page parfaitement horizontale:
 

 
Vous vous apercevez que pour obtenir un angle de rotation supérieur à 4°, il faut vraiment positionner sa page comme un sagouin sur la vitre du scanner.  
 
ScanToMusic devrait être beaucoup plus tolérant qu'OMeR sur les paramètres de numérisation, mais il ne faut quand même pas exagérer, un minimum de soin sera tout de même nécessaire.
by Olivier Guillion
 6 comments.

Dev News Monday, Mar 5th, 2007 at 04:41pm
ScanToMusic étape 3

 
Le suivi des lignes de portées a été amélioré, afin de permettre de suivre les déformations de la page scannée.
 
Dans cette image, on voit les courbes détectées (en rouge) dessinées par-dessus la partition débruitée et recontrastée :
 

 
Il faut maintenant peaufiner ce résultat. En effet, pour chaque ligne de portée, on obtient un petit faisceau de courbes possibles, quasiment confondues. La prochaine étape est d'y effectuer une sélection, pour ne garder que la courbe la plus probable, et y appliquer un lissage afin qu'elle se confonde au mieux avec la véritable ligne.
by Olivier Guillion

Dev News Friday, Mar 2nd, 2007 at 04:53pm
ScanToMusic étape 2

 
Nous avons attaqué les premiers algorithmes de détection proprement dits.
Nous partons d'une image déformée et bruitée, dans laquelle les lignes ne sont pas parfaitement horizontales :
 

 
Après avoir appliqué les algorithmes de débruitage et d'optimisation du contraste de l'étape 1, on en extrait les lignes fines et "presque" horizontales. Les tiges, barres de mesures, accroches, têtes de notes et autres symboles sont gommés :
 

 
Puis une recherche des pentes des droites est effectuée, avec une précision d'1/10 de degré (cela pourra être ajusté par la suite), le résultat apparaissant ici en rouge :
 

 
Les lignes de portées apparaissent donc clairement, avec leur pente et leur écartement. Ces données sont cruciales pour la suite, lorsque nous effectuerons la détection des symboles qui sont imprimés dessus.
 
On suppose cependant ici que les droites restent des droites, ce qui n'est pas toujours le cas lors d'un scan. Parfois lorsqu'on scanne une page d'un livre relié, il y a une courbure, une déformation sur le bord de la page.
L'algorithme doit donc maintenant être modifié pour s'adapter à ces contraintes, et effectuer le suivi de la pente de chacune des lignes de portée.
by Olivier Guillion
 7 comments.

Dev News Thursday, Mar 1st, 2007 at 05:12pm
ScanToMusic étape 1

 
Le projet "Super-OMeR" a enfin démarré, sous le nom provisoire de "ScanToMusic". Le but de ce programme, est, je le rappelle, d'analyser des pages de partition scannées pour en extraire les éléments constitutifs, et recréer une partition éditable (Harmony ou MusicXML). Dans la dernière étape, les algorithmes développés pour PDFtoMusic devraient pouvoir être largement utilisés.
 
Mais dans un premier temps, il faut préparer la reconnaissance optique de l'image.
Plutôt que d'utiliser de vraies pages scannées, nous partons des images obtenues par l'afficheur de PDF de PDFtoMusic :
 

 
Cette image est alors altérée pour la faire ressembler à ce qu'on aurait pu obtenir à la suite d'un -très- mauvais scan. Rotation, déformation, altération des contrastes, "taches" et bruit de fond sont appliqués :
 

 
Les premiers algorithmes de ScanToMusic doivent permettre de retrouver une image "propre", débarassée (ou presque) des problèmes de taches, de bruit et de contraste :
 

 
La prochaine étape consistera à redresser tout cela, en évaluant, puis en compensant les déformations de la page.
by Olivier Guillion
 8 comments.


Full view
Reduced view
Most recent first
Oldest first
All
Didier Guillion
Myriad
Olivier Guillion
Sylvie Ricard
All
Memories
Mood
To be seen
Myriad Life
Dev News
Technical
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
Apr 2024
May 2024
Jun 2024
Jul 2024
Aug 2024
Sep 2024
Oct 2024
Nov 2024
Dec 2024
Dec 2nd, 2024 at 06:10pm 
Article from Myriad
Harmony 9.9.9 RC étape 2
Nov 30th, 2024 at 08:28am 
Comment from Myriad
Re: Harmony 9.9.9 RC1 et autres
Nov 30th, 2024 at 08:28am 
Comment from Myriad
Re: Harmony 9.9.9 RC1 et autres
Nov 29th, 2024 at 07:10pm 
Comment from Sylvain
Liens en HTTP
Nov 29th, 2024 at 05:07pm 
Article from Myriad
Harmony 9.9.9 RC1 et autres
Nov 28th, 2024 at 07:15pm 
Article from Myriad
Harmony Assistant 9.9.9 beta étape 54
Nov 28th, 2024 at 07:15pm 
Article from Myriad
Harmony Assistant 9.9.9 beta étape 54
Nov 28th, 2024 at 07:15pm 
Article from Myriad
Harmony Assistant 9.9.9 beta étape 54
Nov 27th, 2024 at 08:09pm 
Article from Myriad
Harmony Assistant 9.9.9 beta étape 53
Nov 27th, 2024 at 08:09pm 
Article from Myriad
Harmony Assistant 9.9.9 beta étape 53

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