
magicplan-AI, un voyage dans le merveilleux monde de l'apprentissage profond (Partie 1/3)
À l'intérieur de magicplan
5 minutes de lecture
Partager

Sam Miller
Responsable RevOps
La vision par ordinateur subit une révolution spectaculaire grâce aux avancées de l'IA, notamment dans l'apprentissage profond. Chaque jour, un nouvel article montre des capacités que vous n'auriez pas pu imaginer il y a 5 ans. Que cela provienne des équipes GAFA ou des spin-offs des meilleurs laboratoires, il semble que l'IA pour la compréhension des images trouve sa place dans l'entreprise.
Mais qu'est-ce que cela signifie pour une petite entreprise dont la vision par ordinateur classique est au cœur de son produit?
Qu'est-ce qu'il faut pour plonger dans l'apprentissage profond ? Quelle est la robustesse de cette nouvelle approche face aux exigences de production telles que la précision et la vitesse sur une application smartphone ?
Je m'appelle Pierre Pontevia. Je suis fondateur et directeur de la recherche pour magicplan. Aujourd'hui, je voudrais partager avec vous notre parcours vers l'implémentation d'une fonctionnalité basée sur l'apprentissage profond dans notre application.
Dans cet article, nous ne discuterons pas de la Singularité, ni de battre un maître du Go ou des dernières avancées dans les Réseaux Génératifs. Nous partagerons plutôt les étapes pratiques nécessaires pour qu'une équipe d'ingénieurs extraira une fonctionnalité d'apprentissage profond du « laboratoire » et l'intègre dans une application utilisée par des millions de propriétaires de smartphones.
Introduction rapide à magicplan
Partie 1 - Développer un POC pour évaluer la faisabilité
Le domaine de la recherche académique
Cadres d'apprentissage profond
TensorFlow (propriété de Google) est le cadre de Deep Learning le plus utilisé aujourd'hui. Cela signifie qu'il y a de fortes chances que tout travail décrit dans un article ait été implémenté ou reproduit en utilisant TensorFlow. En note complémentaire sur la sélection de cadres, la popularité est un critère important mais pas le seul. La facilité d'utilisation et/ou la maturité des outils de production sont également importants.
Accéder aux modèles pré-entraînés
L'équipe TensorFlow maintient un Model Zoo dans un référentiel supplémentaire. Là, vous pouvez trouver plusieurs modules python offrant des API pour implémenter les modèles de Deep Learning les plus populaires, y compris les modèles de détection d'objets. Ces modèles sont fournis avec des configurations pré-entraînées. L'entraînement a été réalisé sur des ensembles de données disponibles tels que COCO. Cela nous a fait gagner du temps et des développements dans les premières étapes de l'évaluation.
l'implémentation de la 'détection d'objets' dans la bibliothèque offre la possibilité d'utiliser l'‘Apprentissage Transféré’ par le biais d'un affinage. Dans cette approche, vous commencez avec un modèle existant, pré-entraîné sur des millions d'images (tel que l'ensemble de données COCO), et vous le ré-entraînez sur un plus petit ensemble d'images (quelques centaines d'images sont suffisantes pour des tests préliminaires) de votre sous-domaine (images de fenêtres et de portes prises à l'intérieur dans notre cas).
Cette approche nous a épargné le fardeau de deux défis importants lors du POC :
le fait que, généralement, l'apprentissage profond a besoin de TONS de données pour généraliser correctement sur un problème donné. Et il est peu probable que vous disposiez de ce volume de données au début de votre enquête,
le fait que s'entraîner sur des millions d'images prend beaucoup de temps (et d'argent) si vous ne disposez pas des ressources matérielles adéquates. Cela est souvent le cas lorsque vous êtes un débutant dans le monde de l'apprentissage profond.
Le défi de trouver plusieurs milliers d'images de portes et de fenêtres déjà annotées a été surmonté grâce à la disponibilité de l'ensemble de données d'entraînement ImageNet.
ImageNet offre l'accès à plus de 16 millions d'images indexées avec un arbre sémantique de plus de 35 000 catégories différentes. En sélectionnant simplement les images contenant les mots-clés 'porte' ou 'fenêtre', nous avons pu rassembler environ 3500 images, suffisantes pour effectuer un entraînement basé sur
Tests sur notre cas d'utilisation
En tenant compte des contraintes temporelles du scénario de capture magicplan, nous avons choisi de commencer par un modèle simple et populaire appelé “SSD Inception V2” (plus de détails dans la partie suivante), pour voir à quel point il était capable de gérer la tâche.
Nous avons réentraîné le modèle avec 3300 images réparties en un ensemble d’entraînement et un ensemble de validation, comme recommandé pour un entraînement approprié. Les 200 images restantes ont été utilisées comme ensemble de test pour mesurer les progrès de nos différentes itérations.
En quelques semaines, nous avons pu atteindre un premier niveau de performance acceptable avec le modèle entraîné. Loin d'être parfait, les résultats étaient suffisamment bons pour prendre la décision d'investir plus de temps et de ressources dans la détection d'objets basée sur l'apprentissage profond pour les fenêtres et les portes.
Leçons apprises
La principale leçon de cette première étape est que, lorsqu'il s'agit de mettre en œuvre des fonctionnalités s'appuyant sur des techniques de Deep Learning validées (comme la détection d'objets), vous pouvez et devez utiliser toutes les ressources de Deep Learning existantes disponibles sur Internet pour maximiser l'efficacité du développement et des tests de votre prototype.
Cela dit, il est une chose d'avoir un prototype fonctionnel montrant le potentiel de l'approche. C'est une autre chose de le faire partie d'une application téléchargée par des millions d'utilisateurs chaque jour.
À venir prochainement
Dans la partie 2 de 3, nous décrirons plus en détail le travail nécessaire pour passer d'un prototype à une fonctionnalité utilisable en termes de performance.
Articles connexes
Restauration
Comment bien réaliser le mapping d'humidité (travaux de dégâts des eaux)
3 minutes de lecture
Régleur de sinistres
Xactimate®, Cotality™, QuickBooks, T&M : Quand et comment les utiliser efficacement
5 minutes de lecture
Restauration
Gérer efficacement : Comment des équipes de restauration de 2 personnes peuvent fonctionner comme des professionnels
5 minutes de lecture






