Brevet FR3126166A1 — publié le 20230217

L’invention concerne un procédé d’analyse de contenus vidéo comprenant une détermination (S1) d’une liste d’objets et/ou d’évènements à détecter dans un ou plusieurs contenus vidéo, une détermination (S2) d’une liste de ressources nécessaires à la détection desdits objets et/ou évènements à détecter, une décomposition (S3) des ressources nécessaires en une pluralité de modules d’exécution d’un algorithme de traitement, et, un calcul automatique (S4) d’un parcours optimisé d’informations entre lesdits modules d’exécution, de sorte à minimiser le nombre desdits modules d’exécution requis pour opérer des détections d’éléments parmi ladite liste des objets et/ou évènements à détecter. L’invention concerne également un dispositif d’analyse de contenus vidéo configuré pour exécuter le procédé. Figure à publier avec l’abrégé : Fig. 2 PROCEDE D’ANALYSE DE CONTENUS VIDEO ET DISPOSITIF EXECUTANT LE PROCEDE. La présente invention se rapporte au domaine de l’analyse de flux vidéo. L’invention concerne plus particulièrement l’affectation de ressources matérielles et/ou logicielles nécessaires à des opérations de détection d’objets ou de détection d’évènements dans des contenus vidéo, à partir de flux vidéo. ETAT DE LA TECHNIQUE ANTERIEURE Des systèmes d’analyse de flux vidéo permettent d’opérer des détections automatiques d’objets ou d’évènements, en temps réel ou encore de façon différée, à partir de flux vidéo générés par des dispositifs de capture d’images tels que, par exemple, des caméras de vidéosurveillance. De tels systèmes sont notamment fréquents et utiles en zone urbaine pour veiller, par exemple, aux bons usages des infrastructures de circulation routière, à une bonne application des règles de stationnement de véhicules, à la sécurité des biens et des personnes, etc. Les applications de la vidéosurveillance sont nombreuses et variées, et les exemples ci-avant ne sont pas limitatifs. Ainsi, des systèmes de vidéosurveillance sont couramment utilisés pour la gestion du stationnement, pour inciter au respect des feux tricolores et au respect du sens de circulation, pour la sécurisation des voies piétonnes ou des voies ferrées, mais aussi pour veiller à la sécurité des personnes dans des endroits où la fréquentation est très élevée, comme par exemple, les gares, les aéroports, ou les centres commerciaux. De tels systèmes sont en outre appréciés pour leur contribution à la gestion du trafic, à la gestion de l’affluence, et plus largement pour leur capacité à aider à prévoir et à planifier des aménagements urbains ou des évolutions d’infrastructures urbaines. Le succès de ces systèmes de prise de vue et d’analyse automatisée, combiné à la facilité d’utilisation offerte par la distribution d’applications « clés en main », est tel que les besoins en nombre de dispositifs de prise de vue sont toujours croissants. Les besoins en ressources matérielles et logicielles mises en œuvre pour l’analyse automatisée des flux vidéo produits se sont accrus en conséquence. Ces systèmes sont complexes et onéreux et il existe un besoin d’optimiser l’allocation de ressources matérielles et/ou logicielles nécessaires à des opérations d’analyse pour des besoins prédéterminés ou évolutifs. La situation peut donc être améliorée. L’invention a pour but de proposer un procédé d’affectation de ressources utiles à des opérations d’analyse de contenus vidéo visant à garantir que les détections à opérer peuvent être réalisées, ou en d’autres termes qu’aucune saturation quant à l’utilisation des ressources ne puisse nuire à une bonne détection d’un objet ou d’un évènement à partir d’un ou plusieurs contenus vidéo. A cet effet, il est proposé un procédé d’analyse de contenus vidéo, exécuté dans un dispositif d’analyse de contenus vidéo, comprenant : - déterminer une liste d’objets et/ou d’évènements à détecter dans un ou plusieurs contenus vidéo, - déterminer une liste de ressources nécessaires à la détection des objets et/ou évènements à détecter, - décomposer les ressources en une pluralité de modules d’exécution d’un algorithme de traitement, chacun des modules étant configuré pour traiter tout ou partie d’une ou plusieurs images extraites de l’un des contenus vidéo, ou des informations représentatives d’un contenu vidéo obtenues à partir d’une ou plusieurs des images et l’un au moins des modules d’exécution étant configuré pour délivrer une information représentative d’un résultat d’une détection à opérer, le procédé comprenant en outre, - déterminer automatiquement un parcours optimisé d’informations entre les modules d’exécution de sorte à minimiser le nombre des modules d’exécution requis pour opérer des détections d’éléments parmi la liste des objets et/ou évènements à détecter. Avantageusement, l’utilisation des ressources matérielles et/ou logicielles est optimisée pour permettre d’opérer un grand nombre de détections tout en limitant au maximum le risque de ne pas détecter un objet ou un évènement recherché dans un ou plusieurs contenus vidéo. Selon un mode de réalisation de l’invention, les étapes du procédé pour déterminer une liste de ressources nécessaires et pour décomposer les ressources en une pluralité de modules d’exécution d’un algorithme de traitement comprennent la détermination ou la considération d’un indice représentatif d’une capacité de traitement de chacun des modules d’exécution. Ainsi, l’affectation (ou en d’autres termes la distribution) à des modules d’exécution d’un algorithme de traitement des ressources globales à utiliser pour opérer les analyses et détections programmées est facilitée. Selon un mode de réalisation, le procédé comprend en outre une étape de détermination d’un taux de ressources utilisées au regard de l’ensemble des ressources disponibles du dispositif d’analyse de contenus vidéo et au moins une étape d’exécution d’un processus d’analyse de contenus vidéo est conditionnée au fait que le taux de ressources utilisées excède ou non une valeur seuil prédéterminée. Selon un mode de réalisation de l’invention, la valeur seuil prédéterminée est comprise entre 80 et 90% des ressources totales disponibles dans le dispositif d’analyse de contenus vidéo. Selon un mode de réalisation de l’invention, le parcours optimisé de données est implémenté grâce à des fonctions de messagerie asynchrone pour applications distribuées ou concurrentes, préférentiellement selon un protocole d’un type dit ZeroMQ ou un protocole d’un type MQTT (défini selon le standard ISO/IEC 20922 :2016 ou l’une de ses évolutions). L’invention concerne également un dispositif d’analyse de contenus vidéo comprenant un ensemble de circuits électroniques configurés parmi lesquels : - un module configuré pour déterminer une liste d’objets et/ou d’évènements à détecter dans un ou plusieurs contenus vidéo, - un module configuré pour déterminer une liste de ressources nécessaires à la détection des objets et/ou évènements à détecter, - un module configuré pour décomposer les ressources en une pluralité de modules d’exécution d’un algorithme de traitement, chacun des modules étant configuré pour traiter tout ou partie d’une ou plusieurs images extraites de l’un des contenus vidéo, ou des informations représentatives d’un contenu vidéo obtenues à partir d’une ou plusieurs des images et l’un au moins des modules d’exécution étant configuré pour délivrer une information représentative d’un résultat d’une détection à opérer, le dispositif d’analyse de contenus vidéo comprenant en outre : - un module configuré pour déterminer automatiquement un parcours optimisé d’informations entre les modules d’exécution d’un algorithme, de sorte à minimiser le nombre des modules d’exécution requis pour opérer des détections d’éléments parmi la liste des objets et/ou évènements à détecter. L’invention a également pour objet un système de vidéosurveillance comprenant un ou plusieurs dispositifs d’analyse de contenus vidéo tels que le dispositif d’analyse de contenus vidéo précédemment décrit. Enfin, l’invention a pour objet un produit programme d’ordinateur comprenant des instructions de codes de programme pour exécuter les étapes du procédé précité, lorsque le programme est exécuté par un processeur, ainsi qu’un dispositif de stockage comprenant un tel produit programme d’ordinateur. Les caractéristiques de l’invention mentionnées ci-dessus, ainsi que d’autres, apparaîtront plus clairement à la lecture de la description suivante d’au moins un exemple de réalisation, ladite description étant faite en relation avec les dessins joints, parmi lesquels : illustre schématiquement un système de vidéosurveillance comprenant un dispositif d’analyse de contenus vidéo exécutant un procédé d’analyse de contenus vidéo selon un mode de réalisation ; est un ordinogramme représentant un procédé d’analyse de contenus vidéo selon un mode de réalisation, exécuté dans le système de vidéosurveillance déjà illustré sur la ; est un diagramme représentant l’architecture du dispositif d’analyse de contenus vidéo représenté sur la et configuré pour exécuter un procédé décrit dans la . EXPOSE DETAILLE DE MODES DE REALISATION La illustre schématiquement un système de vidéosurveillance 10 comprenant un dispositif 100 d’analyse de contenus vidéo. Le dispositif 100 d’analyse de contenus vidéo est configuré pour opérer une détection d’objets et/ou d’évènements prédéfinis à partir de contenus vidéo délivrés par des dispositifs de capture d’images 102, 104, 106 et 108. Les dispositifs de capture d’images 102, 104, 106 et 108 sont respectivement reliés au dispositif d’analyse de contenus vidéo 100 par l’intermédiaire de bus de communication 103, 105, 107 et 109. Selon un mode de réalisation, les dispositifs de capture d’images 102, 104, 106 et 108 sont des caméras dites « caméra IP » configurées pour être commandées à distance et pour délivrer chacune un ou plusieurs contenus vidéo à partir d’un dispositif de prise de vue sous la forme d’un flux vidéo numérique. Les termes « flux vidéo numérique » désignent ici une succession d’informations identifiables ayant un lien entre elles et étant représentatives d’un ou plusieurs contenus vidéo (par exemple un ou plusieurs films ou séquences vidéo) et dont un traitement (décodage) permet une restitution d’un ou plusieurs contenus vidéo. Plus largement un flux vidéo peut en outre comprendre un flux audio codant un environnement sonore autour d’une caméra. Dans ce cas, le flux vidéo est plus précisément un flux audio/vidéo ou audiovisuel. Ainsi, chacun des bus de communication 103, 105, 107 et 109 comprend des lignes de communication utiles au transport de flux vidéo et des lignes de communication utiles à des opérations de configuration du dispositif de capture d’images auquel il est raccordé. Les lignes de communications utiles au transport de flux vidéo peuvent également être utilisées pour transporter des données connexes aux flux vidéo, telles que, à titre d’exemple, des identifiants de caméra, des données de contrôle de mouvements de caméras, des données d’horodatage de flux vidéo. Les données de contrôle de mouvements de caméras permettent par exemple de contrôler une caméra en rotation pour modifier ou ajuster son champ de vision. Selon un mode de réalisation, les lignes de communication prévues pour le transport de contenus vidéo en provenance d’un dispositif de capture d’images sont également prévues pour la configuration des dispositifs de capture d’images. Selon ce mode de réalisation, un bus de communication ainsi réalisé est bidirectionnel et un séquencement de transfert de données est réalisé pour entrelacer (ou en d’autres termes pour alterner) des opérations de configuration d’un dispositif de capture d’images et des opérations de transport de contenus vidéo entre le dispositif de capture d’images concerné et le dispositif d’analyse de contenus vidéo 100. Selon un mode de réalisation, les flux vidéo transportant les contenus vidéo utilisent chacun un protocole de communication de niveau applicatif du type RTSP (du sigle anglais de « Real-Time Streaming Protocol » et qui signifie « protocole de streaming temps-réel »). Les termes « contenu vidéo » désignent ici l’ensemble des éléments visibles et identifiables dans une séquence vidéo générée par un dispositif de capture d’images parmi les dispositifs de capture d’images102, 104, 106 et 108. Selon l’exemple décrit, une séquence vidéo correspond à un plan de prise de vue ou encore, par exemple, à un plan de prise de vue pour un facteur de grossissement (niveau de zoom) déterminé. En effet, certains des traitements appliqués à des contenus vidéo peuvent interpréter des plans successifs de prise de vue lorsqu’une modification rapide de l’image captée survient (par exemple une modification d’un niveau de zoom, ou une modification par isométrie ou par homothétie, du fait de mouvements de rotation ou de translation d’un dispositif de capture). En d’autres termes, une séquence vidéo est une suite d’images correspondant au champ visuel d’un dispositif de capture d’images, soit la zone totale de l’espace perçu par la caméra, éventuellement temporellement délimitée par une modification rapide de caractéristiques de prise de vue, et donc de l’image telle que captée. Ainsi une séquence vidéo ne comprend qu’un seul plan si un dispositif de capture d’images la générant n’est pas désactivé, sauf éventuellement à ce que ce dispositif soit configuré pour opérer une modification rapide de caractéristiques de prise de vue, tel que précédemment décrit, ce qui constitue alors une transition entre la fin d’une séquence vidéo et le début d’une autre séquence vidéo, selon les différents algorithmes de traitement appliqués à la séquence. Le système de vidéosurveillance 10 comprend en outre, raccordés au dispositif 100 d’analyse de contenus vidéo, un dispositif de contrôle d’analyse 110 et un dispositif de restitution de résultats d’analyse 112. Ces deux dispositifs 110 et 112 sont respectivement connectés au dispositif 100 d’analyse de contenus vidéo par l’intermédiaire de bus de communication bidirectionnels 111 et 113. Le système de vidéosurveillance 10 comprend de plus un dispositif de stockage 114 de résultats d’analyse qui permet l’enregistrement de résultats d’analyse de contenus vidéo réalisées par le dispositif 100 d’analyse de contenus vidéo. Les résultats d’analyse enregistrés dans le dispositif de stockage 114 sont par exemple des notifications en lien avec des détections d’un objet ou d’un évènement, sous la forme de journaux de détections, d’images illustrant des détections opérées, ou encore de combinaisons de notifications et d’une ou plusieurs images illustrant les détections dont il est fait notification. Le dispositif de stockage 114 est relié au dispositif 100 d’analyse de contenus vidéo par le biais d’un bus de communication 115. Selon un mode de réalisation, les bus de communication 111 et 113 sont des bus de communication bidirectionnels et le bus de communication 115 est un bus de communication unidirectionnel ou bidirectionnel. Chacun des bus de communication 103, 105, 107, 109, 111, 113 et 115 peut être de type filaire ou encore de type sans fil selon la configuration, et plus particulièrement selon la topologie du système de vidéosurveillance 10, ou, en d’autres termes, selon l’éloignement géographique entre les différents éléments décrits et qui composent le système de vidéosurveillance 10. Le dispositif de contrôle d’analyse 110 est prévu et configuré pour programmer des détections à opérer par le système de vidéosurveillance 10 dans les contenus vidéo délivrés au dispositif d’analyse 100 de contenus vidéo via les bus de communication 103, 105, 107 et 109, à partir d’informations saisies par un utilisateur, lequel est encore appelé communément l’opérateur du système. Ainsi, un utilisateur du système peut configurer le dispositif d’analyse de contenus vidéo 100 pour programmer une détection d’un ou plusieurs objets et/ou d’un ou plusieurs évènements dans l’un ou plusieurs des différents contenus vidéo transmis par les dispositifs de capture d’images 102, 104, 106 et 108 reliés au dispositif d’analyse de contenus vidéo 100. Par exemple, un opérateur peut programmer une détection d’un piéton dans un contenu vidéo transmis par le dispositif de capture d’images 102. De façon similaire, un opérateur du dispositif de contrôle d’analyse 110 peut programmer une détection d’un bagage isolé dans ce même contenu vidéo. Ces détections correspondent alors, selon ces exemples, à des détections d’objets. De façon similaire encore, il est possible de programmer une détection d’un évènement en rapport avec un ou plusieurs objets. Il est à noter qu’une détection d’un évènement comprend ici, par définition, la considération d’une temporalité en plus d’un ou plusieurs faits (ou états) relatifs à un ou plusieurs objets. Par exemple, le système de vidéosurveillance 10 est configuré pour permettre la détection d’un bagage abandonné par une personne, ce qui constitue un évènement en rapport avec des objets que sont la personne et le bagage. Ceci implique, par exemple, une détection d’une personne (objet) et d’un bagage (objet), parcourant en un premier temps un même trajet dans le temps et l’espace, puis étant ensuite éloignés l’un de l’autre. Un évènement qui caractérise un abandon de bagage par une personne peut être décomposé en un évènement d’une personne portant un bagage, suivi d’un évènement correspondant au fait que cette personne se sépare physiquement de ce bagage, puis d’un évènement correspondant à une absence de récupération de ce bagage par une personne pendant une durée prédéterminée. Le dispositif de contrôle d’analyse 110 de contenus vidéo permet de programmer des détections d’objets ou d’évènements parmi un ensemble prédéfini d’objets ou d’évènements à partir d’un ou plusieurs contenus vidéo identifiables. Plus généralement, le système de vidéosurveillance 10 permet, grâce au dispositif de contrôle d’analyse 110, de détecter un objet prédéfini ou un évènement prédéfini dans un contenu vidéo. Une détection d’un objet est alors, en d’autres termes, une détection d’un élément susceptible d’être identifié en tant que tel (en tant que cet objet) grâce aux formes et caractéristiques visuelles (texture, couleur, …) qu’il présente à un dispositif de capture d’images (une caméra, par exemple) et donc à une forme qu’il présente dans un contenu vidéo. A titre d’exemples non limitatifs, un tel objet peut être, par exemple, un visage, un piéton, une voiture, un bus, un panneau de signalisation, un bagage, un chapeau, une paire de lunettes, une bouteille de lait, etc. Une détection d’un évènement est une détection d’un fait relatif à un ou plusieurs objets dans un contenu vidéo, et qui comprend de fait une temporalité. Par exemple, un évènement ainsi défini peut être une apparition d’un objet dans un contenu vidéo, un déplacement d’un objet dans un contenu vidéo, une disparition d’un objet dans un contenu vidéo, un déplacement relatif d’un objet par rapport à un autre objet, dans un contenu vidéo (selon l’exemple du bagage porté par une personne, par exemple), une variation de déplacement d’un objet par rapport à un autre objet dans un contenu vidéo (rapprochement, éloignement, etc…). Ainsi, et en d’autres termes, des exemples non limitatifs d’évènements susceptibles d’être recherchés et détectés dans un contenu vidéo sont : une apparition d’un bagage, une disparition d’un bagage, un apparition d’un piéton, une disparition d’un piéton, un transport d’un bagage par un piéton, un dépôt d’un bagage par un piéton, une préhension d’un bagage par un piéton, une immobilité d’un bagage pendant un temps prédéterminé, mais aussi, selon d’autres exemples non limitatifs, un franchissement de feu rouge par une voiture, un véhicule s’engageant dans une rue à sens unique de circulation, à contre-courant du flux de circulation, une collision entre deux véhicules, un ballon de football franchissant une ligne de touche d’un stade de football, un candidat discutant avec une tierce personne pendant un examen scolaire surveillé par des moyens de vidéosurveillance, etc. Avantageusement, les opérations de détections d’objets dans des contenus vidéo peuvent être réalisées en utilisant des techniques dites de vision par ordinateur (ou computer vision , de l’anglais) reposant sur l’utilisation de réseaux de neurones entraînés à partir d’échantillons d’images pendant une phase d’apprentissage. Selon un mode de réalisation, un module de détection d’objets comprend une implémentation logicielle ou matérielle d’un réseau de neurones artificiels profond ou de type DCNN (du sigle anglais “Deep Convolutional Neural Network”). Un tel module DCNN peut être constitué d’un ensemble de nombreux neurones artificiels, de type convolutif ou de type perceptron, et organisés par couches successives connectées entre elles. Un tel module DCNN s’inspire classiquement d’un modèle simpliste du fonctionnement d’un cerveau humain où de nombreux neurones biologiques sont connectés entre eux par des axones. Par exemple, un module dit YOLOv4 (du sigle anglais « You Only Look Once version 4 ») est un module de type DCNN qui permet d’opérer une détection d’objets dans des images, et qui est dit “à une étape” (ou encore One-Stage), c’est à dire dont l’architecture est composée d’un module unique de propositions combinées de rectangles encadrant des objets (« bounding boxes ») et de classes d’objets dans l’image. En plus des neurones artificiels précédemment décrits, le module YOLOv4 utilise des fonctions connues de l’homme du métier comme par exemple la normalisation des lots (ou “ batch normalization ” en anglais), la régularisation par coupure de blocs de pixels (ou “ dropblock regularization ” en anglais), des connexions résiduelles pondérées entre couches (ou “ weighted residual connections ”) ou encore une étape de suppression non-maximale (ou “ non-maximal suppression ” en anglais) qui élimine les propositions redondantes d’objets détectés. Selon un mode de réalisation, le module de détection d’objets a la possibilité de prédire une liste d’objets présents dans une ou plusieurs images d’un ou plusieurs contenus vidéos en fournissant, pour chaque objet, un rectangle encadrant l’objet sous forme de coordonnées de points définissant le rectangle dans l’image, le type ou classe de l’objet parmi une liste prédéfinie de classes définies lors d’une phase d’apprentissage, et un score de détection représentant un degré de confiance dans la détection ainsi opérée. Le dispositif de restitution de résultats d’analyse 112 est un dispositif prévu et configuré pour opérer une restitution des résultats d’une ou plusieurs analyses réalisées par le système de vidéosurveillance 10 au moyen du dispositif d’analyse 100 de contenus vidéo. Ainsi le dispositif de restitution de résultats d’analyse 112 est prévu pour notifier un opérateur des détections d’objets et/ou d’évènements correspondant aux objets et/ou évènements recherchés dans les contenus vidéo. Selon un mode de réalisation, le dispositif de restitution de résultats d’analyse 112 affiche un message d’alerte pour chaque détection réalisée et qui correspond à une détection d’un objet et/ou d’un évènement telle que programmée par l’intermédiaire du dispositif de contrôle d’analyse 110. Selon un mode de réalisation, la restitution d’un message d’alerte peut être visuelle, sonore, ou encore visuelle et sonore et permet à un opérateur d’obtenir des informations en lien avec une détection réalisée. Par exemple, une notification d’une détection via le dispositif de restitution de résultats d’analyse 112 peut être une ligne d’informations succinctes, affichée sur un écran, et comprenant un résumé d’informations détaillées auxquelles il est possible d’accéder en sélectionnant la ligne. Le résumé succinct peut comprendre, à titre d’exemple, le type de détection opérée (objet ou évènement), un intitulé de la détection (par exemple, un franchissement d’un feu rouge sur une voie de circulation urbaine), une date et une heure. Selon un mode de réalisation, le dispositif d’analyse de contenus vidéo 100 est configuré pour déterminer une liste d’objets et/ou d’évènements à détecter dans un ou plusieurs contenus vidéo à partir d’informations saisies par un opérateur, via le dispositif de contrôle d’analyse 110. Par exemple, le dispositif d’analyse de contenus vidéo 100 est configuré pour détecter un évènement de type « bagage abandonné » dans un contenu vidéo transmis à partir du dispositif de capture d’images 102, lequel dispositif de capture d’images 102 est positionné dans le hall d’entrée d’un aéroport. Selon un autre exemple, le dispositif d’analyse de contenus vidéo est configuré pour détecter un évènement de type « ballon sorti en touche » dans un contenu vidéo transmis à partir du dispositif de capture d’images 103, lequel dispositif de capture d’images 103 est positionné dans une ligne de touche d’un stade de football. Le dispositif d’analyse de contenus vidéo 100 est de plus configuré pour déterminer, à partir de la liste d’objets et/ou d’évènements à détecter, saisie ou actualisée par un opérateur, une liste de ressources nécessaires à la détection de ces objets et/ou évènements à détecter, puis à décomposer les ressources en une pluralité de modules d’exécution d’un algorithme de traitement, considérant que chacun des modules d’exécution d’un algorithme de traitement est configuré pour traiter tout ou partie d’une ou plusieurs images extraites de l’un des contenus vidéo, ou encore est configuré pour traiter des informations représentatives d’un contenu vidéo obtenues à partir d’une ou plusieurs des images. Les modules d’exécution d’un algorithme de traitement sont encore appelés « processeurs ». L’un au moins des modules d’exécution est configuré pour délivrer une information représentative d’un résultat d’une détection à opérer. En d’autres termes, cela revient à dire que le système est configuré pour utiliser des ressources sous forme de modules élémentaires de traitement d’images qui sont avantageusement alloués dynamiquement pour permettre d’opérer l’ensemble des traitements d’images successifs requis pour analyser les contenus vidéo et détecter les différents objets et/ou évènements à détecter. Par exemple, un module élémentaire d’exécution d’un algorithme de traitement d’images peut être un module de détection de la présence d’un objet dans une image donnée, extraite d’un contenu vidéo ou pointée dans un contenu vidéo. Plus précisément, un exemple d’un tel module élémentaire d’exécution d’un algorithme peut être un module de détection de la présence d’un objet dans une image identifiée dans un contenu vidéo donné. Un tel module peut être défini avec des données d’entrée qui sont, par exemple, un identifiant d’une image horodatée dans un contenu vidéo (ou un lien vers celle-ci), un identifiant d’un objet à rechercher dans cette image et des données de sortie de ce module sont alors un indicateur de présence de l’objet recherché, les coordonnées d’un point précis (point de référence) de l’objet dans l’image et des dimensions d’un cadre délimitant l’objet autour du point précis de l’objet. Un point de référence est par exemple le centre de l’objet ou le centre d’une médiane ou le point le plus en bas à gauche d’un cadre bordant l’objet, etc. A titre d’exemple, un module élémentaire d’exécution d’un traitement de détection d’objet peut être configuré et utilisé pour détecter la présence d’un objet de type « bagage » dans une image extraite d’un contenu vidéo en provenance du dispositif de capture d’images 102, l’image étant horodatée et capturée à une date et une heure précises (par exemple le 12 juillet 2021 à 12 h 16 min et 34 s.), avec un précision d’horodatage de l’ordre de la seconde, par exemple. Selon un fonctionnement similaire, ce même module de détection d’un objet peut être utilisé pour détecter la présence d’un objet de type « piéton » dans la même image ou dans une autre image, ou encore dans un autre contenu vidéo, à un instant temporellement proche ou éloigné de la recherche d’un bagage. Par ailleurs un module élémentaire d’exécution d’un algorithme peut être défini pour la détection d’un évènement en lien avec deux objets dans une même image. Par exemple, un module élémentaire d’exécution d’un algorithme de détection d’évènement peut être configuré pour détecter un déplacement identique ou quasi identique de deux objets dans une même image, dont la présence a déjà été détectée par un traitement antérieur (et par un module d’exécution d’un algorithme différent). Ainsi, un tel module élémentaire de traitement peut avoir comme données d’entrée un lien vers une image, des coordonnées respectives de points de référence de chacun des deux objets précédemment détectés, et un intervalle de temps prédéfini (par exemple, une heure de début et une durée d’analyse), et une donnée de sortie de ce module élémentaire serait alors un indicateur de concordance ou non des déplacements des deux objets. Avantageusement, le dispositif d’analyse de contenus vidéo comprend une bibliothèque de modules d’exécution d’algorithme (encore nommés parfois processeurs) de traitement comprenant de nombreux modules élémentaires d’exécution d’algorithme utilisant comme données d’entrée tout ou partie d’une image extraite d’un contenu vidéo ou encore utilisant comme données d’entrée des informations représentatives d’un ou plusieurs éléments contenus dans une image (par exemple, les coordonnées d’un point de référence d’un objet détecté, dans une image, et les dimensions d’un cadre délimitant cet objet, par rapport au point de référence). Avantageusement, le dispositif d’analyse 100 de contenus vidéo est configuré pour calculer ou déterminer automatiquement, à partir d’une liste de détections à opérer et d’une liste de modules élémentaires d’exécution d’un algorithme, un parcours optimisé d’informations entre les modules d’exécution, de sorte à minimiser le nombre des modules d’exécution requis pour opérer les détections d’éléments programmées parmi la liste des objets et/ou évènements à détecter. Un module d’exécution d’un algorithme de traitement peut être implémenté sous forme logicielle ou sous forme matérielle. Lorsqu’il est implémenté sous forme logicielle, un module d’exécution d’un algorithme de traitement mis en œuvre peut être une nouvelle instance d’un tel module d’exécution, exécuté dans une mémoire vive du dispositif 100 d’analyse de contenus vidéo, sous contrôle d’une unité de contrôle du dispositif 100 d’analyse de contenus vidéo. Lorsqu’il est implémenté sous forme matérielle, le module d’exécution peut être une n ième instance d’un module déterminé, implémenté dans un nombre fini d’instances dans un circuit logique, par exemple, du dispositif d’analyse de contenus vidéo 100, et configuré pour opérer une détection. Bien évidemment, les ressources sont disponibles en nombre fini, que ce soit du fait de l’architecture matérielle et/ou de la taille de la mémoire vive du dispositif 100, et il convient donc d’optimiser leur utilisation pour ne pas risquer une absence de détection d’un objet ou d’un évènement du fait de l’indisponibilité temporaire d’une ressource ou encore pour pouvoir accroître le nombre de détections à opérer au regard d’une architecture donnée (et donc d’un nombre de ressources donné). C’est pourquoi un calcul automatique, à partir d’une liste de détections à opérer et d’une liste de modules élémentaires d’exécution d’un algorithme, d’un parcours optimisé d’informations entre les modules d’exécution, de sorte à minimiser le nombre des modules d’exécution requis pour opérer des détections d’éléments parmi la liste des objets et/ou évènements à détecter, permet d’optimiser l’allocation des ressources et de limiter au maximum un risque d’absence de détection en présence d’un objet ou d’un évènement à détecter dans un contenu vidéo. Selon un mode de réalisation, la détermination d’une liste de ressources nécessaires et la décomposition en une pluralité de modules d’exécution d’un algorithme de traitement utilise un système d’indices représentatifs d’une capacité de traitement pour chacun des modules d’exécution d’un algorithme tels que définis dans la bibliothèque de modules élémentaires d’exécution d’un algorithme de traitement du dispositif 100 d’analyse de contenus vidéo. Ainsi un coefficient Xi exprimé en unités de capacité de traitement est associé à chaque module élémentaire (indicé i) d’exécution d’un algorithme tel que défini dans la bibliothèque de modules élémentaires d’exécution d’un algorithme du dispositif 100 d’analyse de contenus vidéo. Un coefficient Xi peut également être exprimé en unités de capacité par unité de temps. Il est à noter que les besoins en ressources ne sont pas linéaires, c’est-à-dire que la quantité de ressources nécessaires à la détection de dix évènements dans un contenu vidéo n’est pas égale à dix fois la quantité de ressources nécessaires à une seule détection. En d’autres termes, la relation entre les ressources nécessaires pour détecter un nombre d’objets ou d’évènements dans un ou plusieurs contenus vidéo et ce nombre d’objets ou d’évènements n’est pas forcément linéaire. Avantageusement, le dispositif 100 d’analyse de contenus vidéo comprend un module de contrôle dit « superviseur » permettant de définir de façon récurrente un taux de ressources utilisées au regard de l’ensemble des ressources disponibles du dispositif 100 d’analyse de contenus vidéo. Il est alors possible d’opérer une exécution conditionnée d’un processus d’analyse de contenus vidéo selon que ledit taux excède ou non une valeur seuil prédéterminée. Par exemple, la valeur seuil prédéterminée peut être comprise entre 60% et 95% des ressources totales disponibles dans le dispositif 100 d’analyse, préférentiellement entre 80 et 90 % de ces ressources. Dans le cas où les ressources globales sont insuffisantes pour réaliser l’ensemble des détections programmées par un opérateur, en fonction d’autres paramètres du système de vidéosurveillance, tels que, par exemple, le nombre de dispositifs de capture d’images ou la résolution des images des contenus vidéo, le dispositif d’analyse 100 de contenus vidéo est configuré pour émettre une alerte à destination de l’opérateur, via le dispositif de contrôle d’analyse 110 ou encore via le dispositif de restitution de résultats d’analyse 112. Avantageusement, un module d’exécution d’un algorithme de traitement peut être mis en fonction conditionnellement selon un niveau d’utilisation des ressources disponibles, encore appelé « niveau de saturation » des ressources. Ainsi un traitement réalisé par un module d’exécution d’un algorithme peut être exécuté conditionnellement selon le niveau d’utilisation des ressources du dispositif 100 d’analyse. Selon un mode de réalisation, le parcours optimisé des données entre les différents modules d’analyse est implémenté en utilisant des fonctions de messagerie asynchrone pour applications distribuées ou concurrentes, préférentiellement selon un protocole d’un type dit ZeroMQ encore communément appelé ZMQ, un protocole d’un type MQTT ou un autre protocole équivalent. A cet effet, des transferts de données (encore appelées ici plus largement informations) sont opérés selon un protocole ZMQ, MQTT, ou selon un autre protocole équivalent entre des registres de sorties des modules d’exécution d’un algorithme de traitement et des registres de données de modules d’exécution d’un algorithme de traitement, dès que nécessaire, et selon, par exemple, un algorithme dit « du tourniquet (ou « round robin », en anglais). Selon un mode de réalisation, une caractéristique est définie pour chaque module de la bibliothèque de modules élémentaires, de sorte à pourvoir déterminer si un module est d’un type dit “à état” (« stateful », en anglais) ou d’un type dit “sans état” (« stateless », en anglais). Un module défini comme étant “à état” peut nécessiter l’utilisation d’informations issues ou représentatives d’un traitement antérieur, réalisé par ce même module, sur tout ou partie d’un ou plusieurs contenus vidéo ou d’informations représentatives d’un contenu vidéo. Un tel module comprend une mémoire interne capable d’enregistrer des informations représentatives d’un état du module à un instant donné. Cette mémoire peut, par exemple, être utilisée pour recréer une instance de ce module lors d’une reprise de traitement faisant suite à une erreur (encore appelée parfois « reprise sur erreur »). Une telle erreur peut être liée à une indisponibilité accidentelle d’une ressource matérielle ou logicielle, par exemple suite à une panne, un « bug », ou une interruption d’une connexion réseau. A titre d’exemple, un module effectuant le suivi d’un objet « voiture » dans plusieurs images successives d’un contenu vidéo peut requérir des positions précédentes de plusieurs objets « voiture » dans des images précédentes issues du même contenu vidéo pour associer ensuite des positions d’objets « voiture » dans une nouvelle image à des objets de type « voiture » suivis par le système dans des images précédemment traitées. A contrario un module défini comme étant de type “sans état”, ne se base que sur des données d’entrée qui lui sont présentées et qui sont par exemple relatives à tout ou partie d’un ou plusieurs contenus vidéo ou des informations représentatives d’un contenu vidéo. A titre d’exemple, un module effectuant une détection d’objets de type « voiture » dans une image peut avoir besoin uniquement d’un contenu vidéo correspondant à cette image mais pas d’un contenu vidéo correspondant à des images précédentes. Selon un mode de réalisation, un parcours optimisé d’informations entre les différents modules d’exécution est calculé par le module de contrôle, dit « superviseur » de sorte à minimiser le nombre des modules d’exécution requis pour opérer des détections d’éléments parmi une liste des objets et/ou événements à détecter sur tout ou partie d’un ou plusieurs contenus vidéo ou des informations représentatives d’un contenu vidéo. Selon ce mode de réalisation, le module de contrôle dit superviseur détermine, pour ce faire, une suite d’opérations de traitements d’images à effectuer et des paramètres de configuration respectifs pour opérer des détections d’éléments parmi la liste des objets et/ou événements à détecter. Le superviseur détermine également une suite des types de modules, chacun identifié comme étant “à état” ou “sans état” et auquel est associé un coefficient Xi tel que précédemment décrit et exprimant une capacité de traitement associée à ce module, nécessaire pour réaliser des opérations de traitements d’images. Le superviseur définit également l’utilisation courante des capacités de traitement de l’ensemble des modules présents dans le dispositif 100 d’analyse de contenus vidéo. Le superviseur peut déterminer alors la liste des modules d’exécution identifiés comme étant “à état” existant et qui ont suffisamment de capacité de traitement disponible pour effectuer tous les traitements d’un type donné sur un ou plusieurs contenus vidéos ou sur des informations représentatives d’un contenu vidéo. Le superviseur sélectionne ensuite, pour chaque contenu vidéo à traiter ou chaque groupe d’informations représentatives d’un contenu vidéo à traiter, le module d’exécution qui effectue le traitement parmi une liste des modules d’exécution disponibles grâce à un algorithme dit “du tourniquet”. Il est à noter qu’un contenu vidéo décomposé en plusieurs sous-flux et traités dans plusieurs modules lors d’un traitement précédent doit être fusionné en un flux unique et réordonné pour être traité par un module défini comme étant “à état”. Une distribution de tâches de détection selon l’algorithme du tourniquet revient à distribuer une première tâche (détection) à traiter à un premier module d’exécution dans une liste de modules d’exécution disponibles, puis une seconde tâche à traiter à un deuxième module d’exécution dans cette liste, et ainsi de suite. Le superviseur gère une ou plusieurs tables d’allocation mises à jour dynamiquement dans une mémoire de travail dédiée, qui lui est préférentiellement interne ou rapide d’accès. Les tables d’allocation permettent de faire le lien entre les tâches à opérer et les modules d’exécution en charge de les réaliser. En particulier, lorsque de nouvelles tâches de détection sont à réaliser, la ou les tables d’allocation sont actualisées en conséquence. D’une manière similaire, le superviseur détermine une liste des modules d’exécution existants définis comme étant “sans état” et qui peuvent effectuer tous les traitements d’un type donné appliqués à un ou plusieurs contenus vidéo ou à des informations représentatives d’un contenu vidéo. Le superviseur répartit les flux entrants, pour un type de module, entre chaque module d'exécution de manière équitable et de sorte que l'utilisation de la capacité de traitement soit la mieux répartie entre les modules de ce type, afin que chaque module ait le moins de traitement à effectuer. Un contenu vidéo peut être divisé en plusieurs flux, répartis entre plusieurs modules de traitement, les opérations à effectuer dans un module d’exécution défini comme étant “sans état” étant temporellement indépendantes. Dans un mode de réalisation logiciel, si la liste de modules d’exécution disponibles définis comme étant “à état” ne contient pas suffisamment de modules pour opérer des détections d’éléments parmi une liste des objets et/ou événements à détecter dans tout ou partie d’un ou plusieurs contenus vidéo ou dans des informations représentatives d’un contenu vidéo, alors le superviseur instancie un ou plusieurs nouveaux modules dans la limite des ressources totales du dispositif 100 d’analyse de contenus vidéo. Le superviseur ajoute alors ce nouveau module (cette nouvelle instance de module) à la liste des modules disponibles pour ensuite déterminer, pour chaque opération, le ou les modules d’exécution sélectionnés par l'algorithme du tourniquet pour traiter un ou plusieurs contenus vidéo ou des informations représentatives d’un tel contenu. D’une manière similaire, si la liste de modules d’exécution disponibles définis comme étant “sans état” ne contient pas assez de modules de traitement pour opérer des détections d’éléments parmi une liste des objets et/ou événements à détecter dans tout ou partie d’un ou plusieurs contenus vidéo ou dans des informations représentatives d’un contenu vidéo, alors le superviseur instancie un ou plusieurs nouveaux modules dans la limite des ressources totales du dispositif 100 d’analyse de contenus vidéo. Par exemple, pour une détection d’un évènement de type « stationnement d’un vélo », un contenu vidéo peut être analysé par une séquence de modules d'exécution comprenant un ou plusieurs modules dits “sans état” de détection d’un objet « vélo » dans une image, un ou plusieurs modules dits “à état” de suivi d’un objet « vélo » dans une suite d’images consécutives d’un contenu vidéo et un ou plusieurs modules dits “à état” de moteur de règles de stationnement. Dans cet exemple, le contenu vidéo pourra être réparti entre différents modules dits “sans état” de détection d’un objet « vélo » pour accélérer le traitement et sera rassemblé et ordonné en un seul flux pour être ensuite traité dans un module dit “à état” de suivi de vélo et dans un module dit “à état” de moteur de règles de stationnement. Un moteur de règles est défini comme un ensemble de règles dites « métier », c’est-à-dire définies à un niveau applicatif. Par exemple, un moteur de règles peut définir qu’un incident (par exemple une infraction) de circulation a lieu si un véhicule se déplace selon une direction opposée au seul sens de circulation autorisé sur une voie de circulation prévue pour ce véhicule, ou encore qu’un véhicule à moteur se déplace sur une voie réservée à la circulation de véhicules sans moteur. Selon un mode de réalisation, la détermination d’une liste de ressources nécessaires à des traitements donnés, et la décomposition en une pluralité de ressources nécessaires à l’exécution d’un algorithme de traitement, utilise un système d’indices représentatifs d’une capacité de traitement cible, inférieure ou égale à la capacité de traitement exprimée par le coefficient Xi, pour chacun des modules d’exécution d’un algorithme tel que défini dans la bibliothèque de modules élémentaires d’exécution d’un algorithme de traitement. Ainsi, un coefficient Yi exprimé en unités de capacité de traitement cible est associé à chaque module élémentaire (indicé i) d’exécution d’un algorithme tel que défini dans la bibliothèque de modules élémentaires d’exécution d’un algorithme du dispositif 100 d’analyse de contenus vidéo. Le superviseur, lors d’une modification de la liste des objets et/ou événements à détecter, ou encore à intervalles réguliers, détermine l’usage réel (courant) des capacités de traitement de chaque module d’exécution, et instancie alors un ou plusieurs nouveaux modules dans la limite des ressources totales du dispositif 100 d’analyse de contenus vidéo, si la consommation d’un module atteint le coefficient Yi. Ce mécanisme permet avantageusement d’anticiper les besoins du dispositif 100 d’analyse de contenus vidéo pour réduire le risque d'interruption temporaire de traitement d’un contenu vidéo ou de traitement d’informations représentatives d’un contenu vidéo, le temps de l’instanciation de nouveaux modules de traitement, en cas d’augmentation des besoins en capacité de traitement. En effet, la mise en œuvre d’une nouvelle instance d’un module d’exécution peut, selon le type de module, requérir un délai de plusieurs secondes. La est un ordinogramme illustrant un procédé d’analyse de contenus vidéo exécuté dans un dispositif d’analyse de contenus vidéo selon un mode de réalisation. Le procédé comprend une étape initiale S0 au terme de laquelle l’ensemble des éléments du système 10 de vidéosurveillance est initialisé et est à même d’opérer de façon nominale. En particulier, au terme de l’étape S0, un opérateur du système de vidéosurveillance 10 peut configurer le système au moyen au moins du dispositif de contrôle d’analyse 110 en choisissant un ou plusieurs objets et/ou un ou plusieurs évènements à détecter, parmi un ensemble d’objets ou d’évènements prédéfinis, dans les contenus vidéo portés par les flux vidéo en provenance des dispositifs de capture d’images 102, 104, 106 et 108, de sorte à déterminer une liste d’objets et/ou d’évènements à détecter via le système de vidéosurveillance 10. Le terme « liste d’objets et/ou d’évènements » est à interpréter ici largement, et une telle liste d’objets et/ou d’évènements peut comprendre un seul élément, de type objet, ou encore un seul élément de type évènement, au sens applicatif du terme « évènement », puisqu’il a été expliqué précédemment qu’un évènement se rapporte à au moins un objet considéré en relation avec le temps. Ainsi, par exemple, un opérateur peut sélectionner lors d’une étape S1, en utilisant, par exemple, une interface utilisateur mise à disposition par le dispositif de contrôle d’analyse 110, un ou plusieurs objets à détecter, et/ou un ou plusieurs évènements à détecter, en indiquant pour chacun des objets et pour chacun des évènements, le cas échéant, dans lequel ou lesquels des contenus vidéo l’objet ou l’évènement doit être détecté. Par exemple, un opérateur peut programmer une détection d’un franchissement d’un feu rouge de circulation, par un véhicule terrestre, dans un contenu vidéo en provenance du dispositif de capture d’images 106, au cours de la nuit, ou encore quel que soit le moment de la journée. Selon un autre exemple, un opérateur peut programmer la détection d’un stationnement sur une place de stationnement réservée, par un véhicule non autorisé, dans un contenu vidéo délivré à partir du dispositif de capture d’images 106. Selon un autre exemple encore, un opérateur peut programmer une détection d’un maraudeur aux abords d’un local contenant des marchandises sensibles. Ainsi, au terme de l’étape S1, il a été déterminé une liste d’objets et/ou d’évènements à détecter à partir de tout ou partie des contenus vidéo. Cette détermination d’une liste peut être aussi bien une création d’une liste, partant d’une liste vide, ou encore une actualisation d’une liste à la suite d’une adjonction ou à la suite d’un retrait de la liste existante d’éléments à détecter. Lors d’une étape S2, le dispositif 100 de contenus vidéo détermine, à partir des critères et/ou de paramètres connus, un nombre de ressources nécessaires pour opérer les détections à réaliser, programmées lors de l’étape précédente S1. Le dispositif 100 considère notamment la capacité de traitement de chacun des modules d’exécution élémentaires d’algorithme de traitement au regard des caractéristiques des flux vidéo transmis et des contenus vidéo qui sont contenus dans les flux vidéo. Par exemple, un module de détection configuré pour la détection d’un objet dans un contenu vidéo comprenant 30 images par seconde peut opérer une détection d’objet sur n contenus vidéo dans un intervalle de temps donné, compte tenu de sa capacité de traitement ( n étant un entier positif). Les modules d’exécution requis sont sélectionnés dans une bibliothèque de modules d’exécution, encore appelés parfois « processeur » ou « processeur de traitement ». Des caractéristiques de traitement propres à chacun des modules élémentaires d’exécution sont connues de sorte à pouvoir définir et considérer un indice X de capacité de traitement pour chacun des modules d’exécution. Par exemple, un indice X 1 de capacité de traitement peut être déterminé pour un module élémentaire d’exécution d’un algorithme de traitement opérant sur un contenu vidéo comprenant 30 images par seconde et un autre indice X 2 de capacité de traitement peut être déterminé pour un même module élémentaire d’exécution opérant sur un contenu vidéo comprenant 50 images par seconde. Ainsi, eu égard à la capacité de traitement de chacun des modules élémentaires d’exécution d’un algorithme de traitement, opérant sur un contenu vidéo dont des caractéristiques sont connues et éventuellement en considérant en outre des contraintes « temps-réel » de besoins d’exécution, il est possible de déterminer un nombre de ressources élémentaires, qui correspond de surcroît à des ressources matérielles et/ou logicielles du dispositif 100 d’analyse de contenus vidéo. Lors d’une étape S3, les ressources nécessaires sont décomposées en modules élémentaires compte-tenu des opérations de détection à réaliser, par exemple, selon le nombre d’objets à détecter et le nombre d’évènements à détecter, ainsi que selon la nature des objets et/ou des évènements à détecter. Les modules d’exécution de traitement peuvent être utilisés selon un assemblage propre aux objets et/ou évènements à détecter et aux modules élémentaires définis dans la bibliothèque. Ainsi, une détection d’un évènement de type « incendie dans un véhicule » peut être décomposé en une détection d’un véhicule, une détection d’un incendie, et un mouvement similaire des objets « véhicule » et « incendie » détectés dans le temps. Un module élémentaire de détection d’objet peut donc être utilisé pour détecter un véhicule dans une image, lorsque les données en entrée de ce module lui indiquent que l’objet à détecter est un véhicule, puis le même module élémentaire (matériel, ou encore une même instance logicielle de ce module) peut être utilisé pour détecter un objet incendie dans la même image que celle où il a détecté un objet véhicule, et enfin un autre module élémentaire d’exécution de traitement prévu pour détecter une similarité de déplacement peut être utilisé pour détecter que l’objet véhicule et l’objet incendie se déplacent de la même façon, soit en d’autres termes sensiblement aux mêmes endroits dans l’espace, et en même temps. Selon l’exemple décrit ci-avant, deux modules élémentaires d’exécution d’un algorithme de traitement sont à utiliser. L’un est un module d’exécution d’un algorithme de détection d’un objet, l’autre est un module d’exécution d’un algorithme de détection de proximité dans le temps. Bien évidemment, de nombreux modules d’exécution peuvent être définis et combinés, y compris hiérarchiquement, de sorte qu’un module d’exécution puisse utiliser une pluralité de modules d’un niveau « inférieur » combinés entre eux. En procédant de la sorte, des modules d’exécution d’un algorithme de traitement utilisent des données, ou plus généralement des informations, résultant d’un résultat de traitement d’un ou plusieurs autres modules d’exécution ayant opéré un traitement préalable. Avantageusement et selon un mode de réalisation, les données, encore appelées ici informations, sont transmises depuis et vers les modules d’exécution nécessaires à opérer des détections programmées en utilisant un système de messagerie asynchrone pour applications distribuées ou concurrentes. Selon un mode de réalisation, le système de messagerie opère selon un protocole de type dit ZeroMQ ou selon un protocole de type dit MQTT. Des variantes peuvent bien évidemment être utilisées en faisant appel à d’autres protocoles similaires ou équivalents. Astucieusement, lors d’une étape S4, un parcours optimisé des informations est calculé (ou déterminé) de sorte à optimiser le nombre de ressources nécessaires et à n’adresser qu’un nombre le plus réduit possible de ressources matérielles ou à n’exécuter qu’un nombre le plus réduit possible d’instances logicielles d’un module d’exécution d’un algorithme de traitement, le cas échéant, pour répondre aux besoins de détection programmée des objets et/ou évènements identifiés et configurés lors de l’étape S1. Avantageusement, un algorithme du type dit « du tourniquet » (« round robin », en anglais) appliqué aux différents modules d’exécution requis et aux différentes informations devant transiter entre ces modules permet d’optimiser le nombre de ressources et d’éviter ou de limiter au maximum, en conséquence, le risque de ne pas détecter un élément recherché dans un contenu vidéo d’un flux vidéo. La illustre schématiquement un exemple d’architecture interne du dispositif 100 d’analyse de contenus vidéo. L’architecture représentée peut également représenter l’architecture interne du dispositif de contrôle d’analyse 110, du dispositif de restitution de résultats d’analyse 112, du dispositif de stockage de résultats d’analyse 114, ou encore de l’un quelconque des dispositifs de capture d’images (caméra) 102, 104, 106 et 108. Selon l’exemple d’architecture matérielle représenté à la , le dispositif 100 d’analyse de contenus vidéo comprend alors, reliés par un bus de communication 1000 : un processeur ou CPU (« Central Processing Unit » en anglais) 1001 comprenant des unités de traitement graphique dites GPU ; une mémoire vive RAM (« Random Access Memory » en anglais) 1002 ; une mémoire morte ROM (« Read Only Memory » en anglais) 1003 ; une unité de stockage telle qu’un disque dur (ou un lecteur de support de stockage, tel qu’un lecteur de cartes SD (« Secure Digital » en anglais) 1004 ; au moins une interface de communication 1005 permettant au dispositif 100 d’analyse de contenus vidéo de communiquer avec des dispositifs tiers tels que les dispositifs de capture d’images 102, 104, 106 et 108, ou encore les dispositifs de contrôle d’analyse 110 ou de restitution de résultats d’analyse 112. Le processeur 1001 est capable d’exécuter des instructions chargées dans la RAM 1002 à partir de la ROM 1003, d’une mémoire externe (non représentée), d’un support de stockage (tel qu’une carte SD), ou d’un réseau de communication. Lorsque le dispositif 100 d’analyse de contenus vidéo est mis sous tension, le processeur 1001 est capable de lire depuis la RAM 1002 des instructions, et de les exécuter. Ces instructions forment un programme d’ordinateur causant la mise en œuvre, par le processeur 1001, de tout ou partie d’un procédé décrit en relation avec la . Tout ou partie du procédé implémenté dans le dispositif 100 d’analyse de contenus vidéo, ou ses variantes décrites peut être implémenté sous forme logicielle par l’exécution d’un ensemble d’instructions par une machine programmable, par exemple un DSP (« Digital Signal Processor » en anglais) ou un microcontrôleur, ou être implémenté sous forme matérielle par une machine ou un composant dédié, par exemple un FPGA (« Field-Programmable Gate Array » en anglais) ou un ASIC (« Application-Specific Integrated Circuit » en anglais). En général, le dispositif 100 d’analyse de contenus vidéo comprend de la circuiterie électronique configurée pour mettre en œuvre les procédés décrits en relation avec lui-même ainsi qu’avec des équipements tiers distants, et qu’avec tout autre dispositif impliqué dans l’exécution du procédé d’analyse de contenus vidéo décrit, visant à opérer une ou plusieurs détections d’objets et/ou d’évènements dans des contenus vidéo en provenance des dispositifs de capture d’images 102, 104, 106 et 108. Bien évidemment, le dispositif 100 d’analyse de contenus vidéo comprend en outre tous les éléments usuellement présents dans un système comprenant une unité de contrôle et ses périphériques, tels que, un circuit d’alimentation, un circuit de supervision d’alimentation, un ou plusieurs circuits d’horloge, un circuit de remise à zéro, des ports d’entrées-sorties, des entrées d’interruptions, des drivers de bus. Cette liste étant non exhaustive. Chacun au moins des modules du dispositif 100 d’analyse parmi l’énumération suivante : - module configuré pour déterminer une liste d’objets et/ou d’évènements à détecter dans un ou plusieurs contenus vidéo, - module configuré pour déterminer une liste de ressources nécessaires à la détection des objets et/ou évènements à détecter, - module configuré pour décomposer les ressources en une pluralité de modules d’exécution d’un algorithme de traitement, - module configuré pour déterminer automatiquement un parcours optimisé d’informations entre les différents modules d’exécution d’un algorithme de traitement, peut être considéré comme un circuit électronique ou une unité de contrôle opérant des fonctions de gestionnaire ou superviseur d’informations et de données d’entrées comprenant des registres de données d’entrée et de sortie, des mémoires, et des capacités de traitement de ces données, de façon autonome ou combinée avec des ressources connexes. Chacun de ces modules peut être composé d’éléments matériels et logiciels dans des proportions différentes d’un module à l’autre. Le terme module n’est pas limitatif est peut être traduit plus largement par processeur, circuit, unité de contrôle, unité de gestion, ou tout autre synonyme bien connu de l’homme du métier en traitement de l’information et du signal ou dans le domaine de la vision par ordinateur. Les modules précités peuvent utiliser des ressources communes entre eux. L’invention ne se limite pas aux seuls modes de réalisation décrits mais concerne plus généralement tout procédé d’analyse de contenus vidéo, exécuté dans un dispositif d’analyse de contenus vidéo, comprenant une détermination d’une liste d’objets et/ou d’évènements à détecter dans un ou plusieurs contenus vidéo, une détermination d’une liste de ressources nécessaires à la détection des objets et/ou évènements à détecter, à partir de la liste déterminée, puis une décomposition desdites ressources nécessaires en une pluralité de modules d’exécution d’un algorithme de traitement où chacun desdits modules d’exécution est configuré pour traiter tout ou partie d’une ou plusieurs images extraites de l’un des contenus vidéo, ou encore pour traiter des informations représentatives d’un contenu vidéo, obtenues à partir d’une ou plusieurs des images, et l’un au moins des modules d’exécution est configuré pour délivrer une information représentative d’un résultat d’une détection à opérer, et, un calcul automatique d’un parcours optimisé d’informations entre les modules d’exécution précités, visant à minimiser le nombre des modules d’exécution requis pour opérer des détections d’éléments parmi la liste déterminée des objets et/ou évènements à détecter. L’invention concerne aussi plus généralement tout dispositif configuré pour implémenter et exécuter un tel procédé. Procédé d’analyse de contenus vidéo, exécuté dans un dispositif d’analyse de contenus vidéo, le procédé comprenant : déterminer (S1) une liste d’objets et/ou d’évènements à détecter dans un ou plusieurs contenus vidéo, déterminer (S2) une liste de ressources nécessaires à la détection desdits objets et/ou évènements à détecter, décomposer (S3) lesdites ressources en une pluralité de modules d’exécution d’un algorithme de traitement, chacun desdits modules étant configuré pour traiter tout ou partie d’une ou plusieurs images extraites de l’un desdits contenus vidéo, ou des informations représentatives d’un contenu vidéo, obtenues à partir d’une ou plusieurs desdites images, et l’un au moins desdits modules d’exécution étant configuré pour délivrer une information représentative d’un résultat d’une détection à opérer, ledit procédé étant caractérisé en ce qu’il comprend en outre : déterminer automatiquement (S4) un parcours optimisé d’informations entre lesdits modules d’exécution de sorte à minimiser le nombre desdits modules d’exécution requis pour opérer des détections d’éléments parmi ladite liste des objets et/ou évènements à détecter. Procédé d’analyse de contenus vidéo selon la revendication 1, dans lequel les étapes (S2, S3) pour déterminer (S2) une liste de ressources nécessaires et pour décomposer (S3) lesdites ressources en une pluralité de modules d’exécution d’un algorithme de traitement comprennent la détermination ou la considération d’un indice représentatif d’une capacité de traitement de chacun desdits modules d’exécution. Procédé d’analyse de contenus vidéo selon l’une des revendications 1 et 2, dans lequel est en outre comprise une étape de détermination d’un taux de ressources utilisées au regard de l’ensemble des ressources disponibles dudit dispositif d’analyse de contenus vidéo et une étape d’exécution conditionnée d’un processus d’analyse de contenus vidéo selon que ledit taux excède ou non une valeur seuil prédéterminée. Procédé d’analyse de contenus vidéo selon l’une quelconque des revendications 1 à 3, dans lequel ledit parcours optimisé de données est implémenté grâce à des fonctions de messagerie asynchrone pour applications distribuées ou concurrentes, préférentiellement selon un protocole d’un type dit ZeroMQ ou MQTT. Dispositif d’analyse de contenus vidéo comprenant des circuits électroniques parmi lesquels : un module configuré pour déterminer (S1) une liste d’objets et/ou d’évènements à détecter dans un ou plusieurs contenus vidéo, un module configuré pour déterminer 5S2) une liste de ressources nécessaires à la détection desdits objets et/ou évènements à détecter, un module configuré pour décomposer (S3) lesdites ressources en une pluralité de modules d’exécution d’un algorithme de traitement, chacun desdits modules étant configuré pour traiter tout ou partie d’une ou plusieurs images extraites de l’un desdits contenus vidéo, ou des informations représentatives d’un contenu vidéo obtenues à partir d’une ou plusieurs desdites images et l’un au moins desdits modules d’exécution étant configuré pour délivrer une information représentative d’un résultat d’une détection à opérer, ledit dispositif d’analyse étant caractérisé en ce qu’il comprend en outre : un module configuré pour déterminer automatiquement (S4) un parcours optimisé d’informations entre lesdits modules d’exécution d’un algorithme, de sorte à minimiser le nombre desdits modules d’exécution requis pour opérer des détections d’éléments parmi ladite liste des objets et/ou évènements à détecter. Système de vidéosurveillance comprenant un ou plusieurs modules d’analyse de contenus vidéo selon la revendication précédente. Produit programme d’ordinateur caractérisé en ce qu’il comprend des instructions de codes de programme pour exécuter les étapes du procédé selon l’une quelconque des revendications 1 à 4, lorsque ledit programme est exécuté par un processeur. Support de stockage d’informations comprenant un produit programme d’ordinateur selon la revendication précédente.