FR3126166A1 - METHOD FOR ANALYZING VIDEO CONTENT AND DEVICE EXECUTING THE METHOD. - Google Patents

METHOD FOR ANALYZING VIDEO CONTENT AND DEVICE EXECUTING THE METHOD. Download PDF

Info

Publication number
FR3126166A1
FR3126166A1 FR2108638A FR2108638A FR3126166A1 FR 3126166 A1 FR3126166 A1 FR 3126166A1 FR 2108638 A FR2108638 A FR 2108638A FR 2108638 A FR2108638 A FR 2108638A FR 3126166 A1 FR3126166 A1 FR 3126166A1
Authority
FR
France
Prior art keywords
video content
modules
video
objects
list
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
FR2108638A
Other languages
French (fr)
Inventor
Anand BADRINATH
David DE CASTILLA
Alexandre Perez
Quoc Cuong LE
Amine BENTERKIA
Amine DERRAGUI
Souheil HANOUNE
Antoine MARCHETTI
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Xxii Group
Original Assignee
Xxii Group
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Xxii Group filed Critical Xxii Group
Priority to FR2108638A priority Critical patent/FR3126166A1/en
Publication of FR3126166A1 publication Critical patent/FR3126166A1/en
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5061Partitioning or combining of resources
    • G06F9/5066Algorithms for mapping a plurality of inter-dependent sub-tasks onto a plurality of physical CPUs

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

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. 2The invention relates to a method for analyzing video content comprising a determination (S1) of a list of objects and/or events to be detected in one or more video contents, a determination (S2) of a list of resources necessary for the detection of said objects and/or events to be detected, a breakdown (S3) of the resources necessary into a plurality of execution modules of a processing algorithm, and an automatic calculation (S4) of an optimized route of information between said execution modules, so as to minimize the number of said execution modules required to operate detections of elements among said list of objects and/or events to be detected. The invention also relates to a video content analysis device configured to perform the method. Figure to be published with abstract: Fig. 2

Description

PROCEDE D’ANALYSE DE CONTENUS VIDEO ET DISPOSITIF EXECUTANT LE PROCEDE.VIDEO CONTENT ANALYSIS METHOD AND DEVICE EXECUTING THE METHOD.

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.The present invention relates to the field of video stream analysis. The invention relates more particularly to the allocation of hardware and/or software resources necessary for object detection operations or event detection in video content, from video streams.

ETAT DE LA TECHNIQUE ANTERIEURESTATE OF THE PRIOR ART

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.Video stream analysis systems make it possible to carry out automatic detection of objects or events, in real time or even in a deferred manner, from video streams generated by image capture devices such as, for example, CCTV cameras. Such systems are particularly frequent and useful in urban areas to ensure, for example, the proper use of road traffic infrastructures, the proper application of vehicle parking rules, the safety of goods and people, etc. The applications of video surveillance are numerous and varied, and the examples above are not limiting. Thus, video surveillance systems are commonly used for parking management, to encourage respect for traffic lights and respect for the direction of traffic, for securing pedestrian paths or railway tracks, but also to ensure the safety of people. in places where traffic is very high, such as, for example, train stations, airports, or shopping malls. Such systems are also appreciated for their contribution to traffic management, crowd management, and more broadly for their ability to help predict and plan urban development or changes in urban infrastructure. The success of these automated shooting and analysis systems, combined with the ease of use offered by the distribution of "turnkey" applications, is such that the need for the number of shooting devices is always croissants. The requirements for hardware and software resources implemented for the automated analysis of the video streams produced have increased accordingly. These systems are complex and expensive and there is a need to optimize the allocation of hardware and/or software resources necessary for analysis operations for predetermined or evolving needs. The situation can therefore be improved.

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.The object of the invention is to propose a method for allocating useful resources to video content analysis operations aimed at guaranteeing that the detections to be made can be carried out, or in other words that no saturation as to the The use of resources cannot harm proper detection of an object or an event from one or more video contents.

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 :To this end, a video content analysis method is proposed, executed in a video content analysis device, comprising:

- déterminer une liste d’objets et/ou d’évènements à détecter dans un ou plusieurs contenus vidéo,- determine a list of objects and/or events to detect in one or more video contents,

- déterminer une liste de ressources nécessaires à la détection des objets et/ou évènements à détecter,- determine a list of resources necessary for the detection of the objects and/or events to be detected,

- 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,- breaking down the resources into a plurality of modules for executing a processing algorithm, each of the modules being configured to process all or part of one or more images extracted from one of the video contents, or information representative of a video content obtained from one or more of the images and at least one of the execution modules being configured to deliver information representative of a result of a detection to be operated, the method further comprising,

- 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.- automatically determine an optimized route of information between the runtime modules so as to minimize the number of runtime modules required to operate element detections among the list of objects and/or events to be detected.

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.Advantageously, the use of hardware and/or software resources is optimized to make it possible to operate a large number of detections while minimizing the risk of not detecting an object or an event sought in one or more video contents.

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.According to one embodiment of the invention, the steps of the method for determining a list of necessary resources and for breaking down the resources into a plurality of execution modules of a processing algorithm comprise the determination or the consideration of an index representative of a processing capacity of each of the execution modules.

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.Thus, the assignment (or in other words the distribution) to execution modules of a processing algorithm of the global resources to be used to operate the scheduled analyzes and detections is facilitated.

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.According to one embodiment, the method further comprises a step of determining a rate of resources used with regard to all the available resources of the video content analysis device and at least one step of executing a video content analysis process is conditioned on whether or not the rate of resources used exceeds a predetermined threshold value.

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.According to one embodiment of the invention, the predetermined threshold value is between 80 and 90% of the total resources available in the video content analysis device.

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).According to one embodiment of the invention, the optimized data path is implemented thanks to asynchronous messaging functions for distributed or concurrent applications, preferably according to a protocol of a so-called ZeroMQ type or a protocol of an MQTT type (defined according to the ISO/IEC 20922:2016 standard or one of its evolutions).

L’invention concerne également un dispositif d’analyse de contenus vidéo comprenant un ensemble de circuits électroniques configurés parmi lesquels :The invention also relates to a video content analysis device comprising a set of electronic circuits configured among which:

- un module configuré pour déterminer une liste d’objets et/ou d’évènements à détecter dans un ou plusieurs contenus vidéo,- a module configured to determine a list of objects and/or events to detect in one or more video contents,

- un module configuré pour déterminer une liste de ressources nécessaires à la détection des objets et/ou évènements à détecter,- a module configured to determine a list of resources necessary for the detection of objects and/or events to be detected,

- 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 :- a module configured to break down the resources into a plurality of modules for executing a processing algorithm, each of the modules being configured to process all or part of one or more images extracted from one of the video contents, or information representative of a video content obtained from one or more of the images and at least one of the execution modules being configured to deliver information representative of a result of a detection to be operated, the device for analysis of video content further comprising:

- 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.- a module configured to automatically determine an optimized path of information between the execution modules of an algorithm, so as to minimize the number of execution modules required to operate detections of elements among the list of objects and/ or events to detect.

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.The invention also relates to a video surveillance system comprising one or more video content analysis devices such as the video content analysis device described above.

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.Finally, the subject of the invention is a computer program product comprising program code instructions for executing the steps of the aforementioned method, when the program is executed by a processor, as well as a storage device comprising such a program product of computer.

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 :The characteristics of the invention mentioned above, as well as others, will appear more clearly on reading the following description of at least one embodiment, said description being made in relation to the attached drawings, among which:

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 ; schematically illustrates a video surveillance system comprising a video content analysis device executing a video content analysis method according to one embodiment;

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 ; is a flowchart representing a video content analysis method according to one embodiment, executed in the video surveillance system already illustrated in the ;

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 . is a diagram representing the architecture of the video content analysis device represented on the and configured to perform a method described in .

EXPOSE DETAILLE DE MODES DE REALISATIONDETAILED DESCRIPTION OF EMBODIMENTS

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.There schematically illustrates a video surveillance system 10 comprising a device 100 for analyzing video content. The video content analysis device 100 is configured to operate a detection of predefined objects and/or events from video content delivered by image capture devices 102, 104, 106 and 108. The image capture 102, 104, 106 and 108 are respectively connected to the video content analysis device 100 via communication buses 103, 105, 107 and 109. According to one embodiment, the image capture devices images 102, 104, 106 and 108 are so-called "IP camera" cameras configured to be remotely controlled and to each deliver one or more video contents from a shooting device in the form of a video stream digital. The terms "digital video stream" here designate a succession of identifiable information having a link between them and being representative of one or more video contents (for example one or more films or video sequences) and whose processing (decoding) allows a restitution of one or more video contents. More broadly, a video stream can also comprise an audio stream encoding a sound environment around a camera. In this case, the video stream is more precisely an audio/video or audiovisual stream. Thus, each of the communication buses 103, 105, 107 and 109 comprises communication lines useful for transporting video streams and communication lines useful for configuration operations of the image capture device to which it is connected. The communication lines useful for transporting video streams can also be used to transport data related to the video streams, such as, for example, camera identifiers, camera movement control data, video stream timestamp. The camera movement control data make it possible, for example, to control a rotating camera in order to modify or adjust its field of vision. According to one embodiment, the communication lines provided for the transport of video content coming from an image capture device are also provided for the configuration of the image capture devices. According to this embodiment, a communication bus thus produced is bidirectional and a data transfer sequencing is carried out to interleave (or in other words to alternate) configuration operations of an image capture device and video content transport operations between the image capture device concerned and the video content analysis device 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 »).According to one embodiment, the video streams carrying the video content each use an application-level communication protocol of the RTSP type (from the acronym for “Real-Time Streaming Protocol” and which means “real-time streaming protocol”).

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.The terms “video content” designate here all the visible and identifiable elements in a video sequence generated by an image capture device among the image capture devices 102, 104, 106 and 108. According to the example described, a video sequence corresponds to a shooting plan or else, for example, to a shooting plan for a determined magnification factor (zoom level). Indeed, some of the processing applied to video content can interpret successive shooting shots when a rapid modification of the captured image occurs (for example a modification of a zoom level, or a modification by isometric or homothety, due to rotational or translational movements of a capture device). In other words, a video sequence is a series of images corresponding to the visual field of an image capture device, i.e. the total area of space perceived by the camera, possibly temporally delimited by a rapid modification of shooting characteristics, and therefore of the image as captured. Thus a video sequence comprises only one shot if an image capture device generating it is not deactivated, except possibly when this device is configured to operate a rapid modification of shooting characteristics, such as previously described, which then constitutes a transition between the end of a video sequence and the start of another video sequence, according to the various processing algorithms applied to the sequence.

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.The video surveillance system 10 further comprises, connected to the device 100 for analyzing video content, an analysis control device 110 and an analysis results restitution device 112. These two devices 110 and 112 are respectively connected to the device 100 for analyzing video content via bidirectional communication buses 111 and 113. The video surveillance system 10 further comprises a storage device 114 for analysis results which allows the recording of analysis results of video content produced by the device 100 for analyzing video content. The analysis results recorded in the storage device 114 are, for example, notifications linked to the detection of an object or an event, in the form of detection logs, images illustrating the detections made, or even combinations of notifications and one or more images illustrating the detections notified. The storage device 114 is connected to the device 100 for analyzing video content via a communication bus 115. According to one embodiment, the communication buses 111 and 113 are bidirectional communication buses and the communication 115 is a one-way or two-way communication bus. Each of the communication buses 103, 105, 107, 109, 111, 113 and 115 can be of the wired type or else of the wireless type depending on the configuration, and more particularly according to the topology of the video surveillance system 10, or, in other words, according to the geographical distance between the various elements described and which make up the video surveillance system 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.The analysis control device 110 is provided and configured to program detections to be operated by the video surveillance system 10 in the video content delivered to the video content analysis device 100 via the communication buses 103, 105, 107 and 109 , from information entered by a user, who is still commonly called the system operator. Thus, a user of the system can configure the video content analysis device 100 to program a detection of one or more objects and/or one or more events in one or more of the different video contents transmitted by the devices. image capture devices 102, 104, 106 and 108 connected to the video content analysis device 100. For example, an operator can program a detection of a pedestrian in a video content transmitted by the image capture device 102 Similarly, an operator of the analysis control device 110 can program a detection of an isolated piece of baggage in this same video content. These detections then correspond, according to these examples, to detections of objects. Similarly, it is possible to program a detection of an event related to one or more objects. It should be noted that a detection of an event includes here, by definition, the consideration of a temporality in addition to one or more facts (or states) relating to one or more objects. For example, the video surveillance system 10 is configured to allow the detection of luggage abandoned by a person, which constitutes an event related to objects that are the person and the luggage. This implies, for example, detection of a person (object) and baggage (object), initially traveling the same path in time and space, then being separated from each other. other. An event that characterizes the abandonment of luggage by a person can be broken down into an event of a person carrying luggage, followed by an event corresponding to the fact that this person physically separates from this luggage, then an event corresponding to an absence of recovery of this baggage by a person for a predetermined period.

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.The video content analysis control device 110 makes it possible to program detection of objects or events from among a predefined set of objects or events from one or more identifiable video contents.

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.More generally, the video surveillance system 10 makes it possible, thanks to the analysis control device 110, to detect a predefined object or a predefined event in a video content. A detection of an object is then, in other words, a detection of an element likely to be identified as such (as this object) thanks to the shapes and visual characteristics (texture, color, etc.) that it presents to an image capture device (a camera, for example) and therefore to a form that it presents in a video content. By way of non-limiting examples, such an object can be, for example, a face, a pedestrian, a car, a bus, a road sign, luggage, a hat, a pair of glasses, a bottle of milk, etc. A detection of an event is a detection of a fact relating to one or more objects in a video content, and which therefore includes a temporality. For example, an event thus defined can be an appearance of an object in a video content, a displacement of an object in a video content, a disappearance of an object in a video content, a relative displacement of an object by relative to another object, in video content (according to the example of luggage carried by a person, for example), a variation in the displacement of an object relative to another object in video content (approach, distance, etc. …). Thus, and in other words, non-limiting examples of events likely to be searched for and detected in video content are: appearance of luggage, disappearance of luggage, appearance of a pedestrian, disappearance of a pedestrian, transport of luggage by a pedestrian, deposit of luggage by a pedestrian, gripping of luggage by a pedestrian, immobility of luggage for a predetermined time, but also , according to other non-limiting examples, a car crossing a red light, a vehicle entering a one-way traffic street, against the flow of traffic, a collision between two vehicles, a football football crossing a sideline of a football stadium, a candidate talking to a third person during a school exam monitored by video surveillance, 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 (oucomputer 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.Advantageously, object detection operations in video content can be carried out using so-called computer vision techniques based on the use of neural networks trained from samples. images during a learning phase.

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.According to one embodiment, an object detection module comprises a software or hardware implementation of a deep artificial neural network or of the DCNN type (from the acronym “Deep Convolutional Neural Network”). Such a DCNN module can be made up of a set of many artificial neurons, of the convolutional type or of the perceptron type, and organized by successive layers connected to each other. Such a DCNN module is classically inspired by a simplistic model of the functioning of a human brain where many biological neurons are connected to each other by axons.

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.For example, a module called YOLOv4 (from the English acronym “You Only Look Once version 4”) is a DCNN-type module which makes it possible to operate object detection in images, and which is said to be “one-step” ( or even One-Stage), ie whose architecture is composed of a single module of combined proposals of rectangles framing objects (“bounding boxes”) and classes of objects in the image. In addition to the artificial neurons previously described, the YOLOv4 module uses functions known to those skilled in the art such as batch normalization (or “ batch normalization ”), regularization by cutting blocks of pixels (or “ dropblock regularization ”, weighted residual connections between layers (or “ weighted residual connections ”) or even a step of non-maximal suppression (or “ non-maximal suppression ” in English) which eliminates the redundant proposals of detected objects.

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.According to one embodiment, the object detection module has the possibility of predicting a list of objects present in one or more images of one or more video contents by providing, for each object, a rectangle framing the object under form of coordinates of points defining the rectangle in the image, the type or class of the object from among a predefined list of classes defined during a learning phase, and a detection score representing a degree of confidence in the detection thus operated.

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.The analysis results restitution device 112 is a device provided and configured to operate a restitution of the results of one or more analyzes carried out by the video surveillance system 10 by means of the analysis device 100 of video content. Thus the analysis results restitution device 112 is provided to notify an operator of the detection of objects and/or events corresponding to the objects and/or events sought in the video content. According to one embodiment, the analysis results restitution device 112 displays an alert message for each detection carried out and which corresponds to a detection of an object and/or an event as programmed via of the analysis control device 110. According to one embodiment, the restitution of an alert message can be visual, audible, or even visual and audible and allows an operator to obtain information related to a detection carried out. For example, a notification of a detection via the analysis results restitution device 112 can be a short line of information, displayed on a screen, and comprising a summary of detailed information which can be accessed by selecting the line. The brief summary may include, for example, the type of detection made (object or event), a title of the detection (for example, crossing a red light on an urban traffic lane), a date and one hour.

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.According to one embodiment, the video content analysis device 100 is configured to determine a list of objects and/or events to be detected in one or more video contents from information entered by an operator, via the analysis control device 110. For example, the video content analysis device 100 is configured to detect an "left luggage" type event in video content transmitted from the image capture device 102, which device image capture 102 is positioned in the lobby of an airport. According to another example, the video content analysis device is configured to detect an event of the “ball out of touch” type in a video content transmitted from the image capture device 103, which image capture device 103 is positioned in a sideline of a football stadium. The video content analysis device 100 is further configured to determine, from the list of objects and/or events to be detected, entered or updated by an operator, a list of resources necessary for the detection of these objects and/or events to be detected, then to break down the resources into a plurality of execution modules of a processing algorithm, considering that each of the execution modules of a processing algorithm is configured to process all or part of one or more images extracted from one of the video contents, or else is configured to process information representative of a video content obtained from one or more of the images. The execution modules of a processing algorithm are also called “processors”. At least one of the execution modules is configured to deliver information representative of a result of a detection to be operated. In other words, this amounts to saying that the system is configured to use resources in the form of elementary image processing modules which are advantageously allocated dynamically to make it possible to operate all of the successive image processing operations required for analyze the video content and detect the various objects and/or events to be detected. For example, an elementary module for executing an image processing algorithm can be a module for detecting the presence of an object in a given image, extracted from video content or pointed to in video content. More precisely, an example of such an elementary module for executing an algorithm can be a module for detecting the presence of an object in an image identified in a given video content. Such a module can be defined with input data which are, for example, an identifier of a timestamped image in video content (or a link to it), an identifier of an object to be searched for in this image and output data from this module are then an indicator of the presence of the object sought, the coordinates of a precise point (reference point) of the object in the image and the dimensions of a frame delimiting the object around the precise point of the object. A reference point is for example the center of the object or the center of a median or the bottom leftmost point of a frame bordering the object, 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.By way of example, an elementary module for executing object detection processing can be configured and used to detect the presence of an object of the "luggage" type in an image extracted from a video content originating of the image capture device 102, the image being time-stamped and captured at a specific date and time (for example July 12, 2021 at 12 h 16 min and 34 s), with a time-stamping precision of order of a second, for example.

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).According to a similar operation, this same object detection module can be used to detect the presence of a "pedestrian" type object in the same image or in another image, or even in another video content, at a moment temporally near or far from the search for baggage. In addition, an elementary algorithm execution module can be defined for the detection of an event related to two objects in the same image. For example, an elementary module for executing an event detection algorithm can be configured to detect an identical or almost identical displacement of two objects in the same image, the presence of which has already been detected by prior processing (and by an execution module of a different algorithm). Thus, such an elementary processing module can have as input data a link to an image, respective coordinates of reference points of each of the two previously detected objects, and a predefined time interval (for example, a start time and an analysis duration), and an output datum of this elementary module would then be an indicator of whether or not the displacements of the two objects match. Advantageously, the video content analysis device comprises a library of processing algorithm execution modules (also sometimes called processors) comprising numerous elementary algorithm execution modules using as input data all or part of 'an image extracted from a video content or even using as input data information representative of one or more elements contained in an image (for example, the coordinates of a reference point of a detected object, in a image, and the dimensions of a frame delimiting this object, with respect to the reference point).

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.Advantageously, the video content analysis device 100 is configured to automatically calculate or determine, from a list of detections to operate and from a list of elementary modules for executing an algorithm, an optimized route of information between the execution modules, so as to minimize the number of execution modules required to operate the detections of programmed elements among the list of objects and/or events to be detected.

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 nièmeinstance 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.A processing algorithm execution module can be implemented in software form or in hardware form. When it is implemented in software form, an execution module of an implemented processing algorithm can be a new instance of such an execution module, executed in a random access memory of the content analysis device 100 video, under the control of a control unit of the device 100 for analyzing video content. When it is implemented in hardware form, the execution module can be an nth instance of a determined module, implemented in a finite number of instances in a logic circuit, for example, of the video content analysis device 100, and configured to perform detection. Obviously, the resources are available in a finite number, whether due to the hardware architecture and/or the size of the RAM of the device 100, and it is therefore advisable to optimize their use so as not to risk an absence detection of an object or an event due to the temporary unavailability of a resource or to be able to increase the number of detections to be carried out with regard to a given architecture (and therefore a given number of resources ). This is why an automatic calculation, from a list of detections to operate and from a list of elementary modules for executing an algorithm, of an optimized path of information between the execution modules, of so as to minimize the number of execution modules required to operate detections of elements among the list of objects and/or events to be detected, makes it possible to optimize the allocation of resources and to limit as much as possible a risk of absence of detection in the presence of an object or an event to be detected in a video content.

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.According to one embodiment, the determination of a list of necessary resources and the decomposition into a plurality of execution modules of a processing algorithm uses a system of indices representative of a processing capacity for each of the modules of execution of an algorithm as defined in the library of elementary modules for the execution of a processing algorithm of the device 100 for analyzing video content. Thus a coefficient Xi expressed in processing capacity units is associated with each elementary module (indexed i) of execution of an algorithm as defined in the library of elementary modules of execution of an algorithm of the analysis device 100 video content. A coefficient Xi can also be expressed in units of capacity per unit of time. It should be noted that the resource requirements are not linear, i.e. the amount of resources required to detect ten events in a video content is not equal to ten times the amount of resources required to a single detection. In other words, the relationship between the resources needed to detect a number of objects or events in one or more video contents and this number of objects or events is not necessarily linear.

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.Advantageously, the device 100 for analyzing video content includes a so-called “supervisor” control module making it possible to define in a recurring manner a rate of resources used with regard to all the available resources of the device 100 for analyzing video content. It is then possible to operate a conditioned execution of a video content analysis process depending on whether or not said rate exceeds a predetermined threshold value. For example, the predetermined threshold value can be between 60% and 95% of the total resources available in the analysis device 100, preferably between 80 and 90% of these resources. In the event that the overall resources are insufficient to carry out all of the detections programmed by an operator, depending on other parameters of the video surveillance system, such as, for example, the number of image capture devices or the resolution video content images, the video content analysis device 100 is configured to send an alert to the operator, via the analysis control device 110 or via the analysis results restitution device 112 Advantageously, a module for executing a processing algorithm can be put into operation conditionally according to a level of use of the available resources, also called “saturation level” of the resources. Thus, a processing carried out by an algorithm execution module can be executed conditionally according to the level of use of the resources of the analysis device 100.

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).According to one embodiment, the optimized path of the data between the different analysis modules is implemented by using asynchronous messaging functions for distributed or concurrent applications, preferably according to a protocol of a type called ZeroMQ also commonly called ZMQ, a protocol of an MQTT type or another equivalent protocol. For this purpose, data transfers (also called here more broadly information) are operated according to a ZMQ, MQTT protocol, or according to another equivalent protocol between output registers of the execution modules of a processing algorithm and registers of data from execution modules of a processing algorithm, as soon as necessary, and according to, for example, a so-called “ round robin ” algorithm.

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).According to one embodiment, a characteristic is defined for each module of the library of elementary modules, so as to be able to determine whether a module is of a so-called “ stateful ” type or of a type called “ stateless ”.

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 module defined as being “stateful” may require the use of information from or representative of previous processing, carried out by this same module, on all or part of one or more video contents or information representative of video content. Such a module comprises an internal memory capable of recording information representative of a state of the module at a given instant. This memory can, for example, be used to recreate an instance of this module when processing is resumed following an error (sometimes called “error recovery”). Such an error may be linked to the accidental unavailability of a hardware or software resource, for example following a breakdown, a "bug", or an interruption of a network connection. By way of example, a module tracking a "car" object in several successive images of video content can request previous positions of several "car" objects in previous images from the same video content in order to then associate from positions of “car” objects in a new image to “car” type objects tracked by the system in previously processed images.

A contrarioun 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. Conversely, a module defined as being of the “stateless” type is only based on input data presented to it and which relate, for example, to all or part of one or more video contents or information representative of video content. By way of example, a module performing a detection of “car” type objects in an image may need only video content corresponding to this image but not video content corresponding to previous images.

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.According to one embodiment, an optimized path of information between the different execution modules is calculated by the control module, called "supervisor" so as to minimize the number of execution modules required to operate element detections from a list of objects and/or events to be detected on all or part of one or more video contents or information representative of a video content.

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.According to this embodiment, the so-called supervisor control module determines, to do this, a sequence of image processing operations to be carried out and respective configuration parameters to operate detections of elements among the list of objects and/or or events to detect.

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.The supervisor also determines a series of module types, each identified as being “stateful” or “stateless” and to which is associated a coefficient Xi as described previously and expressing a processing capacity associated with this module, necessary to carry out image processing operations.

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.The supervisor also defines the current use of the processing capacities of all the modules present in the device 100 for analyzing video content.

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”.The supervisor can then determine the list of execution modules identified as being “stateful” existing and which have sufficient processing capacity available to carry out all the processing of a given type on one or more video contents or on representative information. of video content. The supervisor then selects, for each video content to be processed or each group of information representative of a video content to be processed, the execution module that performs the processing from a list of available execution modules using an algorithm called “ of the turnstile”. It should be noted that video content decomposed into several sub-streams and processed in several modules during a previous processing must be merged into a single stream and reordered to be processed by a module defined as “stateful”.

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.A distribution of detection tasks according to the turnstile algorithm amounts to distributing a first task (detection) to be processed to a first execution module in a list of available execution modules, then a second task to be processed to a second module execution in this list, and so on. The supervisor manages one or more dynamically updated allocation tables in a dedicated working memory, which is preferably internal or quick to access. The allocation tables make it possible to make the link between the tasks to be performed and the execution modules in charge of carrying them out.

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.In particular, when new detection tasks are to be performed, the allocation table(s) are updated accordingly.

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.In a similar way, the supervisor determines a list of existing execution modules defined as “stateless” and which can carry out all the processing of a given type applied to one or more video contents or to information representative of video content. The supervisor distributes the incoming flows, for a type of module, between each execution module in an equitable manner and so that the use of the processing capacity is best distributed between the modules of this type, so that each module has the least processing to be done. A video content can be divided into several streams, distributed between several processing modules, the operations to be carried out in an execution module defined as being “stateless” being temporally independent.

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.In a software embodiment, if the list of available execution modules defined as “stateful” does not contain enough modules to operate detections of elements among a list of objects and/or events to be detected in all or part of one or more video contents or in information representative of a video content, then the supervisor instantiates one or more new modules within the limit of the total resources of the device 100 for analyzing video contents. The supervisor then adds this new module (this new module instance) to the list of available modules to then determine, for each operation, the execution module(s) selected by the turnstile algorithm to process one or more video content or information representative of such content.

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.Similarly, if the list of available execution modules defined as “stateless” does not contain enough processing modules to perform element detections among a list of objects and/or events to detect in any or part of one or more video contents or in information representative of a video content, then the supervisor instantiates one or more new modules within the limit of the total resources of the device 100 for analyzing video contents.

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.For example, for detection of an event of the “parking of a bicycle” type, a video content can be analyzed by a sequence of execution modules comprising one or more so-called “stateless” modules for detecting an object “bicycle” in an image, one or more so-called “stateful” modules for tracking an “bicycle” object in a sequence of consecutive images of video content and one or more so-called “stateful” modules of a parking rules. In this example, the video content could be distributed between different so-called “stateless” modules for detecting a “bicycle” object to speed up processing and will be gathered and ordered in a single stream to be then processed in a so-called “to state” of bike tracking and in a so-called “state” module of parking rules engine.

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.A rules engine is defined as a set of so-called “business” rules, i.e. defined at an application level. For example, a rules engine can define that a traffic incident (for example an infraction) takes place if a vehicle is moving in a direction opposite to the only direction of traffic authorized on a traffic lane intended for this vehicle, or even that a motor vehicle is traveling on a lane reserved for the circulation of vehicles without a motor.

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.According to one embodiment, the determination of a list of resources necessary for given processing operations, and the breakdown into a plurality of resources necessary for the execution of a processing algorithm, uses a system of indices representative of a target processing capacity, less than or equal to the processing capacity expressed by the coefficient Xi, for each of the execution modules of an algorithm as defined in the library of elementary execution modules of a processing algorithm. Thus, a coefficient Yi expressed in units of target processing capacity is associated with each elementary module (indexed i) for executing an algorithm as defined in the library of elementary modules for executing an algorithm of the device 100 d analysis of video content. The supervisor, during a modification of the list of objects and/or events to detect, or even at regular intervals, determines the real (current) use of the processing capacities of each execution module, and then instantiates one or several new modules within the limit of the total resources of the device 100 for analyzing video content, if the consumption of a module reaches the coefficient Yi. This mechanism advantageously makes it possible to anticipate the needs of the device 100 for analyzing video content in order to reduce the risk of temporary interruption in the processing of video content or in the processing of information representative of video content, the time of instantiation of new processing modules, in the event of an increase in processing capacity requirements. Indeed, the implementation of a new instance of an execution module may, depending on the type of module, require a delay of several seconds.

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 surncontenus 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 X1de 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 X2de 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.There is a flowchart illustrating a video content analysis method executed in a video content analysis device according to one embodiment. The method comprises an initial step S0 at the end of which all the elements of the video surveillance system 10 are initialized and are able to operate nominally. In particular, at the end of step S0, an operator of the video surveillance system 10 can configure the system by means of at least the analysis control device 110 by choosing one or more objects and/or one or more events to be detected, from a set of predefined objects or events, in the video content carried by the video streams originating from the image capture devices 102, 104, 106 and 108, so as to determine a list of objects and/or of events to be detected via the video surveillance system 10. The term “list of objects and/or events” is to be interpreted here broadly, and such a list of objects and/or events can comprise a single element , of object type, or even a single element of event type, in the applicative sense of the term “event”, since it was explained previously that an event relates to at least one object considered in relation to time. Thus, for example, an operator can select during a step S1, by using, for example, a user interface made available by the analysis control device 110, one or more objects to be detected, and/or one or several events to be detected, indicating for each of the objects and for each of the events, where applicable, in which of the video contents the object or the event must be detected. For example, an operator can program a detection of a crossing of a red traffic light, by a land vehicle, in a video content coming from the image capture device 106, during the night, or even whatever the time of day. According to another example, an operator can program the detection of parking in a reserved parking space, by an unauthorized vehicle, in a video content delivered from the image capture device 106. According to yet another example, an operator can program a detection of a marauder near a room containing sensitive goods. Thus, at the end of step S1, a list of objects and/or events to be detected from all or part of the video content has been determined. This determination of a list can be either a creation of a list, starting from an empty list, or an updating of a list following an addition or following a withdrawal from the list. of elements to be detected. During a step S2, the video content device 100 determines, on the basis of known criteria and/or parameters, a number of resources necessary to operate the detections to be carried out, programmed during the preceding step S1. The device 100 notably considers the processing capacity of each of the elementary processing algorithm execution modules with regard to the characteristics of the video streams transmitted and of the video contents which are contained in the video streams. For example, a detection module configured for the detection of an object in a video content comprising 30 images per second can operate an object detection on n video contents in a given time interval, taking into account its processing capacity ( n being a positive integer). The required execution modules are selected from a library of execution modules, also sometimes called "processor" or "processing processor". Processing characteristics specific to each of the elementary execution modules are known so as to be able to define and consider a processing capacity index X for each of the execution modules. For example, a processing capacity index X 1 can be determined for an elementary module for executing a processing algorithm operating on video content comprising 30 images per second and another processing capacity index X 2 can be determined for the same elementary execution module operating on a video content comprising 50 images per second. Thus, having regard to the processing capacity of each of the elementary modules for executing a processing algorithm, operating on video content whose characteristics are known and possibly also considering "real-time" constraints of the needs of execution, it is possible to determine a number of elementary resources, which also corresponds to hardware and/or software resources of the device 100 for analyzing video content.

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.During a step S3, the necessary resources are broken down into elementary modules taking into account the detection operations to be carried out, for example, according to the number of objects to be detected and the number of events to be detected, as well as according to the nature objects and/or events to detect. The processing execution modules can be used according to an assembly specific to the objects and/or events to be detected and to the elementary modules defined in the library. Thus, a detection of an event of the "fire in a vehicle" type can be broken down into a detection of a vehicle, a detection of a fire, and a similar movement of the "vehicle" and "fire" objects detected in the time. An elementary object detection module can therefore be used to detect a vehicle in an image, when the input data of this module indicates to it that the object to be detected is a vehicle, then the same elementary module (equipment, or even the same software instance of this module) can be used to detect a fire object in the same image as that in which it detected a vehicle object, and finally another elementary processing execution module provided for detecting a motion similarity can be used to detect that the vehicle object and the fire object move in the same way, that is to say in other words substantially at the same places in space, and at the same time. According to the example described above, two elementary modules for executing a processing algorithm are to be used. One is an object detection algorithm execution module, the other is a time proximity detection algorithm execution module. Of course, many runtimes can be defined and combined, including hierarchically, so that one runtime can use a plurality of "lower" level modules combined together.

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.By proceeding in this way, execution modules of a processing algorithm use data, or more generally information, resulting from a processing result of one or more other execution modules having carried out prior processing.

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.Advantageously and according to one embodiment, the data, also called information here, is transmitted from and to the execution modules necessary to operate programmed detections using an asynchronous messaging system for distributed or concurrent applications. According to one embodiment, the messaging system operates according to a so-called ZeroMQ type protocol or according to a so-called MQTT type protocol. Variants can of course be used by using other similar or equivalent protocols.

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.Cleverly, during a step S4, an optimized route of the information is calculated (or determined) so as to optimize the number of resources necessary and to address only the smallest possible number of hardware resources or to only execute that the smallest possible number of software instances of an execution module of a processing algorithm, if necessary, to meet the needs for programmed detection of the objects and/or events identified and configured during the step 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.Advantageously, an algorithm of the so-called “ round robin ” type applied to the various execution modules required and to the various information that must pass between these modules makes it possible to optimize the number of resources and to avoid or to limit as much as possible, consequently, the risk of not detecting a sought-after element in a video content of a video stream.

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.There schematically illustrates an example of internal architecture of the device 100 for analyzing video content. The architecture shown can also represent the internal architecture of the analysis control device 110, of the analysis results restitution device 112, of the analysis results storage device 114, or of any of the image capture devices (camera) 102, 104, 106 and 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.According to the hardware architecture example shown in , the device 100 for analyzing video content then comprises, connected by a communication bus 1000: a processor or CPU (Central Processing Unit) 1001 comprising graphics processing units called GPUs; a random access memory RAM (Random Access Memory) 1002; a read-only memory ROM 1003; a storage unit such as a hard disk (or a storage medium reader, such as an SD ("Secure Digital" in English) card reader 1004; at least one communication interface 1005 allowing the device 100 to analysis of video content to communicate with third-party devices such as image capture devices 102, 104, 106 and 108, or analysis control devices 110 or analysis results restitution devices 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 .Processor 1001 is capable of executing instructions loaded into RAM 1002 from ROM 1003, external memory (not shown), storage medium (such as an SD card), or a communication network. When the video content analysis device 100 is powered up, the processor 1001 is able to read instructions from the RAM 1002, and to execute them. These instructions form a computer program causing the implementation, by the processor 1001, of all or part of a method described in relation to the .

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.All or part of the method implemented in the device 100 for analyzing video content, or its variants described, can be implemented in software form by the execution of a set of instructions by a programmable machine, for example a DSP ("Digital Signal Processor” in English) or a microcontroller, or be implemented in hardware form by a dedicated machine or component, for example an FPGA (“Field-Programmable Gate Array” in English) or an ASIC (“Application-Specific Integrated Circuit” in English). In general, the video content analysis device 100 comprises electronic circuitry configured to implement the methods described in relation to itself as well as to remote third-party equipment, and with any other device involved in the analysis. execution of the video content analysis method described, aiming to operate one or more detections of objects and/or events in video content coming from the image capture devices 102, 104, 106 and 108. Although obviously, the device 100 for analyzing video content also comprises all the elements usually present in a system comprising a control unit and its peripherals, such as a power supply circuit, a power supply supervision circuit, one or several clock circuits, a reset circuit, input-output ports, interrupt inputs, bus drivers. This list is not exhaustive.

Chacun au moins des modules du dispositif 100 d’analyse parmi l’énumération suivante :At least each of the modules of the analysis device 100 from the following list:

- module configuré pour déterminer une liste d’objets et/ou d’évènements à détecter dans un ou plusieurs contenus vidéo,- module configured to determine a list of objects and/or events to detect in one or more video contents,

- module configuré pour déterminer une liste de ressources nécessaires à la détection des objets et/ou évènements à détecter,- module configured to determine a list of resources necessary for the detection of objects and/or events to be detected,

- module configuré pour décomposer les ressources en une pluralité de modules d’exécution d’un algorithme de traitement,- module configured to break down the resources into a plurality of processing algorithm execution modules,

- module configuré pour déterminer automatiquement un parcours optimisé d’informations entre les différents modules d’exécution d’un algorithme de traitement,- module configured to automatically determine an optimized path of information between the different execution modules of a processing algorithm,

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.can be considered as an electronic circuit or a control unit performing information and input data manager or supervisor functions comprising input and output data registers, memories, and processing capabilities of these data, either on its own or in combination with related resources. Each of these modules can be composed of hardware and software elements in different proportions from one module to another. The term module is not limiting and can be translated more broadly by processor, circuit, control unit, management unit, or any other synonym well known to those skilled in the art in information and signal processing or in the field of computer vision. The aforementioned modules can use common resources between them.

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é.The invention is not limited only to the embodiments described but relates more generally to any video content analysis method, executed in a video content analysis device, comprising a determination of a list of objects and/or of events to be detected in one or more video contents, a determination of a list of resources necessary for the detection of the objects and/or events to be detected, from the determined list, then a breakdown of said necessary resources into a plurality of execution modules of a processing algorithm where each of said execution modules is configured to process all or part of one or more images extracted from one of the video contents, or to process information representative of a content video, obtained from one or more of the images, and at least one of the execution modules is configured to deliver information representative of a result of a detection to be operated, and an automatic calculation of a optimized path of information between the aforementioned execution modules, aimed at minimizing the number of execution modules required to operate detections of elements among the determined list of objects and/or events to be detected. The invention also relates more generally to any device configured to implement and execute such a method.

Claims (8)

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.
A video content analysis method, executed in a video content analysis device, the method comprising:
  • determining (S1) a list of objects and/or events to be detected in one or more video contents,
  • determine (S2) a list of resources necessary for the detection of said objects and/or events to be detected,
  • decomposing (S3) said resources into a plurality of modules for executing a processing algorithm, each of said modules being configured to process all or part of one or more images extracted from one of said video contents, or representative information of video content, obtained from one or more of said images, and at least one of said execution modules being configured to deliver information representative of a result of a detection to be operated, said method being characterized in that it further comprises:
  • automatically determining (S4) an optimized path of information between said execution modules so as to minimize the number of said execution modules required to operate detections of elements among said list of objects and/or events to be detected.
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.Video content analysis method according to claim 1, in which the steps (S2, S3) for determining (S2) a list of necessary resources and for decomposing (S3) said resources into a plurality of execution modules of a processing algorithm include determining or considering an index representative of a processing capacity of each of said execution modules. 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.Method for analyzing video content according to one of Claims 1 and 2, in which is also included a step of determining a rate of resources used with regard to all the available resources of said content analysis device video and a step of conditioned execution of a video content analysis process according to whether or not said rate exceeds a predetermined threshold value. 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.Method for analyzing video content according to any one of Claims 1 to 3, in which the said optimized data path is implemented thanks to asynchronous messaging functions for distributed or concurrent applications, preferably according to a protocol of a type called ZeroMQ or 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.
Video content analysis device comprising electronic circuits including:
  • a module configured to determine (S1) a list of objects and/or events to be detected in one or more video contents,
  • a module configured to determine 5S2) a list of resources necessary for the detection of said objects and/or events to be detected,
  • a module configured to break down (S3) said resources into a plurality of modules for executing a processing algorithm, each of said modules being configured to process all or part of one or more images extracted from one of said video contents, or information representative of a video content obtained from one or more of said images and at least one of said execution modules being configured to deliver information representative of a result of a detection to be operated, said device analysis being characterized in that it further comprises:
  • a module configured to automatically determine (S4) an optimized path of information between said execution modules of an algorithm, so as to minimize the number of said execution modules required to operate detections of elements among said list of objects and/or events to detect.
Système de vidéosurveillance comprenant un ou plusieurs modules d’analyse de contenus vidéo selon la revendication précédente.Video surveillance system comprising one or more video content analysis modules according to the preceding claim. 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.Computer program product characterized in that it comprises program code instructions for executing the steps of the method according to any one of claims 1 to 4, when said program is executed by a processor. Support de stockage d’informations comprenant un produit programme d’ordinateur selon la revendication précédente.Information storage medium comprising a computer program product according to the preceding claim.
FR2108638A 2021-08-11 2021-08-11 METHOD FOR ANALYZING VIDEO CONTENT AND DEVICE EXECUTING THE METHOD. Pending FR3126166A1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
FR2108638A FR3126166A1 (en) 2021-08-11 2021-08-11 METHOD FOR ANALYZING VIDEO CONTENT AND DEVICE EXECUTING THE METHOD.

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
FR2108638 2021-08-11
FR2108638A FR3126166A1 (en) 2021-08-11 2021-08-11 METHOD FOR ANALYZING VIDEO CONTENT AND DEVICE EXECUTING THE METHOD.

Publications (1)

Publication Number Publication Date
FR3126166A1 true FR3126166A1 (en) 2023-02-17

Family

ID=80122339

Family Applications (1)

Application Number Title Priority Date Filing Date
FR2108638A Pending FR3126166A1 (en) 2021-08-11 2021-08-11 METHOD FOR ANALYZING VIDEO CONTENT AND DEVICE EXECUTING THE METHOD.

Country Status (1)

Country Link
FR (1) FR3126166A1 (en)

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2020263374A1 (en) * 2019-06-27 2020-12-30 Intel Corporation Automated resource management for distributed computing

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2020263374A1 (en) * 2019-06-27 2020-12-30 Intel Corporation Automated resource management for distributed computing

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
CHEN YI-REN ET AL: "G-Storm: A GPU-Aware Storm Scheduler", 2016 IEEE 14TH INTL CONF ON DEPENDABLE, AUTONOMIC AND SECURE COMPUTING, 14TH INTL CONF ON PERVASIVE INTELLIGENCE AND COMPUTING, 2ND INTL CONF ON BIG DATA INTELLIGENCE AND COMPUTING AND CYBER SCIENCE AND TECHNOLOGY CONGRESS(DASC/PICOM/DATACOM/CYBERSCI, 8 August 2016 (2016-08-08), pages 738 - 745, XP032978623, DOI: 10.1109/DASC-PICOM-DATACOM-CYBERSCITEC.2016.130 *
GARGEES RASHA S ET AL: "Dynamically Scalable Distributed Virtual Framework Based on Agents and Pub/Sub Pattern for IoT Media Data", IEEE INTERNET OF THINGS JOURNAL, IEEE, USA, vol. 6, no. 1, 1 February 2019 (2019-02-01), pages 599 - 613, XP011711622, DOI: 10.1109/JIOT.2018.2849406 *

Similar Documents

Publication Publication Date Title
US20240289930A1 (en) Deep learning-based real-time detection and correction of compromised sensors in autonomous machines
US10290158B2 (en) System and method for assessing the interior of an autonomous vehicle
US10037607B2 (en) Topology determination for non-overlapping camera network
US20210397848A1 (en) Scene marking
US20090232357A1 (en) Detecting behavioral deviations by measuring eye movements
Nikouei et al. Kerman: A hybrid lightweight tracking algorithm to enable smart surveillance as an edge service
US11663049B2 (en) Curation of custom workflows using multiple cameras
Cermeño et al. Intelligent video surveillance beyond robust background modeling
US12051015B2 (en) Artificial intelligence model integration and deployment for providing a service
US11673766B2 (en) Elevator analytics facilitating passenger destination prediction and resource optimization
US20190340779A1 (en) Extending previously trained deep neural networks
US20230134663A1 (en) Transforming Surveillance Sensor Data into Event Metadata, Bounding Boxes, Recognized Object Classes, Learning Density Patterns, Variation Trends, Normality, Projections, Topology; Determining Variances Out of Normal Range and Security Events; and Initiating Remediation and Actuating Physical Access Control Facilitation
Rehman et al. Internet‐of‐Things‐Based Suspicious Activity Recognition Using Multimodalities of Computer Vision for Smart City Security
CN113596158A (en) Scene-based algorithm configuration method and device
Xu et al. Edge Video Analytics: A Survey on Applications, Systems and Enabling Techniques
FR3126166A1 (en) METHOD FOR ANALYZING VIDEO CONTENT AND DEVICE EXECUTING THE METHOD.
Maaloul Video-based algorithms for accident detections
FR3015093A1 (en) SYSTEM AND METHOD FOR CONTROLLING INPUT AND OUTPUT FLOW OF PEOPLE IN CLOSED AREAS
US11243548B2 (en) Detecting autonomous vehicles causing increased vehicle queueing
Pathak et al. A Distributed Framework to Orchestrate Video Analytics Applications
Padhi et al. Intelligent Intrusion Detection Using TensorFlow
US20240086709A1 (en) Deep learning compute paths for faster vehicle reaction times
US20220301403A1 (en) Clustering and active learning for teach-by-example
Hu et al. Wide-area multi-camera multi-object tracking with dynamic task decomposition
CN114254156A (en) Video processing method, algorithm bin creating method, device and server

Legal Events

Date Code Title Description
PLFP Fee payment

Year of fee payment: 2

PLSC Publication of the preliminary search report

Effective date: 20230217

PLFP Fee payment

Year of fee payment: 3

PLFP Fee payment

Year of fee payment: 4