FR 3094122 A1 20200925 FR 1902966 A 20190322 Description Titre de l'invention : Dispositif électronique de traitement d'images [0001] Des modes de réalisation de l'invention concernent les dispositifs électroniques, plus particulièrement les dispositifs électroniques pour traitement d'images comportant des chaînes de traitement ou plus communément appelés des pipelines (« pipeline » en langue anglaise). [0002] D'une façon générale, un dispositif électronique de traitement d'images comporte plusieurs pipelines destinés à recevoir un flux de données d'images émanant d'un appareil de capture d'images tel qu'une caméra. [0003] En fonction d'applications envisagées, plusieurs pipelines sont. généralement né- cessaires pour traiter des données d'images de façon à les adapter pour des traitements ultérieurs, par exemple effectuer des redimensionnements et des recadraees des données d'images pour des affichages écrans, des analyses statiques d'images brutes sous format de fichier « RAW », ou des enregistrements d'images de qualité élevée et de haute définition. [0004] Grâce à des puissances de calcul de plus en plus importantes associées à des caméras notamment susceptibles d'être intégrées dans des appareils électroniques mobiles tels que des téléphones intelligents (« Smart Phone » en langue anglaise), il devient désormais possible d'appliquer des algorithmes d'intelligence artificielle (« Artificial Intelligent » AI: en langue anglaise) en temps réel sur des données d'images émanant desdites caméras. [0005] Pour ce faire, plusieurs pipelines sont classiquement utilisés en parallèle pour générer des données d'images adaptées de façon à les délivrer à un ou des réseaux de neurones artificiels configurés pour, par exemple, identifier des zones d'intérêt (« Region Of Interest » en langue anglaise) dans ces données d'images. [0006] Cependant, de tels traitements sont généralement basés sur une image de qualité élevée enregistrée dans une mémoire externe située à l'extérieur dudit dispositif électronique car l'image enregistrée est généralement trop grande pour être stockée localement. [0007] Plusieurs pipelines sont configurés pour effectuer respectivement des prétraitements (« pre-processing » en langue anglaise) distincts intermédiaires tels que des prétraiternents de ladite image enregistrée pour générer une nouvelle image de basse résolution adaptée à des traitements dits intelligents artificiels, par exemple des traitements d'identification d'une ou de plusieurs zones d'intérêt, des prétraiternents de la ou des zones d'intérêt identifiées pour des traitements de reconnaissance d'objets dans la ou les zones d'intérêt identifiées, et des prétraiternents de ladite image enregistrée pour afficher ladite image enregistrée 2 et/ou les zones d'intérêt identifiées en basse définition. [0008] Néanmoins, ces prétraitements distincts intermédiaires exigent des mémoires de tampon intermédiaires supplémentaires et demandent des bandes passantes importantes entre le dispositif électronique et la mémoire externe, qui conduit généralement à un coût très élevé notamment au niveau de la surface silicium occupée et de la consommation énergétique. [0009] De surcroît, comme certains prétraitements dépendent directement de résultats de sortie d'autres prétraitements, il y a un risque de cumul des latences propagées parmi tous ces prétraitements. [0010] Il existe ainsi un besoin de proposer une solution technique à faible complexité, à faible surface silicium ainsi qu'à faible consommation d'énergie permettant de réaliser, quasiment en temps réel, des prétraitements et des traitements d'images sans aucune mémoire tampon intermédiaire. [0011] Selon un aspect, il est ainsi proposé un dispositif électronique de traitement d'images. [0012] Le dispositif électronique comprend au moins un pipeline, chaque pipeline étant destiné à traiter des trames de données d'images au rythme d'un débit de trame (« framc rate » en langue anglaise), une mémoire interne comportant pour chaque pipeline un jeu de descripteurs disposés selon un ordre, chaque descripteur comportant des informations relatives à une fonction destinée à être activée par le pipeline correspondant sur au moins une trame de données d'image, les fonctions associées aux différents descripteurs étant différentes, et des moyens de commande configurés pour, pour chaque pipeline, lire le jeu de descripteurs correspondant de façon séquentielle et répétitive dans ledit ordre au rythme d'un des descripteurs par trame de données d'images et mémoriser les informations correspondant au descripteur lu, chaque pipeline étant configuré pour activer sur chaque trame de données d'images la fonction correspondant aux informations mémorisées. [0013] Chaque pipeline du dispositif électronique est avantageusement configuré pour activer une fonction correspondant aux informations d'un des descripteurs par trame de données d'images selon ledit ordre. Comme les informations des descripteurs sont différentes, les fonctions correspondantes sont aussi différentes. [0014] Autrement dit, chaque pipeline est configuré pour activer de façon séquentielle et cyclique les différentes fonctions au rythme dudit débit de trame. [0015] La lecture séquentielle et cyclique du jeu de descripteurs s'effectue au rythme d'un descripteur par au moins une trame de données. [0016] En effet on peut avoir un descripteur par trame ou bien un descripteur valable pour 3 plusieurs trames (le nombre de trames pouvant être programmé par l'utilisateur à l'intérieur du descripteur). [0017] Autrement dit, dans le cas où l'on a un descripteur par trame, pour une trame de données courante, on lit un descripteur. Puis pour la trame de données suivante, on lit le descripteur suivant compte tenu de l'ordre. Et ainsi de suite jusqu'à la lecture du dernier descripteur du jeu de descripteurs. [0018] Dans le cas où un descripteur est valable pour plusieurs trames, on attend le nombre de trames correspondant avant de lire le descripteur suivant compte tenu de l'ordre. [0019] Une fois que les informations du dernier descripteur dudit jeu selon l'ordre sont lues, les moyens de commande sont configurés pour lire, pour la prochaine trame de données d'images, les informations du premier descripteur dudit jeu de descripteur selon l'ordre et répéter le cycle. [0020] De cc fait, chaque pipeline crée ainsi plusieurs pipelines « virtuels » fonctionnant en mode de multiplexage temporel au rythme du débit de trame. [0021] Avantageusement, un seul pipeline peut déjà être suffisant pour traiter toutes les trames de données d'images et aucune mémoire tampon intermédiaire n'est nécessaire, ce qui réduit considérablement le coût de fabrication, la surface silicium occupée et la consommation énergétique dudit dispositif électronique. [0022] TI convient de noter qu'il est également possible d'utiliser un nombre quelconque de pipelines physiques pour créer un nombre quelconque de pipelines « virtuels » en fonction de la performance escomptée. [0023] De surcroît, le fait que les pipelines « virtuels » peuvent fonctionner de façon indé- pendante en mode multiplexage temporel permet d'éviter d'éventuelles latences liées aux prétraitements dépendants décrits ci-avant. [0024] Selon un mode de réalisation, les moyens de commande comportent en outre pour chaque pipeline une mémoire de recopie et un registre. [0025] Les moyens de commande sont en outre configurés pour, pour chaque pipeline, lire, entre la fin de la trame de données d'images précédente et la fin de la trame de données d'images actuelle, un des descripteurs et mémoriser ensuite les informations correspondantes dans la mémoire de recopie, et transférer les informations mémorisées de la mémoire de recopie au registre dès la fin de la trame de données d'images actuelle. [0026] Le pipeline correspondant est configuré pour activer la fonction correspondant aux informations mémorisées dans le registre dès le début de la prochaine trame de données d'images [0027] Une telle utilisation de la mémoire de recopie permet avantageusement de charger de façon asynchrone, à la suite de la fin de la trame de données d'images précédente mais avant la fin de la trame de données d'images actuelle, les informations du prochain descripteur suivant ledit ordre. [0028] Comme le transfert de données entre la mémoire de recopie et le registre est intrin- sèquement rapide, les informations du prochain descripteur selon l'ordre sont avantageusement transférées au registre dès la fin de la trame de données d'images actuelle de façon à permettre d'assurer l'activation synchrone de la fonction correspondante par le pipeline correspondant dès le début de la prochaine trame de données d'images. [0029] Par conséquent, tous les traitements des trames de données d'images peuvent avanta- geusement être réalisés à la volée sans exiger des mémoires intermédiaires car des trames de données d'images peuvent directement être taillées à des dimensions et/ou à des résolutions souhaitées pour des traitements ultérieurs. [0030] Selon un mode de réalisation, les moyens de commande comprennent un contrôleur du type d'accès direct à la mémoire (« Direct Memory Access » : DMA en langue anglaise). [0031] Avantageusement, aucun processeur (« central processing unit » : CPU en langue anglaise) ou aucune intervention d'utilisateur n'est nécessaire car toutes les fonctions à activer dans les trames de données d'images sont enregistrées sous formes d'informations dans le jeu de descripteurs disposés selon ledit ordre. [0032] Et aucun processeur n'est nécessaire pour reconfigurer le pipeline ni pour transférer les données dans le cadre de l'utilisation d'un système DMA. [0033] Selon encore un autre mode de réalisation, le contrôleur du type d'accès direct à la mémoire est un contrôleur intégré dédié audit au moins un pipeline. [0034] Un tel mode de réalisation permet encore d'économiser la surface silicium occupée du dispositif électronique. [0035] A titre d'exemple mais non limitatif, le débit de trame peut par exemple être configurable. [0036] En d'autres termes, un utilisateur dudit dispositif électronique peut avantageusement régler le débit de trame pour obtenir une perfoimance souhaitée du dispositif électronique en fonction d'applications envisagées. [0037] En outre, le nombre de descripteurs de chaque jeu de descripteurs et ledit ordre peuvent par exemple aussi être configurables. [0038] 111 convient de noter que non seulement la position relative de chaque descripteur mais également le nombre de répétitions de chaque descripteur dans chaque jeu de descripteurs disposés selon l'ordre sont configurables afin de permettre des possibilités de créer une combinaison quelconque des fonctions de pipeline. [0039] A titre indicatif mais non limitatif, le dispositif électronique comporte en outre des moyens de traitement basés sur un ou des réseaux de neurones artificiels couplés audit au moins un pipeline. [0040] Ces moyens de traitement permettent par exemple d'identifier des zones d'intérêt et de reconnaître d'éventuels objets apparus dans ces zones d'intérêt, notamment pour des applications de l'intelligence artificielle (« Artificial Intelligence» : Al en langue anglaise). [0041] Le dispositif électronique peut par exemple comporter en outre un contrôleur d'affichage couplé audit au moins un pipeline. [0042] Selon un autre aspect, il est proposé un appareil électronique comportant un dispositif électronique tel que défini ci-avant, une caméra configurée pour délivrer audit au moins un pipeline les trames de données d'images. [0043] Selon un mode de réalisation, l'appareil électronique comporte en outre des moyens d'affichage couplés au contrôleur d'affichage du dispositif électronique. [0044] D'autres avantages et caractéristiques de l'invention apparaîtront à l'examen de la description détaillée de modes de réalisation, nullement limitatifs, et des dessins annexés sur lesquels : [0045] [fig.1] illustre schématiquement un mode de réalisation de l'invention. [0046] [fig.2] illustre schématiquement un mode de réalisation de l'invention. [0047] [fig.3] illustre schématiquement un mode de réalisation de l'invention. [0048] [fig.4] illustre schématiquement un mode de réalisation de l'invention. [0049] [fig.5] illustre schématiquement un mode de mise en oeuvre et de réalisation de l'invention. [0050] La référence 1 sur la figure 1 désigne un appareil électronique tel qu'une balance in- telligente (« Smart Balance » en langue anglaise) pour les commerces. [0051] La balance intelligente 1 comporte un plateau de balance 2 destiné à recevoir des produits à peser, par exemple des fruits tels que des tomates, des moyens de mesure 3 configurés pour déterminer le poids des produits déposés sur le plateau de balance 2 une caméra 4 dont le champ de vision couvre le plateau de balance 2, des moyens d'affichage 5 comportant au moins un écran, ici par exemple un écran 6, et un système de traitement 7 couplé entre la caméra 4 et les moyens d'affichage 5 et configuré pour traiter des données d'images générées par la caméra 4 de façon à délivrer des images adaptées pour les moyens d'affichage 5. [0052] On se réfère maintenant à la figure 2 pour illustrer plus en détails un exemple de mode de réalisation du système de traitement 7. 6 [0053] Le système de traitement 7 comprend un dispositif électronique 8, ici par exemple un microcontrôlcur 32-bits et des mémoires externes MEXT, par exemple du type mémoire vive statique (« Static Random Access Memory » : SRAM en langue anglaise). [0054] Le dispositif électronique 8 comprend au moins un pipeline, autrement dit chaîne de traitement, ici par exemple un premier pipeline PPI et un deuxième pipeline PP2, une mémoire interne 9, ici par exemple également du type mémoire vive statique, comportant pour chaque pipeline PP1, PP2 un jeu de descripteurs, ici par exemple quatre descripteurs D1PP1, D2PP1, D3PP1, D4PP1 pour le premier pipeline PPI et trois descripteurs D1PP2, D2PP2, D3PP2 pour le deuxième pipeline PP2, et des moyens de commande MC, ici par exemple un contrôleur du type d'accès direct à la mémoire (« Direct Memory Access » : DMA en langue anglaise) couplés audit au moins un pipeline PP1, PP2 et configure pour contrôler des fonctionnements dudit au moins un pipeline PP1, PP2. [0055] A titre d'exemple, ce contrôleur DMA peut également être un contrôleur DMA intégré dédié audit au moins un pipeline du dispositif électronique 8. [0056] Chaque pipeline PP1, PP2 est configure pour recevoir, au rythme d'un débit de trame DT, des trames de données d'images à traiter. Les trames de données d'images émanent de la caméra 4. [0057] Ledit débit de trame DT est configurable de façon à permettre d'ajuster une durée allouée au traitement de chaque trame de données d'images. [0058] 11 convient de noter que, dans certains cas, l'utilisation d'un seul pipeline PP1 peut déjà être adéquate pour les traitements des trames de données d'images. [0059] On illustre ici les premier et deuxième pipelines PPI, PP2 afin de montrer que les moyens de commande MC peuvent être configurés pour contrôler en parallèle les premier et deuxième pipelines PP1, PP2 de façon à créer respectivement des pipelines virtuels » au sein des premier et deuxième pipelines PPI, PP2 pour renforcer la performance des traitements des trames de données d'images. [0060] Le dispositif électronique 8 comprend en outre des moyens de traitement 10 couplés aux premier et deuxième pipelines PP1, PP2 via la mémoire interne 9. [0061] Les moyens de traitement 10 sont par exemple implémentés ici sous forme d'un ac- célérateur de réseaux de neurones artificiels (« Artificial Neuron Network Accelerator » en langue anglaise) connu de l'homme du métier. [0062] Les moyens de traitement 10 sont configurés pour identifier éventuellement une ou des zones d'intérêt ROI (« Region Of Interest » : ROI en langue anglaise) dans chaque trame de données d'images à traiter en utilisant un premier algorithme d'apprentissage AA1, et 7 reconnaître des objets apparus dans la ou les zones d'intérêt identifiées en utilisant un deuxième algorithme d'apprentissage AA2. [0063] Il convient de noter que les premier et deuxième algorithmes d'apprentissage peuvent être identiques ou différents. [0064] Tous les types de réseaux de neurones artificiels connus tels que les réseaux de neurone à convolution dits « AlexNet » et « ConvNet » peuvent être implémentés dans les moyens de traitement 10 de façon à améliorer la performance du dispositif électronique 8. [0065] Le dispositif électronique 8 comprend en outre un contrôleur d'affichage 11 couplé aux premier et deuxième pipelines PP1, PP2 via les mémoires externes MEXT. [0066] Le contrôleur d'affichage 11 est configure pour recevoir des données d'images de prévision émanant des premier et deuxième pipelines PP1, PP2 via les mémoires externes MEXT et les délivrer auxdits moyens d'affichage 5 pour visualiser une ou des images de prévision sur les moyens d'affichage 5. [0067] Il convient de noter que chaque pipeline PP1, PP2 peut avoir autant de descripteurs correspondants que nécessaire. Ces descripteurs correspondants sont enregistrés dans la mémoire interne 9. [0068] Autrement dit, le nombre de descripteurs de chaque jeu de descripteurs D1PP1, D2PP1, D3PP1, D4PP1, Dl PP2, D2PP2, D3PP2 pour chaque pipeline PP1, PP2 n'est pas limité. [0069] Les informations de chaque descripteur sont relatives à une fonction de pipeline destinée à être activée sur une trame de données d'images. De ce fait, chaque pipeline PPI, PP2 peut créer autant de pipelines dits « virtuels » que de descripteurs correspondants. [0070] Dans l'exemple illustré sur la figure 2, les quatre descripteurs DIPPI, D2PP1, D3PPI, D4PP1 du premier pipeline PPI correspondent à quatre pipelines virtuels PV1, PV2, PV3, PV4 créés par le premier pipeline PP1. [0071] On se réfère maintenant à la figure 3 pour illustrer un exemple de fonctionnement de ces quatre pipelines virtuels PVI, PV2, PV3, PV4. [0072] Sous contrôle des moyens de commande MC, le premier pipeline PPI est configuré pour créer le premier pipeline virtuel PV1 dans lequel on effectue des redimensionnements et/ou des recadrages de données d'images d'une première trame FI de façon à délivrer à la mémoire interne 9 une première image IMG1 de basse définition, par exemple de 220 pixels X 220 pixels, comme illustrée sur la figure 3. [0073] Cette première image IMG1 est de basse définition afin de pourvoir être stockée dans la mémoire interne 9 et de faciliter des traitements ultérieurs d'identification de zones d'intérêt. [0074] A titre d'exemple, cette première image IMG1 peut par exemple être une image 8 contenant quatre tomates sur le plateau de balance 2. [0075] Les moyens de commande MC sont ensuite configurés pour délivrer cette première image IMG1 aux moyens de traitement 10. [0076] Les moyens de traitement 10 sont configurés pour appliquer un ou des algorithmes de reconnaissance de réseaux de neurones adaptés pour identifier une ou des zones d'intérêt ROI dans ladite première image IMG1, ici par exemple une zone ROI carrée autour d'une tomate sur ladite première image IMG1. [0077] Les moyens de traitement 10 sont en outre configurés pour créer le deuxième pipeline virtuel PV2 dans lequel on effectue des recadrages de données d'images d'une deuxième trame F2 de façon à délivrer à la mémoire interne 9 une deuxième image IM02 de haute définition. [0078] En supposant que les tomates sur le plateau de balance 2 sont statiques, la deuxième image IM02 peut être une version haute résolution de la première image IMG1. [0079] Les moyens de commande MC sont configurés pour créer le troisième pipeline virtuel PV3 dans lequel on effectue des redimensionnements et des recadrages de données d'images d'une troisième trame F3 de façon à délivrer à la mémoire externe MEXT une troisième image IMG3 de haute définition correspondant à la zone d'intérêt ROI identifiée par les moyens de traitement 10. [0080] Il convient de noter que les informations du troisième descripteur du premier pipeline PP1 peuvent par exemple être modifiées ici à la volée en tenant compte des résultats de l'identification de la zone d'intérêt réalisée par les moyens de traitement 10. [0081] Les moyens de commande MC sont configurés pour délivrer ces deuxième et troisième images IM02 et 1M03 aux moyens d'affichage 5 via la mémoire externe MEXT et le contrôleur d'affichage 11. [0082] Comme illustré sur la figure 2, ces images IM02 et IM03 sont séparément illustrées sur l'écran 6. [0083] Une fois la zone d'intérêt ROI identifiée, les moyens de commande MC sont en outre configurés pour créer le quatrième pipeline virtuel PV4 dans lequel on effectue des redimensionnements et des recadrages de données d'images d'une quatrième trame F4 de façon à délivrer aux moyens de traitement 11 via la mémoire interne 9 une quatrième image IM04 de basse définition correspondant à la zone d'intérêt ROI identifiée par les moyens de traitement 10. [0084] Ces moyens de traitement 10 sont ensuite configurés pour reconnaître un ou des objets apparus dans la quatrième image IM04 à l'aide des algorithmes de reconnaissance de réseaux de neurones artificiels. [0085] Ainsi, une tomate est reconnue dans la quatrième image 1M04 et les moyens de commande MC sont configurés pour faire afficher le prix unitaire de la tomate sur les moyens d'affichage 11 et éventuellement le prix total en prenant en compte le poids 9 des tomates mesuré par les moyens de mesure 3. [0086] On se réfère maintenant à la figure 4 pour illustrer un exemple de mode de réalisation des moyens de commande MC selon l'invention. [0087] Afin de lire et mémoriser les informations des descripteurs correspondants de chaque pipeline PP1, PP2, les moyens de commande MC comportent en outre une première mémoire de recopie MR1 et un premier registre R1 pour le premier pipeline PP1, et une deuxième mémoire de recopie MR2 et un deuxième registre R2 pour le deuxième pipeline PP2. [0088] Les première et deuxième mémoires de recopie MR1, MR2 sont communément connues de l'homme du métier sous terme anglo-saxon « Shadow Memory ou Shadow Register » en langue anglaise. [0089] Comme son nom l'indique, les première et deuxième mémoires de recopie MR1, MR2 sont configurécs pour suivre les premier et deuxième registres R1, R2 au sujet de données stockées. [0090] En effet, la latence de transfert de données entre la première ou deuxième mémoire de recopie MR1 ou MR2 et le premier ou deuxième registre R1 ou R2 correspondant est très courte, par exemple dans l'ordre de quelques microsecondes. [0091] La figure 5 illustre en diagramme de temps un signal de contrôle SC destiné à être utilisé pour contrôler le fonctionnement des première et deuxième mémoires de recopie MR1, MR2 et des premier et deuxième registres RI, R2. [0092] On suppose dans cet exemple qu'un descripteur ou pipeline virtuel est valable pour une seule trame. [0093] A des fins de simplifications, on n'illustre ici que le fonctionnement de la première mémoire de recopie MR1 et du premier registre RI correspondant au premier pipeline PP1. [0094] Comme on peut observer sur la figure 5, le premier pipeline PP1 est destiné à recevoir un signal de contrôle SC. [0095] Chaque front descendant du signal de contrôle SC marque la fin d'une trame de donnée d'image et chaque front montant du signal de contrôle SC correspond au début d'une trame de donnée d'image. [0096] Par conséquent, on peut constater sur la figure 5 que les quatre trames FI, F2, F3, F4 de données d'images correspondent aux quatre pipelines virtuels PVI, PV2, PV3, PV4 du premier pipeline PP I . [0097] Supposons que l'on soit actuellement au traitement de la troisième trame F3, les moyens de commande MC sont configurés pour, pour le premier pipeline PP1, lire entre la fin de la trame de données d'images précédente F2 et la fin de la trame de données d'images actuelle F3, les informations d'un des descripteurs dans la première mémoire de recopie MR1. [0098] Selon le premier ordre ORD1 illustré sur la figure 4, le premier pipeline PP1 est configure pour créer le quatrième pipeline virtuel PV4 dès le début de la quatrième trame F4. En conséquent, ce sont les informations du quatrième descripteur D4PP1 qui doivent être lues et mémorisées dans la première mémoire de recopie MR1 entre la fin de la trame de données d'images précédente F2 et la fin de la trame de données d'images actuelle F3. [0099] Les moyens de commande MC sont en outre configurés pour transférer les in- formations du quatrième descripteur D4PP1 dans le premier registre R1 dès la fin de la troisième trame de données d'images F3. [0100] Enfin, le pipeline correspondant, ici le premier pipeline PP1 est configure pour activer la fonction correspondant aux informations du quatrième descripteur D4PP1, autrement dit le quatrième pipeline virtuel PV4, dès le début de la quatrième trame F4. [0101] De cc fait, un seul pipeline peut réaliser des fonctions différentes au rythme d'un débit de trame. En d'autres termes, plusieurs pipelines virtuels peuvent être créés en utilisant un seul pipeline. 11 [Revendication I] [Revendication 2] [Revendication 3]