FR3143162A1 - Procédé et dispositif de dématriçage - Google Patents

Procédé et dispositif de dématriçage Download PDF

Info

Publication number
FR3143162A1
FR3143162A1 FR2212870A FR2212870A FR3143162A1 FR 3143162 A1 FR3143162 A1 FR 3143162A1 FR 2212870 A FR2212870 A FR 2212870A FR 2212870 A FR2212870 A FR 2212870A FR 3143162 A1 FR3143162 A1 FR 3143162A1
Authority
FR
France
Prior art keywords
matrix
window
covariance
channel
image
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
FR2212870A
Other languages
English (en)
Other versions
FR3143162B1 (fr
Inventor
Régis Perrier
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Commissariat a lEnergie Atomique et aux Energies Alternatives CEA
Original Assignee
Commissariat a lEnergie Atomique CEA
Commissariat a lEnergie Atomique et aux Energies Alternatives CEA
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Commissariat a lEnergie Atomique CEA, Commissariat a lEnergie Atomique et aux Energies Alternatives CEA filed Critical Commissariat a lEnergie Atomique CEA
Priority to FR2212870A priority Critical patent/FR3143162B1/fr
Publication of FR3143162A1 publication Critical patent/FR3143162A1/fr
Application granted granted Critical
Publication of FR3143162B1 publication Critical patent/FR3143162B1/fr
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T3/00Geometric image transformations in the plane of the image
    • G06T3/40Scaling of whole images or parts thereof, e.g. expanding or contracting
    • G06T3/4015Image demosaicing, e.g. colour filter arrays [CFA] or Bayer patterns

Landscapes

  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Image Processing (AREA)
  • Image Analysis (AREA)
  • Testing, Inspecting, Measuring Of Stereoscopic Televisions And Televisions (AREA)

Abstract

Procédé et dispositif de dématriçage La présente description concerne un procédé de dématriçage d’une image, par un processeur d’un dispositif électronique, à partir de mesures, effectuées par un imageur et selon un motif de matriçage, d’au moins un canal, le procédé comprenant :- la détermination, par le processeur, pour chaque fenêtre d’une pluralité de fenêtres couvrant l’image, d’une matrice de covariance, parmi un ensemble de matrices de covariance, en effectuant, une opération de convolution à décalage sur l’ensemble de l’image avec un banc de filtres associé à la matrice de covariance ; - pour chaque fenêtre, le calcul, sur la base de la matrice de covariance, d’un estimateur comprenant des estimations d’au moins un canal, l’estimateur comprenant en outre une estimation d’une valeur moyenne de l’au moins un canal sur l’ensemble de la fenêtre ; et- la génération d’une nouvelle image sur la base l’estimateur de chaque fenêtre. Figure pour l'abrégé : Fig. 6

Description

Procédé et dispositif de dématriçage
La présente description concerne de façon générale le domaine des imageurs, et plus particulièrement les procédés de dématriçage d’image.
Des imageurs sont souvent formés de pixels de plusieurs types, configurés pour capturer différents canaux. Toutefois, chaque pixel n’est généralement sensible à un seul canal, et pour chaque pixel de l’image brute, capturée par l’imageur, il manque donc des informations d’un ou plusieurs autres canaux. Par exemple, des imageurs couleurs utilisent des filtres colorés sur chacun des pixels séparant l’information de trichotomie dans la lumière. Ainsi, pour chaque pixel, uniquement un canal est mesuré, comme par exemple le canal rouge ou bleu ou vert, et chaque pixel ne dispose donc que d’une mesure incomplète de la couleur. Dans d’autres exemples, un canal différent de la couleur, tel que par exemple la profondeur, peut être mesuré pour un pixel.
Afin de reconstruire une image complète ayant des informations d’un ou plusieurs canaux pour chaque pixel, les valeurs des canaux non-mesurés par certains pixels peuvent être ensuite estimées, dans une opération dite de dématriçage et à partir des mesures effectuées sur les pixels voisins.
Des procédés de dématriçage existants sont généralement lents à exécuter et/ou consommateurs en ressources de traitement. D’autres procédés de dématriçage existants peuvent être relativement rapides, mais sont adaptés à des imageurs ayant une configuration de filtres spécifique et ne sont pas adaptables à d’autres configurations.
Un mode de réalisation prévoit un procédé de dématriçage d’une image, par un processeur d’un dispositif électronique, à partir de mesures, effectuées par un imageur et selon un motif de matriçage, d’au moins un canal, parmi un premier ensemble de canaux, le procédé comprenant :
- la détermination, par le processeur, pour chaque fenêtre d’une pluralité de fenêtres couvrant l’image, d’une matrice de covariance, parmi un ensemble de matrices de covariance stockées dans une mémoire du dispositif, en effectuant, pour chaque matrice de covariance, une opération de convolution à décalage sur l’ensemble de l’image avec un banc de filtres associé à la matrice de covariance ;
- pour chaque fenêtre, le calcul, sur la base de la matrice de covariance déterminée, d’un estimateur comprenant des estimation de valeurs d’au moins un canal, parmi un deuxième ensemble de canaux, pour chaque pixel de la fenêtre, l’estimateur comprenant en outre une estimation d’une valeur moyenne de l’au moins un canal sur l’ensemble de la fenêtre ; et
- la génération d’une nouvelle image sur la base l’estimateur de chaque fenêtre.
Selon un mode de réalisation, les matrices de covariance de l’ensemble des matrices de covariance, proviennent d’un modèle de mixture Gaussienne.
Selon un mode de réalisation, les fenêtres sont sélectionnées de sorte que le motif de matriçage soit identique d’une fenêtre à l’autre.
Selon un mode de réalisation, le calcul de l’estimateur est en outre réalisé sur la base d’une matrice de matriçage dépendant du motif de matriçage.
Selon un mode de réalisation, chaque fenêtre est distante par rapport à ses fenêtres voisines par un pas de découpage et l’opération de convolution à décalage est une convolution à pas, le pas étant égal au pas de découpage de l’image, le pas étant un multiple de la taille du motif de matriçage.
Selon un mode de réalisation, pour chaque fenêtre, l’estimateur est calculé en faisant le produit matriciel :
[Math 1]
est un vecteur comprenant les valeurs mesurées pour la fenêtre, est une matrice orthonormale dont les colonnes des vecteurs propres d’une matrice et est une matrice diagonale comprenant les racines carrées des valeurs propres de la matrice , la matrice est égale à , étant la matrice de matriçage, étant la matrice de covariance associé au bruit de mesure de l’imageur et étant la matrice de covariance de la loi à priori de l’estimateur et comprenant une sous matrice de covariance qui est la matrice de covariance déterminée, et où est une matrice égale à .
Selon un mode de réalisation, pour chaque matrice de covariance , parmi l’ensemble de matrices de covariance, le banc de filtres associé est une séquence de matrices issues des éléments de la matrice .
Selon un mode de réalisation, le procédé ci-dessus comprend en outre, avant la détermination de la matrice de covariance, et pour chaque matrice de covariance le calcul et le stockage dans la mémoire des matrices , et .
Selon un mode de réalisation, le procédé ci-dessus comprend en outre, suite au calcul des estimateurs, la reconstruction d’une image en faisant :
- pour chaque pixel de chaque fenêtre, le calcul d’une valeur du pixel en ajoutant la moyenne estimée de l’au moins un canal, parmi le deuxième ensemble de canaux, à l’estimation de la valeur de l’au moins un canal.
Selon un mode de réalisation, le procédé ci-dessus comprend en outre, pour chaque pixel couvert par au moins deux fenêtres distinctes, le calcul de la moyenne des valeurs du pixel.
Selon un mode de réalisation, l’au moins un canal, parmi le deuxième ensemble de canaux, est spectralement corrélé à l’au moins un canal mesuré, parmi le premier ensemble de canaux.
Selon un mode de réalisation, les premier et deuxième ensembles de canaux comprennent les canaux couleur rouge, vert, bleu.
Selon un mode de réalisation, le premier ensemble de canaux comprend en outre un canal de profondeur.
Un mode de réalisation prévoit, un dispositif électronique comprenant :
- une mémoire non volatile configurée pour stocker un ensemble de matrice de covariance et un ensemble de banc de filtres, chaque banc de filtres étant associé à une matrice de covariance ; et
- un processeur configuré pour :
déterminer une matrice de covariance pour des fenêtres couvrant une image brute en faisant :
pour chaque matrice de covariance, une opération de convolution à décalage, à partir d’un ensemble de mesures associées aux fenêtres du banc de filtres associé à la matrice de covariance ; et
pour chaque fenêtre, le calcul d’un estimateur, sur la base de la matrice de covariance déterminée, l’estimateur comprenant des estimation de valeurs d’au moins un canal, parmi un deuxième ensemble de canaux, pour chaque pixel de la fenêtre, l’estimateur comprenant en outre une estimation d’une valeur moyenne de l’au moins un canal sur l’ensemble de la fenêtre ; et
générer une nouvelle image sur la base l’estimateur de chaque fenêtre.
Selon un mode de réalisation, la mémoire comprend en outre des ensembles de paramètres, chaque ensemble étant dépendant de l’ensemble de matrices de covariance, et dans lequel le processeur est configuré pour calculer l’estimateur sur la base des ensembles de paramètres dépendant de la matrice de covariance déterminée.
Ces caractéristiques et avantages, ainsi que d'autres, seront exposés en détail dans la description suivante de modes de réalisation particuliers faite à titre non limitatif en relation avec les figures jointes parmi lesquelles :
la illustre un exemple de dématriçage de plusieurs fenêtres acquises sur la base d’un motif de matriçage ;
la est un schéma par blocs représentant un dispositif de traitement selon un mode de réalisation de la présente description ;
la est un exemple d’une matrice de matriçage associée à un motif de matriçage ;
la est un exemple d’une autre matrice de matriçage associée à un autre motif de matriçage ;
la illustre des opérations d’estimation d’une matrice de covariance adaptée à une fenêtre ;
la illustre une opération de reconstruction d’une image à partir des matrices de covariance estimées ; et
la est un organigramme représentant différentes étapes de traitement d’une image.
De mêmes éléments ont été désignés par de mêmes références dans les différentes figures. En particulier, les éléments structurels et/ou fonctionnels communs aux différents modes de réalisation peuvent présenter les mêmes références et peuvent disposer de propriétés structurelles, dimensionnelles et matérielles identiques.
Par souci de clarté, seuls les étapes et éléments utiles à la compréhension des modes de réalisation décrits ont été représentés et sont détaillés. En particulier, le fonctionnement des imageurs n’est pas décrit en détail. Les procédés et dispositifs de mesure de profondeur ou d’un canal couleur sont connus par la personne du métier.
Sauf précision contraire, lorsque l'on fait référence à deux éléments connectés entre eux, cela signifie directement connectés sans éléments intermédiaires autres que des conducteurs, et lorsque l'on fait référence à deux éléments reliés (en anglais "coupled") entre eux, cela signifie que ces deux éléments peuvent être connectés ou être reliés par l'intermédiaire d'un ou plusieurs autres éléments.
Dans la description qui suit, lorsque l'on fait référence à des qualificatifs de position absolue, tels que les termes "avant", "arrière", "haut", "bas", "gauche", "droite", etc., ou relative, tels que les termes "dessus", "dessous", "supérieur", "inférieur", etc., ou à des qualificatifs d'orientation, tels que les termes "horizontal", "vertical", etc., il est fait référence sauf précision contraire à l'orientation des figures.
Sauf précision contraire, les expressions "environ", "approximativement", "sensiblement", et "de l'ordre de" signifient à 10 % près, de préférence à 5 % près.
La figure 1 illustre un exemple de dématriçage de plusieurs fenêtres d’une image acquise sur la base d’un motif de matriçage. En particulier, la figure 1 illustre une image brute 100. A titre d’exemple, l’image 100 est une image de 10 pixels de large et 10 pixels de hauteur et comprend donc pixels. L’image brute 100, aussi appelée mosaïque, est par exemple obtenue par un imageur, tels que par exemple des imageurs couleurs (RGB) ou des imageurs couleurs-profondeur (RGBZ), et à partir d’une scène image. Une configuration de filtres, ou motif de matriçage, 106 est par exemple répliquée à la surface de l’imageur. L’imageur mesure alors, pour chaque pixel de la mosaïque une valeur associée à un canal, défini par le motif de matriçage 106. Le motif de matriçage indique par exemple quel unique canal, par exemple parmi rouge (r), vert (g), bleu (b), est capté par chaque pixel. A titre d’exemple, le motif de matriçage comprend d’autres filtres que les filtres couleur rouge, vert et bleu tels que par exemple un filtre mesurant un canal de profondeur (z). Ainsi, pour certains pixels seulement une mesure de la profondeur est effectuée.
Dans l’exemple de la figure 1, le motif de matriçage est un motif de type Bayer. Ce motif est de taille pixels et permet la mesure des longueurs d’ondes associées à la couleur verte pour les pixels en haut à gauche, et en bas à droite, du motif. Le motif de Bayer permet en outre la mesure des longueurs d’ondes associées à la couleur rouge du pixel en haut à droite ainsi que la mesure des longueurs d’ondes associées à la couleur bleu en bas à gauche du motif. De manière général, en posant la convention que le pixel en haut à gauche de l’image brute 100 est en position (1,1), le motif de Bayer permet la mesure du canal vert associé au pixel en position (i,j) où i et j sont tous les deux pairs ou impairs, du canal rouge des pixel en position (i,j) où i est impair et j pair et du canal bleu des pixels en position (i,j) où i est pair et j est impairs.
Chaque pixel de l’image brute 100 comprend donc une mesure de la valeur d’un unique canal, mesuré selon le motif de matriçage utilisé.
Le dématriçage de l’image brute 100, c’est à dire l’estimation des valeurs d’autres canaux, par exemple l’estimations des composantes couleurs de chaque pixel, est réalisé fenêtre par fenêtre. Une fenêtre est une sous partie de l’image brute 100 de taille . Dans l’exemple illustré par la figure 1, deux fenêtres 102 et 104, de taille sont représentées. Le découpage de l’image brute 100 en une pluralité de fenêtres est appelé matriçage. A titre d’exemple, une sous partie 108 d’image dématricée correspond à une image résultante du dématriçage des fenêtres 102 et 104.
L’image brute 100 est alors découpée en une pluralité de fenêtres et selon un pas de découpage , représentant le nombre de pixels à sauter, verticalement ou horizontalement, entre deux fenêtres successives. A titre d’exemple, le pas de découpage entre les fenêtres 102 et 104 est de 2 pixels. A titre d’exemple, le pas de découpage est le même pour la totalité de l’image, que ce soit verticalement et horizontalement.
Les fenêtres 102 et 104 sont par exemple des fenêtres voisines. De manière générale, deux fenêtres successives sont voisines. La distance entre deux fenêtres voisines est égale au pas de découpage. A titre d’exemple, les deux fenêtres 102 et 104 sont distantes l’une de l’autre de 2 pixels.
A titre d’exemple, chaque fenêtre est de forme rectangulaire. La fenêtre comprend un nombre de lignes de pixel et un nombre de colonnes de pixels. Lorsque , la fenêtre est carrée et on notera . Encore dans un autre exemple, chaque fenêtre a une forme différente d’un carré ou d’un rectangle, par exemple une forme en L, sous réserve que l’ensemble des fenêtres couvre bien l’image brute 100 entière. En d’autres termes, quelle que soit la forme des fenêtres, l’agencement des fenêtres est par exemple choisi de sorte que tout pixel de l’image brute 100 soit couvert par au moins une fenêtre. . .
Dans l’exemple de la figure 1, la fenêtre 102 couvre les 25 pixels communs aux 5 premières colonnes et 5 premières lignes de l’image 100, et la fenêtre 104 couvre les 25 pixels communs aux 5 premières lignes et aux 5 colonnes allant de la 3èmecolonne à la 7èmecolonne de l’image 100. Dans l’exemple de la figure 1, les deux fenêtres 102 et 104 se chevauchent sur une largeur de 3 pixels et comprennent donc 15 pixels en commun. Le pas de découpage étant égal à 2, la fenêtre 102 comprend donc une bande de largeur de 2 pixels qui ne sont pas en communs avec la fenêtre 104. A titre d’exemple, pour des fenêtres de taille par pixels, le pas de découpage varie entre 1 pixel et pixels afin que tous les pixels de l’image brute 100 soient couverts par au moins une fenêtre.
Lorsque le pas de découpage est strictement inférieur à et à des pixels de l’image brute 100 sont recouverts par un nombre de fenêtres, pouvant être supérieur à deux. En effet, dans l’exemple illustré par la , les pixels de la 5èmecolonne du fenêtre 102 sont aussi couverts par une troisième fenêtre (non représentée) couvrant les pixels communs aux 5 premières lignes et de la 5èmeà la 9èmecolonne de l’image 100.
D’autres motifs de matriçage sont bien sûr utilisables, et en particulier des motifs dont le canal de profondeur est mesuré pour certains pixels sont utilisables. A titre d’exemple des motifs de matriçage pour lesquels le même canal est mesuré pour tous les pixels peuvent aussi être utilisés. Ces exemples de motifs de matriçage sont donnés à titre d’exemple et ne sont bien sûr pas limitatifs.
Dans l’exemple de la , le pas de découpage entre deux fenêtres successives est choisi de sorte que chaque fenêtre est mesurée selon la même configuration de filtres. En effet, si le pas de découpage était par exemple un entier impair, la composante verte du pixel en haut à gauche serait mesurée pour la moitié des fenêtres et la composante rouge serait mesurée pour l’autre moitié. De manière générale, lorsque le pas est un multiple de la taille du motif de matriçage, chaque fenêtre présente la même configuration de filtres.
Le dématriçage consiste en l’estimation, pour chaque pixel de chaque fenêtre, de la valeur des canaux non mesurés en utilisant la corrélation spectrale entre les canaux mesurés ainsi que la corrélation spatiale entre la valeur d’un même canal pour deux pixels adjacents. A titre d’exemple, les canaux couleurs présentent, en effet, une corrélation spectrale entre eux. Pour chaque pixel, la valeur du canal mesurée est elle aussi par exemple estimée. En effet, la valeur mesurée peut être bruitée. Le procédé d’estimation prend en compte ce bruit de mesure et l’estimation d’un canal mesuré agit comme un débruitage.
Lors du dématriçage, le canal de profondeur n’est, par exemple, pas reconstruit à partir des canaux couleurs. En effet, l’information du canal de profondeur risque de polluer l’estimation de la couleur. En effet, les mesures de profondeur ont des statistiques de bruit particulières, et en particulier les mesures de profondeurs sont généralement plus bruitées que les mesures de couleurs. .
Dans un autre exemple, un autre canal, non mesuré pour au moins certains pixels, mais présentant une corrélation spatiale avec les canaux mesurés, est reconstruit sans avoir été mesuré. Comme exemple, un canal représentant la température est reconstruit.
A titre d’exemple lorsqu’un pixel est recouvert par plusieurs fenêtres, l’estimation finale de la valeur d’un canal correspond à la moyenne des estimations du canal sur toutes les fenêtres contenant le pixel en question. Ainsi, plus le pas de découpage est petit, plus l’estimation finale de la valeur des canaux est précise.
A titre d’exemple, la couleur associée à chaque pixel de la partie d’image 108 est par exemple une valeur RGB obtenue en estimant la valeur des trois canaux couleurs.
La est un schéma par bloc représentant un dispositif électronique 200 selon un mode de réalisation de la présente description.
A titre d’exemple, le dispositif électronique 200 comprend un ou plusieurs imageurs 202 (IMAGE SENSOR(S)), et dans ce cas, le dispositif électronique 200 est un appareil photo numérique, un smartphone comprenant une fonctionnalité photographique, etc. Dans un autre exemple, l’un ou plusieurs imageurs 202 ne font pas partie du dispositif électronique 200, et dans ce cas le dispositif 200 est par exemple un dispositif de traitement d’images, tel qu’un ordinateur.
Chaque imageur 202 est configuré pour mesurer, selon un motif de matriçage, la valeur de canaux pour les pixels afin de générer une image. A titre d’exemple, lorsque les mesures sont réalisées par plusieurs imageurs n’ayant pas le même axe optique, les mesures prises sont par exemple replacées dans une même grille spatiale. Chaque pixel de la grille peut alors avoir plusieurs mesures, par exemple prises par des imageurs différents, ou aucune mesure. Afin de replacer les mesures sur cette grille spatiale, les images capturées par tous les imageurs sont, par exemple, être recalées. Dans un autre exemple, le replacement des mesures sur la grille est effectué par un calibrage d’un système informant, par exemple le processeur 210, des acquisitions de chaque imageur par rapport à la grille spatiale. Les procédés permettant de passer de plusieurs imageurs, n’ayant pas forcement le même axe optique, à une seule image brute sont connus par la personne du métier. A titre d’exemple, le ou les imageurs 202 comprennent en outre un ou plusieurs capteurs temps de vol (« Time of Flight » en anglais) configurés pour mesurer des distances auxquelles se trouvent des objets dans la scène image capturée. Dans d’autres exemples, le ou les imageurs 202 comprennent des capteurs de températures et/ ou des capteurs infrarouges.
Le ou les imageurs 202 sont par exemple reliés à un circuit intégré 204, par l’intermédiaire d’un bus 205.
Le circuit 204 comprend par exemple une mémoire non volatile 206 (NV MEM) et une mémoire volatile 208 (RAM), par exemple une mémoire à accès aléatoire (en anglais « Random Memory Acces »). Le circuit 204 comprend en outre un processeur 210 (CPU), par exemple relié aux mémoires 206 et 208 par l’intermédiaire d’un bus 212.
A titre d’exemple, la mémoire non volatile 206 comprend des instructions pour la mise en œuvre d’un algorithme de dématriçage.
A titre d’exemple, le ou les imageurs 202 sont configurés pour stocker les mesures effectuées dans la mémoire volatile 208 ou dans la mémoire non volatile 206 et le processeur 210 est configuré pour exécuter les instructions stockées dans la mémoire non-volatile 206 et/ou dans la mémoire 208 afin de reconstruire une image à partir des mesures stockées dans la mémoire volatile 208. Une fois reconstruite, l’image est par exemple stockée dans la mémoire non volatile 206.
A titre d’exemple, l’image brute 100, capturée par le ou les imageurs 202, est stockée dans la mémoire non volatile 206. Suite au matriçage de l’image brute 100, par exemple effectué par le processeur 210, un ensemble de matrices, correspondant aux mesures de l’image brute 100 par fenêtre, est stocké dans la mémoire non volatile 208.
A titre d’exemple, le motif de matriçage utilisé par le ou les imageurs 202 est un motif 300 dit de Bayer, illustré en haut de la , qui est de taille 2x2 pixels, les pixels comprenant des filtres de sorte que les pixels sont respectivement sensibles, dans le sens de l’aiguille, à la lumière de couleur rouge (r), vert (g), bleu (b) et vert (g).
A titre d’exemple, les fenêtres sont, elles aussi, de taille 2x2 pixels. La matrice comprenant les mesures pour une fenêtre prend par exemple la forme d’une matrice de taille 2x2 où et où les éléments et sont respectivement les mesures du canal vert des pixels en position (1,1) et (2,2) dans la fenêtre. L’élément est la mesure du canal rouge du pixel en position (1,2) de la fenêtre et l’élément est la mesure du canal bleu du pixel en position (2,1) de la fenêtre.
Selon un mode de réalisation, les valeurs , et correspondent respectivement aux valeurs moyennes de canaux rouge, vert et bleu sur le patch. Ainsi, dans cet exemple, les valeurs , , et sont alors des valeurs centrées.
Dans un autre exemple, la mesure m prend la forme d’un vecteur colonne, par exemple de la forme .
Encore dans un autre exemple, la mesure est acquise selon un motif de matriçage comprenant, par exemple, la mesure du canal z de profondeur. A titre d’exemple, la mesure est remplacée par la mesure de la profondeur du pixel en position (2,2) dans la fenêtre. Aucune composante couleur n’est par conséquent mesurée pour les pixels en position (2,2) de chaque fenêtre.
Le dématriçage a pour but d’estimer, pour chaque pixel de chaque fenêtre, les valeurs de canaux, où est égal à au moins 1. A titre d’exemple, le nombre est égal à 3 et les 3 canaux estimés sont les canaux vert, rouge, bleu. Dans un autre exemple, en plus, ou à la place d’un ou plusieurs des canaux couleurs, d’autres canaux, présentant une corrélation spatiale avec les canaux mesurés, sont estimés.
La figure 3A est un exemple d’une matrice de matriçage associée à un motif de matriçage. En particulier, le motif de matriçage 300 illustré en figure 3A est le motif de Bayer et chaque fenêtre est de taille .
Selon le mode de réalisation de la figure 3A, la mesure pour la fenêtre prend la forme d’un vecteur colonne de taille tel que décrit en relation avec la figure 2. Le vecteur est alors égal au produit de la matrice de dématriçage , de taille par , avec un vecteur colonne de taille .
Selon un mode de réalisation, le vecteur concatène respectivement les valeurs rouges, vertes et bleues des pixels de la fenêtre ainsi qu’un vecteur comprenant respectivement les valeurs moyennes pour chacun des canaux rouge, vert et bleu sur la fenêtre. Le vecteur est inconnu et l’objectif de l’opération de dématriçage est de l’estimer.
La matrice de dématriçage dépend entièrement du motif de matriçage utilisé et exprime la relation entre le vecteur à estimer et le vecteur des mesures .
Selon un mode de réalisation, le pas de découpage de l’image brute 100 est un multiple de la taille du motif de matriçage utilisé, par exemple un multiple de 2 dans le cas d’un motif de Bayer. Ainsi la matrice de matriçage établie en fonction du motif de matriçage est la même pour chaque fenêtre de l’image brute.
La figure 3B est un exemple d’une autre matrice de matriçage associée à un autre motif de matriçage 302. Dans la suite, on pose la convention que le pixel en position (i,j) d’un motif de matriçage correspond au pixel placé sur la i-ème ligne et sur la j-ème colonne du motif, la première ligne étant la ligne du haut du motif, et la première colonne étant la colonne à gauche du motif.
En particulier le motif de matriçage 302 est de taille , soit et . Dans cet exemple, le canal mesuré pour le pixel en position (1,2) du motif 302 est par exemple la couleur rouge (r), le canal mesuré pour les pixels en positions (2,1) et (3,2) du motif 302 est par exemple la couleur bleu (b), le canal mesuré pour le pixel en position (2,2) du motif 302 est par exemple la couleur verte (g), le canal mesuré pour les pixels en position (1,1) et (3,1) du motif 302 est par exemple le canal de profondeur (z).
A titre d’exemple, les valeurs de profondeur mesurées sont remplacées par défaut par des valeurs nulles dans le vecteur mesure . Dans l’exemple de la figure 3B, la mesure prend la forme d’un vecteur colonne, par exemple de la forme , où est la mesure de la composante bleue du pixel en position (3,2).
Le vecteur est de taille =21 et comprend alors une concaténation des canaux rouge, vert et bleu pour chaque pixel avec le vecteur comprenant les moyennes de chaque canal sur la fenêtre mesurée. En particulier, le vecteur comprend les composantes rouges, vertes et bleues pour tous les pixels, y compris les pixels pour lesquels la profondeur a été mesurée.
La matrice de dématriçage est alors adaptée de sorte que le produit matrice-vecteur soit égale au vecteur mesure , et ainsi les première et cinquièmes lignes de la matrice ne comportent que des 0. La matrice 302 est de taille par .
D’autres motifs de matriçage que les motifs 300 et 302 des exemples des figures 3A et 3B peuvent bien sûr être utilisés. A titre d’exemple, des motifs de taille et/ou de forme différentes peuvent être utilisés.
Selon un mode de réalisation, la matrice comprend lignes, étant le nombre de pixels composant chaque fenêtre, et colonnes, étant le nombre de canaux à estimer, soit par exemple 3 dans le cas d’une reconstruction couleur. La personne du métier saura adapter la matrice de matriçage au motif utilisé.
Bien que, dans les exemples décrits en relation avec les figures 3A et 3B, la taille des fenêtres est identique à la taille des motifs de matriçage, il est bien sûr possible, comme décrit dans l’exemple en relation avec la , de choisir des fenêtres de taille différente que la taille du motif de matriçage.
Selon un mode de réalisation, l’opération de dématriçage, à l’échelle d’une fenêtre, a pour objectif d’estimer un estimateur du vecteur colonne comprenant les composantes centrées, pour chaque pixel de la fenêtre, des canaux à estimer ainsi que les moyennes des canaux sur la fenêtre. Un estimateur du Maximum à Postériori pour est , où est la vraisemblance du vecteur , connaissant la mesure et est la distribution à priori de . La vraisemblance du vecteur se déduit à partir de l’équation reliant la mesure au vecteur inconnu et où est un vecteur aléatoire de taille et modélise un bruit, par exemple lié à le ou les imageurs 202. A titre d’exemple, le vecteur aléatoire suit une loi normale centrée et de matrice de covariance . A titre d’exemple la matrice est une matrice diagonale.
Selon un mode de réalisation, la distribution à priori du vecteur suit une loi normale , où est une matrice de covariance de taille , où est le nombre de canaux à estimer. En particulier,
[Math 2]
où, est une sous-matrice de covariance de taille qui encode la corrélation spectrale et spatiale entre les différents canaux à estimer par rapport aux différents pixels de la fenêtre. La matrice encode la corrélation entre les valeurs moyennes des canaux à estimer et suppose que celles-ci sont indépendantes les unes des autres et que chaque valeur moyenne suit une loi normale centrée et de variance .
L’estimateur du Maximum à Postériori du vecteur a alors forme une analytique explicite :
[Math 3]
Selon un mode de réalisation, le pas de découpage est choisie de sorte que la matrice de dématriçage est la même pour toute fenêtre, le produit ne dépend de la fenêtre considérée que de par la matrice de covariance .
Les données mesurées du vecteur ne sont pas préalablement centrées, c’est pour cette raison que le vecteur des moyennes est lui aussi estimé. De plus l’estimation du vecteur s’appuie également sur la distribution à priori du vecteur , et est par conséquent meilleur qu’une moyenne empirique traditionnellement soustraite aux données mesurées.
Bien que le vecteur illustré comprenne les composantes rouges, vertes et bleues pour chaque pixel d’une fenêtre, il est bien sûr possible d’adapter le vecteur . A titre d’exemple, une estimation voulue est une représentation d’un autre motif de matriçage, ou dans un autre exemple une estimation des composantes d’une unique canal. La personne du métier saura adapter le vecteur décrit à une variante , par exemple en effectuant un produit matrice-vecteur , où est une matrice permettant le passage de à . A titre d’exemple, si le vecteur voulu ne comprend que les composantes rouges des pixels alors que le vecteur comprend les estimations des composantes rouges, vertes et bleues, ainsi que l’estimation des valeurs moyennes, la matrice à pour forme , la matrice identité étant chargée d'extraire le canal rouge et le vecteur colonne étant chargé d'additionner la moyenne au canal rouge.
A titre d’exemple, pour chaque fenêtre, la matrice de covariance est déterminée parmi un ensemble de matrices de covariance, stocké par exemple dans la mémoire non-volatile 206, avant toute capture d’image. A titre d’exemple, l’ensemble des matrices de covariance est associé à une mixture de lois normales multivariées (GMM, de l’anglais « Gaussian Multivariate Mixture »). La distribution à priori du vecteur est alors égale à
[Math 4]
est le cardinal de l’ensemble des matrices de covariance . A titre d’exemple, est supérieur ou égal à 5 et inférieur ou égal à 50. Chaque coefficient , pondère l’importance de la loi normale de covariance dans le modèle GMM utilisé. A titre d’exemple, les coefficients , sont normés de sorte que .
Les méthodes de calculs et de construction de modèles GMM, et en particulier de modèles GMM adaptés au traitement d’image couleur, sont connues par la personne du métier et sont par exemple décrites dans la publication « From Learning Models of Natural Image Patches to Whole Image Restoration » publiée en 2011 dans la revue «International Conference on Computer Vision. » par Zoran, D. et Weiss, Y.
Le calcul et la construction du modèle GMM utilisé sont par exemple effectués dans une étape de conception du dispositif 200, par exemple ayant lieu avant la fabrication du dispositif 200.
Pour chaque fenêtre, un indice de la matrice de covariance, parmi l’ensemble des matrices de covariance, la plus adaptée à la fenêtre mesurée est l’indice vérifiant :
[Math 5]
De plus, pour tout indice , le log de vraisemblance est tel que :
[Math 6]
où l’opérateur désigne le déterminant et où et , désignant la matrice de covariance de la loi à priori de ayant pour sous matrice de covariance la matrice .
Pour chaque fenêtre, l’indice sélectionné est donc celui maximisant le log de vraisemblance et, la matrice de covariance adaptée pour la fenêtre considérée est .
La première partie du membre de droite du log de vraisemblance ne dépend pas du vecteur mesuré et peut donc être précalculé avant toute mesure d’image. A titre d’exemple, pour tous les indices , les valeurs du terme sont calculées en amont et par exemple stockées dans la mémoire non volatile 206.
La première partie du membre de droite du log de vraisemblance ne dépend alors pas du vecteur mesuré et peut donc être précalculée avant toute mesure d’image. A titre d’exemple, pour tous les indices , des valeurs sont précalculées en amont et par exemple stockées dans la mémoire non volatile 206. A titre d’exemple, les valeurs , sont concaténées dans un vecteur , de taille , et stocké dans la mémoire non volatile 206.
Selon un mode de réalisation, la matrice est une matrice réelle, symétrique et définie positive et est donc décomposable de sorte que , où est une matrice orthonormale de taille par dont les colonnes sont les vecteurs propres de la matrice et où la matrice est une matrice diagonale comprenant les racines carrées des valeurs propres de la matrice . Ainsi, le terme se réécrit sous la forme
[Math 7]
avec .
Les matrices , , ne dépendent pas du vecteur mesure et sont donc pré-calculables lorsque la matrice de dématriçage est identique pour chaque fenêtre mesurée. A titre d’exemple les matrices , , sont calculées suite à la construction du modèle GMM et la détermination du motif de matriçage utilisé par le ou les capteurs 202 et sont stockées dans la mémoire non volatile 206.
Ainsi, l’estimateur du maximum à postériori du vecteur s’écrit :
[Math 8]
est l’indice déterminé par maximisation du log de vraisemblance et correspond à l’indice de la matrice de covariance la plus adaptée pour la description de la fenêtre considérée. En particulier, la quantité ne dépend pas du vecteur mesure .
Selon un mode de réalisation, le traitement de l’image brute 100 comprend une première phase dans laquelle, pour chaque fenêtre, la matrice de covariance la plus adaptée est tout d’abord déterminée, puis dans une deuxième phase les estimateurs du maximum de vraisemblance de chaque fenêtre sont estimés, à partir des vecteurs mesures et selon la formule .
Selon un mode de réalisation, la première phase, de détermination des matrices de covariance est réalisée non pas fenêtre par fenêtre mais de manière globale. En effet, le produit de chaque vecteur mesure avec les matrices se ré-écrit en une opération de convolution à pas , aussi appelé opération de convolution à décalage, de l’entièreté de l’image brute 100 par un banc de filtres construit à partir des matrices .
La figure 4 illustre des opérations d’estimation de matrice de covariance pour chaque fenêtre. En particulier, la figure 4 illustre l’opération de convolution à pas sur l’image brute 100 permettant de déterminer, pour chaque fenêtre de l’image brute 100, la matrice de covariance lui étant la plus adaptée.
Chaque produit matrice-vecteur , pour tout et tout vecteur mesure , est un vecteur dont chaque coordonnée est un produit scalaire entre une ligne , où , de la matrice et le vecteur . Ainsi, on a l’égalité :
[Math 9]
où chaque , , est un vecteur colonne de taille comprenant les éléments de la -ème ligne de la matrice .
Ainsi, en considérant l’ensemble des fenêtres couvrant l’image brute, l’ensemble des produits entre l’ensemble des matrices avec chaque vecteur mesure d’une fenêtre de l’image se réécrit :
[Math 10]
est le réarrangement du vecteur colonne en une matrice , est l’image brute enregistrée par le ou les imageurs 202 et où l’opérateur est une convolution à pas , étant le pas de découpage décrit en relation avec la . Le résultat, pour un indice donnée de la convolution à pas du banc de filtres avec l’image est un nombre de matrices de taille est le nombre total de fenêtres. A titre d’exemple, l’image se décompose en fenêtres, de taille par , agencées en lignes et colonnes.
Ainsi, la détermination, pour chaque fenêtre, de la matrice de covariance la plus adaptée est réalisée à partir de l’image brute .
Selon un mode de réalisation, l’ensemble des bancs de filtres est préalablement stocké dans la mémoire non volatile 206. A titre d’exemple, les bancs de filtres sont précalculés à partir des matrices . La mémoire non volatile 206 stocke donc, par exemple en association des indices , un nombre de bancs de filtres.
Selon un mode de réalisation, suite aux mesures effectuées par le ou les imageurs 202, l’image brute est convoluée avec chaque banc de filtres . Pour chaque indice , chaque convolution par pas, par exemple exécutée par le processeur 210, résulte en sorties , de taille , et telles que pour chaque :
[Math 11]
Pour tout , les sorties du banc de filtre associé à l’indice pour une fenêtre à une position , et , dans l’image sont désignées dans la suite par .
A titre d’exemple, le processeur 210 est un processeur configuré pour exécuter des opérations de convolution, tel que par exemple un processeur utilisé pour l’exécution de réseaux de neurones convolutifs.
Selon un mode de réalisation, pour chacune des convolutions par pas de l’image brute avec les bancs de filtres, une norme , , est calculée en faisant :
[Math 12]
est le coefficient décrit en relation avec la . Ainsi, chaque est une matrice de taille , calculée à partir des matrices . En particulier, l’élément en position , noté , d’une matrice est associé à la fenêtre en position dans l’image brute. Pour chaque fenêtre, on obtient alors valeurs , .
Selon un mode de réalisation, un indice optimal est ensuite déterminé pour chaque fenêtre associée à une position en déterminant l’argument du maximum sur les valeurs des indices des quantités , .
A titre d’exemple, une table 400 de taille représente, pour chaque fenêtre, l’indice optimal déterminé.
Les opérations de convolution menées à l’échelle de l’image brute permettent donc de déterminer la matrice de covariance du modèle GMM là plus adaptée à chaque fenêtre.
La illustre une opération de reconstruction d’une image à partir des matrices de covariance estimées pour chaque fenêtre. En particulier, chaque indice optimal compris dans la table 400 correspond à l’indice de la matrice de covariance, parmi l’ensemble des matrices de covariance du modèle GMM.
A partir de la table 400, pour chaque fenêtre à une position , un estimateur du maximum à Postériori des valeurs des canaux pour chaque pixel du fenêtre est alors égal à :
[Math 13]
est l’indice de la matrice de covariance déterminée pour la fenêtre en position dans l’image brute et est le vecteur mesuré pour la fenêtre en position . Les estimateurs sont alors par exemple des vecteurs de taille . A titre d’exemple, lorsque les canaux à estimer sont les composantes couleur rouges, vertes et bleues de l’image, pour toute position ,
[Math 14] , respectivement et , est un vecteur de taille comprenant les estimations de la composante rouge, respectivement verte et bleue, de chaque pixel de la fenêtre en position . La valeur , respectivement et , est un scalaire estimant de la moyenne du canal rouge, respectivement vert et bleu, sur la fenêtre en position .
Dans l’exemple illustré par la figure 5, l’image brute comprend par exemple 4 lignes de chacune 6 fenêtres, soit 24 fenêtres au total. Une table 500 représente les 24 estimateurs , où et . A titre d’exemple, la table 400 indique que la matrice de covariance est par exemple celle qui a été déterminée comme la plus adaptée aux fenêtres en position (1,1), (1,2), (2,1), (4,5) et (4,6). Le calcul des estimateurs , et fait donc appel aux matrices , et .
Selon un mode de réalisation, une matrice 502, par exemple de taille , comprend les valeurs du vecteur auxquelles sont ajoutées l’estimation . Une matrice 504 comprend les valeurs du vecteur auxquelles sont ajoutées l’estimation . Une matrice 506 comprend les valeurs du vecteur auxquelles est ajoutée l’estimation . Les matrices 502, 504 et 506 décrivent respectivement les valeurs estimées des composantes des canaux rouge, vert et bleu pour chaque pixel de la fenêtre en position (1,1). Les valeurs des canaux rouge, vert et bleu sont estimées de manière similaire, pour chaque pixel de chaque fenêtre en position , par ajout de l’estimation de la moyenne à l’estimation , de l’estimation de la moyenne à l’estimation et de l’estimation de la moyenne à l’estimation .
Une image 508 est par exemple obtenue à partir de l’ensemble des estimations . A titre d’exemple, lorsqu’un pixel de l’image est recouvert par au moins deux fenêtres, par exemple lorsque le pas de découpage est inférieur à , l’estimation finale de chaque canal est la moyenne des estimations obtenues pour le pixel en question sur les différentes fenêtres le recouvrant.
La est un organigramme représentant différentes étapes d’un procédé de traitement d’une image. Sauf précision contraire, les étapes du procédé de la sont par exemple mises en œuvre par le dispositif électronique 200 de la , et en particulier par des instructions exécutées par le processeur 210.
Dans une étape 600 (PRE COMPUTATION), les paramètres de matriçage sont par exemple stockés dans la mémoire non volatile 206. A titre d’exemple, une indication de la largeur et de la longueur en pixel des fenêtres est stockée dans la mémoire non volatile. A titre d’exemple, la largeur et la longueur sont supérieures ou égales à 2 et inférieures ou égales à la largeur et la longueur des images brutes capturées par l’imageur. A titre d’exemple, la largeur et la longueur de chaque fenêtre sont des valeurs comprises entre 2 et 15 pixels, et plus particulièrement entre 4 et 9 pixels.
A titre d’exemple, la valeur du pas de découpage est en outre stockée dans la mémoire non volatile 206 lors de la réalisation de l’étape 600. La valeur du pas de découpage est supérieure ou égale à 1 et est un multiple de la taille du motif de matrice utilisé, par exemple un multiple de 2 dans le cas d’un motif de Bayer. Cette condition permet que la configuration des filtres soit identique pour chaque fenêtre et ainsi que la matrice de matriçage soit identique pour chaque fenêtre.
A titre d’exemple, l’étape 600 comprend en outre le stockage de la matrice de covariance , modélisant la corrélation du bruit produit par le ou les imageurs 202. La matrice de matriçage est en outre choisie, en fonction du motif de matriçage utilisé et de la taille des fenêtres, et stockée dans la mémoire 206 lors de l’étape 600.
L’étape 600 comprend en outre le choix de la dimension du modèle GMM utilisé, ainsi que le calcul du modèle GMM. L’ensemble de matrice de covariance est ensuite stocké dans la mémoire non volatile 206.
Les matrices , , les bancs de filtres , ainsi que les coefficients , sont calculés, par exemple par le processeur 210, ou par une unité de calcul externe au dispositif 200, à partir des matrices et , et sont par exemple stockées dans la mémoire non volatile 206.
Dans une étape 601 (IMAGE ACQUISITION), une image brute est acquise selon le motif de matriçage. A titre d’exemple, l’image est acquise par le ou les imageurs 202. Dans un autre exemple, l’image est acquise par un dispositif externe au dispositif 200 et configuré pour communiquer l’image au dispositif 200. L’image brute est ensuite matricée selon les paramètres de taille de fenêtre et et de pas de découpage , par exemple stockée dans la mémoire 208. Les mesures associées à chaque fenêtre de l’image sont alors par exemple stockées dans la mémoire 208 ou dans la mémoire non volatile 206. A titre d’exemple, l’image brute est découpée en un nombre de fenêtres, pouvant se chevaucher et par exemple lignes de chacune fenêtres.
Dans une étape 602 (i=1), une initialisation d’une variable , correspondant aux indices des matrices de covariance , est par exemple effectuée. A titre d’exemple, les matrices , , le banc de filtres , ainsi que le coefficient , sont stockés temporairement dans la mémoire volatile 208.
Dans une étape 603 (CONVOLUTION OF Z WITH ), l’image acquise dans l’étape 601, et plus particulièrement, l’ensemble des fenêtres mesurées, est convoluée, par une opération de convolution de pas par exemple exécutée par le processeur 210, avec le banc de filtres . Suite à l’opération de convolution, un ensemble de données , chacune composée de matrices de tailles , est par exemple stocké temporairement dans la mémoire 208.
Dans une étape 604 ( COMPUTATION), une matrice de taille , décrite en relation avec la figure 4, est calculée à partir des matrices et du coefficient . La matrice est par exemple stockée dans la mémoire 208. A titre d’exemple les matrices sont supprimées de la mémoire volatile 208.
Dans une étape 605 (i=L ?), il est déterminé, par exemple par le processeur 210 si toutes les valeurs d’indice ont été parcourues, par exemple en comparant la valeur d’indice courant à la valeur . Si ce n’est pas le cas (branche N), le procédé continue dans une étape 606 (i+1) dans lequel un autre indice est sélectionné. A titre d’exemple, l’étape 605 consiste en l’incrémentation de la valeur courante de l’indice . Le procédé reprend alors dans une nouvelle réalisation des étapes 603 à 605, résultant au calcul et au stockage d’une nouvelle matrice .
Lorsque, lors d’une réalisation de l’étape 605, il est déterminé que tous les indices ont été parcouru, par exemple si , les matrices , , ont été calculées pour toutes les matrices de covariance du modèle GMM. Le procédé continue alors dans une étape 607 ( DETERMINATION).
Lors de l’étape 607, l’indice optimal pour chaque fenêtre est déterminé pour chaque fenêtre associée à une position en calculant l’argument du maximum sur les valeurs des indices des quantités . L’indice de la matrice de covariance la plus adaptée à la fenêtre en position est donc déterminé en calculant l’argument du maximum sur les valeurs , , ..., . La détermination des matrices de covariance le plus adaptées aux autres fenêtres est réalisé de manière similaire, en calculant l’argument maximum sur les éléments des matrices correspondants.
Dans une étape 608 (PATCH ESTIMATIONS), les valeurs des canaux à estimés sont estimés, pour chaque fenêtre, à partir des matrices de covariances déterminées dans l’étapes 607. Pour toute fenêtre en position , un vecteur est calculé, par exemple par le processeur 210. A titre d’exemple, si les canaux à estimer sont les trois canaux couleur rouge, vert et bleu, . Une fois le vecteur obtenu, les valeurs des n canaux sont déterminées pour chaque pixel en ajoutant la moyenne du canal à l’estimation de sa valeur centrée pour le pixel en question. A titre d’exemple, les valeurs de la composante rouge pour chaque pixel de la fenêtre en position sont les éléments du vecteur .
A titre d’exemple, suite à la réalisation de l’étape 608, les composantes des canaux des pixels étant couverts par plusieurs fenêtres sont estimés plusieurs fois.
Dans une étape 609 (IMAGE RECONSTRUCTION), une image, par exemple une image couleur, est reconstruite à partir des composantes des canaux de chaque pixel calculé dans l’étape 607. A titre d’exemple, une image couleur est reconstruite à partir des estimations des canaux rouge, vert et bleu. Une valeur RGB est par exemple calculée pour chaque pixel de l’image reconstruite.
Selon un mode de réalisation, dans le cas ou un pixel est couvert par plusieurs fenêtres et pour lequel plusieurs estimations de mêmes canaux ont été calculés dans l’étape 607, des estimations finales sont calculées en faisant, par exemple, la moyenne, par canal, de chaque estimation.
Dans un autre mode de réalisation, le pas de découpage n’est pas un multiple de la taille du motif de matriçage, noté dans la suite par , et dans ce cas la matrice de matriçage n’est pas la même pour chaque fenêtre. Néanmoins, en faisant plusieurs matriçages de l’image brute, chacun en décalant les indices des pixels à l’origine, c’est à dire en haut à gauche, de l’image brute d’une valeur et en utilisant ce même pas pour chaque valeur de décalage, on obtient estimations de l’image couleur dont on peut faire la moyenne pour obtenir une image couleur finale. Le résultat est équivalent à une reconstruction à pas quelconque tout en gardant le formalisme de la convolution par un banc de filtres de la méthode. A titre d’exemple, ce mode de réalisation peut être utilisé sur l’exemple illustré par la figure 1 afin d’estimer l’image couleur avec un pas de découpage par exemple égal à 1. La taille du motif illustré en figure 1 est . Un premier matriçage et un premier dématriçage se font alors sur l’entièreté de l’image 100, avec un pas de découpage et par exemple des fenêtres de taille . Un deuxième matriçage et un deuxième dématriçage se font ensuite à partir de la deuxième colonne de pixel de l’image 100, ignorant ainsi les pixels de la première colonne. Le canal estimé pour le pixel à l’origine, en haut à gauche, est alors la composante rouge. Le pas de découpage reste égal à 2. Suite à ces deux estimations, le pas de découpage de l’image est bien égal à 1. Dans cet exemple la matrice de matriçage associé au premier dématriçage est différente de celle associée au deuxième dématriçage.
Bien que la distribution à priori de a été donné comme étant centrée, impliquant que la moyenne à priori du vecteur moyenne soit nulle, il est bien sûr possible d’enlever cette hypothèse et de convenir que la distribution à priori de est une . Le vecteur est alors de taille , dont les premiers éléments sont des zeros et les derniers, c’est à dire les moyennes, sont par non-nuls. A titre d’exemple, n=3 et et les valeurs , et sont par exemple les valeurs moyennes à priori pour les moyennes par fenêtre , et . Les valeurs , et sont, par exemple, toutes égales à 0,5, bien que tout autre valeur, comprise dans l’intervalle soit possible. L'estimateur du Maximum à Postériori de a alors pour forme :
[Math 15]
La personne du métier saura adapter les calculs à la présence de ce terme supplémentaire. En effet, des simplifications se font dans le développement de l’expression de la détermination de l’indice optimal et mènent à l’expression d’un banc de filtres.
La reformulation de l'estimateur du Maximum A Posteriori comprenant les moyennes de chaque canal comme inconnues a pour avantage de mener à une opération convolution par un banc de filtres sur l’image brute globale. De plus, les opérations de convolutions sont des opérations très utilisées dans les réseaux de neurones convolutifs. Ainsi, les processeurs utilisés pour l’exécution de réseaux de neurones convolutifs se prêtent particulièrement bien l’exécution d’un traitement d’image selon les présents modes de réalisation.
Un autre avantage des modes de réalisation décrits est que l’étape de sélection, par fenêtre, de la matrice de covariance la plus adaptée découle de l’opération de convolution par banc de filtres.
Un autre avantage des modes de réalisation décrits est qu’ils s’adaptent à tout motif de matriçage. En effet, il suffit d’adapter la matrice de matriçage au motif choisi. Cette adaptation est simple et est à la portée de la personne du métier.
Un autre avantage des modes de réalisations décrits est qu’il est possible d’ajuster le coût en temps du traitement de l’image en jouant sur les valeurs des variables , et , .
Divers modes de réalisation et variantes ont été décrits. La personne du métier comprendra que certaines caractéristiques de ces divers modes de réalisation et variantes pourraient être combinées, et d’autres variantes apparaîtront à la personne du métier. En particulier, bien que le cas dans lequel les canaux mesurés et estimés décrit sont principalement les canaux couleurs, le type des canaux mesurés et estimer peut varier. Toutefois, les canaux à estimer présentent une corrélation spatiale avec les canaux mesurés afin que l’estimation ait un sens.
Enfin, la mise en œuvre pratique des modes de réalisation et variantes décrits est à la portée de la personne du métier à partir des indications fonctionnelles données ci-dessus. En particulier, tout motif de matriçage peut être utilisé, la seule condition étant d’adapter la matrice de matriçage au motif et de choisir le pas de découpage de sorte que, pour une estimation, chaque fenêtre ait la même configuration de filtres. La taille des fenêtres ainsi que la taille du modèle GMM peuvent aussi varier.

Claims (15)

  1. Procédé de dématriçage d’une image (100), par un processeur (210) d’un dispositif électronique (200), à partir de mesures (m), effectuées par un imageur (202) et selon un motif de matriçage, d’au moins un canal, parmi un premier ensemble de canaux (r,g,b,z), le procédé comprenant :
    - la détermination, par le processeur (210), pour chaque fenêtre d’une pluralité de fenêtres couvrant l’image, d’une matrice de covariance ( ), parmi un ensemble de matrices de covariance ( ) stockées dans une mémoire (206) du dispositif, en effectuant, pour chaque matrice de covariance, une opération de convolution à décalage ( ) sur l’ensemble de l’image avec un banc de filtres ( ) associé à la matrice de covariance ;
    - pour chaque fenêtre, le calcul, sur la base de la matrice de covariance déterminée, d’un estimateur ( ) comprenant des estimations de valeurs d’au moins un canal, parmi un deuxième ensemble de canaux (r,g,b), pour chaque pixel de la fenêtre, l’estimateur comprenant en outre une estimation d’une valeur moyenne ( , , ) de l’au moins un canal sur l’ensemble de la fenêtre ; et
    - la génération d’une nouvelle image sur la base l’estimateur de chaque fenêtre.
  2. Procédé selon la revendication 1, dans lequel les matrices de covariance ( ) de l’ensemble des matrices de covariance, proviennent d’un modèle de mixture Gaussienne (GMM).
  3. Procédé selon la revendication 1 ou 2, dans lequel les fenêtres sont sélectionnées de sorte que le motif de matriçage soit identique d’une fenêtre à l’autre.
  4. Procédé selon l’une quelconque des revendications 1 à 3, dans lequel le calcul de l’estimateur ( ) est en outre réalisé sur la base d’une matrice de matriçage (M) dépendant du motif de matriçage.
  5. Procédé selon l’une quelconque des revendications 1 à 4, dans lequel chaque fenêtre est distante par rapport à ses fenêtres voisines par un pas de découpage (s) et l’opération de convolution à décalage est une convolution à pas, le pas étant égal au pas de découpage de l’image, le pas étant un multiple de la taille du motif de matriçage.
  6. Procédé selon l’une quelconque des revendications 1 à 5, dans lequel, pour chaque fenêtre, l’estimateur est calculé en faisant le produit matriciel :
    [Math 16]
    est un vecteur comprenant les valeurs mesurées pour la fenêtre, est une matrice orthonormale dont les colonnes des vecteurs propres d’une matrice et est une matrice diagonale comprenant les racines carrées des valeurs propres de la matrice , la matrice est égale à , étant la matrice de matriçage, étant la matrice de covariance associé au bruit de mesure de l’imageur et étant la matrice de covariance de la loi à priori de l’estimateur et comprenant une sous matrice de covariance qui est la matrice de covariance déterminée, et où est une matrice égale à .
  7. Procédé selon la revendication 6, dans lequel, pour chaque matrice de covariance , parmi l’ensemble de matrices de covariance, le banc de filtres associé est une séquence de matrices issues des éléments de la matrice .
  8. Procédé selon la revendication 6 ou 7, comprenant en outre, avant la détermination de la matrice de covariance, et pour chaque matrice de covariance le calcul et le stockage dans la mémoire (206) des matrices , et
  9. Procédé selon l’une quelconque des revendications 1 à 8, comprenant en outre, suite au calcul des estimateurs, la reconstruction d’une image en faisant :
    - pour chaque pixel de chaque fenêtre, le calcul d’une valeur du pixel en ajoutant la moyenne estimée ( , , ) de l’au moins un canal, parmi le deuxième ensemble de canaux, à l’estimation ( , , ) de la valeur de l’au moins un canal.
  10. Procédé selon la revendication 9, comprenant en outre, pour chaque pixel couvert par au moins deux fenêtres distinctes, le calcul de la moyenne des valeurs du pixel.
  11. Procédé selon l’une quelconque des revendications 1 à 10, dans lequel l’au moins un canal, parmi le deuxième ensemble de canaux, est spectralement corrélé à l’au moins un canal mesuré, parmi le premier ensemble de canaux.
  12. Procédé selon l’une quelconque des revendications 1 à 11, dans lequel les premier et deuxième ensembles de canaux comprennent les canaux couleur rouge, vert, bleu.
  13. Procédé selon la revendication 12, dans lequel le premier ensemble de canaux comprend en outre un canal de profondeur.
  14. Dispositif électronique (200) comprenant :
    - une mémoire non volatile (206) configurée pour stocker un ensemble de matrice de covariance et un ensemble de banc de filtres, chaque banc de filtres étant associé à une matrice de covariance ; et
    - un processeur (210) configuré pour :
    déterminer une matrice de covariance pour des fenêtres couvrant une image brute en faisant :
    pour chaque matrice de covariance, une opération de convolution à décalage, à partir d’un ensemble de mesures associées aux fenêtres du banc de filtres associé à la matrice de covariance ; et
    pour chaque fenêtre, le calcul d’un estimateur, sur la base de la matrice de covariance déterminée, l’estimateur comprenant des estimation de valeurs d’au moins un canal, parmi un deuxième ensemble de canaux, pour chaque pixel de la fenêtre, l’estimateur comprenant en outre une estimation d’une valeur moyenne de l’au moins un canal sur l’ensemble de la fenêtre ; et
    générer une nouvelle image sur la base l’estimateur de chaque fenêtre.
  15. Dispositif selon la revendication 14, dans lequel la mémoire (206) comprend en outre des ensembles de paramètres ( , , ), chaque ensemble étant dépendant de l’ensemble de matrices de covariance, et dans lequel le processeur est configuré pour calculer l’estimateur sur la base des ensembles de paramètres dépendant de la matrice de covariance déterminée.
FR2212870A 2022-12-07 2022-12-07 Procédé et dispositif de dématriçage Active FR3143162B1 (fr)

Priority Applications (1)

Application Number Priority Date Filing Date Title
FR2212870A FR3143162B1 (fr) 2022-12-07 2022-12-07 Procédé et dispositif de dématriçage

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
FR2212870 2022-12-07
FR2212870A FR3143162B1 (fr) 2022-12-07 2022-12-07 Procédé et dispositif de dématriçage

Publications (2)

Publication Number Publication Date
FR3143162A1 true FR3143162A1 (fr) 2024-06-14
FR3143162B1 FR3143162B1 (fr) 2025-02-07

Family

ID=85222344

Family Applications (1)

Application Number Title Priority Date Filing Date
FR2212870A Active FR3143162B1 (fr) 2022-12-07 2022-12-07 Procédé et dispositif de dématriçage

Country Status (1)

Country Link
FR (1) FR3143162B1 (fr)

Non-Patent Citations (5)

* Cited by examiner, † Cited by third party
Title
ALLEYSSON DAVID ET AL: "Influence of Spectral Sensitivity Functions on Color Demosaicing", COLOR AND IMAGING CONFERENCE, vol. 11, no. 1, 1 January 2003 (2003-01-01), pages 351 - 357, XP093050457, DOI: 10.2352/CIC.2003.11.1.art00060 *
LEI ZHANG ET AL: "PCA-Based Spatially Adaptive Denoising of CFA Images for Single-Sensor Digital Cameras", IEEE TRANSACTIONS ON IMAGE PROCESSING, IEEE, USA, vol. 17, no. 4, 1 April 2009 (2009-04-01), pages 797 - 812, XP011253057, ISSN: 1057-7149 *
WANG XINYI ET AL: "Digital Image Forensics Based on CFA Interpolation Feature and Gaussian Mixture Model :", INTERNATIONAL JOURNAL OF DIGITAL CRIME AND FORENSICS, vol. 11, no. 2, 1 April 2019 (2019-04-01), pages 1 - 12, XP093050265, ISSN: 1941-6210, DOI: 10.4018/IJDCF.2019040101 *
XIN LI ET AL: "Image demosaicing: a systematic survey", PROCEEDINGS OF SPIE, VISUAL COMMUNICATIONS AND IMAGE PROCESSING 2005, vol. 6822, 27 January 2008 (2008-01-27), Visual Communications and Image Processing 2005, 2005, Beijing, China, pages 68221J, XP055168870, ISSN: 0277-786X, DOI: 10.1117/12.766768 *
ZORAN, DWEISS, Y: "From Learning Models of Natural Image Patches to Whole Image Restoration", INTERNATIONAL CONFÉRENCE ON COMPUTER VISION., 2011

Also Published As

Publication number Publication date
FR3143162B1 (fr) 2025-02-07

Similar Documents

Publication Publication Date Title
US6816197B2 (en) Bilateral filtering in a demosaicing process
KR101134208B1 (ko) 촬상 장치 및 그 방법
US8582820B2 (en) Coded aperture camera with adaptive image processing
EP2652702B1 (fr) Méthode de détection et de quantification du flou dans une image numérique
EP2160904B1 (fr) Capteur d'images numeriques, procede d'acquisition et de reconstruction d'images, et systeme de mise en uvre
US7522782B2 (en) Digital image denoising
EP4046128B1 (fr) Procédé de démosaïquage non-local d'une image et dispositif associé
Liu et al. Efficient polarization demosaicking via low-cost edge-aware and inter-channel correlation
EP3384459B1 (fr) Procede de traitement de signaux issus d'une matrice de prise d'images en couleur, et capteur correspondant
EP3301644B1 (fr) Procédé de construction d'une carte de profondeur d'une scène et/ou d'une image entièrement focalisée
FR3143162A1 (fr) Procédé et dispositif de dématriçage
WO2017093057A1 (fr) Procede de caracterisation d'une scene par calcul d'orientation 3d
FR3026211A1 (fr) Procede d'identification de l'anisotropie de la texture d'une image numerique
EP4354227A1 (fr) Procédé et unité de calcul pour estimer une carte de profondeur à partir d'un hologramme numérique, procédé de codage d'une séquence vidéo, programme d ordinateur
EP3625766A1 (fr) Méthode de détection et de quantification du flou dans une image numérique
Brauers et al. Modeling and compensation of geometric distortions of multispectral cameras with optical bandpass filter wheels
FR3143807A1 (fr) Procédé et dispositif de reconstruction d’une image de profondeur
EP2409276B1 (fr) Procede de traitement d'image pour l'analyse de circuits integres, et systeme de mise en oeuvre du procede
FR3054347B1 (fr) Procede et dispositif d'aide a la navigation d'un vehicule
EP4364083B1 (fr) Procédé de démosaïquage non-local d'une image et dispositif associé
WO2024194544A1 (fr) Procede de traitement d'une image brute, produit programme d'ordinateur et dispositif de traitement associes
Zhang et al. Deep joint demosaicing and super resolution on high resolution bayer sensor data
FR3142026A1 (fr) Détection d’objets dans une image
FR3059453A1 (fr) Procede et dispositif de deconvolution d'images numeriques
EP4604048A1 (fr) Reconstruction et traitement d'images

Legal Events

Date Code Title Description
PLFP Fee payment

Year of fee payment: 2

PLSC Publication of the preliminary search report

Effective date: 20240614

PLFP Fee payment

Year of fee payment: 3