Les travaux présentés ici sont effectués en collaboration avec Bruno Remillard (HEC Montreal) et Pierre Del Moral (LSP Toulouse). Nous présentons ici deux modèles de filtrage permettant de retrouver des cibles dans un ensemble fini. Dans cette page web, nous présentons les modèles étudiés et les simulations C++ et MATLAB.
1) Premier modèle, recherche de cibles dans une images
bruitées.
Problème : retrouver des cibles (par exemple des bateaux) dans des images bruitées.
Des bateaux, c´est-à-dire une chaîne de markov, se promènent dans une fenêtre de taille T*T. Un radar tente de les retrouver. Ce dernier observe chaque pixel de la fenêtre mais malheureusement, il fait des erreurs d'observations :
Pour les simulations MATLAB et C++, nous avons considéré, une ou deux ou trois particules qui suivent une marche aléatoire au plus proche voisin avec des probabilités de monter, descendre, aller à gauche et aller a droite. Dans le cas de deux particules on se place dans le cas où elles ne rencontrent pas.
Voici donc les résultats des simulations. Nous nous
plaçons
dans le cas d'une marche aléatoire presque symétrique.
Avec
p0=p1=0.9
ou
p0=p1=0.95.
Les
résultats sont présentés sous forme de
petits
films dont voici une image dans le cas d´une seule particule :
|
Pour la recherche d´un seul bateau (film MATLAB à télécharger) :
Pour la recherche de 2 bateaux, pour des raisons de temps de calculs nous sommes obligés de se restreindre à des fenêtre de taille 50*50 :
- Dans une fenêtre 70*70, sur 150 pas et avec p0=p1=0.9 :filmt70n150.mat.gz(728 KB)
- Dans une fenêtre 200*200, sur 500 pas et avec p0=p1=0.9 : filmt200n500.mat.gz(3.6 MB)
- Dans une fenêtre 200*200, sur 200 pas et avec p0=p1=0.9 : filmt200n200.mat.gz
- Dans une fenêtre 200*200, sur 200 pas et avec p0=p1=0.95 : filmt200n200p95.mat.gz
Pour visualiser ces films, il faut télécharger (bouton de droite de la souris) un des films, décompresser le fichier, ouvrir MATLAB et lancer les commandes suivantes (dans le cadre du film filmt70n150.mat)
- Recherche dans une fenêtre 50*50, sur 100 pas et avec p0=p1=0.9 : filmt50n100.mat.gz.
- Recherche dans une fenêtre 50*50, sur 100 pas et avec p0=p1=0.95 : filmt50n100p95.mat.gz(131 KB).
>>figureSi vous n´avez pas beaucoup de mémoire, vous pouvez lancer une image sur 5 en tapant :
>>% il est préférable d´enlever le axes de la figure
>>load filmt70n150
>>movie(M)
>>movie(M,[1:5:150])Tableaux des erreurs moyennes:
Table 1 : Erreur moyenne dans le cas d´une particule dans une fenêtre de taille 200*200.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Table 2 : Erreur moyenne dans le cas de deux particules dans une fenêtre de taille 50*50.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Conclusion : Dans tous les cas on peut
remarquer
que l´algorithme converge très vite. Si on part, à
la première itération de la loi uniforme sur toutes les
configurations
possibles, on remarque que l´on retrouve très vite les
deux
particules, dés la 20 ième itération,
l´estimation
est à un ou deux pixels de la marche aléatoire. Et
à
partir du moment où l´on a trouvé les particules on
ne les quitte plus. Remarquons de plus que d´une part on retrouve
plus facilement une particule que deux et d´autre part que le
choix
des paramètres p0 et p1 est important pour la
rapidité
de l´algorithme.
Programmes en C++ et article :
Mise en place de cette page web : le 22 janvier 2003. Si vous avez des remarques ou des suggestions, vous pouvez me contacter à l´adresse suivante : ivan.gentil@hec.ca.