HomeProductsDownloadOrderSupportSearch
  
 
 Myriad Blog 1.3.0 Thursday, Mar 28th, 2024 at 02:23pm 

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
Comments

Comment from bubu42 Wednesday, Mar 14th, 2007 at 10:30pm
seuillage
Alors là, c'est fort !  
La logique est effectivement implacable. Les niveaux de gris, bien que plus "flous" à priori, se révèlent un moyen très précis de reconnaissance.  
Ca ne simplifie pas l'algorithme de reconnaissance, mais le nombre de symboles rejetés à cause d'une petite imperfection va être largement abaissé et on doit considérablement y gagner pour ce qui est de la définition en dpi du scan.
J'imagine que les essais faits à l'étape précédente ont été faits avec cette technique...
Comme d'habitude, l'innovation "made in Myriad" est évidente. On ne "copie" pas un logiciel existant, mais on propose une approche nouvelle
Encore bravo !

Comment from Jean-Armand Wednesday, Mar 14th, 2007 at 11:18pm
seuillage
En fait l'opération de seuillage peut se trouver nécessaire dans d'autres opérations. Par exemple, dans celle qui consiste à isoler chaque caractère. L'intérêt de reporter à plus tard le seuillage c'est que l'on peut adapter le seuil à l'opération, voir tester différents niveaux de seuil, tandis que si l'on seuille d'entrée de jeu, on perd définitivement l'information.
 
Par exemple, dans les deux croches de droite présentées par Olivier, la queue de la croche est isolée du reste de la croche, et risque donc d'être comprise comme un point.

Comment from CRI-CRI Thursday, Mar 15th, 2007 at 09:55am
Lissage et perception
Je serais plus nuancé que mes deux éminents co-forumeurs : en effet, l'impression de netteté résulte pour une image 'lissée' autant de l'outil de 'suivi' de contour des zones associatives qui traitent l'image ... dans le cerveau de l'utilisateur, que d'une réalité objective : illusion, illusion ... il y a d'excellents trompe l'oeil pour illustrer les extraordinaires capacités de l'ordinateur humain !
 
On risque d'avoir de sacrées surprises au moment du traitement proprement dit, en remplaçant une reconnaissance 'certaine' 0 ou 1 par un nuage de points avec tous les niveaux intermédiaires de gris, distribués d'une manière non homogène
 
Effectivement, ce sera assez novateur comme approche ... si elle marche
 
Cordialement
 

Comment from Olivier Guillion Thursday, Mar 15th, 2007 at 10:13am
Re: Lissage et perception
Je serai moins nuancé.
 
En effet, les images en niveau de gris donnent l'impression d'être mieux définies, mais c'est vraiment le cas.  
 
Chaque pixel peut prendre l'une des 256 teintes possibles. Cela revient donc, dans le pixel, à fournir à l'oeil une estimation de la proportion de "sous-pixels" allumés dans une grille qui diviserait ce pixel en 256 morceaux (grille 16x16).
 
Effectivement, on ne sait pas lesquels des 256 sous-pixels sont allumés, donc cela ne revient pas exactement à multiplier la précision du scan par 16 dans chaque dimension, mais cette information est objective, et correspond à une réalité physique. Elle est donc a priori utile pour la détermination.
 
Pour ce qui est des seuillages que nous devrons tout de même effectuer lors du calcul (post de Jean-Armand), c'est effectivement le cas. A partir du moment où le programme doit répondre par oui ou par non à une décision sur l'état d'un pixel, on peut considérer qu'il s'agit d'un seuillage. Mais ce seuillage est alors à niveau complètement variable, le test impliqué pouvant être fonction par exemple de la moyenne des pixels alentour, ou de calculs plus complexes sur l'environnement.
 
Mais le but sera tout de même de fournir au module final de reconnaissance de symboles une image en niveaux de gris, donc il nous faut veiller à conserver au maximum cette information.

Comment from Franck Thursday, Mar 15th, 2007 at 04:17pm
(No subject)
Quote:
Chaque pixel peut prendre l'une des 256 teintes possibles. Cela revient donc, dans le pixel, à fournir à l'oeil une estimation de la proportion de "sous-pixels" allumés dans une grille qui diviserait ce pixel en 256 morceaux (grille 16x16).
Et d'ailleurs on peut convertir cette valeur (la densité du pixel analysé) en un ensemble compact de sous-pixels noirs (plutôt qu'un nuage dispersé dans la matrice). Cela présente plus d'un intérêt : ça correspond davantage à l'occurrence d'un élément typographique dans le champ analysé et plus la densité est élevée plus la position pourra être précisée.
Par exemple, un pixel gris de niveau 64 (25% de noir) est donc composé de 64 sous-pixels noirs répartis en une masse compacte, cette nouvelle "masse" ne peut prendre que 81 positions dans la matrice. Au niveau 128 (50% de noir, le gris moyen) il n'y a plus que 36 positions possibles environ. Ainsi, les valeurs trop claires pourraient sans dommage ne pas être prises en compte puisqu'elles ne correspondent certainement qu'à des artefacts.
Maintenant, c'est pas sûr que ça serve à quelque chose...


Most recent first
Oldest first

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