---
title: INFO911 (4a) Filtres et convolution
type: slide
slideOptions:
transition: slide
progress: true
slideNumber: true
---
# Filtres et convolution
## (Traitement et Analyse d'Image 4a)
> [name=Jacques-Olivier Lachaud][time=Novembre 2020][color=#907bf7]
> (Les images peuvent être soumises à des droits d'auteur. Elles sont utilisées ici exclusivement dans un but pédagogique)
###### tags: `info911`
Retour à [INFO911 (Main) Traitement et analyse d'image](https://codimd.math.cnrs.fr/s/UE_B59gMy)
---
# Traitement et analyse d'image
```graphviz
digraph summary{
node [color=Red,fontname=Courier,shape=box] //All nodes will this shape and colour
edge [color=Blue] //All the lines look like this
rankdir="LR"
resolution=72
monde [label="Monde réel", shape=ellipse]
subgraph cluster_imagerie {
label="Vision par ordinateur"
acquisition [label="Acquisition", shape=box]
traitement [label="Traitement", shape=box]
segmentation [label="Segmentation"]
reconnaissance [label="Reconnaissance"]
{rank=same acquisition traitement}
{rank=same segmentation reconnaissance}
}
utilisation [label="Utilisation", shape=ellipse]
//warning [label="Don't go overboard", color=Blue, fontcolor=Red,fontsize=24,style=filled, fillcolor=green,shape=octagon]
//end [label="Draw your graph!", shape=box, style=filled, fillcolor=yellow]
monde->acquisition [label="Quantités physiques"]
acquisition->traitement [label="Image", fontcolor=red]
traitement->traitement [label="Image", fontcolor=red]
traitement->segmentation [label="Image + ...", fontcolor=blue]
segmentation->reconnaissance [label="Régions/Formes + ...", fontcolor=blue]
reconnaissance->utilisation [label="Objets identifiés"]
//start->warning
//next->end [label="Getting Better...", fontcolor=darkblue]
}
```
Acquisition: caméra, scanners, lasers, radars, ...
Traitement: restauration, rééchantillonage, filtrages, transfert de couleurs, ...
Segmentation: seuillage, régions homogènes, détection de contours, ...
Reconnaissance: mesures géométriques, descripteur de formes, indexation, ...
---
# Filtrage et convolution
:::success
Construire une théorie et des outils qui modélise toutes les opérations raisonnables sur les images !
Souvent appelé **Traitement du signal**
:::
---
# Filtre sur une fonction 1D
On appelle ==filtre== une fonction $F$ qui transforme une fonction en une autre.
$g_1(x) \longrightarrow \fbox{F } \rightarrow g_2(x)$
On s'intéresse à des filtres particuliers:
* **linéaire**, pour tout $\alpha \in \mathbb{R}$
$\forall g : \mathbb{R} \rightarrow \mathbb{R}, \forall x, (F \circ \alpha g)(x) = \alpha ( F \circ g )(x).$
* **invariant par translation**: on note $\tau_t$ la fonction de translation d'une fonction de $t$,
$\forall g : \mathbb{R} \rightarrow \mathbb{R}, \forall x, (\tau_t \circ (F \circ g))(x) = ( F \circ ( \tau_t \circ g ) )(x).$
:::info
En électronique les filtres transforment une entrée $e(t)$ en une sortie $s(t)$.
Invariance par translation => filtre a la même réponse à des temps différents
linéaire => augmentation d'amplitude augmente la réponse
:::
---
# Convolution de fonctions 1D
Soit 2 fonctions $f$ et $g$, leur convolution est une fonction définie par:
$$
\forall x, f \ast g (x) := \int_{-\infty}^{\infty} f(t) g(x-t)dt =\int_{-\infty}^{\infty} f(x-t) g(t)dt
$$
|  | |  |
|:--------:|:--------:|:--------:|
| $f$ | $g$ | $f \ast g$ |
---
## Calcul de la convolution
Calcul au point $a=1$ (marqué par la barre verte)
|  |  |
| -------- | -------- |
| $f$ symétrisé puis translaté de $a$ | $f \ast g (a)$ |
---
## Calcul de la convolution
Calcul au point $a=3$ (marqué par la barre verte)
|  |  |
| -------- | -------- |
| $f$ symétrisé puis translaté de $a$ | $f \ast g (a)$ |
---
## Filtre moyenneur
C'est un filtre centré en 0, positif, d'intégrale 1, i.e. $\int f(x)dx=1$
|  |  |  |
|:------------------------------------------------------------------------------------------------:|:-------------------------------------------------------------------------------------------:|:--------------------------------------------------------------------------------------------------:|
|  |  |  |
| $f$ | $g$ | $f \ast g$ |
---
## Filtre moyenneur
Que se passe-t-il lorsque $f(x)$ est de plus en plus concentré en 0 ?
|  |  |  | ? |
| ------------------------------------------------------------------------------------------ |:--------------------------------------------------------------------------------------------------:|:-------------------------------------------------------------------------------------------:|:---:|
| | $f$ | $g$ | $f \ast g$ |
---
## Filtre moyenneur
Que se passe-t-il lorsque $f(x)$ est de plus en plus concentré en 0 ?
|  |  |  |  |
| --- | -------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------ |
On retrouve $g$ ! Leur limite s'appelle ==distribution $\delta_0$ de Dirac==
:::success
C'est l'identité sur les convolutions: $\forall x, \delta_0 \ast g (x) = g \ast \delta_0(x)= g(x)$
Si on place $\delta$ en $a$, translation: $\forall x, \delta_a \ast g (x) = g \ast \delta_a(x)= g(x-a)$
:::
---
## Calcul de la convolution avec autres fonctions
|  |  | |
| -------- | -------- | -------- |
| $f$ | $f$ symétrisé puis translation de $a$ | $f \ast g(a)$ |
---
# Propriétés élémentaires des convolutions
* bilinéarité: $f \ast( g + \lambda h) = f \ast g + \lambda f \ast h$, pour tout nombre $\lambda$
* associativité: $f \ast (g \ast h) = (f \ast g) \ast h$
* commutativité : $f \ast g = g \ast f$
* élément neutre : $f \ast \delta_0 = \delta_0 \ast f = f$
* translation: $\tau_t \circ f = \delta_t \ast f$
:::info
Se montre par simples calculs avec les intégrales.
:::
:::warning
On rendra tout ça numérique en remplaçant des fonctions $f(x)$ par des tableaux $f[i]$ et les intégrales par des sommes.
:::
---
# Propriétés fondamentales des filtres
:::success
Tout filtre $F$ **linéaire** et **invariant par translation** est une ***convolution*** !
A tout tel $F$, il existe une fonction $h(x)$ appelée sa ==réponse impulsionnelle== telle que
$\forall g, F \circ g = h \ast g$
Et on peut trouver $h$ ainsi: $h = F \circ \delta_0$
:::
:::info
En électronique, on peut avoir un composant $F$ et on trouve $h$ en envoyant une impulsion très courte et très énergétique
:::
:::info
En informatique, on choisit juste directement la réponse impulsionnelle $h$.
---
# Notes
- la bonne théorie est celle des distributions (pas les fonctions)
- permet d'avoir des dérivées même sur des fonctions non dérivables !
- très important en électronique, traitement du signal et physique
- mais aussi en traitement du son et des images
- la convolution est à la base des réseaux de neurones convolutionnels et de l'apprentissage profond.