update avant partiel

This commit is contained in:
Pierre-antoine Comby 2019-03-07 22:39:47 +01:00
parent cae4586bc1
commit 97e98d1b89

View file

@ -2,10 +2,16 @@
\begin{document} \begin{document}
\section{Introduction} \section{Introduction}
\subsection{Domaines d'applications} \subsection{Domaines d'applications}
Refaire le graphe stylé en TikZ % Refaire le graphe stylé en TikZ
% \begin{figure}[H] % \begin{figure}[H]
% \centering % \centering
% \definecolor{phy}{RGB}{153,132,30}
% \definecolor{algo}{RGB}{143,139,72}
% \definecolor{appstat}{RGB}{128,0,0}
% \definecolor{opti}{RGB}{30,132,153}
% \definecolor{vrob}{RGB}{102,102,255}
% \begin{tikzpicture} % \begin{tikzpicture}
% \tikzset{every node/.append style={scale=0.5}} % \tikzset{every node/.append style={scale=0.5}}
% \path[mindmap,concept color=green!50!black, text=white, % \path[mindmap,concept color=green!50!black, text=white,
@ -13,7 +19,7 @@ Refaire le graphe stylé en TikZ
% level 2/.append style={level distance=1.5cm}] % level 2/.append style={level distance=1.5cm}]
% node[concept](TI) at (0,0){Traitement D'image} % node[concept](TI) at (0,0){Traitement D'image}
% child[grow = 90, concept color = green!75!black]{ % child[grow = 90, concept color = green!75!red]{
% node[concept](ImMed){Imagerie Médicale}[clockwise from = -60] % node[concept](ImMed){Imagerie Médicale}[clockwise from = -60]
% child{node[concept](seg) {Segmentation}} % child{node[concept](seg) {Segmentation}}
% child{node[concept](therapie){Therapie}} % child{node[concept](therapie){Therapie}}
@ -22,7 +28,7 @@ Refaire le graphe stylé en TikZ
% child{node[concept](Recal){Recalage}} % child{node[concept](Recal){Recalage}}
% child{node[concept](Rec3D){Reconstruction 3D}} % child{node[concept](Rec3D){Reconstruction 3D}}
% } % }
% child[grow = 0,level distance=5cm, concept color = violet]{ % child[grow = 0,level distance=5cm, concept color=vrob]{
% node[concept](VRob){Vision Robotique} % node[concept](VRob){Vision Robotique}
% child[grow=90]{node[concept](Carto) {Cartographie}} % child[grow=90]{node[concept](Carto) {Cartographie}}
% child[grow=0]{node[concept](Ass){Assistance}} % child[grow=0]{node[concept](Ass){Assistance}}
@ -39,39 +45,38 @@ Refaire le graphe stylé en TikZ
% child[grow=180]{node[concept](prev) {Prévisions}} % child[grow=180]{node[concept](prev) {Prévisions}}
% child[grow=90]{node[concept](Surv){Surveillance}} % child[grow=90]{node[concept](Surv){Surveillance}}
% }; % };
% \path[mindmap,concept color=brown!80!white!60!green, text=white] % \path[mindmap,concept color=phy, text=white]
% node[concept](Phy) at (-6,4){Physique}; % node[concept](Phy) at (-8,4){Physique};
% \path[mindmap,concept color=blue!80!white!60!green, text=white] % \path[mindmap,concept color=algo, text=white]
% node[concept](Algo) at (-6,-4){Algorithmique}; % node[concept](Algo) at (-8,-4){Algorithmique};
% \path[mindmap,concept color=brown!80!black, text=white] % \path[mindmap,concept color=appstat, text=white]
% node[concept](AppStat) at (6,-4){Apprentissage Statistique}; % node[concept](AppStat) at (8,-4){Apprentissage Statistique};
% \path[mindmap,concept color=blue!80!white!60!green, text=white] % \path[mindmap,concept color=opti, text=white]
% node[concept](Opti) at (6,4){Optimisation}; % node[concept](Opti) at (8,4){Optimisation};
% \begin{pgfonlayer}{background} % \begin{pgfonlayer}{background}
% \draw (Phy) to[circle connection bar] (ImSat); % \draw (Phy) to[circle connection bar switch color=from (algo) to (violet)] (ImSat);
% \draw (Algo) to[circle connection bar] (ImMed); % \draw (Algo) to[circle connection bar switch color=from (algo) to (green!75!red)] (ImMed);
% \draw (Algo) to[circle connection bar] (Index); % \draw (Algo) to[circle connection bar switch color=from (algo) to (orange)] (Index);
% \draw (Phy) to[circle connection bar] (ImMed); % \draw (Phy) to[circle connection bar switch color=from (phy) to (green!75!red)] (ImMed);
% \draw (Opti) to[circle connection bar] (ImMed); % \draw (Opti) to[circle connection bar switch color=from (opti) to (green!75!red)] (ImMed);
% \draw (Opti) to[circle connection bar] (VRob); % \draw (Opti) to[circle connection bar switch color=from (opti) to (vrob)] (VRob);
% \draw (AppStat) to[circle connection bar] (VRob); % \draw (AppStat) to[circle connection bar switch color=from (appstat) to (vrob)] (VRob);
% \draw (AppStat) to[circle connection bar] (Index); % \draw (AppStat) to[circle connection bar switch color=from (appstat) to (orange)] (Index);
% \draw (seg) to[circle connection bar] (ImSat); % \draw (seg) to[circle connection bar switch color=from (green!75!red) to (violet)] (ImSat);
% \draw (Surv) to[circle connection bar] (VRob); % \draw (Surv) to[circle connection bar switch color=from (violet) to (vrob)] (VRob);
% \draw (ImSat) to[circle connection bar] (Carto); % \draw (ImSat) to[circle connection bar switch color=from (violet) to (vrob)] (Carto);
% \draw (ImSat) to[circle connection bar] (reco); % \draw (ImSat) to[circle connection bar switch color=from (orange) to (violet)] (reco);
% \draw (reco) to[circle connection bar] (ImMed); % \draw (reco) to[circle connection bar switch color=from (orange) to (green!75!red)] (ImMed);
% \draw (reco) to[circle connection bar] (ImSat); % \draw (reco) to[circle connection bar switch color=from (orange) to (violet)] (ImSat);
% \end{pgfonlayer} % \end{pgfonlayer}
% \end{tikzpicture} % \end{tikzpicture}
% \caption{Domaines et interface du Traitement d'image} % \caption{Domaines et interface du Traitement d'image}
% \end{figure} % \end{figure}
% \newpage
\subsection{Définion} \subsection{Définion}
\begin{defin} \begin{defin}
\begin{itemize} \begin{itemize}
\item Une \emph{image} est une répresentaiton continue d'une fonction $f(x,y)$ qui relie $f$ à l'intensité lumineuse du point $(x,y)$. \item Une \emph{image} est une répresentaiton continue d'une fonction $f(x,y)$ qui relie $f$ à l'intensité lumineuse du point $(x,y)$.
@ -85,12 +90,12 @@ Refaire le graphe stylé en TikZ
\includegraphics[width=0.7\textwidth]{img/mona_lisa_echantillon.png} \includegraphics[width=0.7\textwidth]{img/mona_lisa_echantillon.png}
\caption{Echantillonage spatial} \caption{Echantillonage spatial}
\end{figure} \end{figure}
\newpage
\begin{figure}[H] \begin{figure}[H]
\centering \centering
\includegraphics[width=0.7\textwidth]{img/mona_lisa_quantif.png} \includegraphics[width=0.7\textwidth]{img/mona_lisa_quantif.png}
\caption{Quantification} \caption{Quantification}
\end{figure} \end{figure}
\subsection{Notation et structure} \subsection{Notation et structure}
Pour accéder aux pixel d'une image: Pour accéder aux pixel d'une image:
@ -666,13 +671,13 @@ la méthode d'Otsu est utilisée pour effectuer un seuillage automatique à part
\begin{prop} \begin{prop}
On cherche le seuil $t$ tel que : On cherche le seuil $t$ tel que :
\[ \[
\arg\max \omega_1(t)\omega_2(t)[\mu_1(t)-\mu_2(t)]^2 t = \arg\max_{t} \omega_1(t)\omega_2(t)[\mu_1(t)-\mu_2(t)]^2
\] \]
Avec: Avec:
\begin{itemize} \begin{itemize}
\item $\omega_1(t) = \sum_{i=0}^{t}H_n(i)$ \item $\omega_1(t) = \sum_{i=0}^{t}H_n(i)$ et $\omega_2(t)= \sum_{i=t+1}^{N-1}H_n(i)$
\item $\mu_1(t) = \frac{1}{\omega_1(t)}\sum_{i=0}^{t} i \cdot H_n(i)$. \item $\mu_1(t) = \frac{1}{\omega_1(t)}\sum_{i=0}^{t} i \cdot H_n(i)$. et $\mu_2 = \frac{1}{\omega_2(t)}\sum_{i=t+1}^{N-1} i \cdot H_n(i)$
\item idem pour $\omega_2$ et $\mu_2$. \item .
\end{itemize} \end{itemize}
\end{prop} \end{prop}
\section{Estimation} \section{Estimation}
@ -775,7 +780,6 @@ retourne meilleur_modèle, meilleur_ensemble_points, meilleure_erreur
La segmentation consiste à regrouper les différents pixels de l'image en un nombre (donné) de région (peut aussi consister a une taille de région maximale, les deux, etc...). En pratique on réalise une partition de l'image La segmentation consiste à regrouper les différents pixels de l'image en un nombre (donné) de région (peut aussi consister a une taille de région maximale, les deux, etc...). En pratique on réalise une partition de l'image
\subsection{Segmentation par découpage} \subsection{Segmentation par découpage}
\begin{defin} \begin{defin}
L'idée des algorithmes de type « Split \& Merge » est de produire L'idée des algorithmes de type « Split \& Merge » est de produire
@ -789,6 +793,149 @@ La segmentation consiste à regrouper les différents pixels de l'image en un no
\end{itemize} \end{itemize}
\end{defin} \end{defin}
\paragraph{Phase de découpage}
Lors de la phase de découpage on forme le quadtree et le graphe d'adjacence:
\begin{figure}[H]
\centering
\begin{tikzpicture}
\begin{scope}
\draw (0,0) rectangle ++ (4,4);
\draw (2,0) -- ++ (0,4) (0,2) -- ++(4,0);
\draw (3,0) -- ++(0,2) (2,1) -- ++ (2,0);
\draw (1,1) node{$R_3$}
(1,3) node{$R_1$}
(3,3) node{$R_2$}
(2.5,1.5) node{$R_{41}$}
(3.5,1.5) node{$R_{42}$}
(2.5,0.5) node{$R_{43}$}
(3.5,0.5) node{$R_{44}$};
\end{scope}
\begin{scope}[shift={(8,4)},
every node/.style = {shape=circle, draw}]
\node{$R_0$}
child{ node {$R_1$}}
child{ node {$R_2$}}
child{ node {$R_3$}}
child{ node {$R_4$}
child{ node {$R_{41}$}}
child{ node {$R_{42}$}}
child{ node {$R_{43}$}}
child{ node {$R_{44}$}}};
\end{scope}
\end{tikzpicture}
\caption{Quadtree et graphe d'adjacence}
\end{figure}
\begin{rem}
L'algorithme de découpage est implantable très facilement de manière récursive
\end{rem}
\subsection{Segmentation par optimisation}
\begin{prop}
Cette fois ci on cherche à déterminier la fonction $f$ bidimensionnelle, constante par morceaux (une valeur , une région) proche
de limage I , avec une partition simple du point de vue géométrique. Pour cela on utilise la fonctionnelle de cout :
\[
K = \sum_{i}^{} \iint_{R_i}(I(x,y)-f_i)\d x \d y + \mu \sum_{j}^{}\int_{\Gamma_j}^{}dl
\]
$\Gamma_j$ sont les portions de contour entourant la région de la région
\end{prop}
\begin{rem}
Il n'existe pas de solution directe au problème de minimisation. Il y a deux techniques pour approcher la solution:
\begin{itemize}
\item méthodes variationnelles sur des courbes fermées
\item méthodes markoviennes par itération à partir dune segmentation initiale
\end{itemize}
\end{rem}
\paragraph{méthode variationnelles}
On utilise une fonction de cout $E = E_i+E_e$ tel que
\begin{itemize}
\item $ E_i = \int_{0}^{1}\alpha (C'(s))^2ds$ pénalise la longueur du contour (``snake'')
\item $E_e = \int_{0}^{1}-\nabla I(x(s),y(s))ds$ favorise l'alignement sur les forts gradients.
\end{itemize}
\paragraph{Technique markoviennes}
On teste les changements de pixel/sous-région d'une région à une autre, et on prend le meilleur (ie qui minimise la fonctionnelle). Pour cela on part souvent d'une sur-segmentation.
\section{La classification}
\paragraph{Objectif}:
\begin{itemize}
\item Obtenir une représentation simplifiée mais pertinente des données originales
\item Mettre en évidence les similiratité entre les objets.
\end{itemize}
\paragraph{Problématique de la visualisation des données}
Il est difficile de se représenter la classification de manière ``brute'' au dela de 5 paramètres on peux utiliser l'analyse en composante principale (par réduction de la dimension) ou l'analyse linéaire discriminante.
\subsection{Analyse en composantes principales}
\begin{itemize}
\item indispensable quand le nombre de variables est très grand
\item analyse de la variabilité / dispersion des données
\item objectif : décrire à partir de q < d dimensions cette variabilité
\item réduction des données a q nouveaux descripteurs
\item visualisation si q = 2 ou q = 3
\item interprétation des données : liaisons inter-variables
\end{itemize}
\paragraph{Algorithme}
\begin{enumerate}
\item recentrage des données $\vec{X} = (\vec{x}-\mu)^T$.
\item Calcul de la matrice de covariance $\Sigma$.
\item diagonalisation de $\Sigma$ et classement par valeur propres croissantes.
\item sélection des $q$ premiers vecteurs propres $C_k$
\item Calcul des valeur réduites $a_i$ qui remplacent $x_i$ par $a_{ik}= <x_i,C_k>$
\end{enumerate}
\begin{rem}
Le PCA ne prend pas en compte la notion de classe. on peux aussi utiliser l'analyse linéaire discriminante.
\end{rem}
\subsection{Analyse linéaire discriminante}
\paragraph{Algorithme}
\begin{enumerate}
\item recentrage des données $\vec{X}=(\vec{x}-\mu)^T$
\item Calcul de la matrice de covariance $\Sigma$.
\item Calcul de la matrice de covariance interclasse $\vec{B}$.
\[
\vec{B} = \sum_{k=1}^{c}n_k\frac{(\mu_k-\mu)(\mu_k-\mu\rangle)^T}{n}
\]
$k$ représente la classe
\item diagonalisation de $\Sigma^{-1}\vec{B}$ et classement par valeur propres croissantes
\item sélection des $q$ premiers vecteurs propres $C_k$.
\item Calcul des valeurs réduites $\vec{a_i}$ qui remplacent $x_i$ par $a_{ik}=<x_i,C_k>$
\item classification d'une nouvelle observation par la distatnce au centroïde le plus proche.
\item classification linéaire : médiane entre les centroïdes.
\end{enumerate}
\subsection{Intégration de la connaissance}
\subsection{Classification non supervisée - K-means}
on cherche à déterminer des ``clusters'' dans les observations. En minimisant
\[
\min_{\mu_1....\mu_k} \sum_{i=1}^{k}\sum_{x_j\in C_i}^{} (x_j-\mu_i)^2
\]
\paragraph{Fonctionnement}
\begin{verbatim}
choose mu_i , i in [1 k] // initialisation
while (any mu_i changes){
assign all x_j to closest mu
update mu_i , i in [1 k]
}
\end{verbatim}
À chaque itération la fonction objectif diminue. c'est rapide et parallèlisable.
\end{document} \end{document}