Brevet FR2917869A1 — publié le 20081226

PROCÉDÉ DE DÉTECTION D'UN OBJET CIBLE Domaine de l'invention La présente invention concerne un procédé de détection d'un objet cible dans un environnement se trouvant dans le champ d'une caméra vidéo, la caméra étant apte à acquérir une pluralité d'images, et un dispositif de détection permettant de mettre en oeuvre ledit procédé. Elle trouve une application particulière dans le domaine des Io véhicules automobiles. Etat de la technique Dans le cas d'un application à un véhicule automobile, un procédé de détection d'un objet cible, tel qu'un panneau de signalisation, connu de l'état de la technique comporte une caméra vidéo visant vers l'avant 15 du véhicule et permettant d'acquérir une image de l'environnement du véhicule. II consiste à détecter des contours sur l'image acquise par la caméra vidéo et à plaquer un filtre correspondant à l'objet cible à détecter sur chaque contour détecté. 20 Un des problèmes de cet état de la technique est que son exécution prend énormément de temps de traitement et ne peut donc se faire en temps réel. Objet de l'invention 25 La présente invention a pour but de faciliter la détection d'un objet cible contrasté ou non par rapport à son environnement et de permettre dans le même temps une détection en temps réel. Selon un premier objet de l'invention, ce but est atteint par un 30 procédé de détection d'un objet cible dans un environnement se trouvant 2 2917869 dans le champ d'une caméra vidéo, la caméra étant apte à acquérir une pluralité d'images, caractérisé en ce qu'il comporte les étapes de : -détecter des contours dans une image acquise par la caméra vidéo ; -détecter des segments à partir desdits contours détectés ; 5 - regrouper des segments détectés en parallélogrammes ; et - détecter un objet cible à partir desdits parallélogrammes. Comme on va le voir en détail par la suite, un tel procédé présente l'avantage d'effectuer un traitement en temps réel de la détection d'un to objet cible en se basant sur une décomposition d'un rectangle en quatre segments pour détecter un objet cible et en supprimant au préalable les segments et rectangles inutiles. Selon des modes de réalisation non limitatifs, le procédé présente 15 en outre les caractéristiques suivantes : La détection de contours utilise un filtre médian. Cela permet de lisser l'image acquise et donc de réduire le bruit ; La détection de contours utilise un opérateur de Canny. Cela permet de garder un maximum de contours, de détecter des 20 contours peu contrastés par rapport au fond d'image, d'extraire des contours par la suite ; - L'étape de détection de segments se base sur une taille et une pente des contours. Cela permet de déterminer les segments notamment à partir de ces deux paramètres ; 25 - L'étape de détection de segments comporte une sous-étape de fusionner des segments en fonction d'un écart vertical et d'un écart horizontal dans un repère image. Cela permet de réduire le nombre de segments ; L'étape de regroupement des segments en parallélogrammes 30 comprend une sous-étape de regroupement des segments par paires. Cela permet de supprimer des segments inutiles. Cela permet également de diminuer le temps de calcul par rapport à une solution sans regroupement par paires (par exemple, en regroupant directement les segments en rectangles) ; 3 2917869 - L'étape de regroupement des segments en parallélogrammes comprend une sous-étape de regroupement des paires de segments en parallélogrammes. Cela permet de supprimer les paires de segments inutiles. Cela permet également de diminuer le 5 temps de calcul par rapport à une solution sans regroupement par paires (par exemple, en regroupant directement les segments en rectangles) ; L'étape de détection d'objet cible comporte une sous-étape de suppression de parallélogrammes en fonction de l'objet cible à to détecter. Cela permet de supprimer les parallélogrammes inutiles en se basant sur les paramètres de l'objet cible à détecter ; L'étape de détection d'objet cible comporte une sous-étape de regroupement de parallélogrammes. Cela permet d'éviter les redondances et la détection d'objet cible sur des parallélogrammes ts très similaires. Selon un deuxième objet de l'invention, elle concerne un dispositif de détection d'un objet cible dans un environnement se trouvant dans le champ d'une caméra vidéo, la caméra étant apte à acquérir une pluralité 20 d'images, caractérisé en ce qu'il comporte : - un dispositif de traitement d'images pour : o détecter des contours dans une image acquise par la caméra vidéo ; et o détecter des segments à partir desdits contours détectés ; et 25 une unité de contrôle pour : o regrouper des segments détectés en parallélogrammes ; et o détecter un objet cible à partir desdits parallélogrammes. Selon un troisième objet de l'invention, elle concerne un produit 3o programme d'ordinateur comportant une ou plusieurs séquences d'instructions exécutables par une unité de traitement d'information, l'exécution desdites séquences d'instructions permettant une mise en oeuvre du procédé selon l'une quelconque des caractéristiques précédentes. 4 2917869 Brève description des figures D'autres caractéristiques et avantages de la présente invention seront mieux compris à l'aide de la description et des dessins non 5 limitatifs parmi lesquels : ù la Fig. 1 représente un diagramme d'un mode de réalisation non limitatif du procédé de détection selon l'invention ; la Fig. 2 est une représentation schématique d'une première image acquise par une caméra vidéo et utilisée dans le procédé de la Fig 1 ; to la Fig. 3 est un schéma plus détaillé de la Fig. 2 ; la Fig. 4 est une représentation schématique d'une deuxième image dont les contours ont été extraits selon le procédé de la Fig 1 ; la Fig. 5 est un dessin explicatif d'une extraction d'un contour effectuée selon le procédé de la Fig 1 ; Is la Fig. 6 est un dessin explicatif d'une approximation du contour extrait de la Fig. 5 par un segment, utilisée selon le procédé de la Fig. 1 ; la Fig. 7 est une représentation schématique de segments détectés dans une image selon le procédé de la Fig. 1 ; 20 ù la Fig. 8 est un schéma explicatif d'une fusion de segments effectuée selon le procédé de la Fig. 1 ; ù la Fig. 9 est une représentation schématique de segments détectés dans une image après tri et fusion selon le procédé de la Fig. 1 ; - la Fig. 10 est un schéma explicatif d'un assemblage de segments par 25 paires effectué selon le procédé de la Fig. 1 ; la Fig. 11 est un schéma explicatif d'un assemblage de paires de segments en rectangles effectué selon le procédé de la Fig. 1 - la Fig. 12 est une représentation schématique de rectangles détectés dans une image selon le procédé de la Fig. 1 ; 5 2917869 - a Fig. 13 représente le résultat final d'une détection d'objet cibles à partir de rectangles dans une image selon le procédé de la Fig. 1 ; et - la Fig. 14 est un schéma du dispositif de détection permettant la mise en oeuvre du procédé de la Fig. 1. Description détaillée de modes de réalisation non limitatifs de l'invention Le procédé de détection d'un objet cible selon l'invention est décrit Io dans un mode de réalisation non limitatif à la Fig. 1. Dans le cadre de la description, le procédé est décrit pour une application non limitative de la détection d'un objet cible correspondant à un panneau de signalisation de forme parallélogramme tel que des 15 rectangles. Dans un exemple non limitatif, on considère des panneaux de signalisation américains ou panonceaux en France ou dans d'autres pays d'Europe. La forme en rectangle sera utilisée pour la suite de la description. 20 Dans cette application, la détection se fait à partir d'un dispositif de détection embarqué dans un véhicule automobile référentiel comprenant une caméra vidéo. Pour détecter un objet cible tel qu'un panneau de signalisation qui 25 se présente sous la forme d'un rectangle, on doit connaître les caractéristiques suivantes : angle d'orientation 8 par rapport à un axe vertical sur l'image acquise par la caméra vidéo ; intervalles de valeurs pour la hauteur INTH = [HTMin, HTMax] et la 30 largeur INTL = [WTmin, Wtmax] ; et un intervalle de valeurs pour un ratio largeur/hauteur d'un rectangle INT2 = [R2min, R2max] déterminé de manière à ce qu'il 5 5 6 2917869 comprenne le ratio largeur/hauteur de l'ensemble des objets cibles O_P à détecter, avec R2min, le ratio largeur/hauteur minimal d'un objet cible O_P, et R2max, le ratio largeur/hauteur maximal d'un objet cible O_P. Dans le cadre de l'application véhicule et panneau de signalisation, les valeurs de ces intervalles sont définies de telle sorte qu'à partir du véhicule référentiel R_VH on puisse toujours détecter dans l'image acquise un panneau de signalisation lorsque le véhicule se trouve à une Io distance maximale et à une distance minimale du panneau. Dans un exemple non limitatif, lorsque le véhicule se situe à une distance minimale du panneau, WTmax = 120 pixels, et HTmax = 150 pixels. On prend dans un exemple non limitatif une distance minimale 15 égale à 4 mètres. Dans un exemple non limitatif, lorsque le véhicule se situe à une distance maximale du panneau, WTmin = 10 pixels, et HTmin = 15 pixels. On prend dans un exemple non limitatif une distance maximale 20 égale à 30 mètres. Dans un exemple non limitatif, on prend R2min = 0.4 et R2max = 1.2 de telle sorte que la taille des objets réels est ainsi incluse dans cet intervalle (par exemple, la taille des panneaux américains varie entre 25 40*100cm (ratio= 0.4) et 120*100 cm (ratio= 1.2)). On rappellera que lorsqu'un panneau est loin de la caméra, le ratio largeur/hauteur est le même que lorsqu'il est proche de la caméra. Par exemple pour un panneau de taille réelle 40*100cm, sur l'image s'il a une taille de 20*50 lorsqu'il est loin de la caméra et de 100*250 lorsqu'il est proche, le ratio 30 sur l'image reste le même que le ratio réel : 40/100 = 20/50 = 100/250 = 0.4. Bien entendu, ces valeurs sont fixées en fonction des objets à détecter, de la caméra utilisée (qualité de l'image, résolution, ...). Les 7 2917869 valeurs données ici à titre d'exemple non limitatif, sont utilisées pour la détection de panneaux américains. Elles sont définies de manière empirique. 5 Le procédé de détection comporte les étapes suivantes telles qu'illustrées à la Fig 1: ù acquérir au moins une image de l'environnement d'un objet référentiel, ici un véhicule référentiel, grâce à une caméra vidéo (étape ACQ_SQ(li) illustrée à la Fig. 1) ; io ù détecter des contours dans l'image acquise par la caméra vidéo (étape DETECT_C illustrée à la Fig. 1) ; détecter des segments à partir desdits contours détectés (étape DETECT S illustrée à la Fig. 1) ; regrouper des segments détectés en parallélogrammes, ici des 15 rectangles (étape GROUP_R illustrée à la Fig. 1) ; et détecter un objet cible à partir desdits rectangles (étape DETECT_O illustrée à la Fig. 1). Les étapes sont décrites en détail ci-après. 20 On notera que la suite de la description est donnée pour la détection d'objets cibles verticaux , c'est-à-dire dont l'angle d'orientation 8 est égal à 0 , plus ou moins 10 . Le plus ou moins 10 permet de prendre en compte également les cas où l'objet cible, ici le 25 panneau de signalisation, est un peu penché. Dans une première étape 1), on acquiert une image li (i = 1 à n, n entier) de l'environnement d'un objet référentiel, ici un véhicule référentiel R_VH, grâce à une caméra vidéo Cam embarquée. Dans un 30 exemple non limitatif, la caméra vidéo acquiert 10 images par seconde. On notera qu'une séquence d'images SQ comprend entre vingt images et une centaine d'images par seconde selon la vitesse à laquelle roule le véhicule référentiel R_VH. 8 2917869 Un exemple non limitatif d'une image li acquise par la caméra Cam est représenté sur la Fig. 2. 5 L'image li ainsi acquise est en pleine résolution. Dans un exemple non limitatif, la résolution de la caméra est égale à 640*480 pixels (soit une image acquise li de 8 bits (par pixel) et de 640 colonnes et 480 lignes). Bien entendu, une caméra avec une résolution différente peut être utilisée. i0 La caméra vidéo Cam étant placée, dans l'exemple pris, à l'avant du véhicule référentiel R_VH, l'image acquise li correspond à l'environnement du véhicule référentiel R_VH se trouvant dans le champ de la caméra Cam et donc à l'avant du véhicule référentiel R VH. On va 15 donc détecter un objet cible O_P, ici un panneau de signalisation, se trouvant à l'avant du véhicule référentiel R_VH. Dans un exemple non limitatif, la caméra Cam est placée près du rétroviseur intérieur central du véhicule référentiel R VH. 20 On notera que cette étape d'acquisition d'images peut ne pas être compris dans le procédé décrit, mais peut faire partie d'un autre procédé exécuté en amont du procédé décrit. Dans une deuxième étape 2), on détecte les contours dans 25 l'image acquise li par la caméra vidéo. Le but de cette étape est de conserver un maximum de contours pour pouvoir détecter des rectangles peu contrastés sur l'image comme on va le voir en détail par la suite. Le fait de garder beaucoup de 30 contours permet de garder les contours de faible gradient qui correspondent à des rectangles peu contrastés. On peu donc détecter des valeurs de gradient faible autour des panneaux de signalisation. 5 30 9 2917869 La détection de contours C s'effectue selon les sous-étapes suivantes illustrées à la Fig. 3 : -utilisation d'un filtre médian (FILT) ; et - application d'un opérateur Canny (OP_CANNY). Ses sous-étapes sont décrites en détail ci-après. Dans une première sous-étape non limitative 11), nommée FILT à la Fig. 3, on applique un filtre médian sur l'image li afin d'éliminer les io contours les plus faibles dans l'image (ceux qui sont dus à du bruit dans l'image). Le filtre médian lisse ainsi l'image de sorte que les pixels bruités disparaissent. Un autre intérêt d'un filtre médian par rapport à un autre filtre tel 15 que par exemple un filtre gaussien est qu'il ne déforme pas les contours. Cette technique de filtre médian se base sur une technique de traitement du signal selon laquelle on parcourt l'image avec une fenêtre de taille sigma*sigma (par exemple, avec sigma = 3). Pour chaque position de la fenêtre, on calcule la valeur médiane des sigma*sigma pixels de la 20 fenêtre, et on donne cette valeur au pixel central (sigma est donc un nombre impair). Cette technique étant bien connue de l'homme du métier, elle n'est pas décrite plus en détail ici. On notera qu'il est possible de ne pas 25 effectuer cette première sous-étape. Dans une deuxième sous-étape non limitative 12), nommée OP CANNY à la Fig. 3, on calcule les contours en utilisant l'opérateur de Canny. L'application de cet opérateur est une technique de détection de contours C selon laquelle : 2917869 On applique un filtrage gaussien sur l'image qui permet de lisser l'image et de réduire le bruit sur l'image. On notera que ce filtre est plus faible que le filtre médian ci-dessus. Donc les déformations sur les contours induits sont minimes ; 5 On détecte les contours en utilisant l'opérateur de Sobel, selon lequel on calcule le gradient de l'image pour chaque pixel. Le gradient permet également de trouver la direction des contours ; et On seuille l'image des contours (c'est-à-dire qu'on élimine les pixels pour lesquels la valeur de gradient est trop faible ; plus le gradient io d'un pixel est élevé, plus il est probable que ce pixel appartienne à un contour). Ce seuillage utilise 2 seuils : un seuil haut (si le gradient est supérieur au seuil haut, le pixel est sur un contour) et un seuil bas (si le gradient est inférieur au seuil bas, le pixel n'est pas sur un contour, sinon on vérifie que le pixel est à coté d'un contour (c'est-à-dire un is autre pixel dont le gradient est supérieur au seuil haut). Ce seuil bas permet d'effectuer des liaisons entre contours de fort gradient et contours de faible gradient. Les valeurs de ces deux seuils sont définies de manière à conserver un maximum de contours afin de détecter des rectangles peu contrastés sur l'image par la suite. Ainsi, 20 plus les valeurs sont basses, plus on garde de contours. Dans un exemple non limitatif, le seuil haut a une valeur de 20 et le seuil bas a une valeur de 10. Cet opérateur de Canny étant bien connu de l'homme du métier, il 25 n'est pas décrit plus en détail ici. Le résultat de la détection des contours dans l'image acquise Ii par la caméra vidéo Cam donne une image des contours Ic. On notera qu'un contour du point de vue traitement d'image est 30 une brusque variation de luminosité dans deux régions de l'image. Les contours sont illustrés par des suites de pixels adjacents blancs. Par ailleurs, sur cette image des contours Ic, en raison de l'opérateur de 11 2917869 Canny, chaque contour a une largeur de un pixel et deux contours sont toujours séparés par au moins un pixel opposé, ici noir. Ces deux caractéristiques (une largeur de pixel et un pixel de 5 séparation, ici noir) vont permettre d'effectuer une extraction de contour comme on va le voir par la suite. Bien entendu, des opérateurs autres que celui de Canny peuvent être utilisés pour obtenir les deux caractéristiques mentionnées ci-dessus. io La Fig. 4, illustre une image des contours Ic, dans laquelle, on a inversé les couleurs pour plus de visibilité, les contours étant ici représentés par des suites de pixels adjacents noirs. Dans une troisième étape 3), on détecte des segments S à partir 15 des contours C détectés ci-dessus. La détection des segments S s'effectue selon les sous-étapes suivantes illustrées à la Fig. 3 : extraction d'un contour C (EXTRACT_C) ; 20 û analyse du contour extrait C (ANAL_C) ; et approximation du contour C pour créer un segment S (APPROX_C). Par ailleurs, dans un mode de réalisation non limitatif, une quatrième sous-étape supplémentaire est effectuée selon laquelle on 25 regroupe les segments crées S qui sont très proches (FUSE_S). Ses sous-étapes sont décrites en détail ci-après. Dans une première sous-étape non limitative 31), nommée 3o EXTRACT C à la Fig. 3, on extrait des contours C à partir de l'image des contours Ic. 20 12 2917869 Un contour C est défini par quatre variables qui sont nommées Ymin, Ymax, Xstart, et Xend. On parcourt chaque colonne de l'image des contours le pour trouver le début d'un contour C. Le début d'un contour C est défini par un pixel blanc. Après avoir trouvé le début d'un contour, 5 on suit ce contour pixel blanc par pixel blanc pour l'extraire. La fin d'un contour C étant marqué par un pixel noir voisin. Dans un exemple non limitatif, sur une image 8 bits, la valeur des pixels du contour est 255 (blanc), les autres pixels ont une valeur nulle (noir). On parcourt donc l'image à la recherche d'un point blanc et une fois trouvé, on regarde les io pixels voisins pour trouver un autre point blanc. Si on en trouve un, on réitère l'opération à partir de ce point; sinon, cela signifie qu'on a atteint la fin du contour C. Un exemple d'un tel contour C est illustré à la Fig. 5. Il comprend 15 23 pixels blancs. Dans une deuxième sous-étape non limitative 32), nommée ANAL C à la Fig. 3, on analyse le contour C extrait pour savoir s'il peut représenter un segment S. Dans le cas d'un segment horizontal SH, on s'intéresse aux caractéristiques suivantes pour un segment S : - a) longueur TA du segment S ; et - b) pente PE du segment S. 25 Ainsi, en fonction de ces caractéristiques, pour un contour C, on regarde : a) si la taille TA (nombre de pixels appartenant au contour) du contour C est supérieure à une première valeur minimale 30 déterminée V1 min. Dans l'affirmative, le contour C est conservé ; dans le cas contraire, il est supprimé. Dans un exemple non limitatif, dans le cas d'un panneau de signalisation, cette valeur V1 min est de 5 pixels. En effet, les contours dont la taille TA est inférieure à 5 pixels dans cet exemple, ne correspondent pas à un 13 2917869 contour d'objet réel mais sont souvent dus à du bruit dans l'image. Cette taille TA de contour C va représenter la longueur d'un segment S. Un exemple de contour C est illustré à la Fig. 5. La taille TA du contour est de 23 pixels (soit supérieure à V1 min). Le 5 contour C est conservé. Ay b) si la variation du contour C est inférieure à une première valeur maximale déterminée V1 max. Dans l'affirmative, le contour C est conservé ; dans le cas contraire, il est supprimé. io Dans un exemple non limitatif, dans le cas d'un panneau de signalisation (vertical c'est-à-dire non penché, d'angle d'orientation approximativement égal à 0), cette valeur V1 max est de 0,3. En effet, comme on cherche à détecter des segments horizontaux ou verticaux, si un contour à une pente PE trop importante, on est certain qu'il n'appartient pas à un objet rectangulaire type panneaux de signalisation (c'est par exemple le cas des contours qu'on voit sur des arbres (Fig. 4)). Cette valeur permet de prendre en compte les panneaux qui sont verticaux avec un aléa de plus ou moins 10 , comme indiqué plus haut. Dans le cas où l'on veut uniquement que les panneaux strictement verticaux, on prend V1 max = O. Cette variation Ay de contour C va représenter la pente PE d'un segment S qui est directement liée à une inclinaison 0 des objets cibles recherchés, qui sont ici des rectangles (panneaux de signalisation 0 rectangulaires). Dans l'exemple de la Fig. 5, la variation est égale à 6/23 = 0,26 (soit inférieure à V1 max). Le contour C est donc conservé. Ainsi, l'intérêt de cette sousétape est de simplifier la suite du procédé en enlevant les contours C inutiles et d'améliorer le temps de 3o calcul pour les étapes suivantes. 15 25 14 2917869 On notera que concernant la première valeur minimale et maximale V1 min et V1 max, ces valeurs sont fixées en fonction des objets à détecter, de la caméra utilisée (qualité de l'image, résolution, ...). Les valeurs données ici à titre d'exemple non limitatif, sont utilisées pour la 5 détection de panneaux américains. Elles sont définies de manière empirique. On notera que dans le cas des segments verticaux SV, la deuxième sous-étape est appliquée de la même manière, la variation to étant à ce moment égale à : Dans une troisième sous-étape non limitative 33), nommée APPROX C à la Fig. 3, on approxime un contour C conservé pour créer un segment S. Un segment horizontal SH est défini par les données Y, Xs et Xe : ù Y est la ligne sur laquelle est le segment S ; Xs est la colonne à laquelle appartient la première extrémité du segment S ; et 20 ù Xe est la colonne à laquelle appartient la deuxième extrémité du segment S. Si le contour C a été conservé à la sous-étape précédente, on le transforme en un segment S de la manière suivante. On détermine les valeurs Y, Xs, et Xe qui définissent le segment S à partir des données du contour C. On a ainsi : ù Xs = Xstart et Xe = Xend. Ces données ont été déterminées auparavant dans la sous-étape 31) d'extraction du contour C ; et 15 2917869 - Y correspond à la ligne LM sur laquelle on trouve le plus de points appartenant au contour C. Ainsi, comme illustré aux Fig. 5 et Fig. 6, on a déterminé un 5 segment horizontal SH, à partir d'un contour C. On notera que dans le cas des segments verticaux SV, cette troisième sous-étape est appliquée de la même manière avec les données X, Ys et Ye : io X est la colonne sur laquelle est le segment S ; - Ys est la ligne à laquelle appartient la première extrémité du segment S ; et - Ye est la ligne à laquelle appartient la deuxième extrémité du segment S. 15 Dans ce cas, on obtient : Ys = Ymin et Ye = Ymax. Ces données ont été déterminées auparavant par dans la sous-étape 31) d'extraction du contour C ; et X correspond à la colonne CM sur laquelle on trouve le plus de points 20 appartenant au contour C. On notera qu'on effectue les trois sous-étapes décrites ci-dessus pour l'ensemble des contours C de l'image des contours lc. Ainsi, on obtient une image des segments S détectés Is illustrée dans un exemple 25 non limitatif à la Fig. 7. Dans une quatrième sous-étape non limitative, 34), nommée FUSE_S à la Fig. 3, on regroupe les segments S trouvés très proches. Cela permet : - de réduire le nombre total de segments S en les regroupant ; - de permettre de détecter les contours brisés ; et donc 16 2917869 - d'améliorer le temps de calcul pour les étapes suivantes et de les simplifier. Pour les segments horizontaux SH, on effectue les opérations 5 suivantes. Pour chaque segment SHI faire : pour chaque segment SH2 différent de SH1, faire : SI Ay = lyl û y21 (écart vertical selon l'axe des y dans un repère image) est supérieur à une deuxième valeur maximale io déterminée V2max, alors les segments SHI et SH2 ne sont pas fusionnés (cela veut dire que les segments sont trop espacés et qu'ils n'appartiennent sans doute pas au même objet O_P). Dans un exemple non limitatif, V2max = entre 1 et 3 pixels. SINON 15 Sv = max (Xsl, Xs2), ev = min (Xel, Xe2), avec Xsl, Xel coordonnées du premier segment SH1, et Xs2, Xe2, coordonnées du deuxième segment SH2 SI (ev û Sv) (écart horizontal selon l'axe des x dans le 20 repère image) est inférieur à une deuxième valeur minimale déterminée V2min, alors les segments SH1 et SH2 ne sont pas fusionnés (cela veut dire que les segments sont trop espacés et qu'ils n'appartiennent sans doute pas au même objet O_P). Dans un exemple 25 non limitatif, V2min = - 5. SINON on fusionne les deux segments SHI et SH2 en un nouveau segment SHnew dont les caractéristiques sont : - Ynew = position du segment le plus long parmi les 30 deux segments SH1 et SH2 (position qui correspond au numéro de ligne sur l'image à laquelle il appartient) ; - Xsnew = min (Xsl, Xs2) ; et Xenew = max (Xel, Xe2). 17 2917869 En résumé, cette fusion de segments S proches dépend des deux écarts vertical et horizontal ci-dessus, écarts définis dans le repère image selon l'axe des x et l'axe des y. Si l'écart Ay est inférieur à la 5 deuxième valeur maximale V2max, et si l'écart ev û Sv est supérieur à la deuxième valeur minimale V2min, les deux segments sont fusionnés. On réitère ces opérations pour chaque segment SH1 avec tous les autres segments SH2 différents. Puis on recommence en prenant un to deuxième segment et tous les autres segments différents etc. On peut appliquer plusieurs fois cette sous-étape de manière à être sûr d'avoir effectué toutes les fusions possibles. La Fig. 8 donne trois exemples non limitatifs de segments 15 horizontaux qui ont été fusionnés car Ay V2min. Le troisième cas montre deux segments SH1 et SH2 appartenant à un même contour C, ce contour ayant été brisé. Ces deux segments SH1 et SH2 ont donc été regroupés. On notera que l'on procède de manière 20 identique pour les segments verticaux SV. Un nouveau segment vertical fusionné SVnew ayant les caractéristiques suivantes : - Xnew = position du segment le plus long parmi les deux segments 25 SV1 et SV2 (position qui correspond au numéro de colonne à laquelle il appartient) ; - Ysnew = min (Ysl, Ys2) ; et - Yenew = max (Yel, Ye2). 30 Avec les mêmes écarts V2max et V2min dans un exemple non limitatif. On notera que concernant la deuxième valeur minimale et maximale V2min et V2max, ces valeurs sont fixées en fonction des 5 18 2917869 objets à détecter, de la caméra utilisée (qualité de l'image, résolution, .). Les valeurs données ici à titre d'exemple non limitatif, sontutilisées pour la détection de panneaux américains. Elles sont définies de manière empirique. Ainsi, grâce à cette quatrième sous-étape 34), on obtient une image des segments S après fusion If illustrée dans un exemple non limitatif à la Fig. 9...DTD: io Ainsi, à l'issu de l'étape de détection des segments, on connaît la position de tous les segments S d'orientation 6 dans l'image acquise li. Dans une quatrième étape 4), on regroupe des segments détectés S ci-dessus en parallélogrammes, ici en rectangles R. 15 Cette étape va permettre de regrouper les segments horizontaux et verticaux respectivement par paires de manière par la suite à former des rectangles. Ainsi, les segments qui ne peuvent être regroupés par paires et par rectangles sont supprimés, ce qui permet d'améliorer le temps de 20 calcul des étapes suivantes et de les simplifier. Le regroupement des segments S en rectangles s'effectue selon les sous-étapes suivantes illustrées à la Fig. 3 : regroupement des segments S par paires (GROUP_P) ; et 25 û regroupement des paires en rectangles (GROUP_P_R). Ces sous-étapes sont décrites en détail ci-après. Dans une première sous-étape non limitative 41), nommée 3o GROUP_P à la Fig. 3, on regroupe les segments S par paires. Cette sous-étape permet de supprimer les segments S inutiles. 5 19 2917869 Le regroupement se fait en fonction de la nature des segments, à savoir s'ils sont horizontaux ou verticaux. Ainsi, on regroupe les segments verticaux SV par paires, et on regroupe les segments horizontaux SH par paires. Deux segments verticaux SV sont assemblés dans les cas suivants Soient SV1 et SV2, deux segments dont on note la position des io extrémités Y1 min, Y1 max (pour SV1) et Y2min, Y2max (pour SV2). Les deux segments SV1 et SV2 forment une paire si : d'une part la hauteur h = min (Y1 max, Y2max) ù max (Y1 min, Y2min) est supérieure à Hmin, avec : 15 - Hmin = min (WTmin, HTmin), - WTmin la largeur minimale d'un objet O_P à détecter, et - HTmin la longueur minimale d'un objet O_P à détecter, soit ici un panneau de signalisation. Dans un exemple non limitatif, WTmin = 10 et HTmin = 15, comme vu précédemment. 20 et d'autre part d = la distance horizontale (selon l'axe des x) existant entre les deux segments SV1 et SV2 est inférieure à une distance maximale WTmax. Dans un exemple non limitatif, WTmax = 120, comme vu précédemment. Cela permet de vérifier que les deux segments ne sont pas trop écartés l'un de l'autre. Si ce n'est pas le 25 cas, ils n'appartiennent pas à un panneau de signalisation. Ainsi, on regarde si les deux segments sont approximativement l'un en face de l'autre de sorte à former une paire. Dans le cas où un segment S n'appartient à aucune paire, on le supprime. On parcourt ainsi tous les segments (pour chaque segment SV1, et pour chaque segment SV2 différent de SV1). 30 20 2917869 Dans un mode de réalisation non limitatif, on commence le parcours en partant d'en haut à gauche de l'image des segments If, et en continuant le parcours ligne par ligne de haut en bas. Puis, on passe à la colonne suivante. Dès que la colonne est trop éloignée (on a atteint 5 WTmax), on s'arrête. Cette relation d'ordre de gauche à droite et de haut en bas permet de trier les segments de sorte à ne pas faire de comparaisons inutiles par la suite. De façon pratique, on peut par exemple trier les segments SV dans lo un tableau en indexant chaque segment SV avec son numéro de colonne et ses numéros de lignes correspondant à chacune de ses extrémités, en effectuant le tri de haut en bas et de gauche à droite de l'image des segments If, en commençant par l'endroit en haut à gauche de ladite image. Ensuite, on parcourt ce tableau en prenant le 1er élément du 15 tableau et en le comparant avec le 2ème élément du tableau, puis le Sème etc. Ensuite, on recommence la comparaison en prenant le 2ème élément et en le comparant avec les éléments suivants et ainsi de suite jusqu'au dernier élément du tableau. 20 On peut ainsi avoir une pluralité de paires en partant d'un segment SV1 associé à plusieurs autres segments SV2. La Fig. 10 donne deux exemples de regroupements par paires (les deux premiers exemples), et un exemple de non regroupement. 25 On procède de la même manière pour les segments horizontaux SH. Dans un mode de réalisation non limitatif, on commence le parcours en partant d'en haut à gauche de l'image des segments If, et en continuant le parcours colonne par colonne de gauche à droite. Puis, on passe à la ligne suivante. Dès que la ligne est trop éloignée (on a atteint 30 Hmax), on s'arrête. Cette relation d'ordre de gauche à droite et de haut en bas permet de trier les segments de sorte à ne pas faire de comparaisons inutiles par la suite. 21 2917869 De façon pratique, on peut par exemple trier les segments dans un tableau en indexant chaque segment S avec son numéro de ligne cette fois et ses numéros de colonnes correspondant à chacune de ses extrémités, en effectuant le tri de haut en bas et de gauche à droite de 5 l'image des segments If, en commençant par l'endroit en haut à gauche de ladite image. Ainsi, on obtient des paires de segments verticaux SV et des paires de segments horizontaux SH. Ainsi, cette étape permet également io de supprimer les segments qui sont inutiles et donc de simplifier les étapes suivantes du procédé. On notera que cette étape est simple et très rapide à exécuter. Dans une deuxième sous-étape non limitative 42), nommée 15 GROUP P R à la Fig. 3, on regroupe les paires de segments S en rectangles R. Cette sous-étape permet de supprimer les paires de segments inutiles. On procède de la manière suivante : 20 Pour chaque paire verticale SV_P, on parcourt les paires horizontales SH_P et on essaye de les regrouper ensemble de la manière suivante : û On allonge les segments SV1, SV2 et SH3, SH4 formant respectivement la paire verticale SV_P et la paire horizontale SH_P d'un nombre NP de pixels déterminé pour prendre en compte les 25 contours dits brisés (c'est-à-dire que l'on allonge chaque bout des segments de NP pixels). On notera qu'à la sous-étape 34 citée ci-dessus, on a pris en compte le fait qu'un segment peut être brisé. Ici, on prend en compte le fait que le rectangle peut être brisé (au niveau des coins du rectangle). 30 - On compte le nombre de points d'intersections Ip entre les segments verticaux SV1, SV2 et horizontaux SH3, SH4 des deux paires de segments sélectionnés SV_P et SH_P ; 22 2917869 S'il y a 4 points d'intersections Ip, les 2 paires forment un rectangle R. Les coordonnées du rectangle R sont données par les points !pl à Ip4. 5 On recommence ainsi les essais de regroupement avec la paire verticale suivante SV P et ainsi de suite. Dans le cas où on ne peut regrouper une paire verticale avec une paire horizontale, on la supprime de l'affichage. Elle n'apparaît donc pas to sur l'image résultante Ir. Dans un exemple non limitatif, on prend le nombre NP de pixels déterminé entre 4 et 6 pixels. Par exemple, on peut fixer sa valeur à 6 pixels. On notera que plus ce nombre NP est grand, plus on va détecter 15 de rectangles R, et plus il est petit, plus on risque de ne pas détecter certains rectangles. Cette valeur de 6 pixels est un bon compromis. Encore une fois, cette valeur est fixée en fonction des objets à détecter, de la caméra utilisée (qualité de l'image, résolution, ...). Elle est donc donnée ici à titre d'exemple non limitatif, et est utilisée pour la détection 20 de panneaux américains. Elle est définie de manière empirique pour les objets panneaux de signalisation américains. On notera que si un rectangle est très contrasté par rapport à son environnement, on peut prendre NP égal à 0. 25 On notera également que si on fixe le nombre NP à 10 pixels ou plus, on est sûr d'avoir environ 200 rectangles de détectés dans l'image, qui recouvrent toute l'image ce qui empêche de déterminer correctement les objets que l'on veut détecter, à savoir un panneau de signalisation 30 dans l'exemple pris. On notera que l'on peut bien évidemment partir de chaque paire horizontale SH P au lieu des paires verticales SV_P. 23 2917869 La Fig. 11 donne deux exemples d'essais de regroupement de paires de segments en rectangles R, dont l'un réussi (cas n 1), et le deuxième échoue (cas n 2). 5 Dans le premier cas, tous les segments SV1, SV2, SH3 et SH4 coupent deux autres segments pour donner deux points d'intersection, soient 4 au total Ip1 à Ip4, tandis que dans le deuxième cas, le segment horizontal SH4 ne donne aucun point d'intersection Ip avec les deux io segments verticaux SV1 et SV2. Seul le segment horizontal SH3 donne deux points d'intersection lpl et Ip2 avec respectivement les deux segments verticaux SV1 et SV2. La Fig. 12 illustre dans un exemple non limitatif le résultat de cette is quatrième étape. On obtient ainsi une image de rectangles Ir. Comme on peut le voir sur cette image, il existe moins d'une dizaine de rectangles R détectés. Dans une cinquième étape 5), nommée DETECT_O à la Fig. 3, on 20 détecte les objets cibles O_P à partir des rectangles R détectés. Cette étape permet d'affiner la détection des rectangles de manière à trouver le véritable objet cible O_P, soit dans l'exemple pris un panneau de signalisation. 25 La détection d'un objet cible O_P s'effectue selon les sous-étapes suivantes illustrées à la Fig. 3 : éliminer les rectangles R dont les caractéristiques ne correspondent pas à celles recherchées (SUPP_R) ; regrouper les rectangles R similaires (FUSE_R) ; et 30 détecter l'objet cible réel (DETECT_REAL). Ses sous-étapes sont décrites en détail ci-après. 5 24 2917869 Dans une première sous-étape non limitative 51), nommée SUPP R à la Fig. 3, on élimine les rectangles dont les caractéristiques ne correspondent pas à celles recherchées, appelés rectangles incorrects. Cette sous-étape permet de supprimer les parallélogrammes inutiles en se basant sur les paramètres de l'objet cible à détecter, à savoir ici sa largeur et sa hauteur. io Ainsi, on élimine donc tout rectangle dont le ratio largeur/hauteur n'appartient pas à l'intervalle INTR2 = [R2min=0.4, R2max=1.2] cité précédemment. On rappellera que comme toute valeur seuil, cet intervalle dépend de l'objet qu'on cherche à détecter. Ainsi, tous les rectangles R dont le ratio largeur/hauteur n'appartient pas à cet 15 intervalle INTR2 sont supprimés. On notera que le ratio d'un objet réel est conservé sur l'image affichée, peu importe la distance à laquelle se trouve le panneau de signalisation O_P par rapport au véhicule référentiel R VH. 20 Cette sous-étape simple et rapide à exécuter permet ainsi d'éliminer les rectangles inutiles, de simplifier les étapes suivantes et d'améliorer leur temps de calcul. Dans une deuxième sous-étape non limitative 52), nommée 25 FUSER à la Fig. 3, on regroupe les rectangles R similaires entre eux. Cette sous-étape permet d'éviter les redondances et la détection d'objet cible sur des parallélogrammes très similaires. Ainsi, dans un exemple non limitatif, deux rectangles R sont 30 fusionnés si l'un des rectangles est entièrement inclus dans l'autre. Dans un autre exemple non limitatif, deux rectangles R sont fusionnés s'ils se superposent l'un sur l'autre (même si aucun rectangle n'est inclus entièrement dans l'autre). 15 25 2917869 Ainsi, dans l'exemple non limitatif de la Fig. 12, les deux rectangles R11 et R12 sont fusionnés en un seul, le rectangle R12 étant inclus dans le premier R11 ; les rectangles R21, R22, R23 et R24 sont 5 fusionnés en un seul également. A la suite de ces deux sous-étapes on obtient ainsi une image d'objets cibles détectés Io telle qu'illustrée dans un exemple non limitatif à la Fig. 13. Comme on peut le voir, il reste trois rectangles R1, R2 et 10 R3 qui peuvent représenter potentiellement un objet cible O_P. On détecte ainsi l'objet cible O_P, ici le panneau américain R2 tout en conservant un nombre de fausses détections restreint (2 fausses détections R1 et R3 dans l'exemple de la Fig. 13). Dans une troisième sous-étape non limitative 53), nommée DETECT_REAL à la Fig. 3, on détecte l'objet cible O_P, et on donc supprime les fausses détections. 20 Dans le cadre de l'application panneau de signalisation, dans un mode de réalisation non limitatif, on détecte des chiffres dans l'ensemble des rectangles détectés précédemment, à savoir dans l'exemple de la Fig. 13 dans les trois rectangles RI, R2 et R3. 25 Dans un exemple non limitatif, cette détection de chiffres est effectuée par : - une technique de segmentation selon laquelle on détecte un groupe de pixels connexes ; suivie d'une reconnaissance par réseau de neurones pour chaque groupe de 30 pixels connexes trouvés. Une telle détection de chiffres étant bien connue de l'homme du métier, elle n'est pas décrite plus en détail ici. 26 2917869 Cette détection de chiffres prend très peu de temps étant donné le faible nombre de rectangle sur lequel on applique cette détection, à savoir ici trois rectangle RI, R2 et R3. Elle va donc être précise. 5 Dans un mode de réalisation non limitatif, on peut supprimer en outre les fausses détections en suivant temporellement (donc sur un ensemble d'images) l'apparition d'un rectangle R. On piste ainsi les objets cibles potentiels ( tracking en anglais). io En effet, un rectangle R se déplace temporellement sur l'affichage. Le suivi temporel se fait au moyen d'une zone de détermination de 20 pixels autour d'un rectangle R dans un exemple non limitatif. Si le rectangle R n'apparaît qu'un nombre limité de fois sur 15 l'ensemble d'images choisi, on le supprime, car ce n'est pas un objet cible. Par contre s'il apparaît plusieurs fois sur cet ensemble, mais qu'il n'apparaît pas sur une image de cet ensemble, il peut être un objet cible O_P. Dans ce cas, on retrace le panneau sur l'affichage de cette image en faisant une interpolation à partir des autres images de l'ensemble 20 choisi. Dans un exemple non limitatif, l'ensemble d'images pour l'interpolation comprend une dizaine d'images. Ainsi, on trouve l'objet cible O_P correspondant au panneau de signalisation, ici R2 dans l'exemple illustré à la Fig. 13. 25 On notera que toutes les étapes et sous-étapes du procédé décrit ci-dessus sont effectuées sur l'ensemble des images acquises Ii par la caméra vidéo Cam et ce en temps réel, c'est-à-dire que l'ensemble des étapes (sous-étapes inclus) ne prennent pas plus de 1/10 seconde dans 30 l'exemple de 10 images par seconde acquises par la caméra Cam. Enfin, dans une sixième étape 6), dans le cas où un objet cible O P est détecté, alors un traitement adéquate CD en temps réel sur le véhicule référentiel R_VH peut être exécuté. 27 2917869 Dans des exemples non limitatifs, il peut s'agir : d'adapter automatiquement la vitesse du véhicule référentiel R_VH en fonction des indications sur l'objet cible détecté O_P (ralentir par 5 exemple); d'envoyer un signal d'alerte au conducteur du véhicule référentiel R_VH de manière à ce qu'il ralentisse, etc. On notera que cette sixième étape se fait au fur et à mesure du traitement des images vidéo par le procédé décrit ci-dessus. Ainsi, le io traitement adéquate CD tel que par exemple l'adaptation automatique de la vitesse du véhicule référentiel R_VH est exécuté en temps réel puisque il est effectué après chaque détection d'objet cible O_P, une détection étant effectuée à chaque acquisition d'image li. De plus, une telle adaptation de vitesse est précise puisque la détection d'un objet 15 cible O P est précis comme on vient de le voir précédemment. Le procédé de l'invention est mis en oeuvre par un dispositif DISP de détection représenté à la Fig. 14. 20 Ce dispositif DISP comporte notamment : - un dispositif de traitement d'images TR pour : détecter des contours C dans une image li acquise par la caméra vidéo Cam ; et détecter des segments S à partir desdits contours détectés C ; et 25 une unité de contrôle UC pour : - regrouper des segments détectés S en rectangles R ; et - détecter un objet cible O_P à partir desdits rectangles R. Par ailleurs, l'unité de contrôle UC et/ou le dispositif de traitement 30 d'images TR permettent d'effectuer toutes les sous-étapes des étapes décrites ci-dessus. 28 2917869 Dans un mode de réalisation non limitatif, le dispositif de détection DISP peut en outre comporter la caméra vidéo Cam permettant d'acquérir une image telle qu'illustrée à la Fig. 14. Elle est par exemple du type VGA de définition 640*480 et comporte une lentille (non 5 représentée) à cet effet. On notera que dans ce cas, le dispositif de traitement d'images TR peut également se trouver dans la caméra vidéo Cam. On notera que la mise en oeuvre du procédé de détection exposé io ci-dessus peut être effectuée au moyen d'un dispositif micro programmé, ou même d'une logique câblée. Ainsi, le dispositif de détection DISP peut comporter un produit programme d'ordinateur PG comportant une ou plusieurs séquences 15 d'instructions exécutables par une unité de traitement d'information telle qu'un microprocesseur, ou d'une unité de traitement d'un microcontrôleur, d'un ASIC, d'un ordinateur etc., l'exécution desdites séquences d'instructions permettant une mise en oeuvre du procédé décrit. 20 Un tel programme d'ordinateur PG peut être inscrit en mémoire non volatile inscriptible de type ROM ou en mémoire non volatile réinscriptible de type EEPROM. Ledit programme d'ordinateur PG peut être inscrit en mémoire en usine ou encore chargé en mémoire ou 25 téléchargé à distance en mémoire. Les séquences d'instructions peuvent être des séquences d'instructions machine, ou encore des séquences d'un langage de commande interprétées par l'unité de traitement au moment de leur exécution. 30 Dans l'exemple non limitatif de la Fig. 14, le programme d'ordinateur PG est inscrit dans une mémoire de l'unité de contrôle UC. Bien entendu, au lieu d'un seul programme PG, on pourrait également avoir deux programmes différents pour effectuer d'une part le traitement 29 2917869 d'image par le dispositif de traitement d'image TR et d'autre part effectuer les étapes de l'unité de contrôle UC. Bien entendu, la description du procédé n'est pas limitée aux 5 modes de réalisation et exemples décrits. En effet, le procédé décrit peut être appliqué à des objets cibles ayant une orientation 0 quelconque plus grande que 0 (plus ou moins 10 ) si l'on connaît approximativement l'orientation des objets cibles que l'on souhaite détecter (deuxième sous-étape ANAL_C de la troisième étape). io Dans ce cas, on conserve les contours C dont la pente PE correspond à l'orientation que l'on recherche. Par ailleurs, on prendra quatre paramètres au lieu de trois pour l'approximation des contours C (troisième sous-étape APPROX_C de la troisième étape), par exemple 15 Xs, Xe, Ys, Ye pour prendre en compte ladite orientation 0 pour un segment. Ainsi, le paramétrage des contours et segments prendra en compte cette inclinaison 0 mais le procédé demeure le même. Les segments 20 verticaux correspondent à des segments d'inclinaison e et les segments horizontaux à des segments d'inclinaison e + 2 . De plus, le procédé bien qu'ayant été décrit pour des objets cibles de forme rectangulaire, peut aussi très bien s'appliquer à des objets 25 cibles de forme carrée ou encore de forme losange. Dans ce dernier cas, il suffit de définir deux angles d'orientation différents 01 et 02 (au lieu d'un seul 0) pour respectivement chaque paire de segments vertical et horizontal. 30 Ainsi, l'invention présente notamment les avantages suivants : Elle permet rapidement de sélectionner des zones d'intérêt dans l'image qui sont les rectangles obtenus à la Fig. 13. Une fois ces 30 2917869 zones détectées, on peut appliquer des traitements plus complexes tels que la détection des chiffres par réseaux de neurones. Ainsi, cela évite d'appliquer de tels traitements complexes sur toute l'image, ce qui rendrait le temps de calcul de l'application beaucoup trop long. 5 ù Elle permet de réduire le nombre total de segments grâce au regroupement des segments proches ; Elle permet de détecter un objet cible peu contrasté sur l'image acquise par la caméra vidéo par rapport à son environnement grâce notamment à l'opérateur de Canny. Une telle détection est donc fiable i0 Elle permet de supprimer des segments inutiles grâce au regroupement par paires et donc d'augmenter la rapidité de la détection ; Elle permet d'éviter d'avoir des comparaisons inutiles entre paires de 15 segments grâce au tri des segments ; Elle permet d'éviter d'avoir des rectangles inutiles affichés sur l'image grâce au regroupement des paires de segments en rectangles et au regroupement (fusion) des rectangles similaires ; Elle permet d'effectuer une détection d'objet cible à chaque 20 acquisition d'image li, la détection se faisant en temps réel, ce qui permet un traitement adéquate par la suite tel qu'une adaptation de la vitesse du véhicule référentiel en temps réel également ; Elle permet de réduire le bruit dans une image sans pour autant déformer les contours grâce à l'utilisation d'un filtre médian ; 25 ù Elle permet de suivre de façon continue un objet cible grâce au suivi temporel de l'apparition d'un rectangle ; Elle permet d'obtenir une détection précise grâce au fait que ladite détection finale d'un objet cible s'effectue sur un nombre très limité de rectangles ; et 30 Elle permet d'obtenir une détection finale réelle des objets cibles rapidement grâce à toutes les suppressions (segments, paires de segments, parallélogrammes) effectuées en amont. 15 31 REVENDICATIONS 1 Procédé de détection d'un objet cible (0) dans un environnement se trouvant dans le champ d'une caméra vidéo (Cam), la caméra (Cam) 5 étant apte à acquérir une pluralité d'images (Ii) caractérisé en ce qu'il comporte les étapes de : détecter des contours (C) dans une image (Ii) acquise par la caméra vidéo (Cam) ; détecter des segments (S) à partir desdits contours détectés (C) ; io regrouper des segments détectés (S) en parallélogrammes (R) ; et û détecter un objet cible (O_P) à partir desdits parallélogrammes (R). 2. Procédé de détection selon la revendication 1, caractérisé en ce que la détection de contours (C) utilise un filtre médian. 3. Procédé de détection selon la revendication 1 ou 2, caractérisé en ce que la détection de contours (C) utilise un opérateur de Canny. 4. Procédé de détection selon l'une des revendications précédentes, 20 caractérisé en ce que l'étape de détection de segments (DETECT_S) se base sur une taille (TA) et une pente (PE) des contours (C). 5. Procédé de détection selon l'une des revendications précédentes, 25 caractérisé en ce que l'étape de détection de segments (S) comporte une sous-étape de fusionner des segments (S) en fonction d'un écart vertical (4y) et d'un écart horizontal (ev û Sv) dans un repère image. 30 6. Procédé de détection selon l'une des revendications précédentes, caractérisé en ce que l'étape de regroupement des segments (S) en parallélogrammes (R) comprend une sous-étape de regroupement des segments (S) par paires (S_P). 32 2917869 7. Procédé de détection selon la revendication précédente, caractérisé en ce que l'étape de regroupement des segments (S) en parallélogrammes (R) comprend une sous-étape de regroupement des paires de segments (Si') en parallélogrammes (R). 8. Procédé de détection selon l'une des revendications précédentes, caractérisé en ce que l'étape de détection d'objet cible comporte une sous-étape de suppression de parallélogrammes (R) en fonction to de l'objet cible (O_P) à détecter. 9. Procédé de détection selon l'une des revendications précédentes, caractérisé en ce que l'étape de détection d'objet cible comporte une sous-étape de regroupement de parallélogrammes (R). 15 10. Dispositif (DISP) de détection d'un objet cible (O_P) dans un environnement se trouvant dans le champ d'une caméra vidéo (Cam), la caméra (Cam) étant apte à acquérir une pluralité d'images (li), caractérisé en ce qu'il comporte : 20 un dispositif de traitement d'images (TR) pour : détecter des contours (C) dans une image (li) acquise par la caméra vidéo (Cam) ; et détecter des segments (S) à partir desdits contours détectés (C) ; et 25 une unité de contrôle (UC) pour : regrouper des segments détectés (S) en parallélogrammes (R) ; et détecter un objet cible (O_P) à partir desdits parallélogrammes (R). 11. Produit programme (PG) d'ordinateur comportant une ou plusieurs séquences d'instructions exécutables par une unité de traitement d'information, l'exécution desdites séquences d'instructions 30 33 2917869 permettant une mise en oeuvre du procédé selon l'une quelconque des revendications précédentes 1 à 9.