Brevet FR3080936A1 — publié le 20191108

METHODE DE DETECTION ET DE QUANTIFICATION DU FLOU DANS UNE IMAGE NUMERIQUE DOMAINE TECHNIQUE GENERAL ET ART ANTERIEUR La présente invention concerne une méthode de détection et de quantification du flou dans une image numérique et un programme d'ordinateur pour sa mise en oeuvre. Dans de nombreux domaines où l'analyse d'image joue un rôle, par exemple l'imagerie médicale, l'imagerie satellitaire, la conduite autonome, la surveillance, la défense, les réseaux sociaux, la gestion de données « big data », les réseaux de neurones, les services de stockage d'images, etc. il est important de pouvoir déterminer quelles images sont floues et à quel point elles le sont. La question est en général de déterminer les images utilisables, par exemple en vue d'un diagnostic. Autrefois, l'évaluation était réalisée sur des images réelles, par l'oail de l'expert. De nos jours, les images sont, ou peuvent être, numérisées, c'est-à-dire discrétisées en pixels ou points élémentaires de l'image. A chaque pixel est associé un ou plusieurs paramètres numériques permettant de donner sa valeur colorimétrique au pixel, selon un codage prédéterminé. On connaît par exemple le codage TSB (teinte, saturation, brillance ; en anglais : HSB, pour hue, saturation, brightness), ou sa variante TSV (teinte, saturation, valeur ; en anglais : HSV, pour hue, saturation, value). Différentes techniques existent déjà pour quantifier le flou d'une image numérique. Se pose alors le problème du temps de calcul, qui doit être d'autant plus bref qu'on doit traiter beaucoup d'images, et celui de la pertinence du résultat. Il existe notamment des méthodes pour tester la netteté d'une image simple. Certaines méthodes sont rapides au point de vue des calculs (de l'ordre de 100 ms par image de 512x512 pixels), mais peu fiables (autofocus d'appareil photo, analyse de l'intensité des couleurs). Ces méthodes permettent assez efficacement de comparer un certain nombre d'images et d'en choisir la plus nette, mais sans pouvoir mesurer de manière absolue la netteté. D'autres méthodes (transformée de Fourrier, transformée par ondelettes) sont plus complexes et plus lentes au point de vue des calculs (de l'ordre de 500 ms à 3s par image de 512x512 pixels) et présentent d'autres inconvénients (impossibilité de différencier une image unie d'une image floue). 2 Il existe de nombreux articles traitant de la détection du flou dans les images numériques. On peut citer notamment « Blur Detection for Digital Images Using Wavelet Transform de HANGHANG TONG; MINGJING LI ; HONGJIANG ZHANG ; CHANGSHUI ZHANG ; 2004 IEEE International Conference on multimedia and expo : ICME 27-30/06/2004, Taipei, Taiwan ». Cet 5 article présente un algorithme de détection du flou par la transformée en ondelettes. L'analyse est également une fonction du carré du nombre de pixels. Ainsi, le temps de calcul pour une image est de l'ordre d'une seconde. De plus, les images floues utilisées pour les tests ont été produites en utilisant des images sources nettes, sur lesquelles ont été appliqués différents types de flou numériques (matrices de flou). Or, un flou numérique est beaucoup plus facile à 10 détecter de manière très fiable qu'un flou « analogique », dû par exemple à un défaut de mise au point, ou un mouvement imprévu, lors de l'acquisition de l'image. Une autre méthode est divulguée dans US 2003/0151674. Afin d'éliminer ces inconvénients, il a été proposé une méthode de quantification du flou par la 15 demande de brevet W02012/080643 dans laquelle un deuxième score est calculé à partir d'un quotient. Une telle méthode a permis d'améliorer la quantification du flou. Néanmoins, le flou quantifié de manière objective par le deuxième score est encore trop éloigné du flou quantifié de manière subjective par un utilisateur. De plus, pour des images comportant plusieurs milliards de pixels, la quantification du flou est encore trop lente. En outre, une telle méthode dépend d'un 20 seuil de brillance défini de manière arbitraire, ce qui impacte l'objectivité des résultats. La quantification du flou demeure une problématique importante et des solutions diverses ont été proposées, par exemple, "SlideNet: Fast and Accurate Slide Quality Assessment Based on Deep Neural Networks", Teng Zhang, Johanna Carvajal, Daniel F. Smith, Kun Zhao, Arnold 25 VViliem, Peter Hobson, Anthony Jennings, Brian C. Lovell. La présente invention a pour but de remédier à tout ou partie des inconvénients mentionnés ci-dessus, c'est- à-dire en particulier de fournir une méthode de quantification du flou encore plus rapide, plus pertinente et au moins aussi fiable, sinon plus, que les méthodes existantes, en 30 particulier pour un flou de type « analogique ». PRESENTATION GENERALE DE L'INVENTION A cet effet, l'invention concerne une méthode de détection et de quantification du flou dans une 35 image numérique mettant en oeuvre un ordinateur et comprenant : une étape a) d'obtention d'une image numérique comprenant des pixels et des paramètres de codage colorimétrique associés aux pixels ; 3 - une étape b) d'obtention d'un paramètre de brillance pour chaque pixel à partir de l'image numérique, l'étape b) comprenant une opération de convolution avec une matrice de détection de bords ; - une étape c) de calcul d'un score Si comprenant le maximum, calculé sur tous les pixels, 5 du paramètre de brillance obtenu à l'étape b) ; et - une étape d) d'évaluation de l'image numérique, l'image numérique étant considérée comme floue si le score Si obtenu à l'étape c) est strictement inférieur à un premier seuil prédéterminé S10, le score Si fournissant une première quantité de flou présente dans l'image numérique. 10 La méthode est remarquable en que, à l'étape c), on calcule un deuxième score S2 comprenant une fonction logistique f(x) définie de manière suivante K - A f (x) = A + (C + Qe-B(x-M))11V dans laquelle 15 - le paramètre V est une constante de croissance maximale, - le paramètre A est une constante d'asymptote minimale, - le paramètre C est une constante de décalage, - le paramètre Q est une constante de post-amplification, - le paramètre K est une constante d'asymptote maximale, 20 - le paramètre B est une constante de pré-amplification, - le paramètre M est une constante d'initialisation, - x correspond à la somme, calculée sur tous les pixels, des paramètres de brillance obtenus à l'étape b), chacun divisé par une constante de calibration et par le nombre de pixels analysés, 25 - à l'étape d), l'image numérique est également considérée comme floue si le score S2 obtenu à l'étape c) est strictement inférieur à un deuxième seuil prédéterminé S20, le score S2 fournissant en outre une deuxième quantité de flou présente dans l'image numérique. Grâce à l'invention, on obtient un score S2 pertinent qui permet de refléter de manière optimale 30 la quantité de flou ressentie de manière subjective. En outre, l'absence de traitement de seuils de brillance permet d'augmenter la vitesse de calcul du score S2, ce qui permet de traiter une grande quantité de pixels de manière rapide et fiable. Cela est particulièrement avantageux lorsque l'image à traiter comporte plusieurs milliards de pixel, par exemple, dans le domaine médical, de la défense ou autre. Le score S2 permet avantageusement de s'affranchir d'un seuil 35 de brillance, ce qui permet de rendre la méthode moins arbitraire, plus générique et plus rapide. 4 De préférence, la fonction logistique f(x) est une fonction sigmoïde fs(x) définie de manière suivante : f s (x) = ( 1 + e ) 5 Une telle fonction sigmoïde est une fonction logistique particulière qui peut être calculée à grande vitesse. Le flou peut ainsi être quantifié de manière optimale. De manière préférée, les paramètres de la fonction sigmoïde fs(x) sont définis de manière suivante : 10 - K est compris entre 0.1 et 4.5, de préférence, entre 0.8 et 1.2 - B est compris entre 0.1 et 1000, de préférence, entre 8 et 12 - M est compris entre 0 et 0.999, de préférence, entre 0 et 0.06. De préférence encore, les paramètres de la fonction sigmoïde fs(x) sont définis de manière 15 suivante : - K est compris entre 0.9 et 1.1 - B est compris entre 9 et 11 - M est compris entre 0.027 et 0.033. 20 De tels paramètres sont très pertinents pour quantifier un flou de manière objective. Selon un aspect préféré de l'invention, la constante de calibration est définie de manière à ce que le paramètre x soit compris entre 0 et 1. De préférence, la constante de calibration est le maximum de brillance. 25 De manière préférée, l'image numérique est considérée comme totalement nette si les scores 51 et S2 sont supérieurs ou égaux à leurs seuils prédéterminés respectifs S10 et 520, comme partiellement nette si le score 51 est supérieur ou égal au premier seuil prédéterminé S10 et le score S2 est strictement inférieur au deuxième seuil prédéterminé 520, ou comme totalement 30 floue si les scores 51 et S2 sont strictement inférieurs à leurs seuils prédéterminés respectifs S10 et S20. De préférence, le deuxième score S2 étant exprimé en pourcentage, le deuxième seuil prédéterminé S20 est compris entre 0% et 100%, de préférence, entre 50% et 100%, de 35 préférence encore entre 70% et 90%. 5 De manière préférée, le paramètre de brillance est la brillance au sens du codage « teinte, saturation, brillance » (TSB). De préférence, le paramètre de brillance et le score Si sont exprimés en pourcentage. Le premier 5 seuil prédéterminé S10 est compris entre 90% et 100%, de préférence entre 95% et 99,5%. De manière préférée, on ordonne des images en fonction de leur niveau de flou en utilisant conjointement les valeurs exactes des scores Si et S2. 10 De préférence, on détermine la présence d'au moins une zone nette et au moins une zone floue dans une image en utilisant conjointement les valeurs exactes des scores Si et S2. L'invention concerne également un produit de type programme d'ordinateur, comprenant au moins une séquence d'instructions stockée et lisible par un processeur et qui, une fois lue par ce 15 processeur, provoque la réalisation des étapes b), c) et d) de la méthode telle que présentée précédemment. L'invention concerne en outre un support lisible par un ordinateur comportant le produit tel que présenté précédemment. 20 PRESENTATION DES FIGURES L'invention sera mieux comprise à la lecture de la description qui va suivre, donnée uniquement à titre d'exemple, et se référant aux dessins annexés sur lesquels : 25 - la figure 1 illustre une mise en oeuvre d'une méthode de détection et de quantification de flou dans une image numérique et - les figures 2 à 4 sont respectivement des photos avec une quantité de flou moyenne, grande et faible. 30 II faut noter que les figures exposent l'invention de manière détaillée pour mettre en oeuvre l'invention, lesdites figures pouvant bien entendu servir à mieux définir l'invention le cas échéant. DESCRIPTION D'UN OU PLUSIEURS MODES DE REALISATION ET DE MISE EN OEUVRE 35 La solution de l'invention porte sur une méthode de détection et de quantification du flou dans une image numérique mettant en oeuvre un ordinateur et comprenant : - une étape a) d'obtention d'une image numérique comprenant des pixels et des 6 paramètres de codage colorimétrique associés aux pixels ; - une étape b) d'obtention d'un paramètre de brillance pour chaque pixel à partir de l'image numérique, l'étape b) comprenant une opération de convolution avec une matrice de détection de bords ; 5 - une étape c) de calcul d'un score Si comprenant le maximum, calculé sur tous les pixels, du paramètre de brillance obtenu à l'étape b) ; et - une étape d) d'évaluation de l'image numérique, l'image numérique étant considérée comme floue si le score Si obtenu à l'étape c) est strictement inférieur à un premier seuil prédéterminé, le score Si fournissant une première quantité de flou présente dans l'image 10 numérique. Par « obtention d'une image numérique », on entend qu'on se procure une image numérique. Celle-ci peut être préexistante ou bien elle peut être générée par tout moyen approprié connu de l'homme du métier, comme une caméra CCD. Chaque pixel est une partie élémentaire de l'image 15 numérique. En général, l'image est en deux dimensions (2D), c'est-à-dire que les pixels peuvent être repérés par deux coordonnées x et y. A chaque pixel sont associés des paramètres de codage colorimétrique. Les plus connus sont le codage RVB (pour « rouge, vert, bleu ») ou RGB en anglais (pour « red, green, blue »). Citons aussi le TSV (pour « teinte, saturation, valeur ») et son analogue, le TSB (« teinte, saturation, brillance »), connus en anglais sous les sigles HSV et 20 HSB (hue, saturation, value et hue, saturation, brightness). Ces systèmes de codage sont en général analogues et on peut passer de l'un à l'autre par des relations de conversion connues. La brillance est analogue à la luminosité. L'image peut avoir une forme quelconque. Elle est en général rectangulaire ou carrée. On peut 25 la représenter par une matrice associant à chaque pixel ses paramètres colorimétriques. En effet, même si l'image n'est pas rectangulaire, on peut toujours ajouter des pixels « manquants » et leur attribuer des paramètres neutres. Ceci revient, par exemple, pour une image ronde, à ajouter des coins. Dans cet exemple, l'image est représentée de manière matricielle mais il va de soi que d'autres représentations sont possibles. Il serait tout à fait équivalent, pour la méthode 30 selon l'invention, de réaliser les mêmes calculs sans les représenter matriciellement. La représentation matricielle est appréciée, car elle se prête facilement à une programmation informatique et permet d'exprimer les calculs de façon condensée. Toutefois, ce qui importe n'est pas la forme du calcul, mais bien plutôt sa fonction et son résultat. Après l'étape a) d'acquisition (ou obtention) d'une image numérique, on calcule à l'étape b) un 35 paramètre de brillance pour chaque pixel. L'étape b) comprend un détourage de l'image numérique (pour faire ressortir les bords) et une 7 extraction d'un paramètre de brillance par pixel. Le détourage s'obtient par une opération de convolution avec une matrice de détection de bords. Une image peut être représentée par une matrice M pour laquelle chaque valeur M(x,y) équivaut 5 à la valeur du pixel de l'image à la position (x,y). Cette matrice est également équivalente à une fonction à deux dimensions f(x,y), qui pour chaque valeur de x et de y, est égale à la valeur du pixel à la position (x,y). Soit lum(f(x,y)) la fonction extrayant valeur de la luminosité du pixel f(x,y). On peut détecter qu'un pixel (x,y) d'une image est un bord quand la valeur de la norme du gradient de lum(f(x,y) est supérieure à un certain seuil (Sium) en (x,y). (Igrad lum(f(x,y))1> 10 En conservant les valeurs supérieures à un seuil Sium du gradient de l'intensité des pixels de l'image, on détecte les pixels appartenant à des bords d'une image. (par exemple, avec Sium = 20/255) Une autre manière, plus efficace, est de détecter qu'un pixel (x,y) d'une image est un bord quand 15 la valeur de la norme du gradient de la matrice M a un maximum local en (x,y), c'est à dire quand 'grad lum(f(x,y))1 > 0 et quand la valeur du laplacien de lum(f(x,y)) est nulle en (x,y). (grad2 lum(f(x,y)) =0). En conservant les maxima locaux du gradient de l'intensité des pixels de l'image, on détecte les pixels appartenant à des bords d'une image. 20 Voici quelques exemples de matrices de détection de bords : Matrice de Laplace octogonale : -1 -1 -1 MDB = -1 8 -1 -1 -1 -1 25 Matrice de Laplace carrée : 0 1 0 MDB = 1 -4 1 0 1 0 30 Matrice de Sobel : 1 0 -1 MDB = 2 0 -2 1 0 -1 8 Matrice de Prewitt: 1 0 -1 MDB = 1 0 -1 1 0 -1 L'extraction d'une valeur de brillance se fait à partir du codage colorimétrique des pixels, qui contient cette information. Le produit de convolution d'une matrice (l'image numérique) par une 5 deuxième matrice (noyau de convolution, ici une matrice de détection de bords) est une matrice (représentant ici l'image de détection de bords, c'est-à-dire une image détourée) dans laquelle la valeur de chaque pixel est une combinaison linéaire de la valeur du pixel considéré et de celle de ses voisins. La deuxième matrice (matrice de détection de bords) contient les coefficients de la combinaison linéaire. La combinaison linéaire vise à faire ressortir les bords, au sens précisé 10 ci-dessus, contenus dans l'image numérique de départ. Nous donnons ci-après un exemple de calcul. Soit M une première matrice, de dimension (Ma, Mb) (avec Ma lignes et Mb colonnes), représentant l'un des composants de l'image (la luminosité par exemple), et soit MDB une 15 deuxième matrice, de dimension (MDBa,MDBb), (avec MDBa lignes et MDBb colonnes), la matrice de détection de bords. Par convention, les coordonnées de MDB ont été disposées par rapport à son centre, si ses dimensions sont impaires, ou par rapport à la colonne et la ligne qui sont à la fois les plus proches du centre et les moins éloignés de la première coordonnée de la matrice, si ses dimensions sont paires. 20 Exemple : pour 0 -1 0 MDB = -1 4 -1 0 -1 0 de dimension 3x3, la numérotation est la suivante : 25 MDB1(-1,-1)=0, MDB1(-1,0)=-1, MDB1(-1,1)=0, MDB1(0,-1)=-1, MDB1 (0,0)=4, MDB1(0,1)=-1, MDB1(1,-1)= 0, MDB1(1,0)=-1, MDB1(1,1)=0. Soit M' la matrice, de dimension (Ma,Mb) résultant de la convolution des matrices M et MDB. 30 Pour calculer M', nous procédons comme suit : (MDBa/2) (MDBb/2) M'(x, y) = MDB(m, n) * M(x + m, y + n) (m>-MDBa/2)(n>-MDBb/2) 9 Avec m entier, compris dans l'intervalle ]-MDBa/2 ;MDBa/2], n entier, compris dans l'intervalle ]- MDBb/2 ; MDBb/2], x entier compris dans l'intervalle [0; Ma-1], y entier compris dans l'intervalle [0; Mb-1]. 5 De plus, M'(x,y)=0 avec x Ma-1 ou y>Mb-1. Ainsi, la convolution de l'image complète avec la matrice de détection de bords aura pour résultat 10 une nouvelle image, dont chacun des composants (rouge, vert, bleu, ou teinte, saturation, luminosité par exemple) auront été convolués avec la matrice de détection de bords. Une telle étape b) est connue de l'homme du métier par la demande de brevet W02012/080643. A l'étape c), on calcule un score (ou résultat) Si qui comprend le maximum, calculé sur tous les 15 pixels, du paramètre de brillance obtenu à l'étape b). Le score Si peut être égal à ce maximum (cas le plus simple), mais il est clair qu'un multiple de ce maximum, ou plus généralement la transformation de ce maximum par une fonction monotone conviendrait également. L'étape d) est l'étape de détection. L'image est considérée comme floue si le score Si est 20 strictement inférieur à un premier seuil prédéterminé S10. La détermination de ce premier seuil S10 résulte en général de l'expérience. Sa valeur peut dépendre du type d'image numérique considéré et de la sévérité que l'on souhaite donner au critère de détection de flou. En outre, le paramètre Si fournit une première quantité de flou dans l'image. Plus exactement, 25 c'est 1 moins Si (1-S1) qui quantifie le flou, car plus Si est faible, plus le flou est grand. Des tests ont montré que la méthode fournit des résultats conformes à ce que l'oail humain considère comme plus ou moins flou, en particulier dans le cas du flou « analogique », dû à une mise au point déficiente d'un appareil à focalisation, par exemple un microscope optique. 30 En outre, la méthode est rapide et permet de traiter un grand nombre d'images. La plupart des algorithmes de calcul utilisés dans l'art antérieur (transformée de Fourier, ondelettes, ...etc.) nécessitent un temps de calcul en N au carré, N étant le nombre de pixels, alors que la méthode selon l'invention est linéaire (temps de calcul proportionnel à N). En outre, la méthode est 35 absolue, car elle ne nécessite pas de comparer l'image avec une image étalon. 10 La méthode, appliquée à la question de la focalisation d'un appareil de production d'image, permet de corriger rapidement une focalisation incorrecte (correction du flou « analogique »). Les étapes b) et c) mettent en oeuvre un ordinateur. 5 Selon des modes de réalisations particuliers, l'invention peut mettre en oeuvre une ou plusieurs des caractéristiques suivantes : - l'étape b) est une étape b1) de convolution de l'image numérique avec la matrice de détection de bords pour obtenir une image de détection de bords et d'extraction dudit paramètre de brillance pour chaque pixel à partir de l'image de détection de bords. Dans 10 l'étape b1), la convolution a lieu avant l'extraction de la brillance. - l'étape b) est une étape b2) d'extraction d'une valeur de brillance pour chaque pixel à partir de l'image numérique pour obtenir une matrice de brillance et de convolution de la matrice de brillance avec la matrice de détection de bords pour obtenir ledit paramètre de brillance pour chaque pixel. L'étape b2) est une alternative à l'étape b1), où la convolution 15 a lieu après l'extraction de la brillance. Elle conduit en général au même résultat, avec l'avantage de réduire la quantité de calculs, car la convolution ne porte par sur tous les paramètres de l'image numérique, mais seulement la brillance. - le paramètre de brillance est la brillance au sens du codage « teinte, saturation, brillance » (TSB). Parmi toutes les définitions possibles d'une brillance ou d'une luminosité, la 20 brillance au sens du codage TSB donne de bons résultats. En outre, si l'image numérique est directement codée en TSB, les calculs d'extraction du paramètre B sont triviaux. - le paramètre de brillance et le score Si étant exprimés en pourcentage, le premier seuil prédéterminé est compris entre 90% et 100%, de préférence entre 95% et 99,5%. Ces plages sont des plages préférées pour le flou de type « analogique », en ce sens que le 25 score Si conduit alors, sur un grand nombre d'images tests, à des résultats conformes à ce que l'oail humain considère comme flou ou net. - le premier seuil prédéterminé est compris entre 97% et 99%. Ces plages sont encore plus préférées dans le cas du flou « analogique ». 30 Dans l'étape b1), on convolue d'abord l'image numérique avec une matrice de détection de bords (MDB). En termes matriciels, on calcule le produit de convolution de la matrice représentant l'image numérique avec une matrice dite de « détection de bords ». Le résultat de la convolution est une nouvelle matrice, représentant une image de détection de bords. La fonction de ce calcul est de détourer l'image numérique, c'est-à-dire de renforcer les bords. Le 35 résultat est une nouvelle image, où les bords sont renforcés. Ensuite, à partir de l'image de détection de bords (ou de sa matrice représentative), on extrait 11 pour chaque pixel de cette image, un paramètre de brillance. En pratique, on part des paramètres colorimétriques et on calcule un paramètre de brillance. Si le codage est le TSB, cela revient à ne conserver que le « B » (brillance). Si on a utilisé un autre codage, les calculs sont plus compliqués, mais ne posent pas de problème particulier. 5 L'étape b2) est une alternative possible à l'étape b1). Elle se distingue par le fait que l'on commence par extraire une valeur de brillance pour chaque pixel. On se retrouve avec une image de brillance, représentée par une matrice de brillance. Puis on convolue, cette matrice de brillance avec une matrice de détection de bords. On obtient ainsi pour chaque pixel un 10 paramètre de brillance. Cette alternative est équivalente du point de vue de la fonction et du résultat, et nécessite en général moins de calculs, puisque la convolution ne porte que sur une matrice à un paramètre colorimétrique (valeur de brillance) au lieu de porter sur une matrice plus épaisse comportant plusieurs paramètres pour chaque pixel. 15 Selon l'invention, à l'étape c), on calcule un score S2 comprenant une fonction logistique f(x) définie de manière suivante f (x) = A + (C + Qe-13(x-m))1/v dans laquelle des paramètres de brillance - le paramètre V est une constante de croissance maximale 20 - le paramètre A est une constante d'asymptote minimale - le paramètre C est une constante de décalage - le paramètre Q est une constante de postamplification - le paramètre K est une constante d'asymptote maximale - le paramètre B est une constante de préamplification 25 - le paramètre M est une constante d'initialisation - x correspond à la somme, calculée sur tous les pixels, obtenus à l'étape b), chacun divisé par une constante de calibration. Le score S2 permet de quantifier le flou dans l'image. Comme cela sera présenté par la suite à 30 l'étape d), l'image numérique 1 est également considérée comme floue si le score S2 obtenu à l'étape c) est strictement inférieur 14 à un deuxième seuil prédéterminé S20. De manière préférée, x correspond à la somme, calculée sur tous les pixels, des paramètres de brillance obtenus à l'étape b), chacun divisé par une constante de calibration, de préférence le 35 maximum de brillance, de manière à être comprise entre 0 et 1 et par le nombre de pixels analysés. À titre d'exemple, le maximum de brillance est égal à 1, dans l'intervalle [0 ;1] ou à 255 K - A 12 dans l'intervalle [0 ;255] selon l'échelle choisie. Le score S2 est calibré pour être compris entre 0 et 1, dans le but de faciliter son interprétabilité et sa comparaison avec d'autres scores. Pour image de 10x10 pixels, le nombre de pixels analysés est égal à 100. 5 De manière avantageuse, le score S2 présente une non linéarité permettant d'établir une discrimination pertinente au moyen d'un un seuil de flou. En résumé, le deuxième score S2 est calculé à partir de la valeur moyenne de l'intensité lumineuse des bords de l'image qui a été calibrée. La fonction logistique permet un recentrage pertinent pour un coût calculatoire limité. 10 Les paramètres V, A, C, Q, K, B, M peuvent être issus de calculs théoriques et affinés par l'expérience. De manière préférée : - le paramètre V est compris entre 0.5 et 100, de préférence, entre 0.8 et 1.2, de préférence encore entre 0.9 et 1.1. - le paramètre A est compris entre -5 et 5, de préférence, entre -0.2 et 0.2, de préférence 15 encore entre -0.1 et 0.1. - le paramètre C est compris entre 0 et 100, de préférence, entre 0.9 et 1.1, de préférence encore entre 0.98 et 1.02. - le paramètre Q est compris entre 0.1 et 10, de préférence, entre 0.8 et 1.2, de préférence entre 0.9 et 1.1. 20 - le paramètre K est compris entre -2 et 4.5, de préférence, entre 0.8 et 1.2, de préférence encore entre 0.9 et 1.1. - le paramètre B est compris entre 0.1 et 1000, de préférence, entre 8 et 12, de préférence encore entre 9 et 11. - le paramètre M est compris entre 0 et 0.999, de préférence, entre 0 et 0.06, de préférence 25 encore entre 0.027 et 0.033. Ces plages sont des plages préférées pour le flou de type « analogique », en ce sens que les scores Si et S2 conduisent alors, sur un grand nombre d'images tests, à des résultats conformes à ce que l'oail humain considère comme flou ou net. 30 Parmi les fonctions logistiques f(x), la fonction sigmoïde fs(x) est avantageuse en termes de rapidité et de pertinence. Une fonction sigmoïde fs(x) est une fonction logistique f(x) dont les paramètres sont définis de 35 manière suivante : - le paramètre V est égal à 1 - le paramètre A est égal à 0 13 - le paramètre C est égal à 1 - le paramètre Q est égal à 1 La fonction sigmoïde f(x) est définie de manière suivante 5 f s (x) = ( 1 + e m ) dans laquelle - le paramètre K est une constante d'asymptote maximale, - le paramètre B est une constante de pré-amplification et - le paramètre M est une constante d'initialisation De manière préférée : - le paramètre K est compris entre 0.8 et 1.2, de préférence entre 0.9 et 1.1. - le paramètre B est compris entre 8 et 12, de préférence entre 9 et 11. - le paramètre M est compris entre 0 et 0.06, de préférence entre 0.027 et 0.033. De manière avantageuse, le score S2 mesure la qualité moyenne d'une image. Il est utilisé en combinaison avec d'autres mesures, qui jugent entre autres, de la qualité des meilleurs endroits de l'image. 20 Et à l'étape d), l'image numérique est également considérée comme floue si le score S2 obtenu à l'étape c) est strictement inférieur à un deuxième seuil prédéterminé S20, le score S2 fournissant en outre une deuxième quantité de flou présente dans l'image numérique. Ce paramètre, ou score, S2 vient compléter le premier score Si. Pour être considérée comme nette, l'image doit en outre posséder un score S2 supérieur ou égal à un deuxième seuil prédéterminé 25 S20. Les mêmes remarques d'interprétation, faites pour le calcul du score Si et le premier seuil prédéterminé, s'appliquent au calcul du score S2 et au deuxième seuil. En particulier, le score S2 peut être la formule exprimée ci-dessus, ou bien une fonction monotone de cette formule. Le deuxième seuil prédéterminé S20 peut être issu de calculs théoriques et affiné par 30 l'expérience. Le score S2 donne en général une quantification plus fine du flou présent dans l'image numérique que le premier score Si. On peut par exemple utiliser le score Si en « tout ou rien », c'est-à-dire décider que l'image est floue ou nette sur la base du premier score Si. On peut utiliser le score S2 comme une quantification du flou. 35 De manière préférée, le paramètre de brillance et le score S2 étant exprimés en pourcentage et le deuxième seuil prédéterminé S20 est compris entre 0% et 100%, de préférence, entre 50% et 100%, de préférence encore entre 70% et 90%. 10 15 14 La figure 1 illustre une méthode de détection et de quantification du flou dans une image numérique conforme à l'invention. 5 L'étape a) consiste à obtenir une image numérique 1, par exemple à l'aide d'une caméra ou d'un appareil photo numériques. L'image peut par exemple avoir 512 X 512 pixels et être codée en TSB (teinte, saturation, brillance). Les paramètres de codage peuvent être exprimés de manière absolue, ou bien en pourcentage. 100% signifie que le paramètre est à son maximum sur une échelle prédéterminée (par exemple de 0 à 255). 10 Puis on réalise une étape b) de traitement d'image. Dans l'exemple, elle est de type b2). On commence par extraire (sous-étape 6) une valeur de brillance pour chaque pixel à partir de l'image numérique 1. Ainsi, pour chaque pixel, on a les paramètres T, S, B du codage colorimétrique et on ne conserve que le paramètre B. On obtient une matrice de brillance 7. Cette 15 matrice de brillance 7 est convoluée (sous-étape 8) avec une matrice de détection de bords MDB, par exemple celle dite de Laplace, matrice 3x3 qui a la forme suivante : -1 -1 -1 MDB = -1 8 -1 -1 -1 -1 20 Ceci revient, en chaque endroit de l'image de brillance représentée par la matrice 7, à calculer un genre de laplacien des valeurs de brillance. Les bords contenus dans l'image résultat ont une valeur de brillance nulle. De manière alternative, on peut utiliser une matrice de Sobel comme matrice de détection de 25 bords. Dans ce cas : -2 -2 0 MDB = -2 0 +2 0 +2 +2 On peut aussi utiliser des combinaisons linéaires (ou des rotations par multiples de pi/4) des matrices de Laplace et de Sobel, ou de leurs matrices transposées. 30 Le résultat de la convolution est une nouvelle matrice 5 (ou image) qui comporte un paramètre de brillance par pixel. Cette image est détourée par l'effet de la convolution. Ensuite, à étape c), on calcule (sous-étape 9) le score Si. C'est le maximum sur tous les pixels 35 du paramètre de brillance obtenu à l'issue des étapes b1) ou b2) (dans l'exemple, l'étape b2). 15 A l'étape d), on utilise le ou les résultats obtenus à l'étape c). La méthode utilise le score Si défini ci-dessus (critère 10). S'il est supérieur ou égal à ce premier seuil prédéterminé S10, l'image numérique 1 est considérée comme nette (cas 12). S'il est strictement inférieur à un premier seuil 5 prédéterminé S10 (par exemple 98%), le score S2 doit être calculé pour quantifier le flou et déterminer s'il est acceptable. Le score Si permet aussi de quantifier le flou. Plus exactement, plus 1-S1 est grand, plus le flou est grand. Dans la méthode, l'étape b1) représente une alternative possible à l'étape b2). Dans l'étape b1), 10 on part toujours de l'image numérique 1 représentable par une matrice. On commence par convoluer (sous-étape 2) cette matrice 1 avec la matrice de détection de bords MDB. Ainsi, la convolution porte sur tous les paramètres de l'image numérique et non seulement la brillance. On obtient une image de détection de bords 3. Ensuite, sous-étape 4, on extrait pour chaque pixel, à partir de l'image de détection de bords 3, un paramètre de brillance par pixel, ce qui forme la 15 matrice 5. L'étape b2) est une alternative à l'étape b1), qui en général requiert moins de calculs. Pour examiner une série d'images, on s'en tient en général à l'une ou l'autre des étapes b1) ou b2), pour des raisons d'homogénéité de traitement. Dit autrement, on choisit b1) ou b2) une fois pour toutes lorsqu'on examine une série d'images. 20 Dans la méthode, à l'étape c), on calcule (sous-étape 13) la fonction sigmoïde f(x) f(x) = (i+e-B(x-m)) La fonction sigmoïde f(x) est calculée pour une valeur x correspondant à la somme, calculée sur tous les pixels, des paramètres de brillance obtenus à l'étape b), chacun divisé par le maximum 25 de brillance (1, dans l'intervalle [0 ;1] ou 255 dans l'intervalle [0 ;255] par exemple, selon l'échelle choisie) ainsi que par le nombre de pixels analysés. Le deuxième score S2 est ainsi compris entre 0 et 1 et est exprimé en pourcentage. Il va de soi que d'autres fonctions sigmoïdes ou d'autres fonctions logistiques pourraient 30 convenir. Il a été présenté la fonction sigmoïde qui présente les meilleurs résultats avec la plus grande rapidité. A l'étape d), on compare (test 14) le score S2 à un deuxième seuil prédéterminé S20 (par exemple 75%). Pour qu'une image soit considérée comme nette, il faut que Si soit supérieur ou 35 égal à S10 et que S2 soit supérieur ou égal à S20 (cas 12). A contrario, si Si est strictement inférieur à S10 ou S2 est strictement inférieur à S20 (cas 11), l'image est considérée comme floue. Si et S2 quantifient le flou (ou bien 1-S1 et 1-S2). On pourrait aussi calculer un score 16 comprenant ces deux scores, par exemple une norme du vecteur (Si, S2). Le calcul conjoint du premier score Si et du deuxième score S2 permet ainsi de détecter si une image est : 5 - totalement nette : dans ce cas, Si et S2 sont supérieurs ou égaux à leurs seuils prédéterminés respectifs S10 et 52o; - partiellement nette, c'est-à-dire qu'il existe au moins une zone nette dans l'image et le reste de l'image est flou : dans ce cas, Si est supérieur ou égal à S10 et S2 est strictement inférieur à S20; 10 - totalement floue : dans ce cas, Si et S2 sont strictement inférieurs à leurs seuils prédéterminés respectifs S10 et S20. Les valeurs exactes de Si et S2 utilisées conjointement permettent également d'ordonner des images en fonction de leur niveau de netteté (ou de leur niveau de flou). 15 En particulier, les valeurs de Si et S2 sont nécessaires pour déterminer qu'une image est partiellement nette, c'est-à-dire qu'elle contient à la fois au moins une zone nette et au moins une zone floue. 20 Une méthode selon l'invention a été appliquée à aux figures 1 à 3 avec les paramètres suivants : le paramètre K est égal à 1, le paramètre B est égal à 10, le paramètre M est égal à 0.03, le deuxième seuil prédéterminé S20 de 75%; 25 Si a été calculé en utilisant une étape b) de type b2) avec un premier seuil prédéterminé S10 de 98%. Les résultats suivants ont été obtenus : image 1 partiellement nette (Figure 2) : score Si de 100%, score S2 de 65,93%, 30 image 2 floue (Figure 3) : score Si de 49%, score S2 de 51,62%, image 3 nette (Figure 4) : score Si de 100%, score S2 de 76,53%, Il s'ensuit que l'image 3 (Figure 4) est détectée comme nette du point de vue du score S2 (S2 est supérieur ou égal au deuxième seuil prédéterminé S20 qui est de 75%) comme de celui du 35 score S1 (S1 est supérieur ou égal au premier seuil prédéterminé S10 qui est de 98%). La quantité de flou dans l'image 3 est donnée par les scores Si et S2. Au contraire, pour l'image 2 (Figure 3), le score S2 est strictement inférieur au deuxième seuil prédéterminé et Si est 17 strictement inférieur au premier seuil prédéterminé. L'image 2 (Figure 3) est donc détectée comme floue. La quantité de flou dans l'image 2 est donnée par les scores Si et S2. On peut aussi, si l'on préfère, exprimer la quantité de flou par 1-S1 et 1-S2, pour avoir des quantités qui croient à mesure que le flou est plus important. De même, l'image 1 (Figure 2) est détectée 5 comme nette du point de vue du score Si (Si est supérieur ou égal au premier seuil prédéterminé S10) mais le score 2 révèle une quantité de flou importante (S2 est inférieur ou égal au deuxième seuil prédéterminé 52o). On peut aussi en déduire que pour les images 1 et 2, la focalisation n'est REVENDICATIONS1. Méthode de détection et de quantification du flou dans une image numérique (1) mettant en oeuvre un ordinateur et comprenant : - une étape a) d'obtention d'une image numérique (1) comprenant des pixels et des paramètres de codage colorimétrique associés aux pixels ; - une étape b) d'obtention d'un paramètre de brillance (5) pour chaque pixel à partir de l'image numérique (1), l'étape b) comprenant une opération de convolution (2, 8) avec une matrice de détection de bords (MDB) ; - une étape c) de calcul (9) d'un score Si comprenant le maximum, calculé sur tous les pixels, du paramètre de brillance (5) obtenu à l'étape b) ; et - une étape d) d'évaluation de l'image numérique, l'image numérique étant considérée comme floue si le score Si obtenu à l'étape c) est strictement inférieur (10) à un premier seuil prédéterminé S10, le score Si fournissant une première quantité de flou (11) présente dans l'image numérique, méthode caractérisée en ce que : - à l'étape c), on calcule (13) un score S2 comprenant une fonction logistique f(x) définie de manière suivante f (x) = A + (C + Qe-13(x-m))1/v dans laquelle - le paramètre V est une constante de croissance maximale, - le paramètre A est une constante d'asymptote minimale, - le paramètre C est une constante de décalage, - le paramètre Q est une constante de post-amplification, - le paramètre K est une constante d'asymptote maximale, - le paramètre B est une constante de pré-amplification, - le paramètre M est une constante d'initialisation, - x correspond à la somme, calculée sur tous les pixels, des paramètres de brillance obtenus à l'étape b), chacun divisé par une constante de calibration et par le nombre de pixels analysés, - à l'étape d), l'image numérique (1) est également considérée comme floue si le score S2 obtenu à l'étape c) est strictement inférieur (14) à un deuxième seuil prédéterminé S20, le score S2 fournissant en outre une deuxième quantité (11) de flou présente dans l'image numérique. K - A 2. Méthode selon la revendication 1, caractérisée en ce que la fonction logistique f(x) est une fonction sigmoïde fs(x) définie de manière suivante : 19 f s (x) = (1 + e-B(x-m)) 3. 5 4. 10 155. 6. 20 7. 25 8. 30 9. 35 Méthode selon la revendication 2, caractérisée en ce que les paramètres de la fonction sigmoïde fs(x) sont définis de manière suivante : - K est compris entre 0.1 et 4.5, de préférence, entre 0.8 et 1.2 - B est compris entre 0.1 et 1000, de préférence, entre 8 et 12 - M est compris entre 0 et 0.999, de préférence, entre 0 et 0.06. Méthode selon la revendication 2, caractérisée en ce que les paramètres de la fonction sigmoïde fs(x) sont définis de manière suivante : - K est compris entre 0.9 et 1.1 - B est compris entre 9 et 11 - M est compris entre 0.027 et 0.033. Méthode selon l'une des revendications 1 à 4, caractérisé en ce que la constante de calibration est définie de manière à ce que le paramètre x soit compris entre 0 et 1. Méthode selon l'une des revendications 1 à 5, caractérisé en ce que la constante de calibration est le maximum de brillance. Méthode selon l'une quelconque des revendications 1 à 6, caractérisée en ce que l'image numérique (1) est considérée comme totalement nette si les scores Si et S2 sont supérieurs ou égaux à leurs seuils prédéterminés respectifs S10 et S20, comme partiellement nette si le score Si est supérieur ou égal au premier seuil prédéterminé S10 et le score S2 est strictement inférieur au deuxième seuil prédéterminé S20, ou comme totalement floue si les scores Si et S2 sont strictement inférieurs à leurs seuils prédéterminés respectifs S10 et S20. Méthode selon l'une quelconque des revendications 1 à 7, caractérisée en ce que le deuxième score S2 étant exprimé en pourcentage, le deuxième seuil prédéterminé 520 est compris entre 0% et 100%, de préférence entre 50% et 100%, de préférence encore entre 70% et 90%. Méthode selon l'une quelconque des revendications 1 à 8, caractérisée en ce que le paramètre de brillance (5) est la brillance au sens du codage « teinte, saturation, brillance » (TSB). 20 10. Méthode selon l'une quelconque des revendications 1 à 9, caractérisée en ce que, le paramètre de brillance (5) et le score Si étant exprimés en pourcentage, le premier seuil prédéterminé S10 est compris entre 90% et 100%, de préférence entre 95% et 99,5%. 5 11. Méthode selon l'une quelconque des revendications 1 à 10, caractérisée en ce qu'on ordonne des images en fonction de leur niveau de flou en utilisant conjointement les valeurs exactes des scores Si et S2. 12. Méthode selon l'une quelconque des revendications 1 à 11, caractérisée en ce qu'on 10 détermine la présence d'au moins une zone nette et au moins une zone floue dans une image en utilisant conjointement les valeurs exactes des scores Si et S2. 13. Produit de type programme d'ordinateur, comprenant au moins une séquence d'instructions stockée et lisible par un processeur et qui, une fois lue par ce processeur, 15 provoque la réalisation des étapes b), c) et d) de la méthode selon l'une quelconque des revendications précédentes. 14. Support lisible par un ordinateur comportant le produit selon la revendication 13. 20