Brevet FR3078183A1 — publié le 20190823

La présente invention se rapporte au domaine du traitement d'images et concerne plus particulièrement un procédé de détection d'un objet, situé dans l'environnement d'un véhicule automobile, à partir d'une caméra monoscopique embarquée dans ledit véhicule. De nos jours, la plupart des véhicules automobiles sont équipés d'un système d'aide à la conduite. De manière connue, un tel système comporte une ou plusieurs caméras, qui filment la route lorsque le véhicule roule, et un calculateur, qui traite les images acquises. Le calculateur peut être programmé pour détecter des objets spécifiques aussi bien statiques (véhicules à l'arrêt, trottoirs, lignes de marquage au sol, feux de signalisation, ...) que dynamiques (autres véhicules mobiles, piétons, ...) afin notamment de corriger la trajectoire du véhicule ou bien d'anticiper un freinage à la place du conducteur. Différents systèmes peuvent être utilisés pour détecter des objets. Dans une première solution connue, le système est stéréoscopique et comprend au moins deux caméras afin d'augmenter la précision de la détection. Dans une deuxième solution connue, le système est de type « Lidar » et émet des ondes se réfléchissant sur les objets afin de les détecter. Ces systèmes stéréoscopiques et Lidar ont pour but de fournir une information 3D dense et instantanée sans nécessiter de mouvement du système. 20 Toutefois, ces deux types de systèmes peuvent s'avérer relativement complexes et onéreux, ce qui présente un inconvénient important, notamment pour les véhicules d'entrée de gamme dont le coût de production doit être maintenu le plus faible possible. Aussi, dans une troisième solution connue, par souci de simplification et d'économie, le système ne comporte qu'une seule caméra et est dit « monoscopique ». 25 Dans ce cas, la détection des objets dynamiques nécessite un déplacement du système qui utilise alors les flots optiques entre les images successives capturées par la caméra pour détecter les objets dynamiques. En traitement d'images, le flot optique est une approximation du mouvement des pixels correspondant à un point observé dans une séquence d'images variant dans le 30 temps. Plus précisément, un flot optique correspond au mouvement d'un point entre deux images et s'exprime comme un vecteur de déplacement du point entre lesdites deux images. Le suivi de points associés à un objet permet ainsi de reconstruire l'environnement tridimensionnel observé par le véhicule, notamment les objets situés dans l'environnement du véhicule, afin d'assister le conducteur dans sa conduite. 2 L'utilisation du flot optique pour détecter les objets dynamiques est toutefois relativement complexe et peut conduire à des résultats imprécis. Notamment, l'utilisation du flot optique permet de déterminer une zone de l'image susceptible de correspondre à un objet dynamique mais ne permet pas de déterminer précisément le contour dudit objet, 5 ce qui peut poser un problème de sécurité car il est important de pouvoir identifier un objet dynamique, précisément pour pouvoir l'éviter. Il existe donc un besoin pour une solution simple, fiable et efficace permettant de détecter un objet dynamique à partir d'un système de caméra monoscopique. A cette fin, l'invention a tout d'abord pour objet un procédé de détection d'un 10 objet dynamique à partir d'une séquence d'images acquises par un système monoscopique monté dans un véhicule automobile, ledit système comprenant une unique caméra vidéo et un calculateur. Ledit procédé est remarquable en ce qu'il comprend, pour une première image et une deuxième image consécutive à la première image dans la séquence d'images, les étapes, mises en oeuvre par ledit calculateur, de : 15 - détermination d'une pluralité de flots optiques entre la première image et la deuxième image à partir d'une pluralité de points associés à au moins un objet représenté dans la première image, - génération d'une carte de densité de flots à partir des flots optiques déterminés, - détermination de la disparité de chacun desdits points à partir de la première image, de la deuxième image et d'une contrainte épipolaire, - génération d'une carte de disparité à partir des disparités déterminées, - superposition de la carte de densité de flots et de la carte de disparité afin d'obtenir une carte dite « dynamique », et - détermination du caractère dynamique de l'objet à partir de ladite carte dynamique. Par les termes « contrainte épipolaire », on entend le modèle mathématique de géométrie dite « épipolaire », qui décrit les relations géométriques de différentes images d'un même objet vu de différents points d'observation. La superposition de la carte de densité de flots et de la carte de disparité 30 permet de déterminer les contours de l'objet dynamique de manière précise, ce qui permet de déterminer le caractère dynamique de l'objet de manière fiable et efficace, notamment en le classifiant et en le localisant précisément. Selon un aspect de l'invention, le procédé comprend une étape préliminaire de génération d'une séquence d'images de l'environnement du véhicule par la caméra. 35 De préférence, le procédé comprend en outre, préalablement à l'étape de superposition, une étape de filtrage de la carte de disparité. Un tel filtrage permet de 3 supprimer au moins partiellement les absences de valeurs dans la carte de disparité afin de réduire le risque de détecter de faux objets dynamiques (c'est-à-dire des objets qui ne seraient en réalité pas dynamiques). En effet, la carte de disparité peut présenter des absences de valeurs pour certains pixels lorsqu'il n'est pas possible de calculer la 5 disparité pour ces pixels. Avantageusement, la carte de densité de flots est une carte binaire. Une carte binaire prend peu de place dans la mémoire du calculateur lors du traitement d'images. De plus, la transformation de la carte de densité de valeurs flottantes en valeurs binaires peut avantageusement être réalisée de manière simple en utilisant un seuil. 10 Avantageusement encore, la carte de disparité est une carte binaire. Certains pixels ont une valeur de disparité et d'autres n'en ont pas. On peut donc transformer cette carte de disparité en carte binaire de manière à réduire l'espace mémoire utilisé lors du traitement d'images. Selon un aspect de l'invention, un traitement de la carte dynamique peut être 15 réalisé à l'aide d'opérateurs morphologiques tels que, par exemple, l'érosion et la dilatation afin de faciliter la détection de zones caractérisées par l'absence de disparité. De tels opérateurs permettent de supprimer le bruit, ce qui est notamment avantageux pour traiter des objets dynamiques de taille conséquente. L'invention concerne également un calculateur, destiné à être monté dans un 20 véhicule automobile, pour la détection d'un objet dynamique à partir d'une séquence d'images acquises par un système monoscopique monté dans ledit véhicule automobile, ledit système comprenant une unique caméra vidéo et ledit calculateur, le calculateur étant remarquable en ce qu'il est configuré, pour une première image et une deuxième image consécutive à la première image dans la séquence d'images, pour : 25 - déterminer une pluralité de flots optiques entre la première image et la deuxième image à partir d'une pluralité de points associés à au moins un objet représenté dans la première image, - générer une carte de densité de flots à partir des flots optiques déterminés, - déterminer la disparité de chacun desdits points à partir de la première image, de la deuxième image et d'une contrainte épipolaire, - générer une carte de disparité à partir des disparités déterminées, - superposer la carte de densité de flots et la carte de disparité afin d'obtenir une carte dite « dynamique », et - déterminer le caractère dynamique de l'objet à partir de ladite carte dynamique. De préférence, le calculateur est configuré pour filtrer la carte de disparité. Avantageusement, la carte de densité de flots est une carte binaire. 4 Avantageusement encore, la carte de disparité est une carte binaire. L'invention concerne enfin un véhicule automobile comprenant un système monoscopique pour la détection d'un objet dynamique à partir d'une séquence d'images, ledit système comprenant une unique caméra vidéo, configurée pour générer une 5 séquence d'images de l'environnement du véhicule, et un calculateur tel que présenté précédemment. - La figure 1 est une vue de dessus d'un véhicule automobile équipé d'un système d'aide à la conduite selon l'invention, respectivement à un instant t (partie gauche de la figure) et à un instant t-1 (partie droite de la figure). 10 - La figure 2 est un logigramme représentant un mode de réalisation du procédé selon invention. - La figure 3 est un schéma illustrant une contrainte épipolaire relative à une rotation et une translation entre deux images. - La figure 4 représente la caméra, avec son centre optique et son plan 15 image à l'instant t-1 et à l'instant t de la figure 1, avant et après alignement des plans images. - La figure 5 représente un exemple d'un environnement d'un véhicule comprenant un objet dynamique et des objets statiques à deux instants consécutifs. 20 L'invention est destinée à être mise en oeuvre dans un véhicule automobile comprenant un système de caméra monoscopique. De préférence, le véhicule est un véhicule automobile mais il va de soi que l'invention s'applique indifféremment à tout véhicule. Le système selon l'invention permet la détection d'un objet dynamique dans l'environnement du véhicule à partir d'une séquence d'images capturées par ledit 25 système. Le système est dit monoscopique car il comprend, en référence à la figure 1, une unique caméra 1 vidéo, par exemple, montée au niveau supérieur du pare-brise 2 avant du véhicule. Il s'agit avantageusement d'une caméra 1 fonctionnant à une cadence fixe, captant par exemple seize images par seconde, sans toutefois que cela ne soit 30 limitatif de la portée de la présente invention. Est également représenté à la figure 1 un repère OXYZ intrinsèque de la caméra 1, respectivement à un instant t (figure 1, dessin de gauche) et à un instant t-1 (figure 1, dessin de droite). Dans ce repère, 0 désigne le centre optique de la caméra 1 et Z désigne l'axe optique de celle-ci. Ce repère n'est lié qu'à la caméra 1. Le 35 repère de la caméra 1 peut se confondre avec un repère du véhicule dans lequel l'axe Z correspond à l'axe de roulis (axe longitudinal) du véhicule, l'axe X correspond à l'axe de 5 tangage (ou axe transversal) du véhicule, l'axe Y correspond à l'axe de lacet du véhicule. En variante et de préférence, la caméra 1 est légèrement orientée vers la route, c'est-à-dire que l'axe X de la caméra 1 et l'axe de tangage du véhicule sont confondus mais que ce n'est pas le cas de l'axe Z de la caméra 1 et de l'axe de lacet du véhicule, le repère de 5 la caméra 1 ayant subi une légère rotation autour de l'axe de tangage (ou axe X), par exemple de 1° pour un véhicule léger jusqu'à 130 pair un poids lourd, selon la hauteur de la caméra 1 par rapport à la route et donc par rapport à la bande de roulement des pneus. Toujours en référence à la figure 1, le système comprend également un calculateur 100, par exemple de type Unité de Contrôle Electronique (« Electronic Control 10 Unit » ou ECU en langue anglaise). De manière remarquable, le système, notamment le calculateur 100, est configuré pour accomplir une pluralité de tâches. Plus précisément, la caméra 1 est configurée pour générer une séquence d'images de l'environnement du véhicule et pour transmettre cette séquence en temps réel au calculateur 100. Le calculateur 100 est configuré pour déterminer une pluralité de flots 15 optiques entre une première image et une deuxième image, consécutive à la première image dans la séquence d'images générée et transmise par la caméra 1, à partir d'une pluralité de points associés à au moins un objet représenté dans la première image. La détermination des flots optiques peut être réalisée par exemple en mettant en oeuvre l'algorithme de Lukas-Kanade ou toute autre méthode adaptée. 20 Le calculateur 100 est également configuré pour : - déterminer la disparité de chacun desdits points à partir de la première image et de la deuxième image, - générer une carte de densité de flots à partir des flots optiques déterminés, - générer une carte de disparité à partir des disparités déterminées, 25 - superposer ladite carte de densité de flots et ladite carte de disparité, et - déterminer le caractère dynamique de l'objet à partir de ladite superposition. Par le terme « disparité », on entend le décalage horizontal d'un même objet entre deux images. L'invention va maintenant être décrite dans sa mise en oeuvre en référence 30 aux figures 1 à 4. En référence à la figure 2, dans une étape El, la caméra 1 génère une séquence d'images de l'environnement du véhicule, par exemple lorsque ledit véhicule est en mouvement, et transmet ladite séquence au calculateur 100 en temps réel. Le calculateur 100 réalise les étapes suivantes E2 à E7 pour chaque couple 35 de deux images consécutives dans la séquence d'images. Les étapes E2 à E7 sont 6 décrites ci-après pour une première image et une deuxième image, consécutive à la première image dans la séquence d'images. Tout d'abord, dans une étape E2, le calculateur 100 détermine une pluralité de flots optiques, entre la première image et la deuxième image, d'une pluralité de points 5 associés à au moins un objet représenté dans la première image, cette pluralité de flots optiques constituant ainsi une « carte » de densité de flots optiques de manière connue en soi. Ensuite, dans une étape E3, le calculateur 100 génère une carte de densité de flots à partir des flots optiques déterminés. Une telle génération peut être réalisée en 10 calculant une distribution des flots optiques par région, c'est-à-dire le nombre de flots optiques par le nombre de pixels de la région considérée. Par le terme « région », on entend un voisinage d'un point sur une image. Ce voisinage est de préférence carré et centré sur ledit point. Dans une étape E4, le calculateur 100 détermine la disparité de chacun 15 desdits points à partir de la première image et de la deuxième image. Pour rappel, la disparité mesure la différence de position des pixels représentant un même point dans deux images consécutives, définies en coordonnées polaires. Un exemple préféré mais non-limitatif de calcul de disparité va maintenant être décrit. Dans cet exemple, le calculateur 100 réduit tout d'abord la distorsion de la 20 première image et de la deuxième image puis détermine une contrainte épipolaire entre ladite première image et ladite deuxième image afin de les aligner, de les rectifier et d'en déduire leur disparité comme cela va maintenant être décrit. La réduction de la distorsion de la première image et de la deuxième image peut être réalisée par le calculateur 100 en utilisant des paramètres radiaux, tangentiels et 25 prismatiques de manière connue en soi. En pratique, on notera que les images non distordues peuvent ne pas être générées, seuls les calculs étant alors effectués. Ensuite, le calculateur 100 procède au calcul d'une contrainte épipolaire entre la première image et la deuxième image, qui permet d'obtenir la translation et la rotation entre ladite première image et ladite deuxième image. Par les termes « contrainte 30 épipolaire », on entend le modèle mathématique de géométrie dite « épipolaire », qui décrit les relations géométriques de différentes images d'un même objet vu de différents points d'observation. Dans ce but, de manière connue de l'homme du métier, un flux temporel est tout d'abord déterminé à partir de la première image et de la deuxième image, lequel flux permet d'établir une matrice fondamentale. Des données de calibration 35 intrinsèque de la caméra 1 sont alors utilisées pour calculer une matrice essentielle, dont sont ensuite déduits une matrice de rotation et un multiple d'un vecteur de translation de 7 la caméra 1 entre la première image et la deuxième image. L'utilisation de la vitesse du véhicule fournie par un odomètre (non représenté) embarqué dans ledit véhicule permet de déduire le vecteur de translation de la caméra 1 entre la première image et la deuxième image prises respectivement aux instants (t-1) et (t) comme illustré sur la 5 figure 1. En d'autres termes, un changement de repère et d'unité lie la matrice fondamentale, laquelle a pour unité le pixel, et la matrice essentielle, qui a pour unité le mètre. Ce changement de repère fournit la matrice de rotation et le vecteur de translation de la caméra 1. A titre d'exemple, on a représenté à la figure 3 une contrainte épipolaire déterminée dans une première image (à droite sur la figure) d'un point A représenté dans 10 une deuxième image (à gauche sur la figure). Connaissant la position du point A dans la deuxième image, on peut en déduire une droite 32 sur laquelle le point correspondant doit se trouver dans la première image. Dans le cas d'une scène routière, cette droite peut être limitée à un segment 34 compte tenu du déplacement longitudinal et de la distance minimale des objets. 15 Le calculateur 100 aligne ensuite la première image et la deuxième image (dont le distorsion a été réduite) sur l'axe reliant les épipôles de la première image 7 et de la deuxième image 8. A titre d'exemple, on a représenté à la figure 4 une première image 7 générée par la caméra 1 à un premier instant et une deuxième image 8 générée par la caméra 1 à un deuxième instant, postérieur et consécutif audit premier 20 instant. Le calculateur 100 transforme la première image 7 et la deuxième image 8 non distordues respectivement en une première image dite 7' et en une deuxième image 8', alignées selon l'axe joignant les épipôles de la première image 7 et de la deuxième image 8. Ensuite, le calculateur 100 génère une première image et une deuxième 25 image dites « rectifiées » (non illustrées) qui correspondent respectivement à la transformation en coordonnées polaires de la première image alignée 7' et de la deuxième image alignée 8' (toutes deux préalablement établies en coordonnées cartésiennes). Cette opération a pour but de transformer tous les segments épipolaires (partant de l'épipôle, comme illustré sur la figure 3 et allant jusqu'au bord de 30 l'image avec un angle donné dans l'image) en lignes. Plus précisément, la résolution verticale de l'image polaire définit la résolution angulaire utilisée pour extraire les segments épipolaires de l'image cartésienne. Une telle transformation étant connue en soi, elle ne sera pas davantage détaillée ici. Ensuite, le calculateur 100 recherche la correspondance entre les points de la 35 première image rectifiée et de la deuxième image rectifiée. Cette opération consiste à rechercher le minimum d'au moins une fonction représentative d'une corrélation (par 8 exemple la somme, sur le voisinage du point considéré, des différences au carré) entre les intensités de pixels du point A (figure 3) de la deuxième image situé sur le segment épipolaire 32, de préférence limité par un filtre de disparité, de manière connue en soi. Chaque point de la première image rectifiée ayant une abscisse en 5 coordonnées polaires et pour lequel aucun flot optique n'est disponible peut être associé à un point image ayant une abscisse dans la deuxième image 8' rectifiée (c'est-à-dire en coordonnées polaires), la disparité polaire correspondant alors à la soustraction de ces deux abscisses en coordonnées polaires. Dans une étape E5, le calculateur 100 génère une carte de disparité 10 regroupant les disparités déterminées pour les points de la deuxième image. Cette carte de disparité est de préférence filtrée à l'aide d'un opérateur morphologique (de manière connue en soi). Ensuite, dans une étape E6, le calculateur 100 superpose la carte de densité de flots et la carte de disparité afin d'obtenir une carte dite « dynamique » ou « masque ». 15 Ce masque est la combinaison de la carte de densité de flots optiques et des absences de disparités sur la carte de disparité. Une absence de disparité d'un point du masque correspond au cas où il n'y a pas de correspondance dudit point avec un point de la première image dans la deuxième image, c'est-à-dire qu'il n'est pas possible de calculer une disparité. 20 Le masque permet de mettre en évidence trois types de zones : - les zones d'objet dynamique caractérisées par une absence de disparité et une densité de flot importante, - les zones d'incertitude caractérisées par une absence de disparité et une absence de densité de flot, 25 - les zones statiques caractérisées par l'existence de disparité. La distribution des flots optiques par région permet de déterminer les zones de l'image possédant plus de flots optiques que les autres, de telles zones étant plus pertinentes à exploiter pour les calculs de disparité, notamment afin d'estimer si l'absence de disparité provient d'un manque de texture (image) ou du fait que la contrainte 30 épipolaire ne soit pas respectée, ce qui traduit la présence d'un objet dynamique. On a représenté à la figure 5 une représentation schématique d'un objet dynamique OD se déplaçant entre un instant T et un instant 1+1 consécutif. Dans cet exemple, l'objet dynamique OD se trouve à deux endroits distincts sur la première image et sur la deuxième image capturées par la caméra 1 tandis que les objets statiques 0S1, 35 0S2, 0S3, 0S4 se trouvent au même emplacement. 9 Le calculateur 100 détecte que l'objet est dynamique à partir de la carte dynamique lorsque ledit objet est effectivement en mouvement (étape E7). Plus précisément, lorsque le masque déterminé à l'étape E6 présente une ou plusieurs zones d'objet dynamique ou d'incertitude (c'est-à-dire sans disparité), le calculateur 100 5 détermine, pour chaque zone d'objet dynamique ou d'incertitude détectée, le nombre de flots optiques présents dans ladite zone. Si la densité de flots est suffisante, c'est-à-dire supérieure à un seuil prédéterminé, par exemple 0,01 (c'est-à-dire un flot pour un voisinage de 100 pixels), alors le calculateur 100 en déduit que l'objet présent dans la zone analysée est /0 effectivement un objet dynamique. Notamment, comme le contour de la zone épouse celui de l'objet, la forme de ce contour peut donner une indication sur le type d'objet détecté (être humain, véhicule, REVENDICATIONS1. Procédé de détection d'un objet dynamique à partir d'une séquence d'images acquises par un système monoscopique monté dans un véhicule automobile, ledit système comprenant une unique caméra (1) vidéo et un calculateur (100), ledit procédé étant caractérisé en ce qu'il comprend, pour une première image et une deuxième image consécutive à la première image dans la séquence d'images, les étapes, mises en oeuvre par ledit calculateur (100), de : - détermination (E2) d'une pluralité de flots optiques entre la première image et la deuxième image à partir d'une pluralité de points associés à au moins un objet représenté dans la première image, /0 - génération (E3) d'une carte de densité de flots à partir des flots optiques déterminés, - détermination (E4) de la disparité de chacun desdits points à partir de la première image, de la deuxième image et d'une contrainte épipolaire, - génération (E5) d'une carte de disparité à partir des disparités déterminées, /5 - superposition (E6) de la carte de densité de flots et de la carte de disparité afin d'obtenir une carte dite « dynamique », et - détermination (E7) du caractère dynamique de l'objet à partir de ladite carte dynamique. 2. Procédé selon la revendication 1, comprenant une étape préliminaire (El) ) de 20 génération d'une séquence d'images de l'environnement du véhicule par la caméra (1). 3. Procédé selon l'une des revendications précédentes, comprenant en outre, préalablement à l'étape (E6) de superposition, une étape de filtrage de la carte de disparité. 4. Procédé selon l'une des revendications précédentes, dans lequel la carte de 25 densité de flots est une carte binaire. 5. Procédé selon l'une des revendications précédentes, dans lequel la carte de disparité est une carte binaire. 6. Calculateur (100), destiné à être monté dans un véhicule automobile, pour la détection d'un objet dynamique à partir d'une séquence d'images acquises par un 30 système monoscopique monté dans ledit véhicule automobile, ledit système comprenant une unique caméra (1) vidéo et ledit calculateur (100), le calculateur (100) étant caractérisé en ce qu'il est configuré, pour une première image et une deuxième image consécutive à la première image dans la séquence d'images, pour : 11 - déterminer une pluralité de flots optiques entre la première image et la deuxième image à partir d'une pluralité de points associés à au moins un objet représenté dans la première image, - générer une carte de densité de flots à partir des flots optiques déterminés, 5 - déterminer la disparité de chacun desdits points à partir de la première image, de la deuxième image et d'une contrainte épipolaire, - générer une carte de disparité à partir des disparités déterminées, - superposer la carte de densité de flots et la carte de disparité afin d'obtenir une carte dite « dynamique », et - déterminer le caractère dynamique de l'objet à partir de ladite carte dynamique. 7. Calculateur (100) selon la revendication précédente, configuré pour filtrer la carte de disparité. 8. Calculateur (100) selon l'une des revendications 6 et 7, dans lequel la carte de densité de flots est une carte binaire. 9. Calculateur (100) selon l'une des revendications 6 à 8, dans lequel la carte de disparité est une carte binaire. 10. Véhicule automobile comprenant un système monoscopique pour la détection d'un objet dynamique à partir d'une séquence d'images, ledit système comprenant une unique caméra (1) vidéo, configurée pour générer une séquence d'images de 20 l'environnement du véhicule, et un calculateur (100) selon l'une des revendications 6 à 9.