FR 3083415 A1 20200103 FR 1855955 A 20180629 Traitement d'un bruit impulsionnel dans une séquence vidéo La présente invention concerne un traitement de débruitage d'une séquence vidéo d'images numériques agencées en pixels, notamment pour corriger un bruit d'image de type « poivre et sel » (ou « bruit impulsionnel » ci-après). On peut considérer néanmoins que ce bruit n'impacte pas un « arrière-plan de l'image » et on peut s'intéresser ainsi au traitement d'image pour l'estimation temps-réel de l'arrière-plan, avec comme applications possible : - la restauration de séquences vidéo en présence de bruit impulsionnel (également appelé bruit « poivre et sel » qu'on trouve typiquement en présence d'un rayonnement radioactif impactant des photosites d'un capteur, ce qui se traduit par une saturation des pixels correspondants) ; - une détection de mouvement dans une séquence vidéo, avec suivi d'objet (par exemple en vidéosurveillance), dans laquelle une caméra, éventuellement en mouvement, filme une scène fixe sur laquelle se rajoutent des éléments qui bougent, avec des objets qui se déplacent. Pour détecter ces évènements, une solution consiste à estimer l'arrière-plan puis à le soustraire à l'image. Par la suite, on se concentre sur le cas d'une image en niveau de gris (une seule valeur par pixel), l'extension au cas d'une image couleur (trois canaux « rouge », « vert », « bleu ») étant immédiate en appliquant le même calcul sur les trois canaux. Il est considéré alors le cas d'un pixel de l'image dont on suit l'évolution temporelle, notée y(n) pour la nième image de la séquence, sans besoin de préciser par la suite les coordonnées spatiales du pixel. Le cas d'un bruit impulsionnel dû au rayonnement, en gardant en tête les autres applications précédemment mentionnées, peut être traité à partir d'un modèle de 30 dégradation sur un pixel y(n) à un instant n donné. Ce modèle s'écarte du modèle classique de bruit additif centré et peut s'écrire par exemple: y(n) = x + u(n) avec une probabilité 1-p y(n) = s avec une probabilité p 2 x étant la valeur exacte du pixel en l'absence de rayonnement et de bruit de mesure u(n) étant un bruit classique de mesure (typiquement bruit blanc Gaussien), d'écart-type o-u s étant la valeur d'un pixel « contaminé », typiquement une saturation 5 p étant le « taux » de rayonnement La densité de probabilité fy (y) des valeurs prises par y(n) s'écrit dans cet exemple : 1 - (y - x)2 fY (Y) = exp + /98(Y - s) -'.-t-o-r, ', -2 Lut/ Ô (x) étant la fonction « Dirac » de x. 10 Ce modèle, simple, n'est pas le seul possible. En particulier les valeurs contaminées ne sont pas nécessairement constantes, et le rayonnement n'est pas la seule application. On s'intéresse donc plus généralement à des valeurs de pixels ayant une densité de probabilité de la forme: fy(Y) = (1 P)fu(31 x) + Pfs(Y) fs(y) étant. la distribution des pixels « contaminés » (ou correspondant à un objet en 15 mouvement) et fu(y - x) étant la distribution des pixels « non contaminés » (ou correspondant à un arrière-plan fixe). Par analogie avec le cas d'un bruit de rayonnement, on conserve ci-après cette nomination 20 « contaminés » et « non contaminés » (même si le cas d'images avec rayonnement n'est pas la seule application possible). Dans le cas plus général d'un bruit impulsionnel type poivre et sel, les valeurs de bruit peuvent être à la fois très élevées (pixels blancs, saturation) ou très faibles (pixels noirs), soit une forme bimodale pour fs (y), par exemple, pour des pixels bruitées oscillant entre 0 et le maximum des valeurs prises par les pixels 25 /ma), fs (y) = - 0) + â - 3 Des techniques existent pour filtrer cc type de bruit. Les deux principales sont détaillées ci-après. La méthode la plus simple consiste à utiliser un filtrage temporel, linéaire, des valeurs de 5 chaque pixel. Typiquement, la moyenne glissante ou les filtres temporels linéaires comme l'oubli exponentiel sont fréquemment utilisés. L'oubli exponentiel est défini par : z(n) = (1 - a)y(n) + az(n - 1) où a règle le facteur d'oubli du filtre (typiquement entre 0.8 et 0.99). 10 11 converge vers la moyenne ymoy des valeurs prises par y(n) au cours du temps. Si s est la valeur moyenne des pixels contaminés, on a : ymoy = x + p (s - x) Cette valeur peut s'écarter sensiblement de la valeur exacte x si le taux de rayonnement p 15 est élevé et/ou si la moyenne des valeurs non contaminées x est éloignée de la valeur « contaminée » s. Par exemple, pour p = 20%, un pixel normalement noir x = 0 et une valeur contaminée en saturation s=255 niveaux de gris on a ymoy = 51 niveaux de gris, soit un écart d'une cinquantaine de niveaux de gris par rapport à la valeur exacte. 20 Dans le cas d'une caméra en mouvement ou pouvant changer de facteur de zoom, la dernière sortie du filtre est recalée, afin de suivre les différents mouvements ou changement de zoom de la caméra. L'expression correspondante s'écrit : z(q, n) = (1 - a). y(q, n) + a. z(Tit(q), n - 1) Zrestauree(q, n) n) 25 Avec : y(q, n) la valeur de la n-ème image brute, pour le pixel à la position q z(eln) 4 z(q, n) la valeur de la n-ème image filtrée pour le pixel à la position q zrestaurée(q,n) la valeur de la n-ème image restaurée pour le pixel à la position q Tn( .) la transformation estimée entre les images brutes n-1 et n. a le facteur d'oubli du filtre (typiquement 0.98, 0.95) 5 N(q,n) la sortie du filtrage temporel lorsqu'on met en entrée une image constante égale à 1 pour tous les pixels. Moins formellement, cette équation de filtrage s'écrit : imagettitrée - - (1 a). imagebrute + a. imagenitrée,précédentesecalée image restaurée imagefiltrée normalisation Ce traitement permet d'éliminer l'effet du rayonnement (effet de « neige » sur l'image). Cependant, on peut montrer que l'image ainsi restaurée ne converge pas exactement vers l'image qu'on aurait obtenue en l'absence de rayonnement. Une autre technique connue est le filtre médian. Il est connu qu'il est intéressant de choisir des traitements qui convergent non pas vers la moyenne mais vers la médiane des valeurs prises par y(n). En effet si le taux de bruit 20 impulsionnel est inférieur à 50% la médiane des valeurs prises par y(t) est située dans le support de la distribution de x + u(t). Cette médiane est indépendante de l'écart entre la valeur contaminée s et la valeur exacte x. 25 Dans le cas d'un bruit « poivre et sel », cette médiane est égale à x. Dans le cas de pixel « contaminé » toujours supérieure à la médiane on montre que cette médiane est donnée par : Ymed X + au 1 - p 10 15 5 soit un faible écart yrned - x z(n - 1) z(n) = z(n - 1) - a si y(n) z(Tn(q), n - 1) z(q, n) = z(Tn(q), n - 1) - A si y(q , n) no (et jusqu'à convergence à l'étape S26), application aux étapes S24 et S25 du filtre du signe et respectivement d'un deuxième filtre temporel à facteur d'oubli au résultat 5 du filtre du signe: z(n) = z(n - 1) -H A x signe(y(n) - z(n - 1)) wtemp(n) = (1 - f3)z(n) fiwtemp(n - 1) Et en sortie s(n) = wie"T(n) i_sn-no+1 Les performances du traitement par application du filtre du signe et du traitement. hybride 10 avec améliorations (performances bien meilleures dans ce deuxième cas) sont illustrées sur la figure 4. Le recours au traitement hybride et le réglage de ses paramètres (temps d'initialisation et facteurs d'oubli exponentiel) dépendent du type d'application. Pour une caméra fixe ou 15 bougeant lentement une petite valeur du coefficient A est suffisante (0,5 ou 1 niveau de gris), à condition d'initialiser le traitement avec un oubli exponentiel normalisé (a = 0,9 par exemple). Le second filtre (wtemp) n'est pas forcément utile. Pour une caméra en mouvement, ou une scène variable (changement d'éclairage par 20 exemple), le traitement doit constamment s'adapter. On pourra choisir un coefficient élevé jusqu'à A= 5 niveau de gris, suivi d'un oubli exponentiel /3 = 0,9. Le filtre d'initialisation (Ztemp) n'est pas forcément utile. Pour un réglage optimum des paramètres, on peut s'aider des calculs comparant la variance 25 résiduelle et le temps de convergence lors d'un changement de médiane d'amplitude A (typiquement dû à une variation de l'éclairage de la scène filmée). En effet, dans ce cas, le temps de convergence (pour un bruit poivre et sel de type « pixel noir ou blanc » (pas blanc seulement, type « neige »)) pour un changement de médiane 30 d'amplitude A (temps pour atteindre FA) est donné par : 16 A log(1 - y) Tc 4(1 - p) log p La variance résiduelle après convergence peut être approximée par : t8r A au 1 - r3 Vr 3 x x 1-p i+p 5 En référence maintenant à la figure 5, un dispositif au sens de l'invention comporte une unité de traitement UT comprenant au moins : - une interface d'entrée IN pour recevoir d'une caméra CAM, ou encore d'un serveur 10 distant (ou une entité distante via un réseau (le communication), un signal représentatif (le pixels d'images successives formant une séquence vidéo (en plan fixe et zoom et éclairage fixes, ou variables) ; - une mémoire tampon BUFF pour stocker temporairement les données d'image (et typiquement la dernière image reçue (brute) et la dernière image traitée, ainsi que, en cas 15 de mouvement, l'avant-dernière image reçue); - une mémoire MEM pour stocker éventuellement d'autres variables temporaires et surtout pour stocker des codes d'instructions d'un programme informatique au sens de l'invention, ainsi éventuellement que des valeurs de paramètres de filtres (facteurs d'oubli, coefficient A, nombre d'images initiales no, Ni tnax, etc.) ; 20 - une interface homme machine 1HM pour entrer les valeurs de paramètres de filtres, cette interface étant reliée à des moyens de saisie SAI (clavier, souris, écran tactile, commande vocale, etc.) et de visualisation VIS (écran, écran tactile, etc.) - un processeur PROC pour lire de la mémoire MEM les codes d'instructions du programme informatique et appliquer le traitement au sens de l'invention aux données 25 d'images du tampon BUFF, le cas échéant en s'appuyant sur un module d'estimation de 17 mouvement MOUV (estimation des mouvements de la caméra par translation, rotation, facteur de zoom) si la position de la caméra ou ses réglages sont censés être variables ; - une interface de sortie OUT pour délivrer les images débruitées qui peuvent être visualisées sur les moyens VIS par exemple. 5 Le traitement se fait pixel par pixel pour fournir une image restaurée sur la valeur des pixels à l'image n. La sortie (lu traitement peut présenter plusieurs options : 10 - estimer en temps-réel simplement l'arrière-plan de la séquence vidéo ; - détecter et éventuellement extraire un ou plusieurs objets en mouvement dans les images, par soustraction de l'arrière-plan ainsi obtenu à l'image brute ; - et/ou encore estimer un bruit impulsionnel de type poivre et sel ou neige dans la séquence vidéo ; 15 - le cas échéant, restaurer la séquence en cas de présence de ce bruit impulsionnel ; et - éventuellement délivrer les images de cet arrière-plan ou les images débruitées, via le moyen de visualisation VIS ou via une interface de communication (non représentée) des données d'images ainsi dé-bruitées vers un site distant. 20 La restauration vise alors à effectuer l'opération suivante : imagerestaurée = iMagerestaurée,précédente,recalée "igne limagebrute - iMagerestaurée,précédente,recaléel Deux filtres classiques (oubli exponentiel) peuvent être utilisés en complément de ce traitement : - un premier filtre peut être utilisé pour accélérer le temps de convergence initial de ce 25 traitement ; - un deuxième filtre peut être utilisé pour réduire la variance résiduelle. On compte donc quatre combinaisons possibles de filtres : - simple filtre du signe 30 filtre du signe avec filtre d'initialisation 18 filtre du signe avec filtre de réduction de variance résiduelle filtre du signe avec filtre d'initialisation et filtre de réduction de variance résiduel. On détaille ci-après la deuxième et la quatrième combinaison. 5 Ici, on utilise l'estimation de la transformation géométrique entre l'image brute n-1 et l'image brute n notée Tn(q). En notant toujours les images d'entrée y(q,n) et les images de sortie zr't'rée(q,n), on peut appliquer les étapes ci-après : 10 Initialisation : z(q, 0) =0 : Zres tanrée(q, 0) = 0 ; Ti (q) = q (transformation identité) ; N(q, 0) = 0 (image de normalisation) Pour n=1 à no : z (q, n) = (1 - a). y (q, n) + a . z(Tn(q), n - 1) N (q, n) = (1 - a) + a . N(T,i(q), n - 1) z(q.n) Et zrestanrée(q, n) = N(q,n) 15 Pour n>no : Zrestaurée (et n) = Zrestaurée(Tn(q), n 1) + A x signe ty(q, n) - zrestaurée (Tn(q), n 1)1 On peut choisir comme valeurs d'entrée : - no = 25 images (1 seconde), on peut monter jusqu'à 50 images (2 secondes) 20 - A = 3 (entre 0 et 10) Cette valeur de A correspond à des valeurs de pixels variant entre 0 et 255. Pour le cas de pixel variant entre 0 et 1 il faut multiplier par 1/255. Pour des pixels variant entre 0 et MAX il faut multiplier par MAX/255. 25 Cet algorithme fait intervenir les valeurs : z(Tn(q), n - 1), N(Tn(q), n - 1) et Zrestaurée (Tn(q), n - 1), qui parfois ne sont pas disponibles lorsque la transformation estimée Tn(q) fait sortir un pixel de l'image (du fait du mouvement d'image). 19 On pourra alors choisir dans ce cas les valeurs suivantes : z(Tii(q), n - 1) = 0 N (Tn (q), n - 1) = 0 zrestaurée (Tn(CD, n - 1) = y(q, n) ou 0 On décrit maintenant la quatrième combinaison, correspondant donc à la représentation de la figure 7 commentée précédemment. Il s'agit de l'application du filtre du signe avec filtre 5 d'initialisation préalable et filtre de réduction de variance résiduelle concomitant. Le traitement se présente comme suit : - Initialisations : z(q, 0) = 0 ; T1(q) = q ; ztemp(q, 0) = 0 ; zresta urée (CI, 0) = ° ; N(q, 0) = 0 10 et zrestaurée,bis(q, 0) = - Pour n=1 jusqu'à no, on conserve le même traitement que précédemment avec : z(q, n) = (1 - a). y(q, n) + a. z(Tn(q), n - 1) N(q, n) = (1 - a) + a. N(Tn(q), n - 1) et zrestaurée n) = N(q, zrestaurée,bis (r(9), no) = zrestaurée(q, no) 15 - ensuite, pour n>no , le traitement devient une combinaison, pour chaque pixel d'image n, d'un filtre du signe : zrestaurée (41, n) zrestaurée(Tn(q), n 1) + A x signe fy(q, n) zrestaurée (rn(q), n - 1)) Et d'un filtre avec oubli ztemp(q, n) = (1 - /3) zrestaurée(q, n) + fi x zte,,p(q, n - 1) De sorte que: zrestaurée,bis (q, n) = 1 _ Rn-ne ztemp(q, n) z(q, 20 20 On peut prendre par défaut a = 0,95 et /3 = 0,9 Là encore, ce traitement fait intervenir les valeurs : z(Tn(q),n - 1), N(Tn(q), n - 1) et z,-estaurée (Tn(q). n - 1), 5 qui peuvent ne pas être disponibles lorsque la transformation estimée Tn(q) fait sortir un pixel de l'image (du fait du mouvement d'image). On pourra prendre dans ce cas les valeurs suivantes : z(T,,,(q), n - 1) = 0 N (Tu (q), n - 1) = Zrestaurée (Tn(q), n - 1) = y(q, n) ou 0 10 Il est ainsi montré que l'estimation récursive temps-réel de l'arrière-plan d'une séquence vidéo permet (le restaurer des films fortement dégradés par des bruits impulsionnels (« poivre et sel » ou « neige » ou poussières réelles (papiers volants, particules, etc.) cachant un arrière-plan utile et assimilées ainsi à (lu bruit impulsionnel), sans dénaturer 15 l'image d'origine comme tel est le cas d'un filtrage linéaire appliquant une forme de moyenne non souhaitable sur la succession de pixels. Les avantages du traitement proposé ici sont multiples : la complexité et la mémoire requise sont très faibles car la mise à jour d'un pixel pour l'image n se fait seulement à 20 l'aide de la valeur traitée précédente (sortie n-1) et du pixel courant (image n). L'implémentation temps-réel est donc immédiate contrairement à unc réalisation à base de filtres médians classiques. De plus le traitement est directement applicable au cas d'une REVENDICATIONS1. Procédé de traitement de données d'une séquence vidéo comportant un bruit impulsionnel, la séquence vidéo étant formée d'une succession d'images, Caractérisé en ce qu'il comporte, pour le filtrage du bruit, l'application d'un filtrage récursif dit « du signe » et donné par : z(n) = z(n - 1) + A si y(n) > z(n - 1) z(n) = z(n - 1) - A si y(n) 2. Procédé selon la revendication 1, dans lequel les éléments y(n), z(n-1) et z(n) sont des pixels d'image de même position, caractérisé en ce que les images de la succession sont traitées pixel par pixel. 3. Procédé selon l'une des revendications précédentes, caractérisé en ce que le bruit impulsionnel est de type « poivre et sel » ou « neige ». 4. Procédé selon l'une des revendications précédentes, caractérisé en ce que le bruit impulsionnel résulte d'un rayonnement radioactif reçu par un capteur d'une caméra filmant ladite séquence vidéo. 5. Procédé selon l'une des revendications 1 et 2, caractérisé en ce que les images de ladite séquence vidéo présentent des objets en mouvement devant un arrière-plan d'intérêt et en ce que lesdits objets en mouvement dans les images sont traités comme du bruit impulsionnel. 22 6. Procédé selon l'une dcs revendications précédentes, dans lequel la succession d'images comporte un mouvement apparent d'un arrière-plan d'image dans la succession d'images. Caractérisé en ce qu'il comporte en outre : 5 - intégrer le mouvement apparent comme entrée du filtrage du signe. 7. Procédé selon la revendication 6, prise en combinaison avec la revendication 2, caractérisé en ce que l'application du filtrage du signe en cas de mouvement apparent est donnée par : z(q, n) = z(Tn(q), n - 1) + 3, si y(q , n) > z(Tn(q), n - 1) z(q, n) = z(Tn(q), n - 1) - à si y(q , n) 8. Procédé selon l'une des revendications précédentes, caractérisé en ce que, pour de 15 premières images de la succession jusqu'à une n0-ième image, on applique un filtre temporel à facteur d'oubli, sans appliquer de filtrage du signe, cc filtre temporel à facteur d'oubli étant donné par: ( n z(q, n) = Ztemp N(q,nq, )) avec zie',p(q, n) = (1- a). y(q, n) + a. zie'ip (Tu. (q), n - 1) et N(q, n) = (1- a) + a. N(Tn(q), n - 1), 20 Ztetnp n) étant une variable temporaire, et a étant un facteur d'oubli compris entre 0 et 1, z(q, n) étant alors les valeurs prises par la n-ième, image au pixel de coordonnées vectorielles q, et Tri l'estimation d'une transformation par mouvement éventuel entre l'image précédente de rang n-1 et l'image courante de rang n dans la succession, avec n inférieur à n0. 25 9. Procédé selon la revendication 8, caractérisé en ce que, en absence de mouvement entre les images successives jusqu'à l'image n0, le filtre temporel à facteur d'oubli est donné par: 23 z(n) = Merl 1(n) 1). avec z,,,,,p(n) = (1 - a)y(n) + az,emp(n - 1) 1-an Ztemp (n) étant une variable temporaire, et a étant un facteur d'oubli compris entre 0 et 1. 10. Procédé selon l'une des revendications précédentes, caractérisé en ce que, au moins 5 pour des images de la succession qui suivent une n0-ième image, on applique la combinaison du filtrage du signe à un filtre temporel à facteur d'oubli, le résultat de ladite combinaison étant donné par: s(n) l'application du Wternp (n) - - /3n-no+1 wtemp (n) étant une variable temporaire donnée par : wtemp (n) = (1 - ig)z(n) + fiwtemp(n 1), où z(n) est le résultat de 10 filtrage du signe, et /3 étant un facteur d'oubli compris entre 0 et 1. 11. Procédé selon l'une dcs revendications précédentes, caractérisé en ce qu'on choisit une valeur du coefficient A en fonction d'une valeur maximale Imax de niveau de couleur prise par les éléments d'image, et en ce que le coefficient A est inférieur à 20 Imax/255. 15 12. Procédé selon la revendication 11, caractérisé en ce que le coefficient A est compris entre 0 et 5 Imax/255. 13. Programme informatique comportant des instructions pour la mise en oeuvre du 20 procédé selon l'une des revendications 1 à 12, lorsque lesdites instructions sont exécutées par un processeur. 14. Dispositif comportant une unité de traitement pour la mise en oeuvre du procédé selon l'une des revendications 1 à 12. 25