Regard sur la segmentation de la trame urbaine à la Ville de Montréal
Dans le cadre de son stage d’études au MILA — Institut québécois de l’intelligence artificielle et au Service des technologies de l’information (STI) de la Ville de Montréal, l’étudiant de 2e cycle Saber Benchalel a collaboré avec le Centre de gestion de la mobilité urbaine (CGMU) pour développer un modèle de segmentation sémantique en milieu urbain. À la Ville de Montréal, nous publions aujourd’hui les résultats de ces travaux en rendant disponible l’ensemble des images annotées, extraites du flux vidéo des caméras de circulation du CGMU. Nous libérons du même coup le code développé par la Ville en guise de preuve de concept pour l’application des méthodes de segmentation sémantique en milieu urbain. Ces données pourront être utilisées librement pour entraîner vos propres modèles ou encore reproduire nos expériences.
Vers une détection automatisée des entraves
Le CGMU se veut le cœur et le cerveau des systèmes de transport intelligents à Montréal, avec comme objectif d'accélérer leur implantation en territoire montréalais. Il est un centre de prise de décisions en temps réel qui vise à faciliter la mobilité des citoyens·nes et des visiteurs·ses. L'équipement spécialisé dont il dispose permet de gérer à distance la circulation sur le réseau routier et de réagir rapidement lorsqu’un incident survient. On y dénombre, entre autres, 500 caméras de circulation installées sur le territoire qui aident les opérateurs·rices à détecter rapidement les entraves routières.
Afin d’épauler le travail des opérateurs·rices du CGMU, la Ville de Montréal souhaite mettre en place un système de détection automatique d’anomalies routières. Ce système reposera sur l’intelligence artificielle pour analyser en temps réel les flux vidéos provenant des 500 caméras afin d’y détecter divers types d’incidents (ex.: un accident, un véhicule en panne ou obstruant une piste cyclable).
Avec un objectif aussi ambitieux, nous avons opté pour une approche itérative visant à développer une série de preuves de concept que nous pourrons tester et intégrer au fur et à mesure des développements. Cette façon vise à mieux répondre aux besoins qui évoluent dans le temps, en plus de limiter les risques en identifiant rapidement les difficultés et en évaluant la pertinence de continuer le développement pour un meilleur contrôle des coûts et des bénéfices.
En conséquence, nous avons choisi une architecture modulaire où les extrants de certains modèles pourraient fournir les intrants d’autres modèles. Cette modularité a pour but d’apporter une flexibilité dans l’utilisation des modèles et les intégrer dans d’autres contextes que celui de la circulation et avec d’autres caméras que celles disponibles au CGMU. Un premier pas a été fait dans cette direction en développant un modèle de segmentation sémantique des images captées par les caméras du CGMU en contexte urbain.
Modèle de segmentation sémantique semi-supervisé
Pour être en mesure de détecter une anomalie routière, il faut d’abord pouvoir reconnaître de façon automatique les différents éléments qui composent une image. Les caméras du CGMU étant mobiles (de type Pan-Tilt-Zoom), la composition ainsi que la position des éléments des images captées par ces caméras changent constamment. Il est donc nécessaire de pouvoir définir le contexte urbain en tout temps. La segmentation sémantique sert donc à classifier chaque pixel d’une image. En se basant sur les besoins de la Ville, nous avions initialement défini 13 classes : voie, trottoir, terre-plein, végétation, panneaux de signalisation (incluant les feux), poteaux, objets de construction (ex.: les cônes), les bâtiments, structures (ex.: un pont), terrains privés, piétons, véhicules (incluant les vélos) et néant (pour tout ce qui ne ne fait pas partie des 12 autres classes, comme le ciel par exemple). La segmentation sémantique est utilisée pour générer des masques, des zones d’intérêt et éventuellement pour identifier la direction vers laquelle pointe une caméra sans même connaître ses métadonnées.
Un modèle a été développé par Saber Benchalel le cadre de son stage de 2e cycle en apprentissage automatique du MILA, complété à l’hiver 2020. Après plusieurs tests et raffinements, nous avons concentré la portée du modèle à la segmentation de la trame urbaine et avons éliminé les classes d’entités dynamiques ou contenant des objets trop petits (soit les piétons, les véhicules et la végétation). La segmentation a donc comme objectif de déterminer le contexte urbain statique en tout temps (nous sommes donc passé de 13 à 6 classes: terre-pleins, trottoirs, voies, bâtiments, structures et néant). La détection des objets dynamiques sera réalisée dans le cadre d’une autre preuve de concept (présentement en cours).
Le modèle développé est basé sur un article datant de 2018 portant sur la segmentation sémantique semi-supervisée [2]. Les modèles de segmentation de type supervisé apprennent à classifier les pixels en ingérant une grande quantité d’images annotées, c’est-à-dire des images où les pixels ont été préalablement classifiées par un humain. L’annotation d’images, en l’occurrence celles de type segmentation, est un processus long et laborieux qui nécessite un effort collectif. C’est pourquoi nous avons fait appel à une firme externe spécialisée pour réaliser l’exercice en limitant le nombre d’images au strict minimum jugé nécessaire. Les images ci-dessous présentent 2 des 10 000 images annotées manuellement et qui ont été utilisées pour entraîner nos modèles. On voit dans le deuxième exemple que la classe des terrains privés a priorité sur les autres classes : une voiture dans un stationnement privé ne sera pas identifiée comme faisant partie de la classe véhicule (rose), mais bien de celle des terrains privés (rouge).
Bien que 10 000 images puissent sembler être une énorme quantité, dans le monde de la vision automatique, c’est au final bien peu. C’est pour cette raison qu’un modèle semi-supervisé nous a semblé être une excellente option pour tirer avantage au maximum des images annotées. Bref, on voulait en faire plus avec moins!
Notre modèle semi-supervisé est en fait un duo de modèles entraînés à travailler ensemble: le Classifieur et l’Inspecteur. Le Classifieur apprend à classifier les pixels à partir des images annotées. L’Inspecteur apprend à discerner quels résultats de la segmentation proviennent des images annotées manuellement de ceux obtenus des images provenant du Classifieur. À mesure que le Classifieur apprend et s’améliore, la tâche de l’Inspecteur se corse. Le duo devient efficace lorsque l’inspecteur commence à croire que certaines portions des segmentations produites par le Classifieur proviennent directement de nos annotations manuelles. En poussant l’analogie de l’inspecteur plus loin, on peut voir le Classifieur comme un faussaire tentant de berner l’inspecteur avec des reproductions d’une œuvre d’art. L’efficacité du modèle tient à une balance entre les expertises du faussaire et de l’expert. Pour ceux et celles qui veulent aller plus loin que l’analogie du faussaire et de l’inspecteur, vous trouverez tous les détails dans le rapport de stage de Saber Benchalel [1], publié sur le site GitHub de la Ville. L’avantage d’une telle approche est que le Classifieur peut continuer de s’entraîner à partir d’images qui n’ont pas été annotées manuellement.
En guise d’exemple, les images ci-dessous comparent les résultats de la classification effectuée par le modèle à l’annotation manuelle effectuée au préalable par un humain. Les métriques évaluant la performance du modèle sont présentées dans le rapport final. Le rapport présente aussi une comparaison de nos résultats avec ceux d’un modèle de référence (baseline).
Ouvert par défaut
Guidés par notre Politique de données ouvertes, nous savions que les données devraient éventuellement être partagées publiquement à la complétion de ce projet. En effet, la politique stipule que toute donnée collectée ou acquise par la Ville doit être ouverte à moins d’une justification valable (par exemple le respect de la vie privée ou de propriété intellectuelle). Un peu moins connue, c’est notre Politique sur l’utilisation et le développement des logiciels et matériel libres qui a guidé la parution du code source du modèle de segmentation sémantique. Depuis maintenant 2 ans, la Ville s’est dotée de cette politique ayant comme objectif de rendre les services et plateformes technologiques ouverts, transparents et plus accessibles aux citoyens·nes. À la Ville de Montréal, nous voulons entre autres favoriser la réutilisation des solutions technologiques que nous avons développées et en faciliter le partage entre les administrations publiques. Étant donné l’aspect innovant de la technologie développée, nous croyons que le code et les données pourront aussi être exploités dans un cadre académique ou même d’apprentissage par les citoyens·nes. Et qui sait de quelle façon encore!
Il est toutefois important de souligner que les images que nous avons utilisées dans le cadre de ce projet sont tirées des images déjà publiées sur le site des données ouvertes. De ce fait, nous nous sommes assurés dans le cadre de l’ouverture de ces données de respecter la vie privée de nos citoyens·nes. Comme ces caméras sont installées pour aider les opérateurs·rices du CGMU dans leur gestion de la circulation, elles sont ajustées pour limiter l’information recueillie. Elles sont donc ajustées de façon à ne pas pouvoir capter les visages ni les plaques d’immatriculations des véhicules. Aussi, même si on arrivait à identifier un véhicule ou une personne par sa couleur ou les vêtements portés, il ne serait pas possible de suivre ses déplacements car les images sont conservées et publiées uniquement à chaque intervalle de 5 minutes.
Conclusion
Une entrave peut être définie par le triplet suivant : objet, endroit, mouvement. Par exemple, une voiture (objet) immobile (mouvement) à l’heure de pointe dans une voie réservée (endroit). Pour pouvoir détecter automatiquement les entraves à partir de captation vidéo, il faut donc détecter les triplets anormaux.
Comme première étape vers la détection d’entraves automatisée, nous avons concentré nos efforts sur la définition de l’endroit. Pour ce faire, la Ville de Montréal a développé une preuve de concept, basé sur l’apprentissage profond, qui segmente le contexte urbain. Nous travaillons actuellement le bloc chargé de bien détecter l’objet. Ensuite? Le mouvement!
Entre temps, nous rendons disponible à la communauté le code de la preuve de concept, les résultats et les détails techniques colligés dans un rapport ainsi que les images annotées manuellement. À notre connaissance, il s’agit des seules images annotées avec segmentation sémantique extraites de caméras de circulation routière. Nous sommes curieux·ses de savoir ce que vous en ferez! Vous pouvez nous contacter par courriel, au donneesouvertes@montreal.ca, pour nous en parler.
[1] Saber Benchalel, Semantic Segmentation of the Urban Context Using PTZ Cameras, mémoire de maîtrise, Université de Montréal, mai 2020.
[2] Wei-Chih Hung, Yi-Hsuan Tsai, Yan-Ting Liou, Yen-Yu Lin, Ming-Hsuan Yang, Adversarial Learning for Semi-Supervised Semantic Segmentation, arXiv:1802.07934, juillet 2018.