Brevet FR3033070A1 — publié le 20160826

Domaine de l'invention La présente invention concerne, de façon générale, le domaine du traitement d'images numériques présentées sous forme de matrice de pixels. L'invention vise plus particulièrement la recherche des zones nettes et floues dans une image numérique. Plus précisément, l'invention vise à montrer par un jeu de couleurs et de variations de luminosité, la profondeur de champ et donc, la zone de netteté, sur la totalité de l'image. L'invention est applicable aussi bien sur les photographies numériques que les vidéos numériques. Elle peut s'appliquer en temps réel comme à postériori lors d'une phase de postproduction. Etat de l'art Les capteurs des appareils photographiques actuels permettent de créer des images numériques dotées d'une qualité visuelle de plus en plus performante. La majorité des appareils photographiques sont équipés d'une fonction d'autofocus permettant de régler la netteté d'un sujet. Actuellement, même les reflex d'entrée de gamme disposent de plusieurs capteurs autofocus (cinq ou plus) répartis en divers endroits de l'image. Une zone peut être sélectionnée pour la mise au point de façon manuelle ou automatique. Cette fonction permet donc choisir à priori la zone nette de l'image mais ne qualifie pas l'image finale en termes de netteté ou de profondeur de champ. De plus, les sujets se déplaçant à partir de 50 km/h (14 m/s soit un temps de réaction de 0,072 s) constituent des cibles difficiles à suivre en matière d'autofocus car leur temps de réaction atteint parfois une bonne fraction de seconde. De nombreuses technologies ont été développées (dont l'autofocus prédictif qui essaye d'anticiper la position d'un sujet mobile dans le cadre). On a ainsi vu apparaître des autofocus de plus en plus complexes à configurer et à utiliser. Dans le même temps, l'écart entre les appareils photographiques professionnels et amateurs s'est considérablement creusé. 3033070 2 Pour aider à la mise au point, au moment de la prise de vue, certaines marques ont équipé leurs matériels d'un dispositif logiciel nommé « FOCUS PEAKING » mais dont le fonctionnement est limité au moment de la prise de vue et surtout, à la zone de l'image/scène utilisée par l'autofocus pour faire la 5 mise au point. Il s'agit donc d'une portion très restreinte de l'image et qu'il est en général impossible de re-visualiser après la phase de prise de vue. A fortiori, ce type de dispositif ne permet pas de visualiser en temps réel comme à postériori, la totalité de la zone de profondeur de champ (zone nette, combinaison de la mise au point, de la focale de l'objectif et de l'ouverture du 10 diaphragme). Le besoin de qualifier l'image en termes de netteté au moment de la prise de vue reste d'actualité. C'est par exemple pour les photographes la possibilité de choisir rapidement, directement sur le boîtier les fichiers nets à conserver. C'est également la possibilité pour les photographes, lors de 15 certaines scènes très dynamiques, de pré-calibrer sa zone de mise au point. Un autre besoin consiste à choisir parmi un nombre important d'images celles qui correspondent à une meilleure qualité en termes de netteté ; par exemple, les rédacteurs des agences de presse doivent choisir leurs images à diffuser parmi un nombre important d'images prises par un photographe. 20 L'invention vise à qualifier les pixels d'une l'image numérique en termes de netteté et d'acutance. Exposé de l'invention A cet effet, l'invention vise un procédé de création, à partir d'une 25 image numérique source, d'une image finale. Le procédé comporte : 100, 200 - une phase de calcul de netteté locale, pour chacun des pixels d'une partie de l'image numérique source, ce calcul déterminant une valeur associée à ce pixel et représentative de la netteté locale de l'image numérique source autour de ce pixel, 30 300 - une phase de génération de l'image finale comportant : une transformation géométrique prédéterminée de l'image numérique source, dans laquelle chaque pixel de l'image finale est 3033070 3 associé à un pixel de l'image numérique source par ladite transformation géométrique prédéterminée, une colorisation l'image finale, dans laquelle on affecte, à chaque pixel d'un ensemble de pixels de cette seconde image, une 5 valeur de couleur fonction de la valeur associée au pixel correspondant dans l'image numérique source. On comprend qu'il s'agit d'un procédé de création, à partir d'une image numérique source, d'une seconde image, tel que, pour au moins une partie des pixels de la seconde image, les valeurs de couleurs des pixels de ladite 10 seconde image sont représentatives de la netteté locale de l'image numérique source autour des pixels de position associée dans ladite image numérique source. Ce procédé permet alors de mettre en évidence de façon visuelle les zones nettes et floues dans une image numérique. Dans un mode particulier de réalisation, la phase de calcul de netteté 15 locale comporte une première étape 100 dans laquelle l'image numérique source IMO est transformée en une image monocolore formant une première image intermédiaire IM1. Dans un mode plus particulier de réalisation, la phase de calcul de netteté locale comporte une seconde étape 200 dans laquelle on utilise la 20 première image intermédiaire image transformée IM1 pour créer une seconde image intermédiaire IM2, sur trois canaux de couleur, les coefficients de cette seconde image intermédiaire IM2 étant des nombres réels, cette étape 200 consistant à initialiser la valeur du pixel x, y en réel de IM2 sur un canal donné pixel,m2(x, y, canal) en fonction de plusieurs valeurs de pixels de IM1 pour des 25 positions x', y' pixelimi(x1,31 avec x' et y' appartenant au voisinage de x,y. Dans un mode plus particulier de réalisation, la valeur du pixel x, y en réel de la seconde image intermédiaire IM2 sur un canal donné est calculée par application d'une fonction d'initialisation FONC ayant pour paramètres d'entrée notamment : la position du pixel (x, y), les dimensions (th, tw) d'une 30 fenêtre locale autour de ce pixel pour ce canal, et deux valeurs particulières de position (il, jl, i2, j2) dans cette fenêtre. Dans un mode plus particulier de réalisation, la fonction d'initialisation FONC est définie par le quotient entre une fonction de distance, calculée entre 3033070 4 les valeurs du pixel courant et les deux positions particulières, et une fonction de normalisation définie relativement à la taille de la fenêtre. Dans une première mise en oeuvre, notée ici variante X, la fonction de distance utilise une transformée cosinus au sein de la fenêtre, et est nulle hors 5 de la fenêtre. SI pixel,m2(x, y, canal) la valeur du pixel en réel de IM2 sur le canal Rouge ou Vert ou Bleu -> pixelimi(x, y) la valeur du pixel de IM1 L'étape 200 consiste à initialiser pixel,m2(x, y, canal) en fonction de 20 plusieurs pixelimi(f, y') avec x' et y' appartenant au voisinage de x,y. On entend par « plusieurs pixels » un groupe d'au moins 3 pixels On entend par voisinage du pixel de coordonnées x, y une zone de forme et de surface prédéterminée, ou calculée selon des paramètres liés au pixel x, y. 25 Soit canari un canal parmi les trois canaux : Rouge, Vert, Bleu, Soit canal2 un canal différent de canari parmi les trois canaux : Rouge, Vert, Bleu, Soit canal3 diffèrent de canari et différent de canal2 parmi les trois canaux : Rouge, Vert, Bleu. 30 On introduit une fonction Fonc ayant comme paramètres d'entrée : - x, y la position du pixel, -> th, tw deux entiers qui définissent, dans cet exemple non limitatif de réalisation, une fenêtre 1 rectangulaire autour de x,y ; th correspond à la 3033070 10 hauteur de la dite fenêtre 1 et tw la largeur de ladite fenêtre 1, Cette fenêtre n'est pas nécessairement centrée ni nécessairement de taille impaire. Ces fenêtres peuvent être différentes pour chaque canal. -> il ,j1 une première position dans cette fenêtre 1 . On a donc, si on 5 commence les indices par 0 : 0 de la projection FX de la transformée en cosinus du premier mode de réalisation, décrit plus haut en variante X, par un noyau s paramétré par un réel S. Par encapsulation, on fait référence à la notion de noyau qui est une fonction qui remplace le 10 produit scalaire initial par un produit scalaire défini dans un espace transformé. Grâce à la fonction noyau, on n'a pas besoin de connaître la fonction qui transforme les espaces de représentation mais uniquement le comportement du produit scalaire dans cet espace transformé. Ici, le noyau utilisé est de type projectif (et non radial) il encapsule donc le produit scalaire 15 initial. La fonction FONC est ici définie par : de la projection FX de la transformée en cosinus du premier mode de réalisation, décrit plus haut, par 15 un autre noyau kernel(u,w), choisi ici comme répondant à la condition de Mercer (cette condition garantit que le noyau ainsi défini représente le comportement d'un produit scalaire dans un espace transformée. est donc remplacé par kernel(u,w)= sans que l'on ait à connaître explicitement la fonction de projection f(.)). 20 Dans une variante du premier mode de réalisation ainsi que dans les variantes Y et Z, on restreint le nombre de pixels à calculer pour l'image 1M2. 3033070 16 Ainsi, on ne calcule qu'un pixel sur T et donc dans cette variante, l'image obtenue 1M2 a comme largeurvi Tvi et comme hauteur HT. Dans une variante 200' de l'étape 200 illustrée figure 5, on utilise une 5 décomposition en ondelettes de l'image IM1 pour créer l'image 1M2 Dans un mode de réalisation de cette variante 200', on utilise des ondelettes stationnaires OS. Dans un mode de réalisation de cette variante 200', les ondelettes OS sont des ondelettes de type « symlet » à huit coefficients, qui sont des 10 ondelettes orthogonales, créées à partir des ondelettes de Daubechies, mais ayant de meilleures propriété de symétrie. Dans un autre mode de réalisation, les ondelettes OS sont des ondelettes bi-othogonales. Dans un autre mode de réalisation, les ondelettes OS sont des 15 ondelettes complexes. Dans un autre mode de réalisation, les ondelettes OS sont des ondelettes monogènes. On rappelle que la décomposition en ondelettes OS de niveau 1 permet d'obtenir quatre bandes qui sont constituées respectivement d'une 20 image passe-bas A(1) et de trois autres images, celles-ci étant respectivement un passe-haut en ligne Dh(1), un passe-haut en colonne Dv(1) et un passe-haut en diagonale Dd(1). La décomposition de niveau est illustrée figure 6. L'image de départ, dans cette décomposition de niveau 1, est IM1. 25 On rappelle que, lorsqu'on fait une décomposition de niveau 2, on décompose l'image passe-bas de la décomposition de niveau 1 en quatre bandes : une image passe-bas A(2), un passe-haut en ligne Dh(2), un passe-haut en colonne Dv(2) et un passe-haut en diagonale Dd(2), et ainsi de suite pour un niveau N. L'image de départ est donc, pour une décomposition de 30 niveau N, l'image passe-bas de la décomposition de niveau N-1. .. La décomposition de niveau N est illustrée figure 7. 3033070 17 Dans un mode de réalisation particulier, cette variante 200' comporte : - une sous étape 401 illustrée figure 8, dans laquelle on décompose en ondelettes OS sur N niveaux l'image 1M1. Dans ce mode de réalisation de cette variante 200', on choisit ici : 5 N = 2 On note Dh(N) l'image passe haut en colonne sur le Nème niveau, On note Dv(N) l'image passe haut en ligne sur le Nème niveau. - une sous étape 402, effectuée après la sous étape 401 illustrée 10 figure 8, et dans laquelle on décompose chacune des deux images Dh(N), Dv(N) obtenues par la sous étape 401, en ondelettes OS sur M niveaux. On note Dh A l'image passe bas de la décomposition en ondelettes OS sur M niveaux de Dh(N), 15 On note Dh Dh l'image passe haut en colonne de la décomposition en ondelettes OS sur M niveaux de Dh(N), On note Dh_Dv l'image passe haut en ligne de la décomposition en ondelettes OS sur M niveaux de Dh(N), On note Dv_A l'image passe bas de la décomposition en ondelettes 20 OS sur M niveaux de Dv(N) , On note Dv_Dh l'image passe haut en colonne de la décomposition en ondelettes OS sur M niveaux de Dv(N), On note Dv_Dv l'image passe haut en ligne de la décomposition en ondelettes OS sur M niveaux de Dv(N). 25 Dans ce mode de réalisation de cette variante 200', on choisit ici : M = 1 - Dans un troisième temps, on calcule les pixels en réel de l'image 1M2 par la formule pixel,m2(x, y, canall) JDh_A(x, y)2 + Dv_A(x, y)2 pixel,m2(x, y, canal2) JDh_Dh(x, y)2 + Dh_Dv(x, y)2 pixel,m2(x, y, canal3) = JDv_Dh(x, y)2 + Dv_Dv(x, y)2 3033070 18 Dans le présent mode de réalisation de cette variante 200', canari est le canal rouge, canal2 est le canal vert.et canal3 est le canal bleu. Dans un autre mode de réalisation de la variante 200', on applique n'importe quel type de décomposition en paquets d'ondelettes. 5 Dans une troisième étape 300, illustrée figure 1, on créé une image 1M3, constituée de coefficients entiers sur chacun des trois canaux de couleur, à partir de l'image 1M2. On rappelle que l'image 1M2 contient, pour chaque canal R,V,B, des coefficients réels (puisque les calculs effectués dans l'étape 10 200, ou 200' sont faits par défaut avec des réels). L'étape 300 consiste à transformer ces coefficients réels en des coefficients entiers par une normalisation, permettant de visualiser l'image obtenue 1M3 sur un écran, tout en conservant l'information couleurs pertinente. 15 Dans cette troisième étape 300, - Dans une sous étape 301, on cherche des valeurs de troncatures en minimum et en maximum de pixel,,,2(x , y, canal), - Dans une sous étape 302, on tronque les valeurs de pixel,,,2(x, y, canal) en utilisant les deux valeurs fournies par 20 l'étape 301, - Dans une sous étape 303, on ramène la dynamique des pixels pixel,,,2(x, y, canal) obtenus par l'étape 302 entre 0 et 255, - Dans une sous étape 304, on convertit ces valeurs en nombre entiers et on stocke les valeurs dans l'image 1M3. 25 Les sous étapes 301, 302, 303 et 304 s'enchainent pour former l'étape 300. La sous étape 301 utilise des procédés connus de l'homme du métier. Elle consiste à définir les bornes de la troncature de façon à exclure les points aberrants tout en gardant le maximum d'information utile. 30 Dans le présent mode de réalisation, l'étape 301 évalue les bornes, à travers une hypothèse de distribution gaussienne, qui définit l'intervalle de confiance à 99% soit la valeur de troncature minimum de p - 3 * a et la valeur de troncature en maximum est p + 3 * a où p représente la valeur moyenne et 3033070 19 a l'écart type des valeurs de l'ensemble des pixels de 1M2 du dit canal. Dans une variante, l'étape 301 utilise un histogramme des valeurs de pixel,,,2(x, y, canal) avec une troncature à XPT % du nombre des pixels sans à priori sur la forme de l'histogramme comme c'est le cas dans le présent mode 5 de réalisation. Le Kurtosis peut éventuellement remplacer l'écart-type dans la définition du seuil de troncatures. En variante, l'étape 301 utilise une autre méthode connue de l'homme de l'art. Dans le présent mode de réalisation, l'étape 302 s'effectue par une 10 transformation linéaire. Avantages Cette invention peut être intégrée directement dans un appareil photographique ou caméscope, et peut afficher ses résultats sur le viseur de ce 15 dit appareil photographique ou caméscope. Cette invention peut aussi être intégrée dans un ordinateur, et dans le cas où un nombre important d'images similaires sont à traiter, afficher ses résultats, par exemple, sur une planche contact, pour aider à extraire les images les plus intéressantes selon des critères de netteté. REVENDICATIONS1. Procédé de création, à partir d'une image numérique source, d'une image finale, caractérisé en ce qu'il comporte : 100, 200 - une phase de calcul de netteté locale, pour chacun des pixels d'une partie de l'image numérique source, ce calcul déterminant une valeur associée à ce pixel et représentative de la netteté locale de l'image numérique source autour de ce pixel, 300 - une phase de génération de l'image finale comportant : une transformation géométrique prédéterminée de l'image numérique source, dans laquelle chaque pixel de l'image finale est associé à un pixel de l'image numérique source par ladite transformation géométrique prédéterminée, une colorisation l'image finale, dans laquelle on affecte, à chaque pixel d'un ensemble de pixels de cette seconde image, une valeur de couleur fonction de la valeur associée au pixel correspondant dans l'image numérique source. 2. Procédé selon la revendication 1, caractérisé en ce que la phase de calcul de netteté locale comporte une première étape 100 dans laquelle l'image numérique source IMO est transformée en une image monocolore formant une première image intermédiaire IM1.. 3. Procédé selon la revendication 2, caractérisé en ce que la phase de calcul de netteté locale comporte une seconde étape 200 dans laquelle on utilise la première image intermédiaire image transformée IM1 pour créer une seconde image intermédiaire IM2, sur trois canaux de couleur, les coefficients de cette seconde image intermédiaire IM2 étant des nombres réels, cette étape 200 consistant à initialiser la valeur du pixel x, y en réel de IM2 sur un canal donné pixel,,,2(x, y, canal) en fonction de plusieurs valeurs de pixels de IM1 3033070 21 pour des positions x', y' pixelimi(xi, y') avec x' et y' appartenant au voisinage de x,y. 4. Procédé selon la revendication 3, caractérisé en ce que la valeur du 5 pixel x, y en réel de la seconde image intermédiaire 1M2 sur un canal donné est calculée par application d'une fonction d'initialisation FONC ayant pour paramètres d'entrée notamment : la position du pixel (x, y), les dimensions (th, tw) d'une fenêtre locale autour de ce pixel pour ce canal, et deux valeurs particulières de position (il, jl, i2, j2) dans cette fenêtre. 10 5. Procédé selon la revendication 4, caractérisé en ce que la fonction d'initialisation FONC est définie par le quotient entre une fonction de distance, calculée entre les valeurs du pixel courant et les deux positions particulières, et une fonction de normalisation définie relativement à la taille de la fenêtre. 15 6. Procédé selon la revendication 5, caractérisé en ce que la fonction de distance utilise une transformée cosinus au sein de la fenêtre, et est nulle hors de la fenêtre : F onc(x, y, th, tw, i1, j1, i2,12) = normX (th, tw) 20 et la fonction d'initialisation FONC étant nulle hors de la fenêtre la fonction FX étant définie par : FX(x, y, th, tw, = th-1 tw -1 1 th tw 2 *,\I 2 k=0 m=0tw th - [-2 + k, y * cos 2 * th * cos * n- * (2 * k + 1)) * n- * (2*m + 1))) 2* tw la fonction notée normX normalisant la fonction Fonc. \/FX(x, y, th, tw, i1, j1)2 + F X (x, y, th, tw,i2, j2)2 25 3033070 22 7. Procédé selon la revendication 5, caractérisé en ce que la fonction de distance est une transformation matricielle (une transformée en sinus, ou une transformée de Hadamard). 5 8. Procédé selon la revendication 5, caractérisé en ce que la fonction de distance est paramétrée par un réel S et une exponentielle, la fonction d'initialisation FONC étant définie dans la fenêtre par : s,/Fy(x,y,th,tw,iiii)+ FY (x,y,th,tw,i232) F onc(x, y, th, tw, i1, j1, i2,12) = e normY(th,tw,S) avec S : coefficient réel strictement positif et la fonction d'initialisation FONC étant nulle hors de la fenêtre 10 la fonction de distance FY étant définie par : FY(x, y, th, tw, i, j) = h-1 tv-1 1 i,Tr,(2,k+1) i*Tr*(2*m+1)n=0m=0 .Ek,YelFm)-cos(2,th).COS(2,tw )15 normbisY la fonction notée normY normalisant la fonction Fonc la fonction normbisY normalisant la distance FY. 15 9. Procédé selon la revendication 5, caractérisé en ce que la fonction de distance est paramétrée par un réel S et une fonction puissance, avec un biais de 1, la fonction d'initialisation FONC étant définie dans la fenêtre par : F onc(x, y, th, tw, i1, j1, i2, j2) = (F Z (x, y, th, tw, il, j 1) + FZ (x, y, th, tw, i2, j2) + 1)s normZ (th, tw, S) 20 S étant un coefficient réel la fonction d'initialisation étant nulle hors de la fenêtre la fonction de distance FZ étant définie par FZ(x, y, th, tw, j) = 0,7r,(2,7n+1))2 (,th=-01,tw 1 *Ic+1)) z,k z,m=0- 2t J+k,y-r] +rn,)*cos(i*Tr*(2 , * cos 2,tw - 2 2,tn normbisZ 25 la fonction notée normZ normalisant la fonction Fonc. la fonction normbisZ normalisant la distance FZ. 3033070 23 10. Procédé selon la revendication 6, caractérisé en ce qu'on remplace la fonction FX par une fonction noyau kernel(u,w), choisi comme répondant à la condition de Mercer. 5 11. Procédé selon la revendication 2, caractérisé en ce que la phase de calcul de netteté locale comporte une seconde étape 200' dans laquelle on utilise une décomposition en ondelettes de la première image intermédiaire IM1 pour créer la seconde image intermédiaire IM2. 10 12. Procédé selon la revendication 11, caractérisé en ce que cette étape 200' comporte : une sous étape 401 dans laquelle on décompose en ondelettes OS sur N niveaux la première image intermédiaire IM1. une sous étape 402, effectuée après la sous étape 401 et dans 15 laquelle on décompose l'image passe haut en colonne sur le Nème niveau Dh(N), et l'image passe haut en ligne sur le Nème niveau Dv(N), en ondelettes OS sur M niveaux. une sous-étape 403, dans laquelle on calcule les pixels en réel de la seconde image intermédiaire IM2 sur chacun des canaux par un 20 calcul de distance pixelim2(x, y, canall) = Dh_A(x, y)2 + Dv_A(x, y)2 pixelin,2(x, y, canal2) = Dh_Dh(x,y)2 + Dh_Dv(x, y)2 pixelim2(x, y, canal3) = Dv_Dh(x,y)2 + Dv_Dv(x,y)2 dans lequel : on note Dh_A l'image passe bas de la décomposition en ondelettes OS sur M niveaux de Dh(N), on note Dh Dh l'image passe haut en colonne de la décomposition en ondelettes OS sur M niveaux de Dh(N), 25 on note Dh_Dv l'image passe haut en ligne de la décomposition en ondelettes OS sur M niveaux de Dh(N), on note Dv_A l'image passe bas de la décomposition en ondelettes OS sur M niveaux de Dv(N) , on note Dv_Dh l'image passe haut en colonne de la décomposition en 3033070 24 ondelettes OS sur M niveaux de Dv(N), on note Dv_Dv l'image passe haut en ligne de la décomposition en ondelettes OS sur M niveaux de Dv(N). 5 13. Procédé selon la revendication 3, caractérisé en ce que la phase de génération de l'image finale comporte une étape 300 dans laquelle, on créé l'image finale IM3, constituée de coefficients entiers sur chacun des trois canaux de couleur, à partir de la seconde image intermédiaire IM2, l'étape 300 consistant à transformer les coefficients réels de chaque canal de l'image IM2 10 en des coefficients entiers par une normalisation, permettant de visualiser l'image obtenue IM3 sur un écran, tout en conservant l'information couleurs pertinente. 14. Procédé selon la revendication 13, caractérisé en ce que dans 15 cette troisième étape 300, 301, on cherche des valeurs de troncatures en minimum et en maximum de pixelinz2(x,y,canal), - 302, on tronque les valeurs de pixelirn2(x,y, canal) en utilisant les deux valeurs fournies par l'étape 301, 20 303, on ramène la dynamique des pixels pixelim2(x,y,canal) obtenus par l'étape 302 entre 0 et 255, - 304, on convertit ces valeurs en nombre entiers et on stocke les valeurs dans l'image IM3. 25 15. Procédé selon la revendication 14, caractérisé en ce que dans l'étape 301 on évalue les bornes de troncature, à travers une hypothèse de distribution gaussienne, qui définit l'intervalle de confiance à 99% soit la valeur de troncature minimum de p - 3 * a et la valeur de troncature en maximum est p + 3 * a où p représente la valeur moyenne et a- l'écart type des valeurs de l'ensemble des pixels de IM2 du dit canal. 16. Procédé selon la revendication 14, caractérisé en ce que dans 3033070 25 l'étape 301 on utilise un histogramme des valeurs de pixelim2(x, y, canal) avec une troncature à un pourcentage prédéterminé du nombre des pixels.