Myriad Blog 1.3.0 Thursday, Dec 18th, 2014 at 07:24pm 

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
Olivier Guillion
Sylvie Ricard
All
Dev News
Technical
Mood
Memories
Myriad Life
To be seen
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
Dec 18th, 2014 at 04:49pm 
Article from Didier Guillion
ACAM sur Mac étape 7
Dec 17th, 2014 at 05:04pm 
Article from Olivier Guillion
Acam Winter étape 23
Dec 16th, 2014 at 04:55pm 
Article from Didier Guillion
ACAM sur Mac étape 6
Dec 15th, 2014 at 05:08pm 
Article from Olivier Guillion
Acam Winter étape 22
Dec 13th, 2014 at 09:33am 
Comment from Antoine Bautista
0 + Album...
Dec 12th, 2014 at 05:00pm 
Article from Didier Guillion
ACAM sur Mac étape 5
Dec 12th, 2014 at 05:00pm 
Article from Didier Guillion
ACAM sur Mac étape 5
Dec 11th, 2014 at 04:58pm 
Article from Olivier Guillion
Acam Winter étape 21 et autres
Dec 10th, 2014 at 11:55pm 
Comment from Didier Guillion
Re: ACAM sur Mac étape 4
Dec 10th, 2014 at 06:59pm 
Comment from musikus
Ipad2

Top of page
Last update:  (c) Myriad