Brevet FR3128565A1 — publié le 20230428

Procédé automatique de détection d’objets dans un flux d’images Un aspect de l’invention concerne un procédé automatique de détection d’objets dans un flux d’images, comportant les étapes suivantes pour chaque ensemble d’images du flux d’images : Détection de chaque objet présent dans l’image initiale de l’ensemble d’images à l’aide d’un réseau de neurones artificiels, pour obtenir un ensemble d’objets initial ; Détection de chaque objet présent dans l’image finale à l’aide du réseau de neurones artificiels pour obtenir un ensemble d’objets final ; Si une première condition selon laquelle l’ensemble d’objets initial comporte le même nombre d’objets que l’ensemble d’objets final et une deuxième condition selon laquelle chaque objet de l’ensemble d’objets initial répond à une condition de couplage avec un objet de l’ensemble d’objets final différent sont vérifiées, affectation d’un ensemble d’objets à chaque image de l’ensemble d’images, obtenu par interpolation linéaire à partir de l’ensemble d’objets initial et de l’ensemble d’objets final ; Sinon, découpage de l’ensemble d’images en un premier sous-ensemble d’images ayant pour image initiale la première image de l’ensemble d’images et pour image finale une image intermédiaire de l’ensemble d’images, et en un deuxième sous-ensemble d’images ayant pour image initiale l’image intermédiaire et pour image finale la dernière image de l’ensemble d’images, puis réalisation des étapes pour le premier sous-ensemble d’images et pour le deuxième sous-ensemble d’images. Procédé automatique de détection d’objets dans un flux d’images DOMAINE TECHNIQUE DE L’INVENTION Le domaine technique de l’invention est celui de la détection d’objets dans un flux d’images, et plus particulièrement celui de la détection d’objets dans un flux d’images dans un contexte embarqué. La présente invention concerne un procédé de détection d’objets dans un flux d’images, et en particulier un procédé automatique de détection d’objets dans un flux d’images implémentable sur un microprocesseur. La présente invention concerne également un calculateur, un dispositif embarquant le calculateur, un produit-programme d’ordinateur et un support d’enregistrement pour la mise en œuvre du procédé selon l’invention. ARRIERE-PLAN TECHNOLOGIQUE DE L’INVENTION Pour détecter des objets dans une image, il est connu d’avoir recours à des techniques d’apprentissage profond ou deep learning, souvent basées sur des réseaux de neurones artificiels, permettant d’obtenir des taux de détection élevés. Détecter des objets dans un flux d’images consiste alors à détecter les objets compris dans chaque image constituant le flux d’images. Cependant, de telles techniques nécessitent l’utilisation de processeurs puissants et d’une quantité importante de ressources mémoire pour être fonctionnelles et sont très coûteuse en termes de temps de calcul et d’énergie. Ainsi, ces techniques sont incompatibles avec une implémentation sur microprocesseur contraint en termes de ressources de calcul mais ayant un haut degré d’intégration grâce à ses dimensions réduites. Il existe donc un besoin de concevoir un algorithme de détection d’objets dans un flux d’images, ayant des performances de détection comparables à celles obtenues avec les techniques connues de détection d’objets, et implémentable sur un microprocesseur pouvant être embarqué sur n’importe quel dispositif quel que soit son environnement. L’invention offre une solution aux problèmes évoqués précédemment, en permettant de détecter précisément des objets dans un flux d’images grâce à un algorithme implémentable sur un microprocesseur ayant une haute capacité d’intégration. Un premier mode de réalisation d’un premier aspect de l’invention concerne un procédé automatique de détection d’objets dans un flux d’images, implémentable sur un microprocesseur, le flux d’images comprenant une pluralité d’ensembles d’images successifs ayant chacun pour image initiale une première image et pour image finale une dernière image, le procédé comportant les étapes suivantes pour chaque ensemble d’images du flux d’images : Si aucune détection n’a été réalisée pour l’image initiale de l’ensemble d’images, détection de chaque objet présent dans l’image initiale à l’aide d’un réseau de neurones artificiels pour obtenir un ensemble d’objets initial affecté à l’image initiale, le réseau de neurones artificiels ayant été préalablement entraîné de manière supervisée sur une base de données d’entraînement pour obtenir un réseau de neurones artificiels entraîné capable de détecter à partir d’une image, chaque objet dans l’image, la base de données d’entraînement comprenant une pluralité d’images chacune associée à la position de chaque objet dans l’image ; Si aucune détection n’a été réalisée pour l’image finale de l’ensemble d’images, détection de chaque objet présent dans l’image finale à l’aide du réseau de neurones artificiels pour obtenir un ensemble d’objets final affecté à l’image finale ; Si une première condition selon laquelle l’ensemble d’objets initial comporte le même nombre d’objets que l’ensemble d’objets final et une deuxième condition selon laquelle chaque objet de l’ensemble d’objets initial répond à une première condition de couplage avec un objet de l’ensemble d’objets final différent sont vérifiées, affectation d’un ensemble d’objets à chaque image de l’ensemble d’images comprise entre l’image initiale et l’image finale, l’ensemble d’objets étant obtenu par interpolation linéaire à partir de l’ensemble d’objets initial et de l’ensemble d’objets final ; Sinon, découpage de l’ensemble d’images en un premier sous-ensemble d’images ayant pour image initiale la première image de l’ensemble d’images et pour image finale une image intermédiaire de l’ensemble d’images comprise entre l’image initiale et l’image finale de l’ensemble d’images, et en un deuxième sous-ensemble d’images ayant pour image initiale l’image intermédiaire et pour image finale la dernière image de l’ensemble d’images, puis réalisation des étapes précédentes pour le premier sous-ensemble d’images et pour le deuxième sous-ensemble d’images. Grâce à l’invention, le flux d’images est traité par ensemble d’images et la détection par le réseau de neurones artificiels n’est dans un premier temps réalisée que pour la première image et la dernière image de l’ensemble d’images. Si le même nombre d’objets est détecté dans la première image et dans la dernière image et que chaque objet détecté dans la première image peut être couplé à un objet de la dernière image différent, on considère que chaque objet détecté dans la première image est également détecté dans la dernière image et qu’aucun objet n’est apparu entre la première image et la dernière image. La position de chaque objet est alors interpolée linéairement dans chaque image de l’ensemble d’images comprise entre la première image et la dernière image, à partir de sa position dans la première image et de sa position dans la dernière image, et aucune autre détection n’est alors réalisée par le réseau de neurones artificiels pour l’ensemble d’images. Si le nombre d’objets détecté dans la première image est différent du nombre d’objets détecté dans la dernière image ou qu’au moins un objet détecté dans la première image ne peut être couplé à un objet de la dernière image, on considère qu’au moins un objet est apparu, a disparu ou s’est déplacé entre la première image et la dernière image et donc que de l’information concernant l’apparition, la disparation ou le déplacement d’un objet est manquante. Une détection par le réseau de neurones artificiels est alors réalisée sur une image intermédiaire de l’ensemble d’images et les mêmes conditions sont vérifiées entre la première image et l’image intermédiaire d’une part, et entre l’image intermédiaire et la dernière image d’autre part, et les mêmes étapes que précédemment décrites sont réalisées en fonction du résultat de la vérification jusqu’à ce que toutes les images de l’ensemble d’images soient affectés d’un ensemble d’objets obtenu soit par détection ou soit par interpolation. Ainsi, la détection par le réseau de neurones artificiels n’est réalisée que quand de l’information concernant l’apparition, la disparation ou le déplacement d’un objet semble manquante en considérant les ensembles d’objets déjà obtenus par le réseau de neurones artificiels, ce qui permet de diminuer les ressources de calcul utilisées et d’augmenter la vitesse de traitement, et rend ainsi le procédé implémentable sur un microprocesseur, tout en maintenant un taux de détection élevé propre à l’utilisation d’un réseau de neurones artificiels. Selon une variante de réalisation, le procédé selon le premier mode de réalisation de l’invention comporte les étapes suivantes si la première condition est vérifiée et si la deuxième condition n’est pas vérifiée pour le premier sous-ensemble d’images ou le deuxième sous-ensemble d’images : Détection de chaque objet présent dans l’image intermédiaire à l’aide du réseau de neurones artificiels pour obtenir un ensemble d’objets intermédiaire affecté à l’image intermédiaire ; Si une troisième condition est vérifiée, la deuxième condition est considérée comme vérifiée, la troisième condition étant vérifiée pour le premier sous-ensemble d’images si l’ensemble d’objets initial comporte le même nombre d’objets que l’ensemble d’objets intermédiaire et si chaque objet de l’ensemble d’objets initial répond à une deuxième condition de couplage avec un objet de l’ensemble d’objets intermédiaire différent et pour le deuxième sous-ensemble d’images si l’ensemble d’objets intermédiaire comporte le même nombre d’objets que l’ensemble d’objets final et si chaque objet de l’ensemble d’objets intermédiaire répond à la deuxième condition de couplage avec un objet de l’ensemble d’objets final différent. Ainsi, dans le cas où les étapes sont réalisées pour un sous-ensemble d’images, c’est-à-dire après au moins une première étape de découpage de l’ensemble d’images, si le même nombre d’objets est détecté dans l’image initiale et l’image finale du sous-ensemble d’images mais qu’au moins un objet détecté dans l’image initiale ne peut être couplé à un objet de l’image finale, le réseau de neurones artificiels est utilisé sur l’image intermédiaire du sous-ensemble d’images pour obtenir un ensemble d’objets intermédiaire. Si le sous-ensemble d’images est le premier sous-ensemble d’images, on vérifie si le même nombre d’objets est détecté dans la première image et dans l’image intermédiaire et si chaque objet détecté dans la première image peut être couplé à un objet de l’image intermédiaire différent. Si le sous-ensemble d’images est le deuxième sous-ensemble d’images, on vérifie si le même nombre d’objets est détecté dans l’image intermédiaire et dans la dernière image et si chaque objet détecté dans l’image intermédiaire peut être couplé à un objet de la dernière image différent. Si la condition est vérifiée, on considère respectivement que chaque objet détecté dans la première image est également détecté dans l’image intermédiaire ou que chaque objet détecté dans l’image intermédiaire est également détecté dans la dernière image et donc qu’aucune information concernant l’apparition, la disparation ou le déplacement d’un objet n’est finalement manquante et qu’il n’y a donc pas besoin de faire une nouvelle étape de découpage. Le nombre d’étapes de détection par le réseau de neurones artificiels est donc encore davantage limité. Un deuxième mode de réalisation du premier aspect de l’invention concerne un procédé automatique de détection d’objets dans un flux d’images, implémentable sur un microprocesseur, le flux d’images comprenant une pluralité d’ensembles d’images successifs, le procédé comportant les étapes suivantes : Pour chaque ensemble d’images comportant au moins une image à laquelle aucun ensemble d’objets n’est affecté : Calcul d’un critère visuel entre la première image de l’ensemble d’images et la dernière image de l’ensemble d’images ; Si une quatrième condition selon laquelle le critère visuel ne répond pas à une condition de similitude est vérifiée, les étapes du procédé selon le premier mode de réalisation de l’invention sont réalisées pour l’ensemble d’images ayant pour dernière image, la dernière image ayant servi au calcul du critère visuel vérifiant la quatrième condition ; Si la quatrième condition n’est pas vérifiée : Si aucune détection n’a été réalisée pour la première image de l’ensemble d’images, détection de chaque objet présent dans la première image à l’aide du réseau de neurones artificiels entraîné, pour obtenir un premier ensemble d’objets affecté à la première image ; Affectation du premier ensemble d’objets à chaque image de l’ensemble d’images, puis réalisation des étapes précédentes pour la dernière image de l’ensemble d’images suivant l’ensemble d’images dans le flux d’images. Ainsi, une étape de détection par le réseau de neurones artificiels est réalisée pour la première image d’un premier ensemble d’images et tant qu’un critère visuel entre la première image du premier ensemble d’images et la dernière image d’un deuxième ensemble d’images égal ou suivant le premier ensemble d’images est inférieur à un seuil, l’ensemble d’objets obtenu pour la première image est affecté à chaque image comprise entre la première image du premier ensemble d’images et la dernière image du deuxième ensemble d’images dans le flux d’images. Il n’y a donc qu’une unique détection par le réseau de neurones artificiels réalisée tant que la condition sur le critère visuel est vérifiée. Dès que la condition sur le critère visuel n’est pas vérifiée, les étapes du premier mode de réalisation du procédé selon l’invention sont réalisées pour le deuxième ensemble d’images. Le nombre d’étapes de détection par le réseau de neurones artificiels est donc encore davantage limité Selon une variante de réalisation du premier mode de réalisation ou du deuxième mode de réalisation du procédé selon l’invention, les objets à détecter sont des usagers de la route. Pour une telle application, le procédé selon l’invention permet d’obtenir une économie de temps de calcul de 90% sans détérioration du taux de détection si les usagers à détecter sont sur une route à une ou deux voies avec un trafic faible, c’est-à-dire inférieur à 300 usagers par heure, une économie de temps de calcul de 50% sans détérioration du taux de détection si les usagers à détecter sont dans une zone urbaine avec un trafic moyen, c’est-à-dire d’environ 1500 usagers par heure, et une économie de temps de calcul de 20% sans détérioration du taux de détection si les usagers à détecter sont sur une autoroute avec un trafic fort, c’est-à-dire supérieur à 5000 usagers par heure,. Un deuxième aspect de l’invention concerne un calculateur pour la mise en œuvre du procédé selon l’invention, comportant : un module de lecture d’images configuré pour lire le flux d’images et fournir au moins une image composant le flux d’images ; un module de détection configuré pour détecter à partir d’une image fournie par le module de lecture ou par un module d’analyse, chaque objet présent dans l’image à l’aide d’un réseau de neurones artificiels entraîné, pour obtenir un ensemble d’objets et fournir chaque ensemble d’objets obtenu ; le module d’analyse configuré pour vérifier chaque condition, calculer et affecter un ensemble d’objets à une image fournie par le module de lecture à partir d’au moins un ensemble d’objets fourni par le module de détection et pour fournir des images au module de détection en cas de découpage d’un ensemble d’images. Selon une variante de réalisation, le calculateur selon l’invention est un microprocesseur. Selon une variante de réalisation compatible avec la variante de réalisation précédente, le calculateur selon l’invention comporte en outre un module de détection visuelle configuré pour calculer un critère visuel à partir d’images fournies par le module de lecture d’images et fournir le critère visuel calculé au module d’analyse. Un troisième aspect de l’invention concerne un dispositif embarquant un calculateur selon l’invention. Un quatrième aspect de l’invention concerne un produit-programme d’ordinateur comprenant des instructions qui, lorsque le programme est exécuté par un ordinateur, conduisent celui-ci à mettre en œuvre les étapes du procédé selon le premier mode de réalisation ou le deuxième mode de réalisation de l’invention. Un cinquième aspect de l’invention concerne un support d'enregistrement lisible par ordinateur comprenant des instructions qui, lorsqu'elles sont exécutées par un ordinateur, conduisent celui-ci à mettre en œuvre les étapes du procédé selon le premier mode de réalisation ou le deuxième mode de réalisation de l’invention. L’invention et ses différentes applications seront mieux comprises à la lecture de la description qui suit et à l’examen des figures qui l’accompagnent. BREVE DESCRIPTION DES FIGURES Les figures sont présentées à titre indicatif et nullement limitatif de l’invention. La montre une représentation schématique d’un flux d’images et d’une étape de découpage d’un procédé selon un premier mode de réalisation de l’invention. La est un schéma synoptique illustrant l’enchaînement des étapes du procédé selon un premier mode de réalisation de l’invention. La est un schéma synoptique illustrant l’enchaînement des étapes du procédé selon un deuxième mode de réalisation de l’invention. La montre une représentation schématique d’un calculateur selon l’invention. Procédé (100) automatique de détection d’objets dans un flux d’images (V), implémentable sur un microprocesseur, le flux d’images (V) comprenant une pluralité d’ensembles d’images (Ei) successifs ayant chacun pour image initiale une première image (I1) et pour image finale une dernière image (In), le procédé (100) comportant les étapes suivantes pour chaque ensemble d’images (Ei) du flux d’images (V) : Si aucune détection n’a été réalisée pour l’image initiale de l’ensemble d’images (Ei), détection de chaque objet présent dans l’image initiale à l’aide d’un réseau de neurones artificiels pour obtenir un ensemble d’objets initial affecté à l’image initiale, le réseau de neurones artificiels ayant été préalablement entraîné de manière supervisée sur une base de données d’entraînement pour obtenir un réseau de neurones artificiels entraîné capable de détecter à partir d’une image, chaque objet dans l’image, la base de données d’entraînement comprenant une pluralité d’images chacune associée à la position de chaque objet dans l’image (101) ; Si aucune détection n’a été réalisée pour l’image finale de l’ensemble d’images (Ei), détection de chaque objet présent dans l’image finale à l’aide du réseau de neurones artificiels pour obtenir un ensemble d’objets final affecté à l’image finale (102) ; Si une première condition (C1) selon laquelle l’ensemble d’objets initial comporte le même nombre d’objets que l’ensemble d’objets final et une deuxième condition (C2) selon laquelle chaque objet de l’ensemble d’objets initial répond à une première condition de couplage avec un objet de l’ensemble d’objets final différent sont vérifiées, affectation d’un ensemble d’objets à chaque image de l’ensemble d’images (Ei) comprise entre l’image initiale et l’image finale, l’ensemble d’objets étant obtenu par interpolation linéaire à partir de l’ensemble d’objets initial et de l’ensemble d’objets final (103) ; Sinon, découpage de l’ensemble d’images (Ei) en un premier sous-ensemble d’images (SE1) ayant pour image initiale la première image (I1) de l’ensemble d’images (Ei) et pour image finale une image intermédiaire (Ik) de l’ensemble d’images (Ei) comprise entre l’image initiale et l’image finale de l’ensemble d’images (Ei), et en un deuxième sous-ensemble d’images (SE2) ayant pour image initiale l’image intermédiaire (Ik) et pour image finale la dernière image (In) de l’ensemble d’images (Ei, 104), puis réalisation des étapes précédentes pour le premier sous-ensemble d’images (SE1) et pour le deuxième sous-ensemble d’images (SE2). Procédé (100) selon la revendication 1, comportant les étapes suivantes si la première condition (C1) est vérifiée et si la deuxième condition (C2) n’est pas vérifiée pour le premier sous-ensemble d’images (SE1) ou le deuxième sous-ensemble d’images (SE2) : Détection de chaque objet présent dans l’image intermédiaire (Ik) à l’aide du réseau de neurones artificiels pour obtenir un ensemble d’objets intermédiaire affecté à l’image intermédiaire (Ik, 105) ; Si une troisième condition (C3) est vérifiée, la deuxième condition (C2) est considérée comme vérifiée, la troisième condition (C3) étant vérifiée pour le premier sous-ensemble d’images (SE1) si l’ensemble d’objets initial comporte le même nombre d’objets que l’ensemble d’objets intermédiaire et si chaque objet de l’ensemble d’objets initial répond à une deuxième condition de couplage avec un objet de l’ensemble d’objets intermédiaire différent et pour le deuxième sous-ensemble d’images (SE2) si l’ensemble d’objets intermédiaire comporte le même nombre d’objets que l’ensemble d’objets final et si chaque objet de l’ensemble d’objets intermédiaire répond à la deuxième condition de couplage avec un objet de l’ensemble d’objets final différent. Procédé (300) automatique de détection d’objets dans un flux d’images (V), implémentable sur un microprocesseur, le flux d’images (V) comprenant une pluralité d’ensembles d’images (Ei) successifs, le procédé (300) comportant pour chaque ensemble d’images (Ei) comportant au moins une image à laquelle aucun ensemble d’objets n’est affecté : Une étape initiale de calcul d’un critère visuel entre la première image (I1) de l’ensemble d’images et la dernière image (In) de l’ensemble d’images (Ei, 301) ; Des étapes intermédiaires suivantes : Si une quatrième condition (C4) selon laquelle le critère visuel ne répond pas à une condition de similitude est vérifiée, les étapes du procédé (100) selon l’une quelconque des revendications précédentes sont réalisées pour l’ensemble d’images (Ei) ayant pour dernière image (In), la dernière image (In) ayant servi au calcul du critère visuel vérifiant la quatrième condition (C4); Si la quatrième condition (C4) n’est pas vérifiée : Si aucune détection n’a été réalisée pour la première image (I1) de l’ensemble d’images (Ei), détection de chaque objet présent dans la première image (I1) à l’aide du réseau de neurones artificiels entraîné, pour obtenir un premier ensemble d’objets affecté à la première image (I1, 302) ; Affectation du premier ensemble d’objets à chaque image de l’ensemble d’images (303) ; Calcul du critère visuel entre la première image (I1) de l’ensemble d’images et la dernière image (In) de l’ensemble d’images suivant l’ensemble d’images (Ei) dans le flux d’images (V) et ayant pour dernière image (In), la dernière image (In) ayant servi au dernier calcul du critère visuel et réalisation des étapes intermédiaires pour le dernier critère visuel calculé. Procédé (100, 300) selon l’une quelconque des revendications précédentes, dans lequel les objets à détecter sont des usagers de la route. Calculateur (200) pour la mise en œuvre du procédé (100, 300) selon l’une quelconque des revendications précédentes, comportant : un module de lecture d’images (201) configuré pour lire le flux d’images (V) et fournir au moins une image composant le flux d’images (V) ; un module de détection (202) configuré pour détecter à partir d’une image fournie par le module de lecture (201) ou par un module d’analyse (203), chaque objet présent dans l’image à l’aide d’un réseau de neurones artificiels entraîné, pour obtenir un ensemble d’objets et fournir chaque ensemble d’objets obtenu ; le module d’analyse (203) configuré pour vérifier chaque condition, calculer et affecter un ensemble d’objets à une image fournie par le module de lecture (201) à partir d’au moins un ensemble d’objets fourni par le module de détection (202) et pour fournir des images au module de détection (202) en cas de découpage d’un ensemble d’images. Calculateur (200) selon la revendication 5, étant un microprocesseur. Calculateur (200) selon la revendication 5 ou 6, comportant en outre un module de détection visuelle (204) configuré pour calculer un critère visuel à partir d’images fournies par le module de lecture d’images (201) et fournir le critère visuel calculé au module d’analyse (203). Dispositif embarquant un calculateur (200) selon l’une quelconque des revendications 5 à 7. Produit-programme d’ordinateur comprenant des instructions qui, lorsque le programme est exécuté par un ordinateur, conduisent celui-ci à mettre en œuvre les étapes du procédé selon l’une quelconque des revendications 1 à 4. Support d'enregistrement lisible par ordinateur comprenant des instructions qui, lorsqu'elles sont exécutées par un ordinateur, conduisent celui-ci à mettre en œuvre les étapes du procédé selon l’une quelconque des revendications 1 à 4.