FR 3045195 A1 20170616 FR 1562142 A 20151210 1 DETECTION ET SUIVI DE RAILS DANS UN FLUX VIDEO DESCRIPTION DOMAINE TECHNIQUE La présente invention concerne la détection et le suivi de rails dans un flux vidéo. Elle peut être mise en oeuvre par exemple dans le cadre d'une surveillance d'intrusion sur la voie à l'avant d'un train, métro ou tramway en mouvement, ou d'une détection automatique des signaux ferroviaires, la position des rails permettant de guider la recherche des signaux qui s'adressent au train équipé du système. Elle peut encore être utilisée pour la conduite automatique d'un train. ÉTAT DE LA TECHNIQUE ANTÉRIEURE La thèse intitulée « Détection de rails, caractérisation de croisements et localisation de trains sur la trajectoire d'un métro automatique » de Jorge Corsino Espino, Ecole Nationale Supérieure des Mines de Paris, 2014, divulgue une méthode nécessitant une calibration caméra et utilisant une transformation homographique de l'image pour obtenir une vue de dessus. La méthode comporte des recherches indépendantes des rails gauche et droit respectivement, et utilise un modèle de rails peu flexible (polynôme du second degré seulement), dédié au métro automatique. Elle utilise également un filtre de Kalman pour le suivi. Ce type de filtre est peu réactif et il rend complexe le fait de lier les mesures à la détection des rails. En outre, cette méthode ne prévoit pas de changement de voie lors d'une bifurcation pendant le suivi de rails. L'article intitule « Track and turnout detection in video-signals using probabilistic spline curves », de R. Ross, dans « Intelligent Transportation Systems (ITSC), 2012 », divulgue une méthode pour le suivi et la détection de rails qui utilise une spline cubique pour la modélisation de la courbure de rails. Ce modèle est plus flexible que celui utilisé dans le document précédent. Cependant, cette spline est située dans le repère 3D du monde puis projetée dans l'image à l'aide de la connaissance de la calibration de la 3045195 2 caméra, de sa position par rapport aux rails et d'un modèle de mouvement du train et de sa vitesse. Cette projection est complexe. Cette méthode met en oeuvre un filtre de Kalman pour le suivi. Cette méthode est complexe à mettre en place car elle nécessite un modèle complet du train ainsi que la connaissance du déplacement du train sur les voies. 5 D'une façon générale, les méthodes basées sur une transformation entière de l'image, telle que la transformation homographique de l'image, nécessitent un temps de calcul important. De plus, cela introduit du flou pour les points les plus éloignés de la représentation transformée des rails, ce qui nuit à la détection des contours. Les techniques présentées dans les documents précédents nécessitent 10 la connaissance précise des paramètres internes de la caméra (calibration) ainsi que le positionnement précis de celle-ci par rapport au plan contenant les rails. Une phase d'instrumentation lourde est donc nécessaire lors de l'installation du système. En outre, les variations du plan du sol ainsi que les effets dus au tangage et roulis du train imposent une mise à jour régulière de ces paramètres par une méthode analysant la convergence 15 des points de fuite de droites détectées dans l'image. Cette mise à jour est cependant sujette aux erreurs. Pour pallier les difficultés dues à la calibration des systèmes des documents précédents et s'affranchir du flou des points les plus éloignés de la représentation transformée des rails, on peut se tourner vers l'article intitulé « Rail 20 Extraction for Driver Support in Railways » de B.T. Nassu and M.Ukai, dans « Intelligent Vehicles Symposium (IV), 2011 ». Ce document expose une méthode complexe, utilisant un grand nombre de paramètres qui ont été optimisés par un algorithme génétique. La méthode propose deux approches différentes pour les rails proches et lointains. Les rails proches sont recherchés à l'aide de patrons ou modèles pré-calculés mais il n'est pas 25 précisé comment sont générés ces modèles. Pour les rails lointains, les rails gauches et droits sont détectés séparément, ce qui rend l'estimation plus fragile. En outre, cette méthode ne prévoit pas de changement de voie lors d'une bifurcation pendant le suivi de rails. Enfin, cette méthode de suivi des rails est assez heuristique. 3045195 3 EXPOSÉ DE L'INVENTION L'invention vise à résoudre les problèmes de la technique antérieure en fournissant un procédé de détection et suivi de rails dans des images d'un flux vidéo, caractérisé en ce qu'il comporte, pour au moins une image du flux vidéo, les étapes de : 5 Formation d'une image de contours de rails, Filtrage particulaire d'un ensemble de modèles de représentation de rails en fonction de l'image de contour de rails, chaque modèle étant défini par des paramètres qui comportent les abscisses de points de contrôle d'une représentation d'un axe central des rails dans un repère défini dans l'image et des coefficients d'une fonction 10 linéaire représentant la distance entre la représentation de l'axe central des rails et respectivement des représentations des rails gauche et droit en fonction de l'ordonnée dans le repère de l'image, de manière à déterminer un ensemble de modèles pondérés, Estimation de la position des rails dans l'image en fonction de l'ensemble de modèles pondérés. 15 Grâce à l'invention, la détection et le suivi de rails peuvent être réalisés en temps réel dans le flux d'images vidéo. La modélisation utilisée par l'invention permet de s'affranchir de la connaissance géométrique du système et des paramètres de la caméra pour déterminer la position de celle-ci par rapport aux rails. Par conséquent, grâce à l'invention aucun 20 processus de calibration de la caméra n'est nécessaire. Selon l'invention, les rails sont modélisés directement dans l'image, sans transformation homographique de l'image ni des points détectés en « vue de dessus ». Une telle transformation aurait pour but de s'affranchir de l'effet de perspective sur l'écartement des rails (plus on s'éloigne plus cet écartement diminue). 25 Un autre avantage de l'invention est qu'elle repose sur une modélisation des deux rails ainsi que de leur écartement considérés comme un tout. Ainsi, il ne peut pas y avoir de divergence dans le tracé des rails. En outre, la modélisation utilisée par l'invention nécessite moins de paramètres que les modélisations dans lesquelles les deux rails sont modélisés indépendamment l'un de l'autre. 3045195 4 La modélisation utilisée par l'invention permet aussi de gérer le cas où aucun point de contour n'est détecté sur l'un des deux rails. La modélisation utilisée par l'invention est suffisamment souple pour bien s'adapter aux différentes configurations de rails rencontrées avec un nombre réduit 5 de paramètres, N+2 avec N compris entre 4 et 6. En particulier, cette modélisation est plus souple que les modélisations formées par des polynômes du deuxième degré. L'invention met en oeuvre un filtre particulaire qui est plus réactif qu'un filtre de Kalman. Selon une caractéristique préférée, le procédé de détection et suivi de 10 rails comporte en outre une étape d'initialisation à laquelle sont déterminés les coefficients de la fonction linéaire représentant la distance entre la représentation de l'axe central des rails et respectivement les représentations des rails gauche et droit en fonction de l'ordonnée dans le repère de l'image. Cette initialisation est effectuée une fois pour toutes. 15 Selon une caractéristique préférée, la représentation de l'axe central des rails est une spline cubique. Ce type de représentation est bien adapté aux traitements effectués pour détecter et suivre les rails. Selon une caractéristique préférée, l'ensemble de modèles de représentation de rails utilisé pour une image courante du flux vidéo qui n'est pas la 20 première image du flux vidéo est déterminé par ré-échantillonnage et déplacement des modèles de représentation de rails pondérés d'une image précédente dans le flux vidéo. Cette détermination implique des calculs qui sont rapides à effectuer. Selon une caractéristique préférée, le filtrage particulaire de l'ensemble de modèles de représentation de rails comporte le calcul d'un poids pour chaque modèle 25 de l'ensemble, le poids d'un modèle représentant l'adéquation du modèle à l'image de contours. Selon une caractéristique préférée, le calcul du poids d'un modèle donné comporte les étapes de : Calcul de la somme des valeurs de pixels de l'image de contours qui sont 30 proches des rails du modèle donné, pour chaque ligne du modèle donné, 3045195 5 Décrémentation du poids du modèle donné, à chaque fois que la somme calculée pour une ligne est nulle, Sommation du poids du modèle donné et de la somme des valeurs de pixels de l'image de contours qui sont proches des rails du modèle donné, à chaque fois 5 que la somme calculée pour une ligne n'est pas nulle, Elévation à une puissance supérieure à 2 du poids du modèle donné, après que les étapes de calcul, décrémentation et sommation aient été effectuées pour toutes les lignes du modèle donné. Selon une caractéristique préférée, l'estimation de la position des rails 10 dans l'image comporte la détermination de paramètres d'estimation, un paramètre d'estimation étant calculé par la somme des paramètres correspondants de l'ensemble des modèles pondérés déterminés à l'étape de filtrage particulaire, chacun des paramètres étant pondéré par leur poids respectif du modèle auquel il appartient. Selon une caractéristique préférée, l'estimation de la position des rails 15 est pondérée en fonction de sa correspondance à l'image de contour de rails et son poids est comparé à un seuil de poids. Selon une caractéristique préférée, le procédé de détection et suivi de rails comporte en outre des étapes de : Calcul de la moyenne de l'abscisse d'un point de contrôle sur une 20 fenêtre temporelle glissante d'estimations de la position des rails consécutives, Comparaison de l'abscisse courante du point de contrôle d'une estimation de la position courante des rails à la moyenne calculée, Détection d'un changement de voie si l'écart est supérieur à un seuil d'écart. 25 Selon une caractéristique préférée, le procédé de détection et suivi de rails comporte une réinitialisation si le poids de l'estimation de la position des rails est inférieur au seuil de poids ou si un changement de voie est détecté ou encore lorsque le procédé est remis en marche après un arrêt. 3045195 6 L'invention concerne aussi un dispositif de détection et suivi de rails dans des images d'un flux vidéo, caractérisé en ce qu'il comporte, pour au moins une image du flux vidéo : Des moyens de formation d'une image de contours de rails, 5 Des moyens de filtrage particulaire d'un ensemble de modèles de représentation de rails en fonction de l'image de contour de rails, chaque modèle étant défini par des paramètres qui comportent les abscisses de points de contrôle d'une représentation d'un axe central des rails dans un repère défini dans l'image et des coefficients d'une fonction linéaire représentant la distance entre la représentation de 10 l'axe central des rails et respectivement des représentations ses rails gauche et droit en fonction de l'ordonnée dans le repère de l'image, de manière à déterminer un ensemble de modèles pondérés, Des moyens d'estimation de la position des rails dans l'image en fonction de l'ensemble de modèles pondérés. 15 Le dispositif présente des avantages analogues à ceux précédemment présentés. Dans un mode particulier de réalisation, les étapes du procédé selon l'invention sont mises en oeuvre par des instructions de programme d'ordinateur. En conséquence, l'invention vise aussi un programme d'ordinateur sur 20 un support d'informations, ce programme étant susceptible d'être mis en oeuvre dans un ordinateur, ce programme comportant des instructions adaptées à la mise en oeuvre des étapes d'un procédé tel que décrit ci-dessus. Ce programme peut utiliser n'importe quel langage de programmation, et être sous la forme de code source, code objet, ou de code intermédiaire entre code 25 source et code objet, tel que dans une forme partiellement compilée, ou dans n'importe quelle autre forme souhaitable. L'invention vise aussi un support d'informations lisible par un ordinateur, et comportant des instructions de programme d'ordinateur adaptées à la mise en oeuvre des étapes d'un procédé tel que décrit ci-dessus. 3045195 7 Le support d'informations peut être n'importe quelle entité ou dispositif capable de stocker le programme. Par exemple, le support peut comporter un moyen de stockage, tel qu'une ROM, par exemple un CD ROM ou une ROM de circuit microélectronique, ou encore un moyen d'enregistrement magnétique, par exemple une 5 disquette ou un disque dur. D'autre part, le support d'informations peut être un support transmissible tel qu'un signal électrique ou optique, qui peut être acheminé via un câble électrique ou optique, par radio ou par d'autres moyens. Le programme selon l'invention peut être en particulier téléchargé sur un réseau de type Internet. 10 Alternativement, le support d'informations peut être un circuit intégré dans lequel le programme est incorporé, le circuit étant adapté pour exécuter ou pour être utilisé dans l'exécution du procédé selon l'invention. BRÈVE DESCRIPTION DES DESSINS D'autres caractéristiques et avantages apparaîtront à la lecture de la 15 description suivante d'un mode de réalisation préféré, donné à titre d'exemple non limitatif, décrit en référence aux figures dans lesquelles : La figure 1 représente un procédé de détection et suivi de rails selon un mode de réalisation de la présente invention, La figure 2 représente un modèle de représentation de rails utilisé dans 20 le procédé de la figure 1, selon un mode de réalisation de la présente invention, La figure 3 représente une initialisation effectuée dans le procédé de la figure 1, selon un mode de réalisation de la présente invention, La figure 4 représente des étapes de filtrage particulaire mises en oeuvre dans le procédé de la figure 1, selon un mode de réalisation de la présente invention, 25 La figure 5 représente des étapes de pondération des modèles mises en oeuvre dans le procédé de la figure 1, selon un mode de réalisation de la présente invention, La figure 6 représente des étapes de réinitialisation mises en oeuvre dans le procédé de la figure 1, selon un mode de réalisation de la présente invention, et 3045195 8 La figure 7 représente un dispositif de mise en oeuvre du procédé de la figure 1, selon un mode de réalisation de la présente invention. EXPOSÉ DÉTAILLÉ DE MODES DE RÉALISATION PARTICULIERS Selon un mode de réalisation préféré, représenté à la figure 1, le 5 procédé de détection et suivi de rails dans un flux d'images vidéo comporte des étapes E0 à E7. La mise en oeuvre du procédé suppose qu'une caméra soit préalablement installée à l'avant d'un train de manière à filmer dans une direction parallèle à l'axe de déplacement du train et donc parallèle à l'axe des rails. 10 L'étape E0 est une initialisation qui permet de déterminer l'écartement des rails vu depuis la caméra. L'initialisation dépend d'un modèle de représentation de rails qui sera utilisé dans la suite. Comme représenté à la figure 2, un repère (0, x, y) est défini dans l'image et le modèle de représentation de rails est constitué de la manière suivante : 15 - l'axe central inter-rails AC est représenté par une spline cubique à N points de contrôles Po à PN-1, - la distance A entre l'axe central et les rails gauche RG et droit RD est représentée par une fonction linéaire par rapport à la hauteur y dans l'image : A(y)=a*y+b 20 Il s'agit donc d'un modèle de représentation de rails à N+2 paramètres, où N représente le nombre de points de contrôle dans l'image. Dans l'exemple représenté, N est égal à 6. Les points de contrôle Po à P5 ont des ordonnées fixes yo à y5 et des abscisses xo à x5. Ces points de contrôle constituent six paramètres du modèle. Les deux autres paramètres sont les coefficients a et b de la fonction linéaire représentant la 25 distance entre l'axe central et les rails gauche et droit en fonction de la hauteur y dans l'image. Le sol sur lequel sont disposés les rails est supposé plan et l'axe de prise de vue de la caméra est parallèle au plan du sol. Dans le cas d'une projection de perspective, l'écart A entre l'axe central AC et les rails latéraux RG et RD est linéaire par 3045195 9 rapport à la hauteur y dans l'image. Les paramètres a et b de la fonction dépendent de la distance inter-rails, de la hauteur de la caméra et de l'angle d'inclinaison de la caméra par rapport aux rails ainsi que de paramètres internes de celle-ci, selon la formule : A= L .cos(a).y L .(cos(a).yp + f .sin(a)) 2.Hc 2.Hc 5 Où L représente la distance inter-rails, Hc la hauteur de la caméra par rapport aux rails, a l'angle d'inclinaison de la caméra par rapport aux rails, f la focale de la caméra en pixels et yp l'ordonnée du point principale dans l'image. En pratique, les paramètres a et b ne sont pas calculés selon cette équation mais ils sont estimés lors de l'étape d'initialisation E0 du suivi à partir de la 10 position des rails dans l'image, donnée par l'utilisateur. Ainsi, aucune connaissance à priori sur la caméra ni sur sa position par rapport aux rails n'est nécessaire. L'étape d'initialisation E0 est donc effectuée une fois pour toutes, tant que la position de la caméra n'est pas modifiée. L'utilisateur définit la position des deux rails dans l'image, par exemple en désignant au moins deux points par rail en les pointant 15 avec une souris d'ordinateur ou par tout autre moyen. Les paramètres a et b sont ensuite estimés et plusieurs hypothèses de modèles de rails sont générées aléatoirement à partir de la position des rails donnée par l'utilisateur comme exposé dans la suite. Il est précisé que, sauf mention contraire, pour alléger la description 20 suivante, on parle de l'axe central et des rails gauche et droit pour désigner leur représentation dans l'image. Comme représenté à la figure 3, deux points par rail sont déterminés dans l'image. Les points sont référencés G1, G2, Dl et D2. Il est bien-sûr possible de déterminer plus de deux points par rail. On a tracé en trait plein les droites gauche DG et 25 droite DD joignant respectivement les points G1 et G2 du rail gauche et les points D1 et D2 du rail droit. Un axe A représente l'axe central AC des rails. Les coefficients a et b sont déterminés à partir des droites gauche DG et droite DD ainsi que de l'axe central AC. La zone ZV de variation de l'axe central AC, c'est-à-dire les abscisses possibles pour les points de contrôle de la spline cubique, est un quadrilatère. Plus on 3045195 10 s'éloigne dans l'image, c'est-à-dire plus l'ordonnée y diminue dans le repère tel que défini, plus la zone ZV est large afin de permettre à la spline de s'adapter aux courbures des rails. Trois exemples de splines générées aléatoirement Si, S2 et S3 sont représentées. 5 Les étapes suivantes E2 à E7 sont réalisées pour toutes les images du flux vidéo, soit en temps réel, soit sur le flux vidéo enregistré. Il est à noter que lorsque le système a été arrêté ou en cas de perte momentanée des rails ou encore en cas de détection d'un changement de voie, l'étape E2 est précédée d'une étape El qui est décrite dans la suite. 10 L'étape E2 est une détection des contours des rails dans une image courante IM, du flux vidéo fourni par la caméra, où i est un indice représentant le rang de l'image dans le flux. Pour cela, l'image est filtrée par un filtre de Canny ou détecteur de Canny, qui est classique en traitement d'image pour la détection des contours. Le filtrage 15 de l'image IM, est basé sur le calcul du gradient de l'intensité lumineuse dans l'image et le seuillage de la norme du gradient par hystérésis. Les paramètres de cette méthode sont la valeur de l'écart des filtres gaussiens utilisés pour le calcul du gradient ainsi que les valeurs hautes et basses du seuillage par hystérésis. De préférence, des valeurs assez basse de seuillage (en pratique de 5 à 20 10 niveaux de gris) sont choisies afin d'obtenir suffisamment de contours sur les rails même dans des conditions difficiles où l'image manque de contraste. Cela peut provoquer beaucoup de contours parasites dans les autres cas. Afin de réduire ces contours parasites, les contours sont tout d'abord filtrés en fonction de l'angle du gradient qui leur est associé afin de ne conserver que les 25 contours dont la direction est compatible avec celle attendue pour les rails. En outre, sur les zones fortement texturées, comme le ballast entourant les rails, beaucoup de petits contours persistent. Ces contours peuvent perturber l'estimation de la position des rails et augmenter le temps de traitement ultérieur. Les contours isolés constitués de moins 10 pixels sont donc de préférence supprimés. 3045195 11 Le résultat de l'étape E2 de détection de contours pour une image IM, du flux vidéo est une image de contours de rails IC,, sous la forme d'une image binaire. En variante, d'autres modes de filtrage peuvent être mis en oeuvre, comme une méthode de détection des rails basée sur un apprentissage statistique de leur 5 apparence visuelle. Dans ce cas l'image obtenue n'est pas binaire mais est une image pondérée, le poids affecté à chaque pixel correspondant à une probabilité que le pixel fasse partie de la représentation d'un rail dans l'image du flux vidéo. Pour une image de contours de rail donnée IC,, l'étape suivante E3 est un filtrage particulaire de l'ensemble des modèles de représentation de rails NA, en 10 fonction de l'image de contour de rails, de manière à déterminer un ensemble de modèles pondérés. Le filtrage particulaire qui est décrit dans la suite est basé sur un ensemble de M modèles MJ, où M est un entier valant par exemple 500 et j est un indice représentant le rang du modèle courant dans l'ensemble de modèles. Comme 15 précédemment exposé, chaque modèle NA, est défini par N+2 paramètres X,k, où j varie entre 0 et (M-1) et k est un indice variant entre 0 et (N+1). Les N premiers paramètres du modèle courant NA, sont les abscisses de N points de contrôle dans l'image. Les ordonnées de ces N points de contrôle sont prédéterminées. Les deux derniers paramètres sont les coefficients a et b de la fonction linéaire représentant la distance entre l'axe central des 20 rails et les rails gauche et droit par rapport à la hauteur y dans l'image. Pour la première image de contours de rails du flux vidéo, l'ensemble de modèles est déterminé aléatoirement. Pour les images suivantes, l'ensemble de modèles dépend du résultat du filtrage particulaire effectué pour l'image précédente. Plus précisément, l'ensemble de modèles résultant de l'étape E33 décrite dans la suite, 25 effectuée pour l'image précédente, constitue l'ensemble de modèles considéré ici pour l'image courante. Comme représenté à la figure 4, l'étape E3 comporte des sous-étapes E31 à E33. L'étape E31 est le calcul de poids P, pour les modèles MJ, chaque poids P, représentant l'adéquation du modèle respectif NA, à l'image de contour de rails IC,. 30 Chaque modèle NA, est considéré comme une hypothèse ou particule. 3045195 12 Comme représenté à la figure 5, l'étape E31 comporte des sous-étapes E310 à E316 qui sont décrites pour un modèle courant Mj. Ces étapes sont effectuées pour tous les modèles considérés. L'étape E310 est une initialisation à la valeur zéro du poids du modèle 5 donné Mi. Les étapes suivantes E311 à E314 sont effectuées pour chaque ligne du modèle donné Mj, une ligne étant définie par l'ensemble des points ayant la même ordonnée. L'étape E311 est le calcul de l'abscisse de l'axe central des rails, de 10 l'écart inter-rails et des abscisses des rails gauche et droit, pour une ligne donnée du modèle donné. L'étape suivante E312 est un test pour vérifier si la différence entre l'abscisse du rail droit et l'abscisse du rail gauche est inférieure à un seuil d'écart prédéterminé. Si la réponse est négative, alors la configuration est jugée comme 15 impossible, la boucle de calcul est terminée et le modèle courant est rejeté. Un poids nul est affecté au modèle courant. L'étape E312 est alors suivie de l'étape E316 qui sera décrite dans la suite. Si la réponse est positive à l'étape E312, cette étape est alors suivie de l'étape E313. L'étape E313 est un calcul de la somme des valeurs de pixels de l'image de 20 contours de rails qui sont à une distance inférieure à une valeur prédéterminée E des abscisses des rails gauche et droit calculées à l'étape E311 pour le modèle donné. On évalue donc le nombre de points de contour proches du modèle. Il est à noter qu'il est possible de pré-calculer pour chaque pixel de coordonnées (x, y) la somme locale des valeurs de pixels de la ligne d'ordonnée y de 25 l'image, entre (x-e) et (x+e). Ce pré-calcul peut être effectué dès que l'image de contours est déterminée (étape E2), et ce pour les zones situées autour de la position des rails dans l'image de contours. Ainsi le résultat de ce pré-calcul est utilisé à chaque fois que l'étape E313 est parcourue, c'est-à-dire pour chaque ligne de chacun des M modèles. 3045195 13 L'étape suivante E314 est un test pour vérifier si la somme calculée à l'étape précédente est nulle. Si la réponse est positive, alors la valeur du poids du modèle donné Mj est décrémentée de un. Cela a pour but de pénaliser les modèles qui se trouvent dans de larges zones sans points de contour. Dans le cas contraire, la valeur du 5 poids du modèle donné Mj est augmentée de la somme calculée à l'étape E313. Lorsque les étapes E311 à E314 ont été effectuées pour chaque ligne du modèle courant, l'étape E314 est suivie de l'étape E315 à laquelle la valeur du poids du modèle courant est normée par rapport au nombre de lignes du modèle. A l'étape suivante E316, le poids calculé à l'étape E315 est élevé à la 10 puissance p, où p vaut par exemple 8 ou 9. Cette dernière opération a pour but d'augmenter la dynamique de la fonction de vraisemblance et donc les différences entre les poids associés aux différents modèles. En effet, la plus grand part du poids est réalisée dans le bas de l'image, sur la partie la plus linéaire des rails et donc la plus aisée à estimer. Grâce à l'étape E316, 15 les variations du poids dans la partie haute de l'image, où les rails sont les plus susceptibles de présenter des courbures importantes, ont plus d'incidence sur le poids du modèle. Il en résulte une bonne estimation de la position des rails non seulement dans la partie base mais aussi dans la partie haute. Le résultat de l'étape E316 est le poids Pj affecté au modèle courant M. 20 Lorsque les étapes E310 à E316 ont été parcourues pour tous les modèles à considérer, l'étape E31 a pour résultat une pondération des modèles Mj en fonction de leur correspondance à l'image de contour de rails IC,. Cet ensemble de modèles pondérés est ensuite utilisé à l'étape E4 qui sera décrite dans la suite, pour estimer la position des rails dans l'image de contours IC,. L'étape E31 est donc suivie de 25 l'étape E4. L'étape E31 est également suivie de l'étape E32 qui est un ré-échantillonnage des modèles M. Le ré-échantillonnage, ou sélection, permet d'éviter la dégénérescence des modèles. Le ré-échantillonnage forme un nouvel ensemble de modèles dans lequel les modèles en cours sont multipliés ou éliminés en fonction de leur 30 poids, c'est-à-dire que les modèles auront d'autant plus de descendants à la génération 3045195 14 suivante que leur poids est élevé. Par exemple, on effectue des tirages aléatoires de modèles, un modèle ayant d'autant plus de chances d'être tiré si son poids est élevé. L'étape suivante E33 est un déplacement, ou mutation, des modèles de l'ensemble formé à l'étape précédente, dans l'espace d'états. 5 Un modèle de déplacement de modèle consiste à bruiter les paramètres du modèle en leur appliquant un bruit gaussien centré et d'écart-type plus ou moins faible suivant la nature du paramètre. En pratique, l'écart-type est faible pour les deux paramètres relatifs à l'estimation de l'écart inter-rails ainsi que pour les points de contrôles correspondants à la partie linéaire des rails dans le bas de l'image. Pour les 10 parties hautes de l'image, cet écart-type est plus important de façon à permettre au modèle de s'adapter aux variations du rayon de courbure des rails. Le résultat de l'étape E33 est un ensemble de nouveaux modèles estimés M'i, qui sont mémorisés pour être utilisés pour l'image suivante dans le flux vidéo. 15 L'étape E4 est une estimation de la position des rails. Cette estimation est faite pour une image de contours de rail donnée IC,. L'estimation EP, de la position des rails est déterminée par (N+2) paramètres d'estimation Xi,, avec k variant de 0 à N+1, qui sont calculés en fonction de l'ensemble de modèles Mi et de leurs poids Pi résultant de l'étape E31. 20 Pour cela, chaque paramètre d'estimation est estimé par la somme pondérée des paramètres respectivement correspondants des M modèles, le poids de chaque modèle étant appliqué à son paramètre : M-1 Xk = 1p, , j=0 Où Xjk est le le' paramètre du modèle M. 25 Le résultat de l'étape E4 est une estimation EP; de la position des rails pour l'image IM;. L'estimation EP; de la position des rails est définie par ses N+2 paramètres Xk . 3045195 15 L'étape suivante E5 est le calcul du poids PER de l'estimation de la position des rails EP,. Le poids est calculé de manière similaire à ce qui a été décrit en référence à l'étape E31. L'étape suivante E6 est un calcul d'une moyenne sur une fenêtre 5 temporelle glissante de l'abscisse du point de contrôle le plus bas dans l'estimation de la position des rails EP,. Dans le cas d'une bifurcation le suivi peut se faire sur le mauvais embranchement, il est donc nécessaire de détecter l'instant de bifurcation et de relancer le suivi sur la bonne voie. Si l'écart entre cette valeur moyenne et la position courante du point de 10 contrôle le plus bas dans l'estimation de position EP, courante est supérieur à un seuil d'écart prédéterminé, on considère que le train est en train de changer de voie. Le signe de l'écart entre valeur courante et valeur moyenne donne une indication très fiable sur la voie à suivre. En effet, si le train suit la voie de gauche alors que le suivi se fait sur la voie de droite, l'écart devient fortement positif, et inversement dans le cas contraire. Cette 15 indication permet d'orienter la recherche des rails pour la réinitialisation du suivi qui sera exposée dans la suite. Si un changement de voie est détecté, alors le procédé de détection et suivi de rails est réinitialisé, comme exposé dans la suite. Si l'écart calculé n'est pas supérieur au seuil d'écart prédéterminé, 20 l'étape E6 est suivie de l'étape E7 qui est un test pour déterminer si le poids calculé à l'étape E5 est supérieur à un seuil de poids prédéterminé. Si la réponse est positive, alors l'estimation de position EP, est jugée comme satisfaisante et l'estimation est alors par exemple représentée sur un écran de visualisation. L'étape E7 est ensuite suivie de l'étape E2 précédemment décrite, à laquelle l'image suivante dans le flux vidéo est 25 traitée. Si la réponse à l'étape E7 est négative, alors l'estimation de position des rails EP; est jugée comme erronée et le procédé de détection et suivi de rails est réinitialisé, comme exposé dans la suite. Dans ce cas, l'étape E7 est suivie de l'étape El. L'étape El de 30 réinitialisation du procédé de détection et suivi de rails est décrite en référence à la figure 3045195 16 6, et comporte des étapes E10 à E12, qui sont parcourues en cas de perte momentanée des rails dans l'image de contours (réponse négative à l'étape E7) ou en cas de changement de voie détecté à l'étape E6 ou encore lorsque le système est remis en marche après un arrêt du train. En effet, un arrêt du train provoque un arrêt du procédé 5 et lorsque le train redémarre, le procédé repart de l'étape El. Dans le cas de perte des rails dans l'image de contours, l'étape E10 est une détection de ligne droites dans la partie basse de l'image de contours sur une zone centrée sur la valeur moyenne du point de contrôle le plus bas (étape E6), par exemple en utilisant une transformée de Hough classique. 10 A l'étape suivante Ell, tous les couples formés par ces droites sont considérés. Une recherche des couples compatibles avec les paramètres a et b de l'écartement des rails estimés auparavant lors du suivi (deux derniers paramètres de l'estimation de la position des rails EP,) est effectuée. A l'étape suivante E12, un filtrage particulaire est initialisé et itéré 15 plusieurs fois sur la même image de contours jusqu'à stabilisation. Ce filtrage particulaire est similaire à ce qui a été décrit en référence à la figure 4. Le modèle final obtenu donnant le poids le plus élevé est retenu comme hypothèse si son poids est supérieur au seuil de poids prédéterminé. Lorsque c'est le cas, l'étape E12 est suivie de l'étape E2 et le suivi est poursuivi pour l'image suivante dans le flux vidéo. 20 Si le poids du meilleur modèle reste inférieur au seuil de poids prédéterminé, le processus de réinitialisation est relancé dans l'image suivante et ce jusqu'à ce qu'un modèle ayant un poids supérieur au seuil de poids prédéterminé soit trouvé. Dans le cas de changement de voie détecté à l'étape E6, l'étape E10 est 25 adaptée pour que la détection des droites sur la partie basse de l'image soit faite dans une zone élargie et décalée latéralement en fonction de l'écart observée entre la position moyenne des rails et la position courante. L'étape E12 est également adaptée pour tester en premier le couple de droite qui se trouve le plus à gauche dans le cas où une bifurcation vers la gauche est 30 détectée, ou le plus à droite dans le cas inverse. Le filtre particulaire est ensuite initialisé 3045195 17 et itéré jusqu'à stabilisation sur cette première hypothèse. Si le poids final obtenu est supérieur au seuil de poids prédéterminé, cette hypothèse est retenue. Sinon, le deuxième couple le plus à gauche, respectivement à droite, est testé, et ainsi de suite tant qu'un poids supérieur au seuil de poids prédéterminé n'est pas trouvé. 5 Selon une variante de réalisation, l'étape E0 d'initialisation est automatique. Dans ce cas, elle comporte la formation d'une image de contours puis des étapes similaires aux étapes E10 à E12 décrites précédemment. Ces étapes incluent une détection de lignes droites dans l'image de contours, une recherche de couples de droites pouvant former des rails et un filtrage particulaire initialisé et itéré sur l'image de 10 contours pour déterminer un modèle de représentation de rails. Le procédé selon l'invention est mis en oeuvre par un circuit intégré dédié ou par des processeurs programmables, ou encore sous la forme d'un programme d'ordinateur mémorisé dans la mémoire d'un ordinateur. Ainsi, la figure 7 représente un mode de réalisation particulier d'un 15 dispositif de détection et suivi de rails selon l'invention. Le dispositif de détection et suivi de rails dans des images d'un flux vidéo comporte, pour au moins une image du flux vidéo : Des moyens de formation d'une image de contours de rails, Des moyens de filtrage particulaire d'un ensemble de modèles de 20 représentation de rails en fonction de l'image de contour de rails, chaque modèle étant défini par des paramètres qui comportent les abscisses de points de contrôle d'une représentation d'un axe central des rails dans un repère défini dans l'image et des coefficients d'une fonction linéaire représentant la distance entre la représentation de l'axe central des rails et respectivement des représentations ses rails gauche et droit en 25 fonction de l'ordonnée dans le repère de l'image, de manière à déterminer un ensemble de modèles pondérés, Des moyens d'estimation de la position des rails dans l'image en fonction de l'ensemble de modèles pondérés. Le dispositif de détection et suivi de rails a la structure générale d'un 30 ordinateur. Il comporte notamment un processeur 100 exécutant un programme 3045195 18 d'ordinateur mettant en oeuvre le procédé selon l'invention, une mémoire 101, une interface d'entrée 102 et une interface de sortie 103. Ces différents éléments sont classiquement reliés par un bus 105. L'interface d'entrée 102 est reliée à la caméra équipant le train et est 5 destinée à recevoir les données à traiter. Le processeur 100 exécute les traitements précédemment exposés. Ces traitements sont réalisés sous la forme d'instructions de code du programme d'ordinateur qui sont mémorisées par la mémoire 101 avant d'être exécutées par le processeur 100. 10 La mémoire 101 peut en outre mémoriser les résultats des traitements effectués. L'interface de sortie 103 comporte par exemple un écran de visualisation et fournit une image de l'estimation de la position des rails. REVENDICATIONS1. Procédé de détection et suivi de rails dans des images d'un flux vidéo, caractérisé en ce qu'il comporte, pour au moins une image du flux vidéo, les étapes de : Formation (E2) d'une image de contours de rails (ICI Filtrage particulaire (E3) d'un ensemble de modèles de représentation de rails (MJ) en fonction de l'image de contour de rails, chaque modèle étant défini par des paramètres qui comportent les abscisses de points de contrôle d'une représentation d'un axe central des rails dans un repère défini dans l'image et des coefficients d'une fonction linéaire représentant la distance entre la représentation de l'axe central des rails et respectivement des représentations des rails gauche et droit en fonction de l'ordonnée dans le repère de l'image, de manière à déterminer un ensemble de modèles pondérés, Estimation (E4) de la position des rails dans l'image en fonction de l'ensemble de modèles pondérés. 2. Procédé de détection et suivi de rails selon la revendication 1, caractérisé en ce qu'il comporte en outre une étape d'initialisation (E0) à laquelle sont déterminés les coefficients de la fonction linéaire représentant la distance entre la représentation de l'axe central des rails et respectivement les représentations des rails gauche et droit en fonction de l'ordonnée dans le repère de l'image. 3. Procédé de détection et suivi de rails selon la revendication 1 ou 2, caractérisé en ce que la représentation de l'axe central des rails est une spline cubique. 4. Procédé de détection et suivi de rails selon l'une quelconque des revendications 1 à 3, caractérisé en ce que l'ensemble de modèles de représentation de rails utilisé pour une image courante du flux vidéo qui n'est pas la première image du flux vidéo est déterminé par ré-échantillonnage (E32) et déplacement (E33) des modèles de représentation de rails pondérés d'une image précédente dans le flux vidéo. 3045195 20 5. Procédé de détection et suivi de rails selon l'une quelconque des revendications 1 à 4, caractérisé en ce que le filtrage particulaire (E3) de l'ensemble de modèles de représentation de rails comporte le calcul (E31) d'un poids (PJ) pour chaque modèle (MJ) de l'ensemble, le poids d'un modèle représentant l'adéquation du modèle à 5 l'image de contours. 6. Procédé de détection et suivi de rails selon la revendication 5, caractérisé en ce que le calcul (E31) du poids d'un modèle donné comporte les étapes de : Calcul (E313) de la somme des valeurs de pixels de l'image de contours 10 qui sont proches des rails du modèle donné, pour chaque ligne du modèle donné, Décrémentation (E314) du poids du modèle donné, à chaque fois que la somme calculée pour une ligne est nulle, Sommation (E314) du poids du modèle donné et de la somme des valeurs de pixels de l'image de contours qui sont proches des rails du modèle donné, à 15 chaque fois que la somme calculée pour une ligne n'est pas nulle, Elévation (E316) à une puissance supérieure à 2 du poids du modèle donné, après que les étapes de calcul, décrémentation et sommation aient été effectuées pour toutes les lignes du modèle donné. 20 7. Procédé de détection et suivi de rails selon l'une quelconque des revendications 1 à 6, caractérisé en ce que l'estimation (E4) de la position des rails dans l'image comporte la détermination de paramètres d'estimation, un paramètre d'estimation étant calculé par la somme des paramètres (Xjk) correspondants de l'ensemble des modèles pondérés déterminés à l'étape de filtrage particulaire, chacun 25 des paramètres étant pondéré par leur poids respectif (PJ) du modèle auquel il appartient. 8. Procédé de détection et suivi de rails selon l'une quelconque des revendications 1 à 7, caractérisé en ce que l'estimation de la position des rails est pondérée (E5) en fonction de sa correspondance à l'image de contour de rails et son poids est comparé (E7) à un seuil de poids. 3045195 21 9. Procédé de détection et suivi de rails selon l'une quelconque des revendications 1 à 8, caractérisé en ce qu'il comporte en outre des étapes de : Calcul (E6) de la moyenne de l'abscisse d'un point de contrôle donné sur une fenêtre temporelle glissante d'estimations de la position des rails consécutives, 5 Comparaison (E6) de l'abscisse courante du point de contrôle d'une estimation de la position courante des rails à la moyenne calculée, Détection (E6) d'un changement de voie si l'écart est supérieur à un seuil d'écart. 10 10. Procédé de détection et suivi de rails selon l'une quelconque des revendications 8 ou 9, caractérisé en ce qu'il comporte une réinitialisation (El) si le poids de l'estimation de la position des rails est inférieur au seuil de poids (E7) ou si un changement de voie est détecté (E6) ou encore lorsque le procédé est remis en marche après un arrêt. 15 11. Dispositif de détection et suivi de rails dans des images d'un flux vidéo, caractérisé en ce qu'il comporte, pour au moins une image du flux vidéo : Des moyens de formation d'une image de contours de rails, Des moyens de filtrage particulaire d'un ensemble de modèles de 20 représentation de rails en fonction de l'image de contour de rails, chaque modèle étant défini par des paramètres qui comportent les abscisses de points de contrôle d'une représentation d'un axe central des rails dans un repère défini dans l'image et des coefficients d'une fonction linéaire représentant la distance entre la représentation de l'axe central des rails et respectivement des représentations ses rails gauche et droit en 25 fonction de l'ordonnée dans le repère de l'image, de manière à déterminer un ensemble de modèles pondérés, Des moyens d'estimation de la position des rails dans l'image en fonction de l'ensemble de modèles pondérés. 3045195 22 12. Programme d'ordinateur comportant des instructions pour l'exécution des étapes du procédé selon l'une quelconque des revendications 1 à 10 lorsque ledit programme est exécuté par un ordinateur. 5 13. Support d'enregistrement lisible par un ordinateur sur lequel est enregistré un programme d'ordinateur comprenant des instructions pour l'exécution des étapes du procédé selon l'une quelconque des revendications 1 à 10. 10