Qu'est-ce que le suréchantillonnage bilatéral?


9

J'ai travaillé avec divers algorithmes d'interpolation, y compris les interpolations basées sur linéaire, cubique (et bilinéaire et bicubique), d'autres bezier (et nurbs, etc.), l'interpolation lagrange et quelques autres, mais je n'ai pas été en mesure de trouver des informations de base qui expliquent ce qu'est un suréchantillonnage bilatéral.

J'ai pu trouver des informations sur le suréchantillonnage bilatéral conjoint qui, autant que je sache, interpole plusieurs éléments de données en parallèle, en utilisant des conseils de chacun pour aider l'autre à mieux interpoler, mais j'ai du mal à séparer les informations de BU et JBU.

Quelqu'un peut-il expliquer les idées de base sur ce qu'est le suréchantillonnage bilatéral?


1
L'article original sur le filtrage bilatéral, "Filtrage bilatéral pour les images en gris et en couleur" , par Tomasi et Manduchi: users.cs.duke.edu/~tomasi/papers/tomasi/tomasiIccv98.pdf
Julien Guertault

Réponses:


9

Il semble que vous demandiez deux choses. Je ne peux pas vraiment parler techniquement de JBU, mais je peux donner un aperçu des concepts nécessaires et du filtrage bilatéral en général. Vous aurez probablement besoin de trouver plus de détails vous-même, mais cela devrait donner une structure cohérente pour commencer.


Correction des "images"

De nombreuses personnes qui traitent des images considèrent le filtrage comme quelque chose à faire comme un post-processus ou comme un moyen de mettre à l'échelle les images. La perspective du mathématicien est plus précise, descriptive et complexe.

Lorsque vous avez un fichier image, vous n'avez pas de vraie image. Vous avez des "valeurs" de pixels, qui ne sont strictement valables qu'au centre des pixels. En gros, chaque pixel a une zone qui prend cette couleur. Mathématiquement, ce que vous faites est d'utiliser un filtre de reconstruction du plus proche voisin pour reconstruire la vraie image à partir des valeurs des pixels. Ainsi , une « image » est vraiment un ensemble d'échantillons et d' un filtre de reconstruction, typiquement voisin le plus proche .

Rééchantillonnage

Lorsque vous augmentez l'échelle d'une image, ce que vous faites réellement, c'est le rééchantillonnage . Comment est-ce que tu fais ça? Vous prenez votre signal et vous en générez un nouvel ensemble d'échantillons. Mais pour une image, je viens de dire que nous n'avons l'image réelle; nous devons d'abord le reconstruire. Ainsi, une procédure de rééchantillonnage typique ressemble à ceci:

  1. Prenez vos valeurs de pixels.
  2. Reconstruisez une image entre les valeurs, qui vivent au centre des pixels, en utilisant le filtrage de reconstruction.
  3. Mesurer un nouvel ensemble d'échantillons à partir de l'image reconstruite, éventuellement espacés différemment.
  4. Jetez les anciens échantillons et utilisez les nouveaux.

Le point clé est que le filtre de reconstruction utilisé est le "filtre" utilisé pour le rééchantillonnage. Par exemple, un "suréchantillonnage bicubique" utiliserait un filtre de reconstruction bicubique.

Il s'avère que si vous utilisez une fonction sinc pour le filtre de reconstruction et que vous ne réduisez pas l'image, vous obtenez (théoriquement) la même image. En fait, si vous mettez à l'échelle l'image puis la redimensionnez à nouveau, vous obtiendrez la même réponse. Ce n'est généralement pas vrai pour tout autre filtre.

La plupart des filtres se rapprochent plus ou moins d'un filtre sinc. Les écarts entraînent une perte d'image.

Filtration

Si vous utilisez le même taux d'échantillonnage avant / après, vous faites quelque chose appelé "filtrage". Formellement, le filtrage consiste à rééchantillonner sans modifier la fréquence d'échantillonnage. Le filtrage est un cas particulier de rééchantillonnage.

Le seul but possible de le filtrer pour jeter des informations (par exemple un gaussien) ou éventuellement aussi pour déformer ou ajouter des informations parasites (par exemple un Sobel).

Filtrage bilatéral

Vous pouvez utiliser de nombreux filtres différents pour le filtrage. Le filtrage bilatéral en fait partie. Je ne pense pas que ce soit considéré comme l'état de l'art à quelque fin que ce soit (bien que je ne sache pas ce que c'est; probablement quelque chose de nouveau d'apprentissage automatique que j'attends).

Un filtre bilatéral est un filtre non linéaire, ce qui signifie qu'il n'a pas une belle représentation de Fourier. Conceptuellement, c'est comme un gaussien, mais les couleurs sources elles-mêmes prennent également en compte la «distance» d'un pixel par rapport aux autres. Cela a tendance à lisser les zones planes tout en préservant les bords.

Augmentation bilatérale

À présent, j'espère que vous voyez où je veux en venir: tout filtre que vous pouvez utiliser pour le filtrage, vous pouvez l'utiliser pour la mise à l'échelle ou la réduction d'échelle, qui sont vraiment la même chose (car tout cela est un rééchantillonnage).

Si vous avez implémenté un filtre bilatéral, vous devriez pouvoir implémenter plutôt simplement un rééchantillonneur de filtre bilatéral - tout comme, si vous avez implémenté un filtre gaussien, vous devriez pouvoir implémenter un rééchantillonneur de filtre gaussien.

La seule difficulté peut être les définitions. Malheureusement, la distinction entre filtrage et rééchantillonnage est systématiquement brouillée à une inexistence occasionnelle dans la littérature sur le traitement d'image. Pour mettre en œuvre un filtre de type bilatéral, je compterais fortement sur ses similitudes avec le rééchantillonnage gaussien. IIRC (je n'ai pas lu l'article depuis des années) le filtrage bilatéral se pose en termes de pixels, pas d'échantillons.


Comment le filtrage bilatéral fonctionne spécifiquement, c'est ce que j'essaie d'obtenir des informations. Pourriez-vous préciser ceci?
Alan Wolfe

On peut prêter des images pour les explications au début d' ici
joojaa

@AlanWolfe J'ai supposé que vous demandiez un contexte plus large, car la mise en œuvre du filtrage bilatéral de base est hautement compatible avec Google et plutôt simple. Comme je l'ai écrit, l'idée de base est de prendre en compte les valeurs dans le poids, pas seulement la distance.
imallett

La réponse de @ joolaa est également très agréable et peut être utile comme deuxième explication de mon aperçu.
imallett

1
Maintenant que j'ai le terme "filtre bilatéral", j'ai plus de chance sur Google. Merci pour ça.
Alan Wolfe

3

Cela n'explore probablement pas toute la profondeur du terme, mais la première chose qui me vient à l'esprit lorsque j'entends un "suréchantillonnage bilatéral" est le mélange sensible à la profondeur d'images basse résolution avec des images haute résolution; par exemple, lorsque vous effectuez le rendu de la géométrie alpha dans un tampon à demi-résolution (pour des économies de performances), puis que vous la composez à nouveau sur la cible de rendu principale. Angelo Pesce a écrit un article qui l'explique bien.

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.