Chez Parkopedia, nous utilisons des méthodes d'apprentissage automatique de pointe et de vision par ordinateur pour résoudre les problèmes de stationnement. Plusieurs de nos projets impliquent l'utilisation d'images et de vidéos de rue, en utilisant des sources telles que les caméras embarquées pour extraire des informations sur le stationnement.
Ces dernières années, des progrès considérables ont été réalisés en matière de solutions de vision par ordinateur. Aujourd'hui, de grands efforts sont déployés pour que ces développements soient généralement applicables, mais la plupart ne sont encore utilisés et testés qu'en laboratoire sur des jeux de données standard. Lorsque vous travaillez avec des images du monde réel, vous vous trouvez souvent confronté à des problèmes inattendus.
Chez Parkopedia, nous sommes constamment confrontés à ces problèmes lorsque nous travaillons avec des images de caméras embarquées "réelles". Dans nos efforts pour utiliser ces données afin d'extraire des informations utiles sur le stationnement, nous avons commencé sur la base de notre modèle standard de segmentation des rues qui classe chaque pixel d'une image dans 16 classes différentes. La version simple de ce modèle comporte 5 classes : route, véhicule, trottoir, bordure de trottoir et autre. Le modèle a été initialement entraîné sur le jeu de données A2D2, un jeu de données public fourni par Audi qui contient un ensemble de vidéos enregistrées en Allemagne. Les performances étaient bonnes, le modèle étant capable de discerner les différentes classes avec une précision de 97,5 %.
En haut à gauche : Image de l'ensemble de données A2D2. En haut à droite : segmentation de la vérité du sol (38 classes). En bas à gauche : prédictions avec 5 classes.
Tests Parkopedia
Lorsqu'on l'applique ce modèle à nos données vidéo enregistrées à Londres, les performances se détériorent considérablement.
Modèle de segmentation testé sur le jeu de données de la caméra embarquée.
Le modèle semble mal fonctionner dans les zones de l'image où de fortes réflexions apparaissent. Il s'agit des reflets d'objets laissés sur le tableau de bord du véhicule ou du reflet du tableau de bord lui-même. Bien que les humains aient pris l'habitude d'ignorer ces reflets, un ordinateur est plus limité par ce qu'il a analysé auparavant. Les données d'entraînement précédentes n'intégraient pas les reflets, il n'est donc pas surprenant que le modèle commence à échouer ici.
On pourrait aussi dire que le modèle échoue parce qu'il a été entraîné sur des vidéos de rues allemandes plutôt que sur des variantes de Londres. Cependant, le modèle fournit des résultats cohérents sur le jeu de données "Camvid", un autre jeu de données disponible publiquement et enregistré au Royaume-Uni.
Modèle de segmentation Parkopedia testé sur le jeu de données CamVid
La source d'erreur suivante a été vérifiée : le reflet lui-même. Ce type de reflet peut être atténué lors de l'enregistrement d'une vidéo en utilisant un "dash mat", un tissu non réfléchissant posé sur le tableau de bord. Cependant, nous ne sommes pas toujours en mesure de contrôler la façon dont les vidéos sont enregistrées, car beaucoup sont reçues de tiers. Pour utiliser cette forme de données, nous avions besoin que notre modèle de segmentation soit robuste aux interférences dues aux reflets.
Augmentation des images avec des réflexions artificielles
L'augmentation des données est une technique utilisée en apprentissage automatique qui consiste à appliquer de manière aléatoire de légères modifications aux données afin que le modèle voit plus loin que l'ensemble de données d'origine. Par exemple, si vos données d'apprentissage ne contiennent que des images claires, votre modèle risque de ne pas donner les résultats escomptés sur les images sombres. Plutôt que de collecter un nouveau jeu de données d'images sombres, une solution simple consiste à rendre artificiellement vos images d'entraînement plus sombres. Vous pouvez appliquer la même logique au contraste, aux couleurs, etc.
De même pour notre jeu de données ne contenant pas d'images avec des reflets, nous avons commencé à simuler des reflets artificiels sur nos images d'entraînement. Dans ce cas, l'intérieur du véhicule est réfléchi sur l'image, ce qui signifie que tout ce qui se trouve sur le tableau de bord peut finir par apparaître sur l'image. Les reflets les plus visibles et les plus dommageables sont ceux du tableau de bord, mais aussi les cahiers, les emballages ou tout autre objet laissé par le conducteur. Nous avons reproduit ces reflets sur nos images d'entraînement en ajoutant de tels objets aux images pour donner l'impression qu'ils sont le reflet d'objets posés sur le tableau de bord.
Même image avec deux reflets artificiels différents. À gauche, un reflet de l'intérieur du véhicule. À droite, des reflets d'ordinateurs portables.
Résultats
Nous avons entraîné avec succès notre modèle sur le jeu de données augmenté et il atteint maintenant une performance de 97,2%, très similaire à la version originale, ce qui indique qu'il a appris à bien gérer les reflets artificiels. En analysant les performances du modèle sur la base des données du "monde réel", nous pouvons constater qu'il est nettement moins désorienté par les reflets provenant du tableau de bord, comme le montrent les images suivantes.
Conclusion
Lorsqu'ils travaillent avec des données du monde réel, nos chercheurs sont constamment confrontés à de nouveaux problèmes provenant de données imparfaites. Il peut s'agir de reflets, d'occlusions, de panneaux d'information vandalisés ou encore d'infrastructures de stationnement mal entretenues dont les démarcations sont complètement délavées. Parfois, les données sont impropres à l'usage et il n'y a pas d'autre option que de les rejeter complètement. Mais le plus souvent, il s'agit simplement d'un problème intéressant à résoudre pour notre équipe, et comme le montre cet exemple, quelques manipulations créatives peuvent parfois faire l'affaire !
Co-auteur : Yannick Terme, ingénieur de recherche en vision par ordinateur