INPI-France/Brevets-Francais-2024-Chunked huggingface dataset:
Ces mesures sont alors, par exemple, enregistrées dans une mémoire reliée au modem acoustique 132, par exemple directement ou par transmission à un module au sein de l’unité de surface de collecte 130, le module comprenant une mémoire dans lequel sont mémorisées ces données.
Avantageusement, le protocole de transmissions des ondes acoustiques comprend un contrôle de redondance cyclique, ou CRC (pour Cyclic Redundancy Check en anglais).
Dans un mode de réalisation alternatif, l’onde acoustique d’instruction de collecte ne comprend pas d’identifiant d’une ou d’unités de surveillance particulières. Alors, l’ensemble des unités de surveillance présentes dans la portée du modem acoustique 132 et n’ayant pas déjà transmis ses mesures mémorisées transmet ses mesures mémorisées.
Lorsque seul un intervalle autour d’un dépassement de seuil est enregistré, cela permet de réduire très fortement le volume des données à transmettre.
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 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.
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.
En exemple, en considérant une fréquence d’acquisition de 500 Hz et une résolution de 16 bits, soit 2 octets, les données enregistrées pendant une campagne et correspondant à 4 minutes d’enregistrement représentent 240 Ko et les données enregistrées pendant un an et correspondant à 48 minutes d’enregistrement représentent 3 Mo, contre plus de 30 Go pour un enregistrement en continu pendant un an.
Un modem acoustique sous-marin a, par exemple, une vitesse de transmission de données de 400 bits par seconde. La transmission des données correspondant à une campagne est alors réalisée en 1h20, alors que la transmission de données d’un enregistrement continu pendant une heure prendrait 20 heures.
Ainsi, le fait d’enregistrer uniquement les mesures acquises autour d’un dépassement de seuil est particulièrement avantageux pour la transmission à distance des données depuis l’unité de surveillance.
Par ailleurs, la transmission de données est consommatrice d’énergie, de sorte que la réduction du temps de transmission permet d’économiser de l’énergie de la batterie.
En outre, cela permet de réduire la quantité de données à traiter par la suite.
Dans un mode de réalisation particulier, le procédé comprend une étape de changement des paramètres de l’unité de surveillance 10.
Un modem acoustique similaire au modem acoustique 132 de la transmission de données émet une onde acoustique de réglage.
L’onde acoustique de réglage comprend une instruction de réglage d’au moins un paramètre d’au moins une unité de surveillance selon une consigne, plus particulièrement pour une ou des unités de surveillance données.