update avant partiel
This commit is contained in:
parent
cae4586bc1
commit
97e98d1b89
1 changed files with 180 additions and 33 deletions
|
@ -2,10 +2,16 @@
|
|||
\begin{document}
|
||||
\section{Introduction}
|
||||
\subsection{Domaines d'applications}
|
||||
Refaire le graphe stylé en TikZ
|
||||
% Refaire le graphe stylé en TikZ
|
||||
|
||||
% \begin{figure}[H]
|
||||
% \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}
|
||||
% \tikzset{every node/.append style={scale=0.5}}
|
||||
% \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}]
|
||||
|
||||
% 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]
|
||||
% child{node[concept](seg) {Segmentation}}
|
||||
% child{node[concept](therapie){Therapie}}
|
||||
|
@ -22,7 +28,7 @@ Refaire le graphe stylé en TikZ
|
|||
% child{node[concept](Recal){Recalage}}
|
||||
% 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}
|
||||
% child[grow=90]{node[concept](Carto) {Cartographie}}
|
||||
% 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=90]{node[concept](Surv){Surveillance}}
|
||||
% };
|
||||
% \path[mindmap,concept color=brown!80!white!60!green, text=white]
|
||||
% node[concept](Phy) at (-6,4){Physique};
|
||||
% \path[mindmap,concept color=blue!80!white!60!green, text=white]
|
||||
% node[concept](Algo) at (-6,-4){Algorithmique};
|
||||
% \path[mindmap,concept color=brown!80!black, text=white]
|
||||
% node[concept](AppStat) at (6,-4){Apprentissage Statistique};
|
||||
% \path[mindmap,concept color=blue!80!white!60!green, text=white]
|
||||
% node[concept](Opti) at (6,4){Optimisation};
|
||||
% \path[mindmap,concept color=phy, text=white]
|
||||
% node[concept](Phy) at (-8,4){Physique};
|
||||
% \path[mindmap,concept color=algo, text=white]
|
||||
% node[concept](Algo) at (-8,-4){Algorithmique};
|
||||
% \path[mindmap,concept color=appstat, text=white]
|
||||
% node[concept](AppStat) at (8,-4){Apprentissage Statistique};
|
||||
% \path[mindmap,concept color=opti, text=white]
|
||||
% node[concept](Opti) at (8,4){Optimisation};
|
||||
|
||||
% \begin{pgfonlayer}{background}
|
||||
% \draw (Phy) to[circle connection bar] (ImSat);
|
||||
% \draw (Algo) to[circle connection bar] (ImMed);
|
||||
% \draw (Algo) to[circle connection bar] (Index);
|
||||
% \draw (Phy) to[circle connection bar] (ImMed);
|
||||
% \draw (Opti) to[circle connection bar] (ImMed);
|
||||
% \draw (Opti) to[circle connection bar] (VRob);
|
||||
% \draw (AppStat) to[circle connection bar] (VRob);
|
||||
% \draw (AppStat) to[circle connection bar] (Index);
|
||||
% \draw (Phy) to[circle connection bar switch color=from (algo) to (violet)] (ImSat);
|
||||
% \draw (Algo) to[circle connection bar switch color=from (algo) to (green!75!red)] (ImMed);
|
||||
% \draw (Algo) to[circle connection bar switch color=from (algo) to (orange)] (Index);
|
||||
% \draw (Phy) to[circle connection bar switch color=from (phy) to (green!75!red)] (ImMed);
|
||||
% \draw (Opti) to[circle connection bar switch color=from (opti) to (green!75!red)] (ImMed);
|
||||
% \draw (Opti) to[circle connection bar switch color=from (opti) to (vrob)] (VRob);
|
||||
% \draw (AppStat) to[circle connection bar switch color=from (appstat) to (vrob)] (VRob);
|
||||
% \draw (AppStat) to[circle connection bar switch color=from (appstat) to (orange)] (Index);
|
||||
|
||||
% \draw (seg) to[circle connection bar] (ImSat);
|
||||
% \draw (Surv) to[circle connection bar] (VRob);
|
||||
% \draw (ImSat) to[circle connection bar] (Carto);
|
||||
% \draw (ImSat) to[circle connection bar] (reco);
|
||||
% \draw (reco) to[circle connection bar] (ImMed);
|
||||
% \draw (reco) 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 switch color=from (violet) to (vrob)] (VRob);
|
||||
% \draw (ImSat) to[circle connection bar switch color=from (violet) to (vrob)] (Carto);
|
||||
% \draw (ImSat) to[circle connection bar switch color=from (orange) to (violet)] (reco);
|
||||
% \draw (reco) to[circle connection bar switch color=from (orange) to (green!75!red)] (ImMed);
|
||||
% \draw (reco) to[circle connection bar switch color=from (orange) to (violet)] (ImSat);
|
||||
|
||||
% \end{pgfonlayer}
|
||||
% \end{tikzpicture}
|
||||
% \caption{Domaines et interface du Traitement d'image}
|
||||
% \end{figure}
|
||||
|
||||
% \newpage
|
||||
\subsection{Définion}
|
||||
|
||||
\begin{defin}
|
||||
\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)$.
|
||||
|
@ -85,12 +90,12 @@ Refaire le graphe stylé en TikZ
|
|||
\includegraphics[width=0.7\textwidth]{img/mona_lisa_echantillon.png}
|
||||
\caption{Echantillonage spatial}
|
||||
\end{figure}
|
||||
\newpage
|
||||
\begin{figure}[H]
|
||||
\centering
|
||||
\includegraphics[width=0.7\textwidth]{img/mona_lisa_quantif.png}
|
||||
\caption{Quantification}
|
||||
\end{figure}
|
||||
|
||||
\subsection{Notation et structure}
|
||||
|
||||
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}
|
||||
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:
|
||||
\begin{itemize}
|
||||
\item $\omega_1(t) = \sum_{i=0}^{t}H_n(i)$
|
||||
\item $\mu_1(t) = \frac{1}{\omega_1(t)}\sum_{i=0}^{t} i \cdot H_n(i)$.
|
||||
\item idem pour $\omega_2$ et $\mu_2$.
|
||||
\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)$. et $\mu_2 = \frac{1}{\omega_2(t)}\sum_{i=t+1}^{N-1} i \cdot H_n(i)$
|
||||
\item .
|
||||
\end{itemize}
|
||||
\end{prop}
|
||||
\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
|
||||
|
||||
|
||||
\subsection{Segmentation par découpage}
|
||||
\begin{defin}
|
||||
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{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 l’image 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
|
||||
\]
|
||||
où $\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 d’une 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}
|
||||
\]
|
||||
où $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}
|
||||
|
||||
|
|
Loading…
Reference in a new issue