Titulaire(s) : CONTINENTAL AUTOMOTIVE FRANCE Société par actions simplifiée, CONTINENTAL AUTOMOTIVE GMBH.
Demande(s) d’extension
Mandataire(s) : CONTINENTAL AUTOMOTIVE FRANCE.
164) PROCEDE ET DISPOSITIF DE TRAITEMENT D'IMAGES ACQUISES PAR UNE CAMERA D'UN VEHICULE AUTOMOBILE.
_ La présente invention a pour objet un procédé de traitement d'images acquises par une caméra d'un véhicule automobile permettant de qualifier des groupes de pixels représentatifs de motifs répétitifs afin de pouvoir décider ou non d'utiliser les flots de ces pixels pour détecter des objets dans les images.
11, I2
Signatures
R, T
PA(1)
Y
FR 3 064 785 - A1
Dmin, Dmax t
i —
PBmin(1).....PBmin(5)
PBmax(i).....PBmax(5)
PB2(1), .... PBs(1) *
Association
Comparaison des signatures
Motif
Y
L’invention se rapporte au domaine de l’assistance à la conduite d’un véhicule automobile et concerne plus particulièrement un procédé et un dispositif de traitement d’images acquises par une caméra d’un véhicule automobile ainsi qu’un véhicule automobile comprenant un tel dispositif.
De nos jours, il est connu d’équiper un véhicule automobile d’un système d’assistance à la conduite appelé communément ADAS (Advanced Driver Assistance System en langue anglaise). Un tel système comprend de manière connue une caméra vidéo, par exemple montée sur le pare-brise avant du véhicule, qui permet de générer un flux d’images représentant l’environnement dudit véhicule. Ces images sont exploitées par un dispositif de traitement d’images dans le but d’assister le conducteur, par exemple en détectant un obstacle ou bien le franchissement d’une ligne blanche. Les informations données par les images acquises par la caméra doivent donc être suffisamment précises et pertinentes pour permettre au système d’assister le conducteur de manière fiable.
En particulier, pour exploiter ces images, il est nécessaire de suivre le flot optique (« optical flow » en langue anglaise) d’un certain nombre de points dans la série d’images. Plus précisément, il s’agit de suivre la trajectoire de ces points dans une pluralité d’images successives et d’en déterminer leur localisation dans l’espace.
Afin de suivre un point représenté par un pixel d’une première image dans une deuxième image consécutive, une solution connue consiste à analyser une zone de pixels autour dudit pixel dans la deuxième image afin de déterminer dans quelle direction le point se déplace entre la première image et la deuxième image. Une telle solution peut nécessiter l’utilisation d’une zone de pixels comprenant plus de 2500 pixels, ce qui demande des capacités de traitement importantes et présente donc un inconvénient important pour un système embarqué dans un véhicule automobile.
De plus, lorsque le véhicule roule à une vitesse élevée, par exemple plus de 130 km/h, il s’avère difficile voire impossible de suivre les points dans des images successives avec une telle méthode, notamment des points représentants des objets en perspective.
En outre, une telle solution, bien que robuste, ne permet d’obtenir qu’un nombre très limité de flots fiables par une image, de l’ordre de 2% du nombre total de flots existants entre deux images, ce qui peut s’avérer insuffisant pour détecter ou suivre des objets dans le flux d’image et donc pour assister efficacement le conducteur dans sa conduite.
En particulier, lorsque des motifs répétitifs sont présents dans l’environnement filmé par la caméra, tels que par exemple le ciel, la route, une série de poteaux, un rail de sécurité ou certains types de bâtiments, cette solution ne permet pas de déterminer de manière fiable les flots des pixels représentant ces motifs répétitifs du fait de leur uniformité sur plusieurs images successives, ce qui présente un inconvénient majeur.
L’invention vise donc à remédier au moins en partie à ces inconvénients en proposant une solution simple, fiable et efficace pour détecter des motifs répétitifs dans un flux vidéo capturé par la caméra d’un véhicule automobile.
En particulier, l’invention vise à qualifier des groupes de pixels représentatifs de motifs répétitifs afin de pouvoir décider ou non d’utiliser les flots de ces pixels pour détecter des objets dans les images.
A cette fin, l’invention a pour objet un procédé de détection d’un motif répétitif dans un flux d’images acquises par une caméra vidéo d’un véhicule automobile, ledit procédé étant remarquable en ce qu’il comprend les étapes de :
• détermination, pour chaque pixel d’une première image et pour chaque pixel d’une deuxième image, postérieure à la première image dans le flux d’images, d’une signature caractéristique dudit pixel, • détermination d’une matrice de rotation et d’un vecteur de translation de la caméra entre la première image et la deuxième image, • sélection d’au moins un pixel dans la première image, • pour chaque pixel sélectionné dans la première image :
- détermination, dans la deuxième image, d’au moins un segment épipolaire associé audit pixel sélectionné à partir de la matrice de rotation et du vecteur de translation déterminés,
- sélection d’une pluralité de points sur le segment épipolaire déterminé, chaque point correspondant à un pixel de la deuxième image,
- comparaison de la signature de chaque pixel associé à un point sélectionné avec la signature du pixel sélectionné dans la première image,
- détection d’un motif répétitif entre la première image et la deuxième image lorsqu’une pluralité de signatures de pixels associés à la pluralité de points sélectionnés sur le segment correspondent à la signature du pixel sélectionné dans la première image.
Le segment épipolaire correspond à un segment comprenant toutes les positions possible dans la deuxième image du pixel sélectionné dans la première image, considérant une distance minimale et une distance maximale.
Le procédé selon l’invention permet ainsi au dispositif d’assistance à la conduite du véhicule d’identifier les flots optiques entre les pixels représentant des motifs répétitifs afin de les écarter lors du traitement de l’information contenu dans les images, ces flots optiques pouvant représenter des faux-positifs lors dudit traitement. Le procédé selon l’invention permet en particulier d’éviter les erreurs de mise en correspondance et les mauvaises reconstructions 3D, par exemple dans le cas d’objets à effet stroboscopique. Le procédé selon l’invention peut être aussi bien utilisé sur des pixels représentant aussi bien des objets statiques que dynamiques. Dans ce dernier cas, il est nécessaire de connaître en outre le mouvement relatif (rotation et translation) entre la caméra et l’objet dynamique.
De préférence, la détermination d’un segment épipolaire comprend :
• la détermination, dans la première image, d’un ensemble initial de pixels comprenant le pixel sélectionné et une pluralité de pixels localisés au voisinage du pixel sélectionné, • la détermination, dans la deuxième image, d’un premier ensemble de pixels par projection, sur un plan prédéterminé situé à une distance minimale prédéterminée, de l’ensemble initial déterminé, à partir de la matrice de rotation et du vecteur de translation déterminés, ledit premier ensemble comprenant un premier pixel correspondant au pixel sélectionné, et • la détermination, dans la deuxième image, d’un deuxième ensemble de pixels par projection sur le plan prédéterminé situé à une distance maximale prédéterminée, de l’ensemble initial déterminé, à partir de la matrice de rotation et du vecteur de translation déterminés, ledit deuxième ensemble comprenant un deuxième pixel correspondant au pixel sélectionné dans la première image, le segment épipolaire étant le segment reliant le premier pixel et le deuxième pixel dans la deuxième image.
Par les termes au voisinage, on entend des pixels situés dans une zone, de préférence de faible surface, centrée sur le pixel considéré.
Selon un aspect de l’invention, le procédé comprend en outre une étape de détermination de la distance minimale et de la distance maximale.
Selon un aspect de l’invention, le procédé comprend en outre une étape de détermination du plan de projection.
Dans un mode de réalisation, on détermine une pluralité de segments épipolaires ou un cylindre épipolaire.
En géométrie épipolaire, un cylindre épipolaire est un segment épipolaire épaissi (on peut aussi parler de rectangle). En pratique, la précision de la géométrie épipolaire défini l’épaisseur du segment.
Selon un aspect de l’invention, le procédé comprend une étape préliminaire d’acquisition d’une première image et d’une deuxième image par la caméra.
L’invention concerne aussi un dispositif de traitement d’images pour véhicule automobile, ledit dispositif comprenant une caméra apte à acquérir une première image et une deuxième image et un module de traitement d’images configuré pour :
• déterminer, pour chaque pixel d’une première image et pour chaque pixel d’une deuxième image, postérieure à la première image dans le flux d’images, une signature caractéristique dudit pixel, • déterminer une matrice de rotation et un vecteur de translation de la caméra, entre la première image et la deuxième image acquises par la caméra, • sélectionner au moins un pixel dans la première image, • pour chaque pixel sélectionné dans la première image :
- déterminer, dans la deuxième image, au moins un segment épipolaire associé audit pixel sélectionné à partir de la matrice de rotation et du vecteur de translation déterminés,
- sélectionner une pluralité de points sur le segment épipolaire déterminé, chaque point correspondant à un pixel de la deuxième image,
- comparer la signature de chaque pixel correspondant à un point sélectionné avec la signature du pixel sélectionné dans la première image,
- détecter un motif répétitif entre la première image et la deuxième image lorsqu’une pluralité de signatures de pixels associés aux points sélectionnés sur le segment correspondent à la signature du pixel sélectionné dans la première image.
ledit dispositif étant configuré afin de déterminer le segment épipolaire, pour :
• déterminer, dans la première image, un ensemble initial de pixels comprenant le pixel sélectionné et une pluralité de pixels localisés au voisinage du pixel sélectionné, • déterminer, dans la deuxième image, un premier ensemble de pixels par projection, à partir de la matrice de rotation et du vecteur de translation déterminés, de l’ensemble initial déterminé sur un plan prédéterminé situé à une distance minimale prédéterminée, ledit premier ensemble comprenant un premier pixel correspondant au pixel sélectionné dans la première image, • déterminer, dans la deuxième image un deuxième ensemble de pixels par projection, à partir de la matrice de rotation et du vecteur de translation déterminés, de l’ensemble initial déterminé sur le plan prédéterminé situé à une distance maximale prédéterminée, ledit deuxième ensemble comprenant un deuxième pixel correspondant au pixel sélectionné dans la première image, le segment épipolaire étant le segment reliant le premier pixel et le deuxième pixel dans la deuxième image.
Selon un aspect de l’invention, le module de traitement d’images est configuré pour déterminer la distance minimale et la distance maximale.
Selon un autre aspect de l’invention, le module de traitement d’images est configuré pour déterminer le plan de projection.
De préférence, le dispositif est configuré pour déterminer une pluralité de segments épipolaires ou un cylindre épipolaire.
L’invention concerne également un véhicule automobile comprenant un dispositif tel que présenté précédemment.
D’autres caractéristiques et avantages de l’invention apparaîtront lors de la description qui suit faite en regard des figures annexées données à titre d’exemples non limitatifs et dans lesquelles des références identiques sont données à des objets semblables.
La figure 1 illustre schématiquement un véhicule selon l’invention.
La figure 2 illustre schématiquement une première image et une deuxième image, consécutive à la première image, acquises par la caméra.
La figure 3 illustre schématiquement deux projections d’une zone de pixels d’une première image dans une deuxième image par homographie sur un plan de projection situé respectivement à une distance minimum et à une distance maximum prédéterminées.
La figure 4 illustre schématiquement une projection par homographie, sur un plan de projection situé à une distance prédéterminée, d’un ensemble de points d’une première image dans une deuxième image, la correspondance entre les deux images étant réalisée via une matrice de rotation et un vecteur de translation de la caméra.
La figure 5 illustre schématiquement un segment épipolaire obtenu dans une deuxième image par la projection d’un ensemble de pixels d’une première image sur un plan situé consécutivement à une pluralité de distances prédéterminée comprises entre une distance minimum prédéterminée et à une distance maximum prédéterminée.
La figure 6 illustre schématiquement un exemple de cylindre épipolaire.
La figure 7 illustre schématiquement un mode de réalisation du procédé selon l’invention.
Le dispositif de traitement d’images selon l’invention va maintenant être décrit en référence aux figures 1 à 6.
En référence à la figure 1, le dispositif 10 de traitement d’images est monté dans un véhicule automobile 1. Par les termes « véhicule automobile », on entend de manière standard un véhicule routier mû par un moteur à explosion, à combustion interne, électrique ou par turbine à gaz ou un moteur hybride tel que, par exemple, une voiture, une camionnette, un camion, etc.
Le dispositif 10 comprend une caméra 100 vidéo et un module de traitement d’images 200. De manière préférée, la caméra 100 est montée au niveau de la partie supérieure centrale du pare-brise avant (non représenté) du véhicule 1. On notera toutefois que la caméra 100 pourrait être montée à tout autre endroit adapté du véhicule 1 (côté, arrière etc.). La caméra 100 est configurée pour acquérir une pluralité d’images de l’environnement 2 du véhicule 1, par exemple la route 2A, afin que le module de traitement d’images 200 les exploite.
Le module de traitement d’images 200 traite les images acquises par la caméra 100 afin de fournir une assistance à la conduite au conducteur du véhicule 1. A titre d’exemple, un tel traitement d’images peut consister à détecter des objets dans les images, tels que par exemple des panneaux, des bordures de route, des obstacles (piétons ou autre...), afin d’informer le conducteur respectivement d’une vitesse limite, d’un risque de sortie de route ou d’un risque de collision. Un tel traitement d’image peut aussi permettre de mesurer la hauteur d’un pont ou la position d’un obstacle afin d’en avertir le conducteur ou de procéder à un freinage d’urgence.
A cette fin, en référence à la figure 2, le module de traitement d’images 200 est configuré pour réaliser une pluralité de tâches sur une première image 11 et une deuxième image I2, postérieure à la première image 11, acquises par la caméra 100 vidéo.
Tout d’abord, le module de traitement d’images 200 est configuré pour déterminer, pour chaque pixel de la première image 11 et pour chaque pixel de la deuxième image I2, une signature caractéristique dudit pixel.
Par ailleurs, en référence à la figure 3, le module de traitement d’images 200 est configuré pour déterminer une matrice de rotation R et un vecteur de translation T de la caméra 100 entre la première image 11 et la deuxième image I2, correspondant à la rotation et à la translation de la caméra 100 dans un référentiel lié à l’objet.
La détermination de la matrice de rotation R et du vecteur de translation T peut, par exemple, être réalisée en utilisant un objet statique représenté sur les deux images, par exemple la route ou un pont, ou bien un objet dynamique se déplaçant par rapport à la caméra 100, par exemple un autre véhicule.
Dans ce dernier cas, il faut savoir où se situe l’objet dans l’image (par exemple en utilisant une méthode de classification connue en soi) et déterminer alors la matrice de rotation R et le vecteur de translation T de la caméra 100 dans le référentiel lié à l’objet, le vecteur de translation T étant dans ce cas pondérée d’un coefficient a qui peut être déterminé de manière connue par traitement d’images en connaissant la taille de l’objet.
La détermination de la matrice de rotation R et du vecteur de translation T entre la première image 11 et la deuxième image I2 peut être réalisée par un algorithme de traitement d’images ou par l’utilisation d’un ou plusieurs capteurs inertiels et/ou de position géographique (par exemple GPS) de manière connue en soi.
A titre d’exemple, de manière connue, un tel algorithme peut consister à déterminer le flot temporel entre la première image 11 et la deuxième image I2 pour en déduire une première matrice dite « fondamentale », à transformer cette matrice fondamentale en une matrice dite « essentielle » à partir des paramètres intrinsèques de calibration de la caméra 100, à en déduire une matrice de rotation R et un vecteur de translation intermédiaire a.T obtenue à un facteur « a » près et à corriger ce vecteur de translation intermédiaire a.T pour obtenir un vecteur de translation T final à partir d’un odomètre du véhicule 1. Une telle méthode étant connue en soi, elle ne sera pas davantage détaillée ici.
Ensuite, toujours en référence à la figure 2, le module de traitement d’images 200 est configuré pour sélectionner un pixel PA(1) dans la première image 11 pour lequel on cherche un pixel correspondant dans la deuxième image I2. Par les termes « pixel correspondant », on entend un pixel représentant une même zone spatiale de l’environnement 2 du véhicule 1.
Toujours en référence à la figure 2, le module de traitement d’images 200 est également configuré pour déterminer dans la première image 11 un ensemble initial de pixels comprenant le pixel sélectionné PA(1) et une pluralité de pixels PA(2), ..., PA(5), localisés au voisinage du pixel sélectionné PA(1). Par le terme voisinage, on entend de manière connue des pixels PA(2), PA(5) adjacents au pixel sélectionné PA(1) dans la première image 11. Le nombre de pixels du voisinage est de quatre dans cet exemple à des fins de clarté mais il va de soi que le voisinage du pixel PA(1) peut comprend plus ou moins de quatre pixels (plus généralement « n » pixels, « n » étant un entier naturel supérieur ou égal à 2). Un tel ensemble initial de pixels peut être une fenêtre ou une portion de la première image 11, par exemple une fenêtre de 10 x 10 pixels. On notera ici que le nombre n de pixels et la forme de la fenêtre ou de la portion d’image peuvent varier à dessein. On notera aussi que l’on a représenté cinq pixels dans l’ensemble à titre d’exemple mais que le nombre de pixels de l’ensemble pourrait bien entendu être inférieur ou supérieur à cinq.
Le module de traitement d’images 200 est aussi configuré pour déterminer, dans la deuxième image I2, une pluralité d’ensembles de pixels PB(1 ),..., PB(5) par projection, à partir de la matrice de rotation R et du vecteur de translation T déterminés, de l’ensemble initial déterminé PA(1), ..., PA(5). Ce premier ensemble PB(1), ..., PB(5) comprend un premier pixel PB(1) correspondant au pixel sélectionné PA(1) dans la première image 11.
En référence aux figures 3 et 4, cette projection est réalisée sur un plan W prédéterminé situé à différentes distances D prédéterminées du centre optique C1 de la caméra 100 pour la première image 11.
Plus précisément, en référence à la figure 3, le module de traitement d’images 200 est tout d’abord configuré pour déterminer, dans la deuxième image I2, un premier ensemble de pixels PBmin(1), ..., PBmin(5) par projection, à partir de la matrice de rotation R et du vecteur de translation T déterminés, de l’ensemble initial déterminé PA(1 ), ..., PA(5) sur un plan W de projection prédéterminé situé à une distance minimale Dmin prédéterminée. Ce premier ensemble PBmin(1), ..., PBmin(5) comprend un premier pixel PBmin(1) correspondant au pixel sélectionné PA(1) dans la première image 11.
Similairement, toujours en référence à la figure 3, le module de traitement d’images 200 est configuré pour déterminer, dans la deuxième image I2, un deuxième ensemble de pixels PBmax(1), ..., PBmax(5) par projection, à partir de la matrice de rotation R et du vecteur de translation T déterminées, de l’ensemble initial déterminé PA(1 ),..., PA(5) sur le plan W situé à une distance maximale prédéterminée Dmax. Ce deuxième ensemble PBmax(1 ),..., PBmax(5) comprend un deuxième pixel PBmax(1) correspondant au pixel sélectionné dans la première image 11.
En référence maintenant à la figure 4, la détermination de la projection d’un pixel de la première image 11 dans la deuxième image I2 via un plan W de projection correspond à une homographie du pixel dans un repère d’origine C1 (qui correspond au centre optique de la caméra 100 lors de l’acquisition de la première image 11) à un repère d’origine C2 (qui correspond au centre optique de la caméra 100 lors de l’acquisition de la deuxième image I2) via le plan W de projection situé à l’une des distances déterminées. Une telle projection par homographie est réalisée à partir de la matrice de rotation R et du vecteur de translation T, d’un vecteur n2 normal au plan W de projection et de la distance D du plan W par rapport au centre optique C1 de la manière suivante :
H = R — (^).
Une telle homographie étant connue en soi, elle ne sera donc pas davantage détaillée ici.
En théorie, la distance minimale Dmin est nulle et la distance maximale Dmax correspond à l’infini. En pratique, on peut choisir une distance minimale Dmin de quelques mètres, par exemple cinq mètres, et une distance maximale Dmax de quelques dizaines de mètres, par exemple cinquante ou cent mètres, notamment lorsque le pixel sélectionné PA(1) dans la première image 11 représente un objet identifié dont on connaît l’éloignement par rapport à la caméra 100, par exemple la route défilant dans la partie inférieure des images acquises par la caméra 100.
Le plan W de projection peut être déterminé selon la nature du pixel sélectionné PA(1). Par exemple, lorsque le pixel sélectionné PA(1) représente une zone de la route 2A sur laquelle circule le véhicule 1, un plan W correspondant au plan de la route 2A peut être utilisé. Ce plan W est un plan de projection virtuel qui va permettre d’estimer par homographie, c’est-à-dire de manière géométrique, la position correspondante d’un pixel de la première image 11 dans la deuxième image I2, comme illustré schématiquement sur la figure 3.
Une fois le premier pixel PBmin(1) et le deuxième pixel PBmax(1) sélectionnés, le module de traitement d’images 200 est configuré pour déterminer un segment U reliant le premier pixel PBmin(1) et le deuxième pixel PBmax(1), appelé segment épipolaire.
En référence à la figure 5, le module de traitement d’images 200 est ensuite configuré pour sélectionner une pluralité de points PB2(1 ),..., PB5(1) le long du segment U déterminé. De manière avantageuse, les points PB2(1 ),..., PB5(1) peuvent être répartis le long du segment U en partant du premier pixel PBmin(1) en étant espacés d’un pas « step >> de largeur prédéterminée, par exemple tous les 0,1 pixels. Le nombre de points sélectionnés PB2(1 ),..., PB5(1) sur le segment U est de quatre dans cet exemple mais il va de soi qu’il pourrait être supérieur ou inférieur à quatre.
Le module de traitement d’images 200 est configuré pour associer chaque point PB2(1), PB5(1) sélectionné à un pixel de la deuxième image I2. En pratique, on considère qu’un point est associé lorsque ses coordonnées dans l’image correspondent aux coordonnées d’un pixel, c’est-à-dire que le point sélectionné se trouve dans la zone de l’image couverte (ou représentée) par ledit pixel.
Le module de traitement d’images 200 est configuré pour comparer la signature de chaque pixel correspondant à un point (PB2(1),..., PB5(1)) sélectionné avec la signature du pixel sélectionné dans la première image 11.
Le module de traitement d’images 200 est configuré pour détecter un motif répétitif entre la première image 11 et la deuxième image I2 lorsqu’une pluralité de signatures de pixels associés aux points (PB2(1 ),..., PB5(1)) sélectionnés sur le segment U correspondent à la signature du pixel sélectionné dans la première image 11.
L’invention va maintenant être décrite dans sa mise en œuvre en référence aux figures 2 à 7.
Tout d’abord, dans une étape E0, en référence notamment aux figures 2 et 7, la caméra 100 acquière une première image 11 et une deuxième image I2, de préférence consécutives. On notera que le procédé peut être mis en œuvre en prenant comme première image 11 l’image dont l’acquisition est temporellement la première (image antérieure ou précédente dans le flot d’images acquises par la caméra) et comme deuxième image I2, l’image successive dans le flot d’images. A contrario, le procédé peut être mis en œuvre en prenant comme première image 11 l’image dont l’acquisition est temporellement postérieure (image suivante dans le flot d’images acquises par la caméra) à la deuxième image I2 et comme deuxième image I2, l’image précédente dans le flot d’images. Dans l’exemple qui suit, on choisit l’image antérieure comme première image 11 et l’image postérieure (c’est-à-dire successive dans le flot d’images) comme deuxième image I2.
Dans une étape E1, le module de traitement d’images 200 détermine, pour chaque pixel de la première image 11 et pour chaque pixel de la deuxième image I2, une signature caractéristique dudit pixel.
Une telle signature peut être déterminée à partir de l’analyse locale d’une image et caractérise ainsi le contenu de cette image. Il existe plusieurs façons de créer une signature basée sur des descripteurs. Ces descripteurs peuvent avoir certaines propriétés comme l’invariance par rotation, par grossissement ou changement de luminosité. Le cas d’utilisation définit en général les propriétés nécessaires aux descripteurs et permet de déterminer la méthode la plus avantageuse. Par exemple, la transformation de census donne une signature basée sur les différences relatives d’intensité (Zabih, R., Woodfill, J.I.: Non-parametric Local Transforme for Computing Visual Correspondence. In: Eklundh, J.-O. (ed.) ECCV 1994. LNCS, vol. 801, pp. 151-158. Springer, Heidelberg (1994)). Un autre exemple est la transformation de caractéristiques visuelles invariante à l'échelle (SIFT pour « Scale-lnvariant Feature Transform >> en langue anglaise).
En vision par ordinateur, l'extraction de caractéristiques visuelles (ou « Visual features extraction >> en langue anglaise) consiste en des transformations mathématiques calculées sur les pixels d'une image numérique. Les caractéristiques visuelles permettent généralement de mieux rendre compte de certaines propriétés visuelles de l'image, utilisées pour des traitements ultérieurs entrant dans le cadre d'applications telles que la détection d'objets ou la recherche d'images par le contenu.
La caractérisation d'une image peut être calculée en un nombre restreint de pixel. Il faut pour cela d'abord détecter les zones d'intérêt de l'image puis calculer en chacune de ces zones un vecteur caractéristique. Ces zones d'intérêt sont par exemple les arêtes ou les points saillants de l'image (zones de fort contraste). Il peut aussi s'agir de points pris aléatoirement ou régulièrement dans l'image (échantillonnage dit dense).
Le vecteur caractéristique contient parfois des données provenant de la détection, telles que l'orientation de l'arête ou la magnitude du gradient dans la zone d'intérêt. Généralement, le vecteur caractéristique en un pixel est calculé sur un voisinage de ce pixel, c'est-à-dire à partir d'une imagette centrée sur ce pixel. Il peut être calculé à différentes échelles de manière à s'affranchir du facteur de zoom. Parmi les caractéristiques locales couramment calculées, on retrouve des motifs préalablement utilisés globalement, tels que des histogrammes de couleur ou des vecteurs rendant compte de l'orientation des gradients des niveaux de gris. Trois exemples de voisinages utilisés pour définir une texture et calculer un motif binaire local (LBP pour « Local Binary Patterns >> en langue anglaise). Certaines méthodes telles SIFT ou SURF (pour « Speeded Up Robust Features >> en langue anglaise) incluent à la fois la détection de zone d'intérêt et le calcul d'un vecteur caractéristique en chacune de ces zones. Concernant le vecteur caractéristique, les SIFT sont grossièrement un histogramme des orientations du gradient et les SURF consistent en le calcul d'approximation d'ondelettes de Haar. Dans une veine similaire, les motifs binaires locaux (LBP) sont un calcul de cooccurrence des niveaux de gris locaux d'une image et les HOG (pour « Histograms of Oriented Gradients >> en langue anglaise) sont des histogrammes de gradients orientés, assez similaires aux SIFT, calculés selon un échantillonnage dense.
En référence à la figure 3, le module de traitement d’images 200 détermine ensuite, dans une étape E2, la matrice de rotation R et le vecteur de translation T entre la première image 11 et la deuxième image I2.
Le module de traitement d’images 200 sélectionne, dans une étape E3, un pixel PA(1) dans la première image 11 pour lequel un pixel correspondant dans la deuxième image I2 doit être déterminé.
De manière avantageuse, le module de traitement d’images 200 peut tout d’abord sélectionner un pixel, qui n’a pas de flot optique dans la deuxième image I2, dans une zone d’intérêt de la première image 11, par exemple un côté de l’image représentant le bord de la route lorsqu’on souhaite prévenir le conducteur d’un risque de sortie de route, le dessus de l’image représentant le ciel lorsqu’on souhaite détecter un pont pour en évaluer la hauteur etc.
Ensuite, en référence à la figure 2, pour le pixel sélectionné PA(1), le module de traitement d’images 200 détermine dans la première image 11, dans une étape E4, un ensemble initial de pixels PA(1), ..., PA(5) comprenant le pixel sélectionné PA(1) et une pluralité de pixels PA(2), ..., PA(5) localisés au voisinage du pixel sélectionné PA(1). Dans l’exemple de la figure 2, par souci de clarté, seuls quatre pixels PA(2), PA(3), PA(4) et PA(5) du voisinage du pixel PA(1) ont été sélectionnés.
En référence à la figure 3, le module de traitement d’images 200 détermine ou sélectionne (par exemple dans une liste stockée dans une zone mémoire - non représentée - du dispositif 10) dans une étape E5 une distance minimale Dmin et une distance maximale Dmax entre lesquelles se situe le point spatial représenté par le pixel sélectionné PA(1). Ces valeurs Dmin et Dmax peuvent être déterminées comme décrit ciavant ou bien en utilisant l’historique des images précédentes ou une connaissance géométrique de la scène, comme par exemple une route plane.
Dans une étape E6, le module de traitement d’images 200 détermine un plan W de projection, du pixel sélectionné PA(1 ), dans la deuxième image I2, par exemple un plan vertical situé face à l’avant du véhicule 1. On notera que les étapes E5 et E6 peuvent être inversées.
En référence aux figures 2 et 3, dans une étape E7, le module de traitement d’images 200 détermine, dans la deuxième image I2, un premier ensemble de pixels PBmin(1), ..., PBmin(5) par projection homographique de l’ensemble initial déterminé de pixels PA(1), ..., PA(5) sur le plan W, en considérant que ce dernier est placé à la distance minimale déterminée Dmin. Ce premier ensemble PBmin(1 ),..., PBmin(5) comprend un premier pixel PBmin(1) correspondant, par projection homographique sur le plan W à la distance minimale Dmin, au pixel sélectionné PA(1) dans la première image 11.
Similairement, dans une étape E8, le module de traitement d’images 200 détermine, dans la deuxième image I2, un deuxième ensemble de pixels PBmax(1 PBmax(5) par projection homographique de l’ensemble initial déterminé PA(1 PA(5) sur le plan W prédéterminé situé à la distance maximale prédéterminée Dmax. Ce deuxième ensemble PBmax(1 PBmax(5) comprend un deuxième pixel PBmax(1) correspondant, par projection homographique du plan W à la distance maximale Dmax, au pixel sélectionné PA(1) dans la première image 11. Il va de soi que les étapes E7 et E8 peuvent être inversées.
En référence aux figures 3 à 5, le module de traitement d’images 200 détermine ensuite, dans une étape E9, le segment U reliant le premier pixel PBmin(1) et le deuxième pixel PBmax(1) dans la deuxième image I2 puis sélectionne, dans une étape E10, une pluralité de points PB2(1), ..., PB5(1 ) sur le segment U ainsi déterminé, par exemple tous les 0,1 pixels.
Au lieu d’un unique segment, on pourrait également considérer un cylindre épipolaire qui se définit comme étant un segment épipolaire d’une épaisseur supérieure à un pixel (de préférence une épaisseur d’un nombre impair de pixels, ainsi la dilatation du segment se fait de part et d’autre du segment d’épaisseur 1). Dans le cas du cylindre, en référence à la figure 6, il suffit d’appliquer le parcours du segment U tous les 0,1 pixels au pixel central du cylindre et d’étendre la mesure aux pixels voisins (par exemple PB2’(1) et PB2”(1) pour le pixel PB2(1) et PB3’(1) et PB3”(1) pour le pixel PB3(1 )).
Le module de traitement d’images 200 associe ensuite dans une étape E11 chaque point PB2(1), ..., PB5(1 ) sélectionné sur le segment U à un pixel de la deuxième image I2.
Le module de traitement d’images 200 compare alors dans une étape E12 la signature de chaque pixel associé à un point PB2(1 PB5(1) sélectionné avec la signature du pixel sélectionné dans la première image 11.
Enfin, dans une étape E13, le module de traitement d’images 200 détecte un motif répétitif entre la première image 11 et la deuxième image I2 lorsqu’une pluralité de signatures de pixels associés à la pluralité de points (PB2(1), ..., PB5(1) sélectionnés sur le segment U correspondent à la signature du pixel sélectionné dans la première image 11.
Dans l’exemple non limitatif qui a été décrit ci-avant, un unique segment épipolaire était utilisé mais on notera qu’en variante, une pluralité de segments épipolaires, par exemple parallèles, pourraient être utilisés, chaque segment étant défini par une pluralité de points associés à des pixels de la deuxième image I2 de sorte que la signature de chaque point soit comparée à la signature du pixel associé dans la première image 11 afin de détecter de manière encore plus précise des motifs répétitifs dans les images. De même, on pourrait définir, plutôt qu’un segment ou une pluralité de segments, un cylindre épipolaire comprenant le segment U et une pluralité de points associés à des pixels de la deuxième image I2 et dont on pourrait comparer les signatures avec les pixels correspondant de la première image 11 afin de détecter de manière encore plus précise des motifs répétitifs dans les images.
On notera par ailleurs que pour les objets dynamiques, la rotation et translation entre les images sont de préférence exprimés par rapport à un repère monde qui est lié à l’objet dynamique.
Le procédé selon l’invention permet donc de détecter aisément et efficacement des motifs répétitifs dans les images capturées par la caméra 100 afin d’assister le conducteur dans sa conduite du véhicule 1.
II est précisé, en outre, que la présente invention n’est pas limitée aux exemples décrits ci-dessus et est susceptible de nombreuses variantes accessibles à l’homme de l’art.