CrowdGuard: Gagnante de cohorte virtuelle Accelerator Award 2024

2024_AI4GoodLab_Acceleration_Award_Website_VIR

Mise en garde : Cet article de blogue traite de sujets liés à des débordements de foule et à des bousculades.

Membres de l’équipe

Pearl Park, Ayesha Halim, Nazanin Mehregan, Dorothy Lee, Olivia Langhorne

Sommaire

CrowdGuard, votre gardien de sécurité attitré, conçu pour prédire et prévenir les débordements de foule.

Mots-clés

Mise en grappe, débordement de foule, sécurité des foules, apprentissage automatique, réseau neuronal évolutif, mise en grappe non supervisée, suivi multi-objet

Inspiration et contexte du projet

Imaginez que vous participiez à des festivités jusqu’à ce que la soirée tourne au drame. En 2022, la fête d’Halloween a viré au cauchemar lorsque les gens ont envahi les rues étroites du quartier d’Itaewon, à Séoul. Cet incident est un terrible rappel de la rapidité avec laquelle une situation peut dégénérer quand une foule compacte se réunit dans un espace clos. Plus de 150 personnes ont péri par asphyxie sous l’effet de la compression.

Au-delà de la tragédie, les personnes survivantes ont été davantage victimisées par les médias, qui les ont blâmées de s’être rassemblées, tout en passant sous silence le manque criant de planification et de gestion des foules. Il ne s’agit pourtant pas d’un incident isolé. De telles tragédies se produisent partout dans le monde, que ce soit lors de rassemblements religieux, de grands concerts ou de rencontres sportives.

Au cours des 24 dernières années, plus de 8 000 personnes de 52 pays ont perdu la vie dans un débordement de foule. Ces catastrophes surviennent lorsque le raz-de-marée humain prend des proportions telles que la cohue entraîne des blessures et des décès par compression ou par piétinement. Malgré leur nature chaotique, ces incidents ont un point en commun : bon nombre pourraient être évités par une meilleure planification et des interventions plus rapides.

En d’autres termes, avec la bonne technologie, les gouvernements pourraient anticiper et prévenir ces catastrophes. Mais les avancées technologiques ne suffisent pas à elles seules. La gestion de ces incidents passe par une coopération efficace entre les forces de l’ordre, les services d’urgence et les organisateurs d’événements. Cette collaboration garantit que les personnes blessées sont transportées et traitées rapidement, ce qui maximise leurs chances de survie tout en limitant les séquelles.

CrowdGuard s’attaque à cet enjeu important qu’est la sécurité des foules par une approche de pointe qui met à profit l’apprentissage automatique pour analyser des images vidéo en temps réel. En prédisant les risques inhérents à la densité de la foule avant que le pire n’arrive, cette application permet aux autorités d’agir au plus vite afin de limiter les dégâts et de sauver des vies.

Plus qu’un simple outil de prévention des tragédies de masse, CrowdGuard vise à créer des environnements plus intelligents et plus sûrs pour tout le monde, partout dans le monde. Si cette approche peut sembler intrusive à première vue, CrowdGuard répond aux préoccupations éthiques par le recours à des techniques de floutage. Son objectif premier n’est pas d’identifier les personnes, mais de garantir leur bien-être. Grâce à des algorithmes avancés d’apprentissage automatique, CrowdGuard va au-delà des mesures réactives, puisqu’il propose une solution en amont qui anticipe et prévient les dangers avant qu’ils ne prennent des proportions alarmantes.

CrowdGuard révolutionne la sécurité des foules en promettant un avenir où ce genre de catastrophes peut être évité ou, à tout le moins, grandement atténué. La sécurité des personnes et l’efficacité des interventions d’urgence sont au cœur de notre mission, qui vise à faire en sorte qu’aucun rassemblement ne soit assombri par la crainte d’une tragédie.

Technologies utilisées

Système frontal : React.js avec protocole HTML et feuilles de style en cascade (CSS) pour la mise en page du site Web et Material UI pour les icônes et les composants. Nous avons réalisé un prototype à l’aide de Figma afin d’inclure les fonctionnalités que nous souhaitions intégrer ultérieurement.

Pipeline : Réseau neuronal évolutif utilisant YOLOv8, mise en grappe non supervisée avec DBSCAN, suivi multi-objet avec ByteTrack

Système dorsal : Flask pour la gestion des API, Flask-SocketIO pour la communication en temps réel et PyTorch pour l’exécution de modèles tels que YOLOv8 et CSRNet. Traitement des images vidéo par OpenCV, gestion des requêtes multi-origines par Flask-CORS et encodage par Base64 pour faciliter le transfert des données.

Développement du projet

En quoi le projet consiste-t-il?

CrowdGuard est une application Web spécialement conçue pour aider les autorités publiques et les organisateurs d’événements à prévenir les débordements de foule. Son objectif premier consiste à prédire, à partir d’images de surveillance en temps réel, le risque de débordement de foule sur une échelle de 0 à 2 (0 correspondant à un risque faible et 2 à un risque élevé). Si le score est élevé, l’application alerte l’utilisateur pour qu’il agisse afin de prévenir tout drame humain. À partir des images de surveillance en temps réel, le système calcule le risque de tragédie en fonction de la densité de la foule et de la fluidité des déplacements.

Comment l’outil fonctionne-t-il?

À partir d’images vidéo analysées une à une, notre solution détecte la présence de personnes à l’aide d’un modèle prêt à l’emploi très performant du nom de YOLOv8. Ce dernier détecte les objets et les entoure d’une boîte. L’algorithme de suppression non maximale empêche qu’un même objet soit détecté deux fois. Après avoir appliqué un filtre pour ne conserver que les boîtes contenant des personnes, ByteTrack suit ces dernières dans le temps pour calculer la vitesse à laquelle elles se déplacent (en m/s). Les vidéos de surveillance étant généralement prises de biais, le système extrait la partie centrale inférieure de chaque boîte et l’affiche dans une vue aérienne 2D par transformation de perspective. L’orientation 2D permet de mieux estimer la distance en pixels qui sépare chaque personne, distance qui peut ensuite être convertie en centimètres. À l’aide d’un algorithme de regroupement non supervisé appelé DBSCAN, nous répartissons les différents ensembles de personnes en piétons isolés ou en groupes, selon la distance relative qui les sépare les uns des autres. Enfin, le pipeline calcule la densité de la foule pour chaque image et la vitesse de déplacement aux deux secondes au sein de chaque sous-groupe afin de déterminer le risque de bousculade sur une échelle de 0 à 2.

Quels sont les ensembles de données utilisés?

Nous avons analysé plusieurs ensembles de données, notamment l’ensemble de dénombrement de foule de l’université ShanghaïTech, l’ensemble sur les foules de l’UCF et SOMPT22. Ces ensembles renferment des images ou des vidéos de lieux bondés, ainsi que des données telles que des boîtes contenant des personnes et des estimations de la taille de la foule. Ayant testé notre modèle YOLOv8 sur ces ensembles, nous avons obtenu de bons résultats quand est venu le temps d’encadrer et de flouter les personnes filmées. Toutefois, le manque d’information sur la probabilité d’un débordement de foule ainsi que l’absence de données sur la superficie des lieux ont constitué une limite importante. Pour remédier à ce problème, nous avons simulé des environnements contrôlés dans lesquels un certain nombre de personnes occupaient des salles ou des couloirs de dimensions précises, afin de mieux prédire le risque de bousculade. Nous avons ensuite tiré des images vidéo de notre simulation AnyLogic et les avons utilisées pour tester notre modèle.

Impact et innovation

Soucieuses de la sécurité des personnes dans les lieux propices aux débordements de foule, nous avons voulu créer une application pour accélérer les interventions d’urgence et limiter le risque de bousculades. Cet apport donnera lieu à une société plus sûre, sereine et confiante, apte à s’en remettre au système pour la protéger.

La création d’un logiciel permettant de balayer régulièrement la foule posait le problème de l’utilisation et du stockage d’images captées à l’insu ou sans le consentement des personnes filmées. Pour tenir compte de cet enjeu, les boîtes permettant d’isoler un individu au sein de la foule sont floutées avant que les images vidéo ne soient traitées. Nous avons également décidé de simuler des scénarios de bousculades au lieu d’utiliser des images réelles pour éviter de faire appel à des vidéos de personnes en détresse — ce qui serait contraire à l’éthique — et par respect pour les personnes qui ont perdu la vie dans de tels drames.

Notre application comporte toutefois une faille potentielle : en l’absence de facteur d’échelle, nous avons estimé la hauteur moyenne des boîtes entourant les individus comme correspondant à la hauteur moyenne d’une personne, soit 168,5 cm. Or, cette taille varie en fonction de la race, du sexe et du statut socio-économique, ce qui peut fausser la prédiction sur la densité de la foule. Dans un même ordre d’idées, il est possible que l’algorithme YOLOv8 détecte mieux les personnes de certains groupes ethniques que d’autres. Nous espérons régler ces problèmes en approfondissant nos recherches et en recourant à un ensemble plus varié de données d’entraînement.

Défis rencontrés et solutions apportées

Manque de données d’entraînement

L’entraînement d’un modèle comme CrowdGuard exige des images de lieux bondés. Les difficultés rencontrées à cet égard tiennent à la qualité et à la quantité de séquences vidéo que nous avons pu trouver. Les images doivent être suffisamment claires pour que CrowdGuard puisse savoir que la boîte contient une personne. La caméra doit également être placée à un certain angle pour permettre au système de détecter la présence d’une personne et d’évaluer la distance qui la sépare d’une autre. Il en va de la précision des calculs de densité de la foule. De notre côté, nous avions accès à un nombre limité d’images, ce qui ne permettait pas d’entraîner efficacement le modèle.

Pour pallier ce manque de données d’entraînement, nous avons simulé des mouvements de foule dans un couloir à l’aide d’AnyLogic. Grâce à l’angle de prise de vue, le modèle pouvait détecter sans difficulté la présence d’une personne dans la boîte. Nous avons répété la simulation à plusieurs reprises, en modifiant des paramètres tels que la densité de la foule et l’angle de la caméra, afin d’entraîner le modèle à l’aide d’un vaste ensemble de données fictives.

Apprentissages et réalisations

Tout au long de ce projet, nous avons mis à profit ce que nous avions appris au cours des semaines de formation et appliqué les notions les mieux adaptées aux visées de notre projet. Malgré les limites de temps, nous sommes fières d’avoir créé un produit minimum viable qui possède les fonctionnalités essentielles de l’application et qui donne un bon aperçu du pipeline envisagé.

Prochaines étapes du projet

Bien que CrowdGuard ait connu un vif succès en tant que prototype, plusieurs aspects essentiels restent à améliorer :

  1. Analyse vidéo multi-source
    Pour le moment, CrowdGuard analyse des contenus vidéo provenant d’une seule source. En optimisant le système pour qu’il puisse intégrer et traiter des données vidéo provenant de plusieurs endroits simultanément, nous pourrions développer une meilleure connaissance des dynamiques de foule dans différentes régions et accroître ainsi notre conscience situationnelle.
  2. Conservation des données
    À l’heure actuelle, CrowdGuard ne conserve pas les données de façon permanente, ce qui complique l’analyse à long terme. Il est essentiel de passer à une base de données permanente permettant d’effectuer des analyses complètes à long terme, d’améliorer la fiabilité des données et d’aider les autorités à prendre des décisions éclairées.
  3. Cartographie géospatiale et intégration des numéros d’urgence
    Le développement de fonctionnalités de cartographie géospatiale permettrait de mieux visualiser la dynamique des foules à différents endroits. Ces fonctionnalités faciliteraient la détection des foyers d’activité et des risques en vue d’une meilleure affectation des ressources. De plus, le fait d’accélérer l’accès aux services d’urgence compétents améliorerait la rapidité d’intervention, non seulement dans les situations de crise, mais aussi dès les premiers signes de congestion, afin d’assurer une bonne gestion des foules.
  4. Analyse des sentiments et des comportements des foules
    L’intégration de l’analyse des sentiments et du comportement au modèle prédictif constituerait un énorme bond en avant. En tenant compte de la sensibilité du groupe, en plus de la vitesse et du débit de circulation, le système pourrait fournir des informations plus précises sur la dynamique de la foule et les risques connexes.

Remerciements

Ce projet n’aurait pu voir le jour sans les merveilleuses ressources, les exposés instructifs et les services de mentorat que le AI4Good Lab a mis à notre disposition pendant les deux mois du programme. Nous sommes reconnaissantes de l’aide qui nous a été apportée tout au long de notre parcours par l’équipe de coordination et les spécialistes qui ont donné des conférences et des exposés. Un merci tout spécial à notre mentor, Jacob Tian, et à notre assistante d’enseignement, Yimei Yang, de nous avoir donné des conseils utiles et de nous avoir aidées à transformer nos idées en une application concrète!

Publié dans