Skip to content

Commit

Permalink
tp4
Browse files Browse the repository at this point in the history
  • Loading branch information
mdesco committed Nov 19, 2024
1 parent 971c0c6 commit 94196ca
Show file tree
Hide file tree
Showing 3 changed files with 259 additions and 0 deletions.
259 changes: 259 additions & 0 deletions static/courses/imn359/tp04.tex
Original file line number Diff line number Diff line change
@@ -0,0 +1,259 @@
\documentclass{article}
%%%%%%%%%%%%% Definitions %%%%%%%%%%%%%%%%%%

%%%% Largeur et tailles des marges
\oddsidemargin 0in
\evensidemargin 0in
\textwidth 6.5in

%%%%% Pour les figures, graphiques et math (amssymb)
\usepackage{color,graphicx,float,epsfig,amssymb}

%%% Pour avoir les accents %%%%%%%%%%%%%%%%%
\usepackage[latin1]{inputenc}
\usepackage[cyr]{aeguill}
\usepackage[francais]{babel}
%%%%%%%%%%


%%%%%%%%%%%%% Document %%%%%%%%%%%%%%%%%%%%%
\title{TP 4 - Au delà de Fourier \\
(DCT, DCT locale, multirésolution et ondelettes)}
\author{Maxime Descoteaux}
\date{\today}
\begin{document}
\maketitle
Vous devez rédiger un rapport
et me remettre un zip avec votre code python.
Commentez le code et assurez-vous que je puisse
reproduire vos résultats et figures.
Séparez votre code en différents fichiers pour faciliter la
lecture. Des points seront attribués pour la qualité du document
et ses figures, et la qualité du code python (10 points).


L'approximation linéaire garde que les $M$ coefficients de plus
basses fréquences dans l'espace de Fourier, c'est-à-dire les $M$
premiers coefficients. Une approximation nonlinéaire
garde que les $M$ coefficients les plus élévés de la décomposition ou
transformée. Dans ce devoir, quand vous comparez des transformées,
assurez-vous de toujours prendre les mêmes $M$.

\vspace{1cm}
\begin{enumerate}

\item {\bf Appproximations 1D. [10 points]}
À partir du \emph{piece regular} ou d'un signal 1D de votre choix,
reproduisez les
figures de mon code \emph{locDCT\_demo.py}, disponible dans la Demo08.
\begin{enumerate}
\item Illustrez votre signal. Combien de points dans votre signal?\\
(Si vous choississez un signal à vous, prenez un signal de taille
``raisonable'' et assurez-vous qu'il se découpe bien.)
\item Décrivez votre choix de taille de segment et nombres de
coefficients à couper $M$.
\item Faites des approximations linéaires et non-linéaires de votre
signal
\item Rapporter les erreures quadratiques moyennes de toutes les
approximations dans un tableau.
\end{enumerate}
\vspace{4mm}


%\vspace{1cm}
%\begin{enumerate}
% \item {\bf L'approximations multirésolution de Shannon.}
% \\
% %% Watch out avec la definition des conditions
% \begin{enumerate}
% \item On défini l'espace
% $\mathbf{V}_j$ comme l'ensemble des fonctions dont la transformée
% de Fourier a un support limité dans l'interval $[-2^{j} \pi,
% 2^{j} \pi]$.
% Démontrez que $\{\mathbf{V_j}\}_{j \in \mathbb{Z}}$ est une approximation
% multirésolution avec la fonction d'échelle suivante:
% $$
% \phi(t) = \frac{\sin \pi t}{\pi t}
% $$

% Il vous faut donc vérifier les 5 propriétés de la définition de
% multirésolution donnée en classe. \\\\
% (Indice) Le théorème d'échantillonnage vous sera utile pour montrer
% que $\{\phi(t - n)\}_{n \in \mathbb{Z}}$ forme une base orthonormale de
% $V_0$.


% \item Trouvez les filtres de décomposition passe-bas et passe-haut,
% $h$ et $g$, associés à cette multirésolution.

% %\item Montrez que la fonction $\phi$ suit la relation suivante:
% %$$
% %\phi(x) = \phi(2x) + \sum_{k \in \mathbb{Z}} \frac{2(-1)^k}{(2k+1)\pi}
% %\phi(2x - 2k - 1).
% %$$

% % \item Trouvez une expression pour l'ondelette $\psi$ associée à la
% % fonction d'échelle $\phi$.

% \end{enumerate}

% \vspace{1cm}
% \item {\bf Démontrez le théorème de reconstruction de Haar. }

% Supposons que
% $$
% f = f_0 + w_0 + w_1 + ... + w_{j-1}
% $$
% avec
% $$
% f_0(x) = \sum_{k\in \mathbb{Z}} a_k^0 \phi(x-k) \in V_0 \quad
% \textrm{et} \quad
% w_{j'}(x) = \sum_{k\in\mathbb{Z}} b_k^{j'} \psi(2^{j'}x - k) \in W_{j'}
% $$
% pour $0 \leq j' < j$. Alors,
% $$
% f(x) = \sum_{k\in\mathbb{Z}} a_l^j \phi(2^jx - l) \in V_j
% $$
% o\`u les $a_l^{j'}$ sont obtenus récursivement pour $j' = 1$, ensuite
% $j' = 2$, jusqu'à $j' = j$ avec la relation suivante:
% $$
% a_l^{j'} = \left \{
% \begin{array}{ll}
% a_k^{j'-1} + b_k^{j'-1} & \textrm{si $l = 2k$ est pair} \\
% a_k^{j'-1} - b_k^{j'-1} & \textrm{si $l = 2k+1$ est impair}
% \end{array} \right .
% $$
% \vspace{1cm}
% \item {\bf Splines cubiques 1D}.
% Faites la décompositions en ondelettes du signal 'piece-regular'
% à partir des splines cubiques. Utilisez les valeurs du filtre miroir
% conjugué $h$ dans la table 7.1 donnée en classe.
% Je vous donne les fonctions suivantes pour vous aider:
% (\emph{subsampling}, \emph{upsampling}, \emph{reverse}, \emph{cconv})
% \\

% i) Montrez les détails et les
% approximations, $W_j$ et $V_j$, intermédiaires.\\


% ii) Montrez l'orthogonalité de la transformation d'ondelettes
% (conservation d'énergie). Est-ce que l'énergie est parfaitement
% conservée? Pourquoi? \\

% iii) Faites la reconstruction en montrant les reconstructions
% partielles du signal.\\

% iv) Calculez l'erreur sur le signal reconstruit. \\

% v) Pour les échelles $2^j$, $4 \leq j \leq 8$, visualisez la forme
% des ondelettes provenant de votre analyse.
% \vspace{1cm}


% \item {\bf Ondelettes de Daubechies 2D.}
% À partir des coefficients du filtre h de la Table 7.2 et de la même
% image que pour la question précédente, implémentez
% la décomposition/reconstruction 2D en ondelettes de Daubechies avec
% $p=1, 2, 4$ et 10 moments nuls. \\

% i) Faites les décompositions et reconstructions en montrant les
% détails, approximations et reconstructions partielles intermédiares
% (semblable à la question 4).
% Que remarquez-vous? Plus
% particulièrement, notez vos observations sur les régions régulières
% et aux contours de l'image.\\

% ii) Faites un tableau des erreurs de reconstruction de l'image,
% dépendant de l'ondelette utilisée. Que remarquez-vous?\\

% iii) Pour chaque $p$, générez la forme des ondelettes 2D pour les
% orientations diagonal, horizontal, vertical. Les fonctions mesh ou
% surf vous serons utile. Que remarquez-vous?\\
% \vspace{1cm}

\item {\bf Approximations dans les bases de Fourier et d'ondelettes}
sur une image de votre choix. \\
\begin{enumerate}
\item [5 pts] a) {\bf Approximation de Fourier.} L'approximation linéaire garde
que les $M$ coefficients de plus basses fréquences dans l'espace
de Fourier. Faites l'approximation linéaire dans Fourier gardant que
$M$ coefficients, pour 3 $M$ différents et rapportez le SNR des
images approximées ainsi que les erreurs relatives d'approximation
sur les \emph{plot}. (Vous avez déjà fait cela dans le TP3)

\item [10 pts] b) {\bf Approximation avec cosinus discrets et des cosinus discrets
locaux.} En premier temps, faites l'approximation linéaire avec
une base de cosinus discrets (DCT) et une base de cosinus discrets
locaux (locDCT), gardant que les $M$ coefficients de plus basses
fréquences, pour 3 $M$ différents et rapportez le SNR des images
approximées ainsi que les erreurs relatives d'approximation sur les
\emph{plot}. Utilisez les
fonctions \emph{dct2.m} et \emph{idct2.m}, données en classe (vous
devez étendre ce que j'ai déjà fait en 1D en 2D).

\item [10 pts] c) {\bf Approximation d'ondelettes de Haar périodiques}. À partir
de votre ondelette de Haar, faites
l'approximation linéaire sur cette base en utilisant 3 $M$
différents. Rapportez le SNR des images approximées et les erreurs relatives
d'approximation sur les
\emph{plot}.
%Vous pouvez faire la version algébrique (comme en
%classe) ou celle avec les convolutions circulaires.

%% \item [BONUS - 20 pts] d) {\bf Approximation d'ondelettes de Daubechies}. Utilisez une
%% des ondelettes de Daubechies (e.g. [h, g] $=$
%% compute\_wavelet\_filter('Daubechies', 4) pour l'ondelette de
%% Daubechies de support 4). Faites l'approximation linéaire pour 3 $M$
%% différents. Rapportez le SNR des images approximées et les erreurs
%% relatives d'approximation. Pour celle-ci, vous n'aurez pas le choix
%% que d'implémenter la version avec la convolution.

\item [10 pts] d) {\bf Approximations nonlinéaires.} Une approximation nonlinéaire
garde que les $M$ coefficients les plus élévés de la décomposition
dans une base. Faites les approximations nonlinéaires
avec les bases des parties (a) à (d).

\item [10 pts] e) Faites un {\bf tableau des SNR et des erreurs
d'approximations linéaires et nonlinéaires}. Que remarquez-vous?

%% \item [BONUS - 10 pts] f) Tracez la courbe des erreurs
%% d'approximation en fonction de $M$. Pour un graphe optimal, mettez
%% sur l'axe x, $\log_{10}(M/N)$ et sur l'axe y, $\log_{10}( |f - f_M|^2 /
%% |f|^2)$, ou $N$ est le nombre de pixel dans l'image, $M$ le nombre
%% de coefficients, $f$ l'image originale et $f_M$ l'image approximée. \\
%% Utilisez plus de 3 $M$ pour tracer cette courbe. Pensez à
%% votre affaire! Il y a moyen de faire ça très simplement et rapidement. \\
%% (indice: Conservation d'énergie)

\end{enumerate}

\begin{figure}[!b]
\begin{center}
\includegraphics[height=12cm]{image.eps}
\caption{4 images classiques en traitement d'images à approximer
nonlinéairement.}
\end{center}
\end{figure}




\newpage


\item {\bf Approximations sur des images de différentes complexités}. \\

\begin{enumerate}
\item [20 pts] i) Faites les approximations nonlinéaires pour les 4 images de la
figure 1 (regular3, phantom, lena et le mandrill). Que
remarquez-vous? Les approximations dépendent-elles de la
''complexité'' de l'image? Expliquez.

\item [5 pts] ii) Selon vous, quelle est la meilleure base?
Pourquoi?

\end{enumerate}
\end{enumerate}


\end{document}
Binary file removed static/courses/imn359/tp04_2023.pdf
Binary file not shown.
Binary file added static/courses/imn359/tp04_data.zip
Binary file not shown.

0 comments on commit 94196ca

Please sign in to comment.