FR3143807A1 - Procédé et dispositif de reconstruction d’une image de profondeur - Google Patents
Procédé et dispositif de reconstruction d’une image de profondeur Download PDFInfo
- Publication number
- FR3143807A1 FR3143807A1 FR2213892A FR2213892A FR3143807A1 FR 3143807 A1 FR3143807 A1 FR 3143807A1 FR 2213892 A FR2213892 A FR 2213892A FR 2213892 A FR2213892 A FR 2213892A FR 3143807 A1 FR3143807 A1 FR 3143807A1
- Authority
- FR
- France
- Prior art keywords
- window
- depth
- binary
- dictionary
- value
- 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.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 63
- 238000005259 measurement Methods 0.000 claims abstract description 61
- PXFBZOLANLWPMH-UHFFFAOYSA-N 16-Epiaffinine Natural products C1C(C2=CC=CC=C2N2)=C2C(=O)CC2C(=CC)CN(C)C1C2CO PXFBZOLANLWPMH-UHFFFAOYSA-N 0.000 claims abstract description 25
- 230000009466 transformation Effects 0.000 claims abstract description 21
- 239000011159 matrix material Substances 0.000 claims description 36
- 230000015654 memory Effects 0.000 claims description 33
- 238000005520 cutting process Methods 0.000 claims description 14
- 238000009826 distribution Methods 0.000 claims description 14
- 230000008569 process Effects 0.000 claims description 14
- 238000004364 calculation method Methods 0.000 claims description 6
- 238000005070 sampling Methods 0.000 claims description 5
- 238000010276 construction Methods 0.000 claims description 2
- 239000013598 vector Substances 0.000 description 23
- 230000008901 benefit Effects 0.000 description 4
- 239000003086 colorant Substances 0.000 description 3
- 238000011144 upstream manufacturing Methods 0.000 description 3
- 238000012935 Averaging Methods 0.000 description 2
- 238000010586 diagram Methods 0.000 description 2
- 230000014509 gene expression Effects 0.000 description 2
- 101000582320 Homo sapiens Neurogenic differentiation factor 6 Proteins 0.000 description 1
- 102100030589 Neurogenic differentiation factor 6 Human genes 0.000 description 1
- 238000012952 Resampling Methods 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 239000004020 conductor Substances 0.000 description 1
- 230000002596 correlated effect Effects 0.000 description 1
- 238000000605 extraction Methods 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 239000000463 material Substances 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000003909 pattern recognition Methods 0.000 description 1
- 230000008707 rearrangement Effects 0.000 description 1
- 230000001052 transient effect Effects 0.000 description 1
- 230000000007 visual effect Effects 0.000 description 1
- CZPRKINNVBONSF-UHFFFAOYSA-M zinc;dioxido(oxo)phosphanium Chemical compound [Zn+2].[O-][P+]([O-])=O CZPRKINNVBONSF-UHFFFAOYSA-M 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T3/00—Geometric image transformations in the plane of the image
- G06T3/40—Scaling of whole images or parts thereof, e.g. expanding or contracting
- G06T3/4015—Image demosaicing, e.g. colour filter arrays [CFA] or Bayer patterns
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T7/00—Image analysis
- G06T7/50—Depth or shape recovery
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T2207/00—Indexing scheme for image analysis or image enhancement
- G06T2207/10—Image acquisition modality
- G06T2207/10024—Color image
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T2207/00—Indexing scheme for image analysis or image enhancement
- G06T2207/10—Image acquisition modality
- G06T2207/10028—Range image; Depth image; 3D point clouds
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Apparatus For Radiation Diagnosis (AREA)
Abstract
Procédé et dispositif de reconstruction d’une image de profondeur La présente description concerne un procédé de reconstruction d’une image de profondeur, par un processeur, à partir de mesures, effectuées par un imageur et selon un motif de matriçage, d’au moins du canal de profondeur (d), le procédé comprenant, pour au moins une fenêtre (400) de l’image :- la sélection, sur la base des mesures associées à la fenêtre, d’une fenêtre binaire (500), parmi un dictionnaire de fenêtres binaires ;- l’estimation de coefficients de transformation affine associés à la profondeur, sur la base des mesures associées à la fenêtre ; et- l’estimation, par le processeur, d’une fenêtre de profondeur (900), en appliquant une opération affine, sur la base des coefficients estimés, à la fenêtre binaire, le procédé comprenant en outre la génération, par le processeur, de l’image de profondeur sur la base de l’au moins une fenêtre de profondeur estimée. Figure pour l'abrégé : Fig. 9
Description
La présente description concerne de façon générale le domaine des imageurs, et plus particulièrement le domaine des imageurs de profondeur et des procédés de dématriçages des images de profondeur.
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 qu’à 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-profondeur (RGBZ) utilisent des filtres colorés sur une partie des pixels, séparant l’information de trichotomie dans la lumière. Ces imageurs comprennent en outre des pixels destinés à mesurer un canal de profondeur. Ainsi, l’image brute acquise est une mosaïque de pixels, dont une partie contient des informations liées à la couleur et une autre partie contient des informations liées à la profondeur.
Afin de reconstruire une image de profondeur complète, les valeurs de profondeur non-mesurées par certains pixels peuvent être ensuite estimées.
Des procédés de reconstruction d’une image de profondeur à partir de mesures éparses existent mais sont généralement sensibles au bruit ayant lieu lors des mesures de profondeur. De plus, ces procédés ne sont adaptés qu’à certaines configurations de filtres. Ces procédés sont généralement lents à exécuter et/ou consommateurs en ressources de traitement.
Un mode de réalisation prévoit un procédé de reconstruction d’une image de profondeur, 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 du canal de profondeur, le procédé comprenant, pour au moins une fenêtre de l’image :
- la sélection, par le processeur et sur la base des mesures associées à la fenêtre, d’une fenêtre binaire, parmi un dictionnaire de fenêtres binaires stocké dans une mémoire non volatile ;
- l’estimation, par le processeur, de coefficients de transformation affine associés à la profondeur, les coefficients de transformation affine comprenant un coefficient directeur associé à la profondeur et un coefficient d’ordonnée à l’origine associé à la profondeur, sur la base des mesures associées à la fenêtre ; et
- l’estimation, par le processeur, d’une fenêtre de profondeur, en appliquant une opération affine, sur la base des coefficients estimés, à la fenêtre binaire,
le procédé comprenant en outre la génération, par le processeur, de l’image de profondeur sur la base de l’au moins une fenêtre de profondeur estimée.
- la sélection, par le processeur et sur la base des mesures associées à la fenêtre, d’une fenêtre binaire, parmi un dictionnaire de fenêtres binaires stocké dans une mémoire non volatile ;
- l’estimation, par le processeur, de coefficients de transformation affine associés à la profondeur, les coefficients de transformation affine comprenant un coefficient directeur associé à la profondeur et un coefficient d’ordonnée à l’origine associé à la profondeur, sur la base des mesures associées à la fenêtre ; et
- l’estimation, par le processeur, d’une fenêtre de profondeur, en appliquant une opération affine, sur la base des coefficients estimés, à la fenêtre binaire,
le procédé comprenant en outre la génération, par le processeur, de l’image de profondeur sur la base de l’au moins une fenêtre de profondeur estimée.
Selon un mode de réalisation, l’image brute est recouverte par une pluralité de fenêtres de sorte que chaque fenêtre est distante par rapport à ses fenêtres voisines par un pas de découpage multiple de la taille du motif de matriçage.
Selon un mode de réalisation, pour chaque fenêtre, la fenêtre binaire est en outre estimée sur la base d’une estimation du coefficient d’ordonné à l’origine associé à la profondeur et sur la base d’une distribution à priori du coefficient directeur associé à la profondeur.
Selon un mode de réalisation, pour chaque fenêtre, l’estimation du coefficient d’ordonnée à l’origine est égale à la moyenne des mesures de profondeur sur ladite fenêtre.
Selon un mode de réalisation, le motif de matriçage est tel que les mesures associées à chaque fenêtre comprennent en outre des mesures d’autres canaux, les autres canaux étant les canaux couleurs rouge, vert et bleu et/ou d’un canal infrarouge et/ou d’un canal corrélé à la profondeur.
Selon un mode de réalisation, pour chaque fenêtre, la fenêtre binaire est en outre déterminée sur la base d’une estimation de coefficients d’ordonnée à l’origine associés aux autres canaux et sur la base d’une distribution à priori de coefficients directeurs associés aux autres canaux.
Selon un mode de réalisation, pour chaque fenêtre et pour chaque autre canal, une fenêtre associée à l’autre canal est estimée par transformation affine de la fenêtre binaire estimée, sur la base des coefficients de transformation affine associés à l’autre canal.
Selon un mode de réalisation, l’estimation du coefficient directeur associé à la profondeur est en outre effectué sur la base de la fenêtre binaire déterminée.
Selon un mode de réalisation, chaque fenêtre binaire du dictionnaire de fenêtres binaires comprend un ensemble de pixels affectés à une valeur minimale et un autre ensemble de pixels affectés à une valeur maximale.
Selon un mode de réalisation, chaque fenêtre binaire du dictionnaire est associée à une valeur d’occurrence dans le dictionnaire de fenêtres binaires.
Selon un mode de réalisation, une loi à priori sur les mesures effectuées par l’imageur est une loi normale dont la matrice de covariance est une matrice diagonale par bloc, chaque bloc ayant une valeur propre au bruit de mesure du canal associé.
Un mode de réalisation prévoit un procédé de construction d’un dictionnaire de fenêtres binaire, stocké dans une mémoire non volatile, sur la base d’une pluralité d’images de profondeur, le procédé comprenant :
- la sélection d’une première fenêtre en échantillonnant une image de profondeur parmi la pluralité d’images de profondeur ;
- la binarisation de la fenêtre sélectionnée en affectant une valeur minimale aux pixels de la fenêtre ayant une valeur de profondeur inférieure à une valeur seuil et en affectant une valeur maximale aux pixels de la fenêtre ayant une valeur de profondeur supérieure à la valeur seuil ;
- si la fenêtre binaire est déjà existante dans le dictionnaire, l’incrémentation d’une valeur d’occurrence associée à la fenêtre binaire, dans le dictionnaire ; et
- si la fenêtre binaire n’existe pas dans le dictionnaire, le stockage de la fenêtre binaire, dans la mémoire non volatile, en association avec une valeur d’occurrence initiale.
- la sélection d’une première fenêtre en échantillonnant une image de profondeur parmi la pluralité d’images de profondeur ;
- la binarisation de la fenêtre sélectionnée en affectant une valeur minimale aux pixels de la fenêtre ayant une valeur de profondeur inférieure à une valeur seuil et en affectant une valeur maximale aux pixels de la fenêtre ayant une valeur de profondeur supérieure à la valeur seuil ;
- si la fenêtre binaire est déjà existante dans le dictionnaire, l’incrémentation d’une valeur d’occurrence associée à la fenêtre binaire, dans le dictionnaire ; et
- si la fenêtre binaire n’existe pas dans le dictionnaire, le stockage de la fenêtre binaire, dans la mémoire non volatile, en association avec une valeur d’occurrence initiale.
Selon un mode de réalisation, l’échantillonnage de l’image de profondeur comprend :
- un tirage aléatoire d’une fenêtre d’une image de profondeur ;
- le calcul de l’écart type des valeurs de profondeur sur la fenêtre tirée ; et
- si l’écart type des valeurs de profondeur est nul, le tirage d’une nouvelle fenêtre.
- un tirage aléatoire d’une fenêtre d’une image de profondeur ;
- le calcul de l’écart type des valeurs de profondeur sur la fenêtre tirée ; et
- si l’écart type des valeurs de profondeur est nul, le tirage d’une nouvelle fenêtre.
Selon un mode de réalisation, la valeur seuil est la valeur moyenne des valeurs de profondeur sur la fenêtre sélectionnée.
Un mode de réalisation prévoit un dispositif électronique comprenant une mémoire et au moins un processeur, la mémoire stockant des instructions configurées pour mettre en œuvre le procédé ci-dessus lorsqu’elles sont exécutées par l’au moins un processeur.
Un mode de réalisation prévoit un dispositif mémoire non-transitoire configurée pour stocker des instructions permettant la mise en œuvre du procédé ci-dessus lorsqu’elles sont exécutées par au moins un processeur.
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 est un schéma par blocs représentant un dispositif électronique selon un mode de réalisation de la présente description ;
la illustre un exemple d’une scène image capturée par un imageur couleur-profondeur ainsi qu’une image brute résultante ;
la représente de manière schématique une image brute ainsi que plusieurs fenêtres la recouvrant ;
la illustre la corrélation entre les canaux couleurs et le canal de profondeur sur une portion d’image brute ;
la illustre la binarisation d’une fenêtre de profondeur ;
la est un organigramme représentant des étapes de construction d’un dictionnaire de fenêtres binaires ;
la illustre la sélection de fenêtres dans une image de profondeur ;
la représente un exemple de dictionnaire de fenêtres binaires ;
la est une courbe représentant les occurrences de fenêtres binaires dans un dictionnaire de fenêtres binaires
la représente un exemple d’une opération de matriçage d’une fenêtre de l’image brute ;
la représente un exemple de matrice de dématriçage de la fenêtre illustrée en ;
la illustre un exemple de différentes étapes d’un procédé de reconstruction d’une image de profondeur selon un mode de réalisation de la présente description ; et
la est un organigramme représentant différentes étapes d’un procédé de reconstruction d’une image de profondeur, selon un mode de réalisation de la présente description.
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 des canaux couleurs, 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 est un schéma par bloc représentant un dispositif électronique 100 selon un mode de réalisation de la présente description.
A titre d’exemple, le dispositif électronique 100 comprend un imageur 102 (IMAGE SENSOR), et dans ce cas, le dispositif électronique 100 est un appareil photo numérique, un smartphone comprenant une fonctionnalité photographique, etc. Dans un autre exemple, l’imageur 102 ne fait pas partie du dispositif électronique 100, et dans ce cas le dispositif 100 est par exemple un dispositif de traitement d’images, tel qu’un ordinateur.
L’imageur 102 est par exemple un imageur couleur-profondeur (RGBZ) comprenant des pixels couleur configurés pour mesurer une information liée à la couleur d’une scène image, par exemple en mesurant les longueurs d’ondes associées aux couleurs rouge, verte ou bleu. Un pixel couleur permet alors la mesure d’un unique canal parmi l’un des trois canaux couleur rouge (r), vert (g) et bleu (b). L’imageur couleur-profondeur comprend en outre des pixels de profondeur (d) configurés pour mesurer la distance à laquelle se trouve un objet, ou une cible, dans la scène image.
Dans un autre exemple, l’imageur 102 est un imageur profondeur, comprenant uniquement des pixels de profondeur. Encore dans un autre exemple, l’imageur 102 comprend en plus des pixels de profondeur, des pixels infrarouges (ir) configurés pour mesurer des longueurs d’ondes appartenant au domaine des infrarouges.
L’imageurs 102 est par exemple relié à un circuit intégré 104, par l’intermédiaire d’un bus 105.
Le circuit 104 comprend par exemple une mémoire non volatile 106 (NV MEM) et une mémoire volatile 108 (RAM), par exemple une mémoire à accès aléatoire (en anglais « Random Memory Acces »). Le circuit 104 comprend en outre un processeur 110 (CPU), par exemple relié aux mémoires 106 et 108 par l’intermédiaire d’un bus 112.
A titre d’exemple, l’imageur 102 est configuré pour stocker les mesures effectuées dans la mémoire volatile 108 ou dans la mémoire non volatile 106. Le processeur 110 est par exemple configuré pour exécuter des instructions, par exemple, stockées dans la mémoire non-volatile 106 et/ou dans la mémoire volatile 108 afin de reconstruire une image de profondeur à partir des mesures stockées. Une fois reconstruite, l’image de profondeur est par exemple stockée dans la mémoire non volatile 106 et/ou dans la mémoire volatile 108.
La illustre un exemple d’une scène image 200 capturée, par exemple, par l’imageur 102. La scène image 200 est sous représentée par deux images 201 et 201’. L’image 201 illustre les couleurs (en niveau de gris dans la ) de la scène image 200 et l’image 201’ illustre la profondeur de la scène image 200. Les images 201 et 201’ proviennent d’une base de données publique et font l’objet de la publication « High-Resolution Stereo Datasets with Subpixel-Accurate Ground Truth. » publiée en 2014 dans la revue German Conference on Pattern Recognition, 31–42, Springer par Scharstein, Daniel, Heiko Hirschmüller, York Kitajima, Greg Krathwohl, Nera Nešić, Xi Wang, et Porter Westling.
Dans cet exemple, l’imageur 102 est un imageur couleurs-profondeur, comprenant certains pixels mesurant une composante couleur et d’autres pixels mesurant la profondeur. L’agencement des différents types de pixels est déterminé par un motif de matriçage 202 répliqué à la surface de l’imageur 102. Une image brute 204, ou mosaïque, est obtenue, directement en sortie de l’imageur 102 et est par exemple stockée dans la mémoire non volatile 106 ou dans la mémoire 108. Chaque pixel de l’image brute 204 comprend une mesure d’un unique canal parmi par exemple les canaux rouge, vert, bleu et profondeur.
Dans la suite, nous noterons la position des pixels des images brutes et reconstruites, ainsi que la position des pixels de l’imageur 102 et des motifs de matriçage par une valeur où et sont respectivement le rang de la ligne et de la colonne du pixel, la position étant la position du pixel en haut à gauche de l’objet considéré.
Ainsi, dans l’exemple de la figure 2, les pixels de l’imageur en position , où et sont impairs, sont configurés pour mesurer la composante verte (g) de la scène image. Les pixels en position où est impair et pair, sont configurés pour mesurer la composante rouge (r) de la scène image 200. Les pixels en position , où est pair et impair, sont configurés pour mesurer la composante bleue (b) de la scène image 200. Les pixels en position , où et sont pairs, sont configurés pour mesurer la profondeur (d). Cette configuration d’échantillonnage de la scène image 200 est, par exemple, entièrement déterminée par le motif de matriçage 202. Dans l’exemple de la figure 2, le motif de matriçage 202 est de taille . Les filtres sur les pixels en position (1,1), (1,3), (3,1) et (3,3) du motif 202 permettent de séparer la composante verte de la couleur. Les filtres sur les pixels en position (1,2), (1,4), (3,2) et (3,4) permettent de séparer la composante rouge de la couleur. Les filtres sur les pixels en position (2,1), (2,3), (4,1) et (4,3) permettent de séparer la composante bleue de la couleur. Les pixels en position (2,2), (2,4), (4,2) et (4,4) du motif 202sont des pixels de profondeur.
La figure 3 représente de manière schématique l’image brute 204 ainsi que plusieurs fenêtres la recouvrant. A titre d’exemple la reconstruction de l’image brute 204 en une image de profondeur est réalisée suite à un traitement fenêtre par fenêtre de l’image brute 204. Chaque fenêtre est une extraction d’une partie de l’image brute 204 et contient les mesures prises par l’imageur 102 pour cette zone. Chaque fenêtre est par exemple de taille , étant un entier supérieur ou égal à 2. Dans d’autres exemples, les fenêtres sont de formes différentes, par exemple rectangulaire ou par exemple en forme de L, sous réserve que l’ensemble des fenêtres couvre bien l’image brute 204 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 204 soit couvert par au moins une fenêtre.
Dans l’exemple illustré par la figure 3, de l’image brute 204 sont extraites des fenêtres de taille , selon un pas de découpage égal à 4. Le pas de découpage représente la distance, en nombre de pixels, entre deux fenêtres successives, ou voisines. Une fenêtre 300 comprend, par exemple, les mesures des pixels de l’image brute 204 ayant pour position , . A titre d’exemple le pas de découpage est identique sur l’ensemble de l’image brute 204.Une autre fenêtre 302, successive à la fenêtre 300, comprend, par exemple, les mesures des pixels de l’image brute 204 ayant pour position , . Le pas de découpage est par exemple identique verticalement et horizontalement. Ainsi, une fenêtre 304 comprend, par exemple, les mesures des pixels de l’image brute 204 ayant pour position , et . Chaque fenêtre est par exemple traitée, par exemple par le processeur 110, afin d’obtenir une fenêtre de profondeur comprenant des estimations des valeurs de profondeur pour chaque pixel. Une image de profondeur est ensuite reconstruite progressivement à partir des fenêtres de profondeur.
A titre d’exemple, lorsque le pas de découpage est inférieur à , deux fenêtres successives comprennent des pixels en communs. A titre d’exemple, les pixels en position , et , sont communs aux fenêtres 300 et 302. A titre d’exemple, une valeur de profondeur finale pour les pixels communs à plusieurs fenêtres est obtenue en faisant la moyenne des estimations pour ledit pixel sur chaque fenêtre.
Dans d’autres exemples, le pas de découpage varie dans le traitement de l’image brute 204, sous réserve que l’ensemble des fenêtres couvre bien l’image brute 204 entière. En d’autres termes, quelles que soient les valeurs du pas de découpage, tout pixel de l’image brute 204 est couvert par au moins une fenêtre.
La figure 4 illustre la corrélation entre les canaux couleurs et le canal de profondeur sur une fenêtre 400 de l’image brute 204. En particulier, la fenêtre 400 comprend les mesures de l’image brute 204 issue de l’imageur 102. A titre d’exemple, l’imageur 102 est un imageur RGBZ et le motif de matriçage utilisé est par exemple le motif 202. Ainsi, les pixels de la fenêtre 400 en positions , où et sont pairs, comprennent des mesures liées à la profondeur. Les autres pixels comprennent des mesures de couleur.
Des fenêtres 402 (R), 404 (G), 406 (B) et 408 (D) correspondent respectivement aux vérités terrain des composante rouge, vert, bleu et de la profondeur.
La fenêtre 404 présente un contour, c’est à dire une variation visuelle des valeurs du canal, légèrement prononcé séparant côtés gauche et droit de la fenêtre 404. La fenêtre 406 présente un contour très prononcé séparant côtés gauche et droit de la fenêtre 406.
De même, la fenêtre 408 montre un contour dans la profondeur. Une différence de profondeur existe entre les côtés gauche et droit de la fenêtre, et ce contour se calque sur les contours apparaissant pour les composantes verte et bleue.
Selon un mode de réalisation, l’information liée aux couleurs dans la mosaïque 400 est utilisée afin de reconstruire une fenêtre de profondeur.
Selon un mode de réalisation, lorsque la taille des fenêtres est relativement petite, une fenêtre de profondeur, telle que la fenêtre 408, s’approxime par une fenêtre comprenant uniquement deux valeurs de profondeur. Autrement dit le contour dans une fenêtre de profondeur de petite taille, par exemple de longueur inférieure à 15 pixels, est suffisamment marqué pour découper l’image en deux parties, une partie comprenant des pixels ayant les mêmes valeurs de profondeur et une autre partie comprenant des pixels ayant aussi des autres mêmes valeurs de profondeur. Dans un autre exemple, le contour dans la fenêtre 408 ne démarque pas deux zones dans lesquelles les pixels ont exactement la même valeur de profondeur mais des valeurs de profondeur relativement proches les unes des autres, la variabilité étant par exemple due à un bruit de mesure de l’image, la différence entre les valeurs de profondeurs des deux zones étant plus importante que la variabilité des valeurs de profondeur dans une même zone.
La illustre la binarisation de la fenêtre de profondeur 408. A titre d’exemple, les valeurs de profondeurs des pixels de la fenêtre 408 sont comprises dans l’intervalle [0,1] plus ou moins une marge d’erreur due au bruit de mesure. A titre d’exemple, les pixels dans la partie gauche de la fenêtre 408 ont une valeur de profondeur inférieure à la valeur des pixels dans la partie droite de la fenêtre 408. La fenêtre 408 s’approxime alors par une transformation affine d’une fenêtre binaire 500, la fenêtre binaire 500 comprenant le même contour que la fenêtre 408. Les pixels du côté gauche de la fenêtre binaire 500 (illustrés en blanc) ont par exemple pour valeur de profondeur la valeur 1 et les pixels à droite de la fenêtre binaire 500 (illustrés en noir) ont par exemple pour valeur de profondeur la valeur -1. A titre d’exemple, la valeur de profondeur des pixels du côté gauche de la fenêtre 408 est par exemple égale à -0.01. A titre d’exemple, lorsque que des valeurs de profondeur sont strictement inférieures à 0 ou strictement supérieures à 1, celles-ci sont ramené dans l’intervalle [0,1]. A titre d’exemple, toutes les valeurs de profondeur sont remises à l’échelle afin de toutes appartenir à l’intervalle [0,1]. Dans un autre exemple, les valeurs inférieures à 0 sont ramenées à la valeur 0 et les valeurs supérieures à 1 sont ramenées à la valeur 1. et la valeur de profondeur des pixels du côté droit de la fenêtre 408 est égale à 0.59. Chaque valeur de profondeur d’un pixel de la fenêtre 408 est alors égale à -0.3 fois la valeur de profondeur du pixel en même position dans la fenêtre binaire 500 ajouté de 0.29. La valeur 0.29 correspond par exemple à la moyenne des valeurs de profondeur sur l’ensemble de la fenêtre 408.
Selon un mode de réalisation, chacune des deux zones de la fenêtre 408 ne comprennent pas des pixels ayant exactement la même valeur de profondeur. Une variabilité, relativement faible, liée au bruit de mesure, des valeurs de profondeurs sur chaque zone existe alors. Dans ce cas, la transformation affine de la fenêtre binaire 500 est une approximation, ou une estimation, de la fenêtre 408. Cependant, lorsque la taille de la fenêtre 408 est petite, par exemple pixels dans les exemples illustrés par les figures 4 et 5, la variabilité au sein d’une même zone est suffisamment faible pour que l’erreur dans l’approximation affine soit négligeable. Toutefois, en choisissant un pas de découpage de l’image brute de sorte à estimer plusieurs fois les valeurs de profondeur d’un même pixel et à prendre la valeur moyenne sur l’ensemble des fenêtres le recouvrant, l’image reconstruite sera lissée et l’erreur, déjà négligeable, sera réduite.
Les coefficients -0.3 et 0.29 sont donnés à titre d’exemple, et en rapport avec la fenêtre 408. Dans la suite, le coefficient directeur sera désigné par et l’ordonnée à l’origine par . Une autre transformation affine de la même fenêtre binaire 500 approxime par exemple la fenêtre 406, la transformation affine étant par exemple effectuée avec des coefficients et . Une autre transformation affine, par exemple sur la base de coefficients et , de la fenêtre binaire 500 approxime par exemple la fenêtre 404. La fenêtre 402 étant uniforme, elle s’approxime par exemple aussi comme étant une transformation affine de la fenêtre binaire 500, sur la base de coefficients et , étant la moyenne des valeurs des pixels de la fenêtre 402, c’est à dire, la valeur moyenne rouge sur la fenêtre 402.
Dans certains modes de réalisation, la binarisation de la fenêtre 408 utilise comme seuil, c’est à dire comme valeur sous laquelle les pixels sont affectés à la valeur -1 et au-dessus de laquelle les pixels sont affecté à la valeur 1, la valeur moyenne des valeurs de profondeur sur la fenêtre 408. La valeur seuil permet de dessiner le contour dans la fenêtre binaire 500.
Bien que, dans l’exemple illustré par la , les valeurs de profondeur des pixels de la fenêtre 408 ait été fixés comme appartenant à l’intervalle [0,1], il est tout à fait possible de considérer une autre échelle de mesure. De même, les valeurs -1 et 1 affectées aux pixels de la fenêtre binaire 500 sont présentées à titre d’exemple et ne sont pas limitatives. A titre d’exemple les valeur 0 et 255 sont affectées aux pixels de la fenêtre binaire.
Selon un mode de réalisation, un dictionnaire comprenant un ensemble de fenêtres binaires est par exemple stocké dans la mémoire non volatile 106. Dans un autre exemple, le dictionnaire est stocké dans une mémoire externe au dispositif 100, tel que par exemple dans un serveur.
Selon un mode de réalisation, pour chaque fenêtre de l’image brute, une fenêtre binaire est par exemple sélectionnée dans le dictionnaire afin d’estimer, suite à une transformation affine, une fenêtre de profondeur.
La est un organigramme représentant des étapes de construction d’un dictionnaire de fenêtres binaires. A titre d’exemple, le dictionnaire 600 est construit en amont de la fabrication du dispositif 100. La construction du dictionnaire binaire est par exemple réalisée par un dispositif similaire au dispositif 100 et par exemple pourvu d’un imageur de profondeur.
Dans une étape 600 (DEPTH IMAGES), une pluralité d’images de profondeur, par exemple capturées au préalable par un imageur profondeur, sont par exemple stockées dans une mémoire. A titre d’exemple, une longueur , décrivant la longueur des fenêtres binaires est également stockée dans la mémoire. La longueur est la même que la longueur des fenêtres utilisées pour le traitement de l’image brute 204 par le processeur 110.
Dans une étape 601 (i=1), une variable i est initialisée, par exemple à 1.
Dans une étape 602 (RANDOM PATCH), postérieure à l’étape 600, une fenêtre de taille pixels est tirée, par exemple de façon aléatoire dans une des images de profondeur. Dans un autre exemple, les images de profondeur sont parcourues fenêtre par fenêtre, de manière déterministe. Une première réalisation de l’étape 602 consiste alors à prendre la première fenêtre d’une première image de profondeur, chaque nouvelle réalisation de l’étape 602 prenant la fenêtre successive à la dernière fenêtre considérée.
Des réalisations de l’étape 602 sont par exemple illustrées dans la . D’une image de profondeur 611, sont par exemple tirées aléatoirement, lors de quatre réalisations différentes de l’étape 602, des fenêtres 612, 614, 616 et 618.
Dans une étape 603 (sd=0 ?), l’écart type des valeurs de profondeur sur la fenêtre sélectionnée est ensuite calculé. Si l’écart type est nul (branche Y), cela signifie qu’il n’y a pas de différence de profondeur dans la fenêtre. Le procédé reprend alors dans une réalisation de l’étape 602, dans laquelle une nouvelle fenêtre de profondeur est considérée. A titre d’exemple, l’écart type sur les valeurs de profondeur de la fenêtre 618 est nul.
Dans le cas où l’écart type des valeurs de profondeur n’est pas nul (branche N), cela signifie que la fenêtre comprend bien un contour et le procédé continue dans une étape 604 (BINARIZATION). A titre d’exemple, les fenêtres 612, 614 et 616 comprennent un contour. Dans l’étape 604, la fenêtre de profondeur est binarisée. A titre d’exemple, les pixels ayant une valeur inférieure à une valeur seuil sont affectés à une valeur minimale, par exemple à la valeur -1, et les pixels ayant une valeur de profondeur supérieure à la valeur seuil sont affectés à une valeur maximale, par exemple la valeur 1. A titre d’exemple, la valeur seuil est la valeur moyenne des valeurs de profondeur sur l’ensemble de la fenêtre.
Dans une étape 605 (ALREADY EXITS ?), la fenêtre binaire générée dans l'étape 604 est comparée à un ensemble de fenêtres binaires, de même taille, compris dans une mémoire non volatile. Si la fenêtre binaire correspond à une autre fenêtre de l’ensemble (branche Y), une valeur d’occurrence, associée à la fenêtre de l’ensemble, est incrémentée dans une étape 606 (INCREMENT). Si la fenêtre binaire générée dans l’étape 604 ne correspond à aucune des fenêtres binaires de l’ensemble (branche N), le procédé continue dans une étape 607 (CREATE) dans laquelle la fenêtre est stockée dans la mémoire, en association avec une valeur d’occurrence initiale, par exemple la valeur 1. L’ensemble de fenêtres binaires constitue alors le dictionnaire de fenêtres binaires mentionné ci-dessus, et chaque fenêtre binaire ajoutée dans l’étape 607 constitue alors une nouvelle entrée du dictionnaire.
Suite à la réalisation de l’étape 606 ou 607, le procédé continue dans une étape 608 (END ?) dans laquelle il est déterminé si le dictionnaire est complet ou non. A titre d’exemple, le dictionnaire est complet si la somme de toutes les valeurs d’occurrence est égale à une valeur déterminant la taille du dictionnaire. Cette taille est par exemple fixée en amont. A titre d’exemple, la taille voulue du dictionnaire est atteinte lorsque la valeur de la variable i décrite en relation avec l’étape 601 est égale à une valeur maximum fixée en amont. Dans un autre exemple, le dictionnaire est complet lorsque qu’il contient un nombre donné de fenêtres binaires.
Si le dictionnaire est complet (branche Y), le procédé se termine dans une étape 609 (END). Le dictionnaire de fenêtres binaires est alors construit et est par exemple prêt à être stocké dans la mémoire non volatile 106 du dispositif 100.
Si, lors de l’étape 608, il est déterminé que le dictionnaire n’est pas complet (branche N), le procédé continue par exemple, dans une étape 610 (i+1) dans laquelle la variable i est incrémentée et le procédé reprend dans une nouvelle réalisation de l’étape 602.
La valeur d’occurrence associée à chaque fenêtre binaire représente alors le nombre de fois que la fenêtre binaire a été générée lors des réalisations de l’étape 604.
A titre d’exemple, suite à la réalisation du dictionnaire, les valeurs d’occurrences associées à chaque fenêtre binaire sont divisées par la somme de toutes les valeurs d’occurrences. Ainsi, on obtient une probabilité associée à chaque fenêtre binaire.
La représente un dictionnaire 700 de fenêtres binaires, par exemple stocké dans la mémoire 106, et construit selon le mode de réalisation décrit en relation avec la . Dans l’exemple de la , le dictionnaire 700 comprend un ensemble de 100 fenêtres binaires. Chaque fenêtre binaire est par exemple associée à une valeur d’occurrence. A titre d’exemple, une fenêtre binaire 702 représentant un contour horizontal est associée à une valeur d’occurrence égale à 1204, signifiant que cette fenêtre a par exemple été obtenue 1244 fois lors de la mise en œuvre du procédé décrit en relation avec la . Une autre fenêtre 704 représentant un contour vertical est associée à une valeur d’occurrence égale à 1001, signifiant que cette fenêtre a par exemple été obtenue 1001 fois lors de la mise en œuvre du procédé décrit en relation avec la . Une autre fenêtre binaire 706, représentant un contour relativement diagonal, est associée à la valeur d’occurrence 85, signifiant que cette fenêtre a par exemple été obtenue 85 fois lors de la mise en œuvre du procédé décrit en relation avec la . Plus la valeur d’occurrence est élevée, plus la fenêtre binaire associée représente un contour apparaissant relativement souvent dans une image de profondeur. A titre d’exemple, les contours horizontaux et verticaux sont les contours apparaissant le plus souvent dans des images de profondeur. Les contours différents, par exemple présentant des parties diagonales, ou en forme de V, sont moins fréquents dans les images de profondeur.
La est une courbe 708 représentant les occurrences de fenêtres binaires dans un dictionnaire comprenant 12000 fenêtres binaires.
A titre d’exemple, les fenêtres binaires sont classées (POSITION) de la valeur d’occurrence (OCCURRENCE) la plus grande à la plus petite. Ainsi, la fenêtre binaire ayant la plus grande occurrence dans le dictionnaire est une fenêtre présentant un contour franc horizontal. Les fenêtres suivantes sont par exemple des rotations de fenêtres ayant un contour vertical ou horizontal. Des fenêtres présentant des formes plus spécifiques et moins fréquentes arrivent en queue du dictionnaire.
Les figures 7A et 7B illustrent des exemples de dictionnaires de fenêtres binaires de taille . Si les fenêtres couvrant l’image brute 204 sont choisies de formes différentes, par exemple de forme rectangulaire, ou par exemple sous forme de L, le dictionnaire de fenêtres binaires comprendra des fenêtres de la forme choisie pour le traitement de l’image brute 204. Le procédé décrit en relation avec la figure 6 est facilement adaptable à des fenêtres autre que carrée. En effet, uniquement l’étape 602 est à adapter et il suffit de sélectionner des fenêtres de forme et de taille voulues dans les images de profondeur.
La figure 8A représente un exemple d’une opération de matriçage d’une fenêtre de taille d’une image brute.
A titre d’exemple, un motif de matriçage 800, de taille , est utilisé pour capturer une image brute. Le motif de matriçage 800 est par exemple un motif d’un imageur couleur-profondeur. Le motif de matriçage 800 est tel que les composantes vertes des pixels en position (1,1), (1,3) (3,1) et (3,3) sont mesurées. Les composantes rouges des pixels en position (1,2) et (3,2) et les composantes bleues des pixels en position (2,1) et (2,3) sont également mesurées. Le motif de matriçage 800 permet en outre la mesure de la profondeur du pixel en position (2,2).
A titre d’exemple, les mesures effectuées sont regroupées dans une matrice 802 .
Comme décrit en relation avec la figure 2, seulement des mesures éparses des canaux couleurs et du canal profondeur sont réalisé. Ainsi la réalité terrain des 4 canaux pour l’ensemble des pixels de la fenêtre est représentée par une matrice 804. La matrice 804 comprend 4 sous-matrices , , et regroupant respectivement les valeurs terrain des composantes rouges, vertes, bleues et de profondeur pour la fenêtre. Les valeurs terrains supposent que les valeurs mesurées sont sans bruit de mesures.
A titre d’exemple, le dématriçage de la matrice 802 a pour but d’estimer la sous-matrice de profondeur . En particulier, les valeurs estimées sont par exemple débruitées.
La représente un exemple de matrice de dématriçage de la fenêtre illustrée en .
Les mesures de la matrice 802 sont arrangées en un vecteur , comprenant donc les mesures effectuées par l’imageur 102 selon le motif de matriçage 800 sur une fenêtre. Le vecteur est donc de taille . Le vecteur m concatène les mesures pour chaque canal, ainsi où , , et sont des vecteurs comprenant respectivement les mesures des canaux rouge, vert, bleu et de profondeur. Dans l’exemple du motif de matriçage 800 et d’une fenêtre de taille , le vecteur comprend une unique valeur.
A titre d’exemple, les valeurs terrains de la matrice 804 sont arrangées en un vecteur de taille . Le vecteur concatène, par exemple, les valeurs des 4 sous matrices de la matrice 804, réarrangées en vecteur. Autrement dit, , où est le réarangement en vecteur de taille de la sous matrice , etc. Une matrice de matriçage est telle que la relation soit vérifiée. La matrice est une matrice diagonale par bloc et comprenant 4 blocs , , et . Les blocs , , et permettent respectivement de sélectionner, parmi les valeurs « terrain », les valeurs qui ont été mesurées pour les canaux rouge, vert et bleu et pour le canal de profondeur. Les blocs , , et sont respectivement des matrices de taille , , et . Plus généralement, chaque bloc a une taille égale au nombre de pixels mesurant le canal concerné dans la fenêtre fois . Les blocs , , et sont alors tels que , , et
La matrice , et en particulier les sous-matrices , , et , sont facilement adaptables au motif de matriçage utilisé par l’imageur 102. En particulier, la matrice est adaptable à des motifs de matriçage comprenant d’autres filtres que des filtres couleur et/ou profondeur, tel que par exemple des filtres infrarouges. Dans l’exemple, où l’imageur 102 est un imageur configuré pour prendre en outre des mesures dans le domaine des infrarouges, la matrice comprend par exemple une sous matrice en plus, où à la place, d’une des matrices , , et/ou .
A titre d’exemple, lorsque le pas de découpage de l’image brute est une valeur fixe, ne variant pas dans le traitement de l’image brute, la matrice et en particulier les sous-matrices , , et sont identiques pour chaque fenêtre de l’image brute. Dans un autre exemple, le pas de découpage varie dans le traitement de l’image brute, et la matrice , en particulier les sous-matrices , , et , varient d’une fenêtre à l’autre.
De manière générale, l’imageur 102 introduit un bruit dans les mesures. Ainsi, en considérant l’ensemble des canaux mesurés, par exemple , , , désignant respectivement les canaux rouge, vert et bleu et désignant la profondeur, chaque mesure , est telle que , où est la partie du vecteur comprenant les valeurs associées au canal . A titre d’exemple, est de taille , étant le nombre de mesures du canal sur une fenêtre. La variable représente le bruit lié à la mesure. En particulier, chaque matrice est de taille . A titre d’exemple, est modélisée par une variable aléatoire de loi normale centrée et dont la matrice de covariance , égale à , étant la variance du bruit induit par l’imageur pour le canal . La distinction de modélisation du bruit par canal permet de prendre en compte l’importance généralement plus élevé du bruit dans les mesures du canal de profondeur par rapport, par exemple, aux canaux couleur.
La illustre différentes étapes d’un procédé de reconstruction d’une image de profondeur.
La est un organigramme représentant différentes étapes du procédé de reconstruction d’une image de profondeur. Selon un mode de réalisation, le procédé est mis en œuvre par le dispositif 100.
En particulier, les figures 9 et 10 illustrent la reconstruction d’une image de profondeur à partir d’une image brute capturée par l’imageur 102. A titre d’exemple l’image brute est stockée dans la mémoire 106 ou dans la mémoire 108.
Bien que dans l’exemple illustré par la , l’image brute est capturée à partir du motif de matriçage 202, le procédé de reconstruction d’image décrit en relation avec les figures 9 et 10 s’adapte à tout autre motif de matriçage comprenant un ou plusieurs canaux parmi, par exemple, la couleur, la profondeur et/ou les infrarouges.
Dans la suite, chaque fenêtre dans l’image brute est désignée par sa position , où et , étant le nombre de rangées, ou lignes de fenêtres et étant le nombre de colonnes de fenêtres sur l’image brute. Par convention, la fenêtre en position est la fenêtre en haut à gauche de l’image brute. Tout autre système de classification, ou de numérotation des fenêtres, peut bien sûr être utilisé.
Dans une étape 1000 ( , une position initiale de fenêtre est par exemple déterminée. A titre d’exemple, la position initiale est la position . Dans un autre exemple, la position initiale est la position .
Dans une étape 1001 (PATCH POSITION (p,q)), la fenêtre de l’image brute en position est par exemple découpée par le processeur 110. A titre d’exemple, la fenêtre en position est la fenêtre 400 décrite en relation avec la comprenant des mesures des canaux couleurs et profondeur selon le motif de matriçage 202. Les fenêtres 402, 404, 406 et 408 représentent les réalités terrains, non connues, des canaux couleurs et profondeur.
Dans une étape 1002 (DETERMINATION OF BINARY PATCH), une fenêtre binaire dans le dictionnaire de fenêtres binaires est sélectionnée. La sélection a pour but de déterminer la fenêtre binaire du dictionnaire la plus ressemblante à la réalité terrain 408. La sélection est par exemple effectuée par le processeur 110 et à partir de la fenêtre 400. A titre d’exemple, la fenêtre binaire sélectionnée par le processeur 110 à partir de la fenêtre 400 est la fenêtre binaire 500.
Selon un mode de réalisation, l’étape 1002 consiste à déterminer un estimateur dans le dictionnaire de fenêtres binaires approximant à une transformation affine près. En d’autres termes, l’étape 1002 consiste à déterminer la fenêtre binaire vérifiant le plus fidèlement , où et sont les coefficients de la transformation affines associés à la profondeur.
Selon un mode de réalisation, pour chaque canal , l’estimateur est aussi tel que . L’estimateur est donc le même pour chaque canal, seuls les coefficients affines et varient d’un canal à l’autre. L’estimateur permet aussi de reconstruire les autres canaux.
A titre d’exemple, pour une fenêtre ne présentant pas de variation de profondeur, l’estimateur représente par exemple des contours dans un des canaux couleur. Le coefficient est alors égal à zéro et le coefficient est égal à la moyenne des valeurs de profondeur sur la fenêtre.
A titre d’exemple, le processeur 110 est en outre configuré pour estimer, dans une étape 1003 (ESTIMATION OF COEFFICIENTS), des estimateurs et des coefficients de transformation affine associés à la profondeur.
A titre d’exemple, un estimateur du coefficient est, tout d’abord, tel que
[Math 1]
étant le nombre de mesures du pixel de profondeur dans la fenêtre en position .
[Math 1]
Dans un exemple, le pas de découpage de l’image brute est choisi de sorte que chaque fenêtre ait la même configuration de filtres, la valeur ne varie alors pas d’une fenêtre à l’autre. Dans l’exemple de la fenêtre 400, la valeur de est égale à 16. Dans un autre exemple, le pas de découpage varie dans le traitement de l’image brute et la configuration des filtres diffère d’une fenêtre à l’autre. Par conséquent, la valeur varie d’une fenêtre à l’autre et il convient par exemple de la recalculer à chaque traitement d’une fenêtre.
De même, pour tout canal , un estimateur du coefficient est tel que
[Math 2]
étant le nombre de mesures du pixel de profondeur dans la fenêtre en position .
[Math 2]
Le vecteur mesure , vérifie alors l’équation matricielle suivante :
[Math 3]
où est la matrice de matriçage, diagonale par bloc, autrement dit . La matrice est telle que et est le vecteur comprenant les coefficients directeurs : . La matrice Z et le vecteur sont donc inconnus et les étapes 1002 et 1003 ont pour but de leur calculer un estimateur. A titre d’exemple, uniquement l’élément du vecteur est estimé. La variable est par exemple un vecteur aléatoire de loi , où est un vecteur comprenant les estimateurs des coefficients à l’origine : . La matrice de covariance est une matrice diagonale par bloc, chaque bloc étant égal à une matrice de covariance de taille , , en d’autres termes, .
[Math 3]
Lors de la réalisation de l’étape 1002, le vecteur est modélisé par un vecteur aléatoire suivant une loi normale, centré et de matrice de covariance , où avec, pour tout , l’écart type à priori pour la variable . Les valeurs des écart-types à priori sont par exemple ajustées aux valeurs pouvant être prises par les pixels de la fenêtre binaire. A titre d’exemple, les écart-types a priori sont égaux à zéro lorsque les fenêtres binaires sont décrites par des pixels égaux à -1 et à 1. (Exact ?) . Dans un autre exemple, les fenêtres binaires sont décrites par des pixels étant égaux à 0 ou à 255 et les écart-types à priori du vecteur sont égaux à 128. Ces exemples de valeurs pour les écart-types à priori sont donnés à titre d’exemple et ne sont bien sûr pas limitatif, la personne du métier saura choisir des valeurs d’écart-types à priori pertinentes pour la description du modèle choisi.
Le vecteur est ainsi marginalisé et un estimateur appartenant à un dictionnaire de fenêtres binaires est par exemple déterminé, par le processeur 110, suite au calcul de
[Math 4]
où, pour tout , est l’occurrence renormalisée en probabilité de la fenêtre dans le dictionnaire . Les distributions et représentent respectivement les distributions associées aux vecteurs aléatoires et .Ainsi, correspond à la probabilité que la mesure soit égale à , connaissant les valeurs de et de .
[Math 4]
A titre d’exemple, la fenêtre binaire estimée pour la fenêtre 400 est la fenêtre binaire 500.
Une fois que l’estimateur est déterminé, le procédé reste dans l’étape 1003 afin de déterminer un estimateur de . L’estimateur s’obtient à partir de l’estimateur déterminé dans l’étape 1002. En particulier, le processeur 110 est par exemple en outre configuré pour déterminer l’estimateur en calculant
[Math 5]
où et représentent respectivement les distributions associées aux variables aléatoires et . Autrement dit, est la distribution associée à une loi normale de moyenne et de matrice de covariance . La distribution est associée à une loi normale centrée et de variance .
[Math 5]
De manière facultative, des estimateurs , et des coefficients , et sont calculés de la même manière. Autrement dit, pour tout ,
[Math 6]
où et représentent respectivement les distributions associées aux variables aléatoires et . Autrement dit, est la distribution associée à une loi normale de moyenne et de matrice de covariance . La distribution est associée à une loi normale centrée et de variance .
[Math 6]
Dans une étape 1004 (DEPTH PATCH ESTIMATION), les valeurs de profondeur des pixels associés à la fenêtre en position , par exemple la fenêtre 400, sont estimées.
Une estimation des valeurs de profondeur pour la fenêtre en position est un vecteur de taille , les premiers éléments du vecteur étant respectivement, par exemple, les estimations associées aux pixels de la première ligne de la fenêtre.
Selon un mode de réalisation, l’estimateur est calculé, par exemple par le processeur 110, par transformation affine de la fenêtre binaire estimée et selon la relation
[Math 7]
[Math 7]
Une fenêtre de profondeur est par exemple reconstruite à partir de l’estimateur .
A titre d’exemple la transformation binaire de la fenêtre binaire 500 résulte en une fenêtre de profondeur 900.
Suite à l’étape 1004, le procédé continue dans une étape 1005 (DEPTH PATCH IN IMAGE), dans laquelle la fenêtre de profondeur est par exemple collée dans une image de profondeur, par exemple stockée dans la mémoire non volatile 106. A titre d’exemple, la fenêtre de profondeur est collée en position de l’image de profondeur.
A titre d’exemple la fenêtre de profondeur 900 est collée dans une image de profondeur 902. L’image de profondeur 902 est par exemple initialement une image vide.
Le procédé continue ensuite dans une étape 1006 ( ) dans laquelle il est déterminé si au moins une autre fenêtre de profondeur reste à estimer. A titre d’exemple, les valeurs et de la position courante sont comparées aux valeurs et . Dans le cas où au moins une autre fenêtre de profondeur est à estimer (branche N), le procédé continue dans une étape 1007 ((p,q) INCREMENTATION) dans laquelle une autre position est considérée. A titre d’exemple, la valeur et/ou la valeur est incrémentée.
A titre d’exemple, l’image brute est parcourue de haut en bas et de gauche à droite et la première fenêtre est la fenêtre en position . Dans un autre exemple, l’image brute est parcourue de bas en haut et de droite à gauche, et la première fenêtre est alors par exemple la fenêtre en position . Ces exemples ne sont bien sûr pas limitatifs et l’image brute peut être parcourue de différentes façon.
Si, lors de la réalisation de l’étape 1007, il est déterminé que toutes les fenêtres de profondeur ont été estimées (branche Y), le procédé se termine dans une étape 1008 (END).
A titre d’exemple, lors de l’étape 1008, une image de profondeur finale est par exemple reconstruite. A titre d’exemple, dans le cas où un pixel est couvert par plusieurs fenêtres de profondeur, une estimation finale de la valeur de profondeur qui lui est associée est obtenue en faisant la moyenne des valeurs de profondeurs estimées pour ce pixel sur chaque fenêtre.
A titre d’exemple, les coefficients , et ne sont pas calculés. Cependant les mesures des canaux couleurs interviennent dans le calcul de l’estimateur . Ainsi, l’information liée à la couleur est utilisée pour estimer les valeurs de profondeur.
A titre d’exemple, suite aux estimations des coefficients , , le calcul de l’estimateur , lors de l’étape 1002, se simplifie et se réécrit
[Math 8]
[Math 8]
De même, l’expression de l’estimateur du coefficient se simplifie et se réécrit
[Math 9]
[Math 9]
Les valeurs préalablement choisies pour les écart-types des bruits de mesure , , dépendent de la dynamique des mesures de chaque canal. A titre d’exemple, si la plage de valeurs des mesures est l’intervalle , les écarts-type sont généralement de l’ordre des si le bruit est faible, ou de l’ordre de si le bruit est plus important. A titre d’exemple, les valeurs , et liées aux canaux couleurs sont de l’ordre de et la valeur liée au canal de profondeur est de l’ordre de .
Le procédé décrit en relation avec les figures 9 et 10 de reconstruction d’une image de profondeur exploite le fait qu’un contour visible dans l’image de profondeur est généralement aussi visible dans un des canaux couleur. Le procédé exploite aussi une représentation des contours par un dictionnaire de fenêtres binaires, ce qui renforce la robustesse du procédé face au bruit présent dans la mesure du canal de profondeur.
Bien que le procédé décrit en relation avec la figure 10 est décrit pour les canaux couleur-profondeur, il est bien sûr possible de considérer un autre ensemble de canaux. A titre d’exemple, uniquement le canal de profondeur fait partie de l’ensemble . Dans ce cas, le procédé décrit agit comme un procédé de débruitage ou de rééchantillonnage de l’image de profondeur. Dans d’autre cas, un canal autre, ou en plus, des canaux couleurs peut être utilisé. A titre d’exemple, le canal infrarouge peut faire partie de l’ensemble . De manière générale, tout canal ayant une corrélation avec le canal de profondeur peut être utilisé. La personne du métier saura adapter la matrice à l’ensemble de canaux mesurés par l’imageur. De même la personne du métier saura décrire la loi à priori, et en particulier quantifier la variance du bruit de mesure, sur les canaux mesurés.
De plus, la représentation sous forme de fenêtres binaires détruit l’information de texture présente dans les canaux couleurs, et cela permet de conserver uniquement les contours saillants qui ont plus de chance d’être liés à un changement dans la profondeur.
Un avantage des modes de réalisation décrits est que l’estimation de valeurs de profondeur repose principalement sur la recherche d’une fenêtre binaire dans un dictionnaire de fenêtre binaire construit au préalable. Une fois la fenêtre binaire et le coefficient directeur lié à la profondeur estimés, les opérations se résument simplement à des multiplications de coefficients par les valeurs des pixels de la fenêtre binaire, par exemple -1 ou 1.
Un autre avantage des modes de réalisation décrits est qu’ils sont adaptables à tout type de motif de matriçage. La matrice de matriçage s’adapte, en effet, très facilement au motif de matriçage utilisé par l’imageur.
Un autre avantage des modes de réalisation décrits est qu’ils sont paramétrables selon la complexité de calcul souhaité. En effet, la taille des fenêtres , le pas de découpage , ainsi que la taille du dictionnaire sont déterminant dans la qualité de reconstruction.
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, d’autres canaux que les canaux couleurs peuvent être mesurés. A titre d’exemple, l’imageur est en outre configuré pour effectuer des mesures dans le domaine des infrarouges et le canal infrarouge fait partie des canaux mesurés.
Enfin, la mise en oeuvre 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, plusieurs imageurs peuvent être utilisés pour acquérir l’image, la personne du métier saura repositionner les pixels mesurés sur le même axe optique.
Claims (16)
- Procédé de reconstruction d’une image de profondeur, par un processeur (110) d’un dispositif électronique (100), à partir de mesures (m), effectuées par un imageur (102) et selon un motif de matriçage (202, 800), d’au moins du canal de profondeur (d), le procédé comprenant, pour au moins une fenêtre (400) de l’image :
- la sélection, par le processeur et sur la base des mesures associées à la fenêtre, d’une fenêtre binaire (500), parmi un dictionnaire (700) de fenêtres binaires stocké dans une mémoire non volatile (106) ;
- l’estimation, par le processeur, de coefficients de transformation affine associés à la profondeur, les coefficients de transformation affine comprenant un coefficient directeur associé à la profondeur et un coefficient d’ordonnée à l’origine associé à la profondeur, sur la base des mesures associées à la fenêtre ; et
- l’estimation, par le processeur, d’une fenêtre de profondeur (900), en appliquant une opération affine, sur la base des coefficients estimés, à la fenêtre binaire,
le procédé comprenant en outre la génération, par le processeur, de l’image de profondeur sur la base de l’au moins une fenêtre de profondeur estimée. - Procédé selon la revendication 1, dans lequel l’image est recouverte par une pluralité de fenêtres (300, 302, 304, 306, 308, 310, 312, 400) de sorte que chaque fenêtre est distante par rapport à ses fenêtres voisines par un pas de découpage (s) multiple de la taille du motif de matriçage (202, 800).
- Procédé selon la revendication 1 ou 2, dans lequel, pour chaque fenêtre (400), la fenêtre binaire (500) est en outre estimée sur la base d’une estimation du coefficient d’ordonné à l’origine associé à la profondeur et sur la base d’une distribution à priori du coefficient directeur associé à la profondeur.
- Procédé selon la revendication 3, dans lequel, pour chaque fenêtre (400), l’estimation du coefficient d’ordonnée à l’origine est égale à la moyenne des mesures de profondeur sur ladite fenêtre.
- Procédé selon l’une quelconque des revendications 1 à 4, dans lequel le motif de matriçage (202, 800) est tel que les mesures associées à chaque fenêtre (400) comprennent en outre des mesures d’autres canaux, les autres canaux étant les canaux couleurs rouge, vert et bleu et/ou d’un canal infrarouge et/ou d’un canal corrélé à la profondeur.
- Procédé selon la revendication 5, dans lequel, pour chaque fenêtre (400), la fenêtre binaire (500) est en outre déterminée sur la base d’une estimation de coefficients d’ordonnée à l’origine associés aux autres canaux et sur la base d’une distribution à priori de coefficients directeurs associés aux autres canaux.
- Procédé selon la revendication 6, dans lequel, pour chaque fenêtre (400) et pour chaque autre canal, une fenêtre associée à l’autre canal est estimée par transformation affine de la fenêtre binaire estimée, sur la base des coefficients de transformation affine associés à l’autre canal.
- Procédé selon l’une quelconque des revendications 1 à 7, dans lequel l’estimation du coefficient directeur associé à la profondeur (d) est en outre effectué sur la base de la fenêtre binaire (500) déterminée.
- Procédé selon l’une quelconque des revendications 1 à 8, dans lequel chaque fenêtre binaire (702, 704, 706) du dictionnaire (700) de fenêtres binaires comprend un ensemble de pixels affectés à une valeur minimale et un autre ensemble de pixels affectés à une valeur maximale.
- Procédé selon l’une quelconque des revendications 1 à 9, dans lequel chaque fenêtre binaire (702, 704, 706) du dictionnaire (700) est associée à une valeur d’occurrence dans le dictionnaire de fenêtres binaires.
- Procédé selon l’une quelconque des revendications 1 à 10, dans lequel une loi à priori sur les mesures effectuées par l’imageur (102) est une loi normale dont la matrice de covariance est une matrice diagonale par bloc, chaque bloc ayant une valeur propre au bruit de mesure du canal associé.
- Procédé comprenant :
la construction d’un dictionnaire (700) de fenêtres binaires, stocké dans une mémoire non volatile (106), sur la base d’une pluralité d’images de profondeur, la construction du dictionnaire comprenant :
- la sélection d’une première fenêtre en échantillonnant une image de profondeur parmi la pluralité d’images de profondeur ;
- la binarisation de la fenêtre sélectionnée en affectant une valeur minimale aux pixels de la fenêtre ayant une valeur de profondeur inférieure à une valeur seuil et en affectant une valeur maximale aux pixels de la fenêtre ayant une valeur de profondeur supérieure à la valeur seuil ;
- si la fenêtre binaire est déjà existante dans le dictionnaire, l’incrémentation d’une valeur d’occurrence associée à la fenêtre binaire, dans le dictionnaire ; et
- si la fenêtre binaire n’existe pas dans le dictionnaire, le stockage de la fenêtre binaire, dans la mémoire non volatile, en association avec une valeur d’occurrence initiale ; et
la reconstruction d’une image de profondeur, par l’application du procédé selon l’une quelconque des revendications 1 à 11 et sur la base du dictionnaire de fenêtres binaires. - Procédé de construction selon la revendication 12, dans lequel l’échantillonnage de l’image de profondeur comprend :
- un tirage aléatoire d’une fenêtre d’une image de profondeur ;
- le calcul de l’écart type des valeurs de profondeur sur la fenêtre tirée ; et
- si l’écart type des valeurs de profondeur est nul, le tirage d’une nouvelle fenêtre. - Procédé selon la revendication 12 ou 13, dans lequel la valeur seuil est la valeur moyenne des valeurs de profondeur sur la fenêtre sélectionnée.
- Dispositif électronique comprenant une mémoire (106, 108) et au moins un processeur (110), la mémoire stockant des instructions configurées pour mettre en œuvre le procédé de l’une quelconques de revendications 1 à 14 lorsqu’elles sont exécutées par l’au moins un processeur (110).
- Dispositif mémoire non-transitoire configurée pour stocker des instructions permettant la mise en œuvre du procédé de l’une quelconques de revendications 1 à 14 lorsqu’elles sont exécutées par au moins un processeur (110).
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
FR2213892A FR3143807A1 (fr) | 2022-12-20 | 2022-12-20 | Procédé et dispositif de reconstruction d’une image de profondeur |
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
FR2213892A FR3143807A1 (fr) | 2022-12-20 | 2022-12-20 | Procédé et dispositif de reconstruction d’une image de profondeur |
FR2213892 | 2022-12-20 |
Publications (1)
Publication Number | Publication Date |
---|---|
FR3143807A1 true FR3143807A1 (fr) | 2024-06-21 |
Family
ID=86468908
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
FR2213892A Pending FR3143807A1 (fr) | 2022-12-20 | 2022-12-20 | Procédé et dispositif de reconstruction d’une image de profondeur |
Country Status (1)
Country | Link |
---|---|
FR (1) | FR3143807A1 (fr) |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20040169749A1 (en) * | 2003-02-28 | 2004-09-02 | Tinku Acharya | Four-color mosaic pattern for depth and image capture |
-
2022
- 2022-12-20 FR FR2213892A patent/FR3143807A1/fr active Pending
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20040169749A1 (en) * | 2003-02-28 | 2004-09-02 | Tinku Acharya | Four-color mosaic pattern for depth and image capture |
Non-Patent Citations (2)
Title |
---|
IVANA TOSIC ET AL: "Learning sparse representations of depth", ARXIV.ORG, CORNELL UNIVERSITY LIBRARY, 201 OLIN LIBRARY CORNELL UNIVERSITY ITHACA, NY 14853, 30 November 2010 (2010-11-30), XP080465630, DOI: 10.1109/JSTSP.2011.2158063 * |
XIE JUN ET AL: "Edge-Guided Single Depth Image Super Resolution", IEEE TRANSACTIONS ON IMAGE PROCESSING, IEEE, USA, vol. 25, no. 1, 1 January 2016 (2016-01-01), pages 428 - 438, XP011593252, ISSN: 1057-7149, [retrieved on 20151208], DOI: 10.1109/TIP.2015.2501749 * |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
FR3067242B1 (fr) | Procede d'evaluation d'une gouttiere orthodontique | |
EP2457379B1 (fr) | Procédé d'estimation d'un défaut d'un système de capture d'images et systèmes associés | |
EP2652702B1 (fr) | Méthode de détection et de quantification du flou dans une image numérique | |
EP2549434A2 (fr) | Procede de modelisation de batiments a partir d'une image georeferencee | |
FR2731819A1 (fr) | Methode d'extraction de contours utilisant une analyse multi-fractale | |
FR3011368A1 (fr) | Procede et dispositif pour le renforcement de la forme des bords pour l'amelioration visuelle du rendu base sur des images de profondeur d'un flux video en trois dimensions | |
FR3088755A1 (fr) | Procede de defloutage d’une image | |
EP3301644B1 (fr) | Procédé de construction d'une carte de profondeur d'une scène et/ou d'une image entièrement focalisée | |
FR3143807A1 (fr) | Procédé et dispositif de reconstruction d’une image de profondeur | |
FR2950451A1 (fr) | Algorithme de detection des points de contour dans une image | |
EP2943935B1 (fr) | Estimation de mouvement d'une image | |
FR3143162A1 (fr) | Procédé et dispositif de dématriçage | |
EP3625766B1 (fr) | Méthode de détection et de quantification du flou dans une image numérique | |
WO2020094441A1 (fr) | Capteur d'image pour la reconnaissance optique de code(s) | |
EP4150574B1 (fr) | Procédé de traitement d'images | |
FR3059453A1 (fr) | Procede et dispositif de deconvolution d'images numeriques | |
EP4020378B1 (fr) | Filtre de traitement d'image pour la localisation de gouttes dans une image multidimensionnelle et procédé de traitement d'image associé | |
EP0567377B1 (fr) | Procédé de pistage à partir d'images d'éléments déformables, et/ou aux contours fortement bruités | |
WO2017187059A1 (fr) | Methode de reglage d'un appareil de prise de vue stereoscopique | |
EP4325442A1 (fr) | Procédé, programme d'ordinateur, dispositif d'identification de profilés | |
FR3142026A1 (fr) | Détection d’objets dans une image | |
WO2024088981A1 (fr) | Procédé de détection d'un mouvement d'un corps | |
FR3006087A1 (fr) | Traitement de donnees numeriques representatives du comportement oculaire d'un ensemble d'utilisateurs | |
EP1355259A2 (fr) | Determination de l'orientation des sillons d'une empreinte digitale | |
FR3088465A1 (fr) | Estimation d'une carte de disparite a partir d'une image monoscopique par apprentissage profond |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PLFP | Fee payment |
Year of fee payment: 2 |
|
PLSC | Publication of the preliminary search report |
Effective date: 20240621 |