Brevet FR3074950A1 — publié le 20190614

Procédé de traitement de données et système embarqué associé DOMAINE TECHNIQUE AUQUEL SE RAPPORTE L'INVENTION La présente invention concerne de manière générale le domaine du traitement des données acquises par un capteur. Elle concerne plus particulièrement un procédé de traitement de données et un système embarqué associé. ARRIERE-PLAN TECHNOLOGIQUE On connaît notamment les procédés de traitement de données dans lesquels un capteur (en général un capteur matriciel) acquiert un ensemble de 10 pixels, qui sont ensuite traités afin d'obtenir des informations relatives à l'environnement faisant face au capteur. Des telles solutions sont utilisées notamment dans le domaine des véhicules, que ce soit par exemple pour construire une cartographie de l'environnement situé à l'avant du véhicule ou pour reconnaître des gestes 15 effectués par le conducteur du véhicule. Les algorithmes de traitement utilisés sont toutefois de plus en plus complexes et ainsi consommateurs en ressources matérielles (microprocesseur, mémoire, etc.). OBJET DE L'INVENTION 20 Dans ce contexte, l'invention propose un procédé de traitement de données comprenant les étapes suivantes : - acquisition d'un premier ensemble de pixels par un capteur faisant face à un environnement ; - détermination d'une position d'un objet de l'environnement ; 25 - détermination d'un second ensemble de pixels inclus dans le premier ensemble de pixels, le second ensemble de pixels recouvrant ladite position et étant distinct du premier ensemble ; - application d'un algorithme de traitement aux pixels du second ensemble seulement. 30 L'algorithme de traitement est ainsi appliqué à un sous-ensemble seulement des pixels acquis, ce qui limite le volume des données manipulées. Grâce à la localisation de l'objet, les traitements effectués se concentrent sur la zone de l'environnement pour laquelle l'application de l'algorithme de traitement a un intérêt. 2 D'autres caractéristiques non limitatives et avantageuses du procédé de traitement de données, prises individuellement ou selon toutes les combinaisons techniquement possibles, sont les suivantes : - le capteur est matriciel ; 5 - le premier ensemble de pixels est une matrice de pixels ; - l'étape de détermination du second ensemble de pixels comprend une étape de détermination d'une zone comprenant ladite position et/ou une étape d'extraction des pixels du premier ensemble situés dans ladite zone ; - le capteur délivre une pluralité de premiers ensembles de pixels ; - le procédé comprend une étape de détermination, pour chacun desdits premiers ensembles de pixels, d'un second ensemble de pixels correspondant par extraction des pixels du premier ensemble concerné situés dans ladite zone (la même zone étant ainsi utilisée pour les différents premiers ensembles) ; - le capteur fait partie d'un capteur de temps de vol comprenant en outre un élément émetteur de rayonnement électromagnétique ; - lesdits premiers ensembles sont acquis par le capteur respectivement en correspondance avec des phases distinctes du signal (modulé) émis par l'élément émetteur de rayonnement électromagnétique ; - ladite position est déterminée par analyse d'une image représentative de l'environnement (telle qu'une partie au moins du premier ensemble de pixels ou une image obtenue grâce à l'algorithme de traitement précité) ; - ladite position est déterminée par suivi de l'objet (typiquement par évaluation d'une vitesse de l'objet dans l'image entre deux images successives et estimation de la nouvelle position de l'objet sur la base de cette vitesse et d'une position de l'objet dans l'image précédente). L'invention propose également un système embarqué comprenant une unité de traitement et un capteur faisant face à un environnement, dans lequel le capteur est conçu pour acquérir un premier ensemble de pixels et dans lequel l'unité de traitement comprend un module conçu pour déterminer une position d'un objet de l'environnement, un module conçu pour déterminer un second ensemble de pixels inclus dans le premier ensemble de pixels (le second ensemble de pixels recouvrant ladite position et étant distinct du premier ensemble), et un module conçu pour appliquer un algorithme de traitement aux pixels du second ensemble seulement. 3 Les caractéristiques optionnelles mentionnées ci-dessus en terme de procédé peuvent éventuellement s'appliquer à un tel système embarqué. DESCRIPTION DETAILLEE D'UN EXEMPLE DE REALISATION La description qui va suivre en regard des dessins annexés, donnés à 5 titre d'exemples non limitatifs, fera bien comprendre en quoi consiste l'invention et comment elle peut être réalisée. Sur les dessins annexés : - la figure 1 représente un système embarqué comprenant un capteur de temps de vol ; 10 - la figure 2 représente les modules fonctionnels d'une unité de traitement du système embarqué de la figure 1 ; et - la figure 3 représente des matrices de pixel traitées par un procédé de traitement utilisant l'invention. On a schématiquement représenté sur la figure 1 un système embarqué 15 dans un véhicule, ici un véhicule automobile, et comprenant un capteur de temps de vol 1 et une unité de traitement 10. Le capteur de temps de vol 1, ici une caméra tridimensionnelle basée sur le principe du temps de vol (en anglais "ToF 3D camera" pour "Time of Flight 3D camera"), comprend au moins un élément émetteur de rayonnement 20 électromagnétique 2 (typiquement une ou plusieurs diode(s) électroluminescente(s) émettant dans l'infrarouge) et un capteur matriciel 4 (tel qu'un capteur d'image sensible au rayonnement émis par l'élément émetteur 2, ici l'infrarouge) définissant un ensemble de pixels. Le rayonnement E émis par l'élément émetteur 2 (généralement à 25 travers un système optique d'émission non représenté en figure 1) est réfléchi en direction du capteur matriciel 4 (rayonnement référencé R en figure 1) par le premier objet rencontré sur le trajet du rayonnement E. En pratique, un système optique (tel qu'une lentille) est placé en regard du capteur matriciel 4 de telle sorte que chaque pixel du capteur matriciel 4 reçoit 30 le signal réfléchi R provenant d'une direction particulière de l'angle solide analysé par le capteur de temps de vol 1. Comme visible en figure 1, une unité de traitement 10 (par exemple une unité électronique de commande ou, de manière générale, un microcontrôleur) commande l'émission du rayonnement E par l'élément émetteur 2, puis analyse 4 les signaux mesurés par le capteur matriciel 4 (représentés ici sous la forme d'une pluralité de matrices Mk de pixels) de manière à déterminer notamment une matrice D comprenant les distances d,1 du premier objet rencontré pour une pluralité de directions de l'espace faisant face au capteur de temps de vol 1. 5 Cette matrice D des distances d,1 (ainsi qu'éventuellement d'autres informations, telle qu'une matrice de luminance L) est transmise par l'unité de traitement 10 à un autre système électronique (non représenté) pour utilisation par celui-ci. Par exemple, dans le domaine automobile, le capteur de temps de vol 1 10 peut être placé à l'avant du véhicule afin de construire une cartographie de l'environnement avant du véhicule et/ou de détecter un obstacle et/ou d'évaluer la vitesse d'un autre véhicule situé à l'avant (par dérivation d'une distance du véhicule évaluée sur la base de certaines des distances di,1). Selon une autre possibilité envisageable, le capteur de temps de vol peut 15 être placé dans l'habitacle du véhicule (par exemple face au conducteur du véhicule) et les distances d,1 déterminées par l'unité de traitement 10 peuvent être utilisées au sein d'un algorithme de reconnaissance gestuelle. Dans l'exemple décrit ici, le rayonnement E émis par l'élément émetteur 2 (sous la commande de l'unité de traitement 10) est un signal modulé et l'unité de 20 traitement 10 commande l'acquisition par le capteur matriciel 4 d'une pluralité de matrices Mk de pixels, à des instants correspondant respectivement à une pluralité de phases distinctes (deux à deux) du signal modulé. La figure 2 représente les modules fonctionnels de l'unité de traitement 10 utiles à la compréhension de l'invention. 25 Chaque module fonctionnel 12, 14, 16 représenté sur la figure 2 correspond à une fonctionnalité particulière mise en oeuvre par l'unité de traitement 10. Plusieurs (voire tous les) modules fonctionnels peuvent toutefois en pratique être mis en oeuvre par une même entité physique, ici un processeur de l'unité de traitement 10, sur lequel s'exécute des instructions de programme 30 mémorisées dans une mémoire associée au processeur (chaque module fonctionnel étant alors dans ce cas mis en oeuvre par l'exécution d'un jeu particulier d'instructions mémorisées dans cette mémoire). L'unité de traitement 10 comprend ainsi un module de localisation 12, un module de sélection 14 et un module d'analyse 16. 5 Le module de localisation 12 est conçu pour localiser (grossièrement) un objet présent dans l'angle solide observé par le capteur matriciel 4. Selon une première possibilité envisageable, la localisation de l'objet est réalisée par analyse d'une image représentative de l'environnement faisant face 5 au capteur matriciel 4 dans le champ de vision du capteur matriciel 4. Cette image représentative peut être en pratique une des matrices Mk de pixels produites par la capteur matriciel 4 ou la matrice de luminance L produite comme indiqué ci-dessous par le module d'analyse 16, éventuellement (dans les deux cas) après une étape de sous-échantillonnage afin de réduire le volume des 10 données traitées. Cette première possibilité peut être utilisée en particulier si aucun objet n'a été détecté au préalable. Selon une seconde possibilité envisageable, la localisation de l'objet est réalisée par suivi de l'objet et estimation de la position courante de l'objet (sur la 15 base typiquement de la position de l'objet à l'itération précédente et d'un déplacement estimé de l'objet d'une itération à l'itération suivante). Lorsque le module de localisation 12 localise un objet, le module de localisation 12 transmet une information de position POS au module de sélection 14. 20 L'information de position POS comprend par exemple des coordonnées de l'objet détecté exprimées par rapport à la matrice de pixels acquise par le capteur matriciel 4. Ces coordonnées permettent de définir la position et/ou l'étendue de l'objet concerné dans l'angle solide observé par le capteur matriciel 4. Le module de sélection 14 reçoit également en entrée les matrices de 25 pixel Mk acquises par le capteur matriciel 4. Tant qu'aucun objet n'a été détecté, le module de sélection 14 ne reçoit aucune information de position POS et transmet alors les matrices de pixel Mk reçues en entrée au module d'analyse 16 (sans modification). En revanche, si un objet est détecté par le module de localisation 12, le 30 module de localisation 12 transmet l'information de position POS au module de sélection 14 comme déjà indiqué. Le module de sélection 12 est alors conçu pour : - déterminer une zone Z couvrant la (ou les) position(s) définie(s) par l'information de position POS, 6 - extraire, dans chaque matrice Mk de pixels reçue en entrée, les pixels correspondant à la zone Z, ce qui permet d'obtenir pour chaque matrice Mk de pixels un ensemble Sk de pixels, et - transmettre les ensembles Sk de pixels au module d'analyse 16. 5 Le module de sélection 14 détermine la zone Z de manière prédéfinie sur la base de l'information de position POS. Par exemple, la zone Z comprend tous les pixels situés à 10 pixels ou moins (verticalement ou horizontalement) de la position définie par l'information de position POS (y compris le pixel défini ou les pixels définis par l'information de position POS). 10 Chaque ensemble Sk de pixels est donc un sous-ensemble de l'ensemble des pixels d'une matrice Mk de pixels correspondante. On remarque que, dans l'exemple décrit ici, la même zone Z est utilisée pour extraire les pixels des différentes matrices Mk de pixels. Le module d'analyse 16 est quant à lui conçu pour appliquer au moins un 15 algorithme de traitement aux ensembles Sk de pixels reçus en entrée. Dans l'exemple décrit ici, le module d'analyse 16 met en oeuvre un premier algorithme de traitement permettant d'obtenir la matrice D des distances d,1 sur la base des ensembles Sk de pixels reçus en entrée (lorsque le module de sélection 14 effectue l'extraction précitée, ou sur la base des matrices Mk de pixels 20 lorsqu'aucun objet n'est détecté par le module de localisation 12 et que le module de sélection 14 transmet alors simplement ces matrices Mk de pixels). Le module d'analyse 16 met ici en oeuvre également un second algorithme de traitement, permettant quant à lui d'obtenir la matrice L de luminance précitée sur la base des ensembles Sk de pixels reçus en entrée (ou, 25 comme précédemment, sur la base des matrices Mk de pixels). On pourra se référer par exemple au document technique "Time-of-Flight Camera- An Introduction", Texas Instruments, réf. SLOA190B, pour plus d'informations sur les traitements qui viennent d'être décrits. Ainsi, lorsqu'un objet est détecté par le module de localisation 12, les 30 algorithmes de traitement sont appliqués à une partie seulement des pixels (les ensembles Sk), ce qui permet de réduire le volume des traitements effectués. Lorsque le module de sélection 14 extrait des pixels des matrices Mk de pixels comme indiqué plus haut et transmet au module d'analyse 16 des ensembles Sk de pixels, la matrice D des distances d,1 et/ou la matrice L de 7 luminance sont généralement partielles (i.e. : ne comportent pas des données pour l'ensemble du champ de vision du capteur matriciel 4). On décrit à présent en référence à la figure 3 un exemple de procédé de traitement mis en oeuvre par l'unité de traitement 10. 5 Le capteur matriciel 4 acquiert à l'étape E2 au moins une matrice de pixels, ici une pluralité de matrice Mk de pixels comme expliqué ci-dessus. L'unité de localisation 12 détecte un objet 0 dans l'environnement faisant face au capteur matriciel 4 (étape E4) et détermine sa position POS, par exemple par analyse de l'une des matrices Mk de pixels. En variante, la détection de l'objet 10 0 pourrait être réalisée par analyse d'une matrice de luminance L calculée par l'unité de traitement 10. Le module de sélection 14 détermine alors à l'étape E6 une zone Z couvrant l'objet 0 (et par exemple plus étendue que l'objet 0 afin de tenir compte d'une marge d'erreur). 15 Pour chaque matrice Mk de pixels, le module de sélection 14 extrait les pixels situés dans la zone Z afin d'obtenir un ensemble Sk de pixels correspondant (étape E8). Le module d'analyse 16 peut ainsi appliquer à l'étape E10 au moins un algorithme de traitement aux ensembles Sk de pixels (et à ces pixels seulement), 20 ici afin d'obtenir une matrice (partielle) D de distances d,1 ou une matrice (partielle) REVENDICATIONS1. Procédé de traitement de données comprenant les étapes suivantes : - acquisition (E2) d'un premier ensemble (Mk) de pixels par un capteur (4) faisant face à un environnement ; - détermination (E4) d'une position (POS) d'un objet (0) de l'environnement ; - détermination (E6, E8) d'un second ensemble (Sk) de pixels inclus dans le premier ensemble (Mk) de pixels, le second ensemble (Sk) de pixels recouvrant ladite position (POS) et étant distinct du premier ensemble (Mk) ; - application (E10) d'un algorithme de traitement aux pixels du second ensemble (Sk) seulement. 2. Procédé de traitement selon la revendication 1, dans lequel le capteur (4) est matriciel et dans lequel le premier ensemble de pixels est une matrice de pixels (Mk). 3. Procédé selon la revendication 1 ou 2, dans lequel l'étape de détermination du second ensemble de pixels comprend une étape de détermination (E6) d'une zone (Z) comprenant ladite position (POS) et une étape d'extraction (E8) des pixels du premier ensemble (Mk) situés dans ladite zone (Z). 4. Procédé selon l'une des revendications 1 à 3, dans lequel le capteur (4) délivre une pluralité de premiers ensembles (Mk) de pixels. 25 5. Procédé selon la revendication 4 prise dans la dépendance de la revendication 3, comprenant une étape de détermination, pour chacun desdits premiers ensembles (Mk) de pixels, d'un second ensemble (Sk) de pixels correspondant par extraction des pixels du premier ensemble (Mk) concerné situés 30 dans ladite zone (Z). 6. Procédé selon l'une des revendications 1 à 5, dans lequel le capteur (4) fait partie d'un capteur de temps de vol (1) comprenant un élément émetteur de rayonnement électromagnétique (2). 9 7. Procédé selon la revendication 6 prise dans la dépendance de la revendication 4 ou 5, dans lequel lesdits premiers ensembles (Mk) sont acquis par le capteur (4) respectivement en correspondance avec des phases distinctes du 5 signal émis par l'élément émetteur de rayonnement électromagnétique (2). 8. Procédé selon l'une des revendications 1 à 7, dans lequel ladite position (POS) est déterminée par analyse d'une image représentative de l'environnement. 10 9. Procédé selon l'une des revendications 1 à 7, dans lequel ladite position (POS) est déterminée par suivi de l'objet (0). 10. Système embarqué comprenant une unité de traitement (10) et un 15 capteur (4) faisant face à un environnement, dans lequel le capteur (4) est conçu pour acquérir un premier ensemble (Mk) de pixels et dans lequel l'unité de traitement (10) comprend : - un module (12) conçu pour déterminer une position (POS) d'un objet (0) de l'environnement ; 20 - un module (14) conçu pour déterminer un second ensemble (Sk) de pixels inclus dans le premier ensemble (Mk) de pixels, le second ensemble (Sk) de pixels recouvrant ladite position (POS) et étant distinct du premier ensemble (Mk) ; et - un module (16) conçu pour appliquer un algorithme de traitement aux pixels du second ensemble (Sk) seulement.