AI Deploy - Tutoriel - Créer une application pour jouer à pierre papier ciseaux avec YOLOv8
Comment créer une application basée sur la vision par ordinateur et YOLOv8
Objectif
L’objectif de ce tutoriel est d’expliquer comment déployer une application pour jouer au jeu « pierre papier ciseaux » à l’aide du modèle YOLOv8.
Pour cela, vous utiliserez Streamlit, un framework Python qui transforme des scripts en applications web partageables. Vous apprendrez également à construire et utiliser une image Docker personnalisée pour une application Streamlit.
Prérequis
- Vous avez créé un projet AI Deploy au sein d’un projet Public Cloud.
- Vous avez créé un utilisateur pour AI Deploy.
- Vous avez Docker installé sur votre machine.
- Vous avez des connaissances sur la construction d’images avec Dockerfile.
- Vous disposez des poids obtenus après l’entraînement du modèle YOLOv8 sur le Rock Paper Scissors Dataset. Vous pouvez utiliser le tutoriel Entraîner YOLOv8 pour jouer à pierre papier ciseaux pour générer ces poids.
En pratique
Vous allez suivre différentes étapes pour construire votre application Streamlit.
- Plus d’informations sur les fonctionnalités de Streamlit sont disponibles ici.
- Tous les fichiers sources sont disponibles sur GitHub.
Écrire l’application Streamlit
Créez un fichier Python nommé app.py et collez-y le code suivant :
Écrire le fichier requirements.txt de l’application
Le fichier requirements.txt nous permettra d’indiquer tous les modules nécessaires au fonctionnement de notre application. Ce fichier sera utile lors de l’écriture du Dockerfile.
Écrire le Dockerfile de l’application
Votre Dockerfile doit commencer par l’instruction FROM indiquant l’image parente à utiliser. Dans notre cas, nous choisissons de partir d’une image python:3.8 :
Construire l’image Docker depuis le Dockerfile
Lancez l’une des commandes suivantes depuis le répertoire du Dockerfile pour construire l’image de votre application :
- La première commande construit l’image en utilisant l’architecture par défaut de votre système. Cela peut fonctionner si votre machine utilise déjà l’architecture
linux/amd64, qui est requise pour exécuter des containers avec nos produits AI. Cependant, sur des systèmes ayant une architecture différente (par exempleARM64surApple Silicon), l’image obtenue ne sera pas compatible et ne pourra pas être déployée. - La seconde commande cible explicitement l’architecture
linux/amd64afin de garantir la compatibilité avec nos services AI. Elle nécessitebuildx, qui n’est pas installé par défaut. Si vous n’avez jamais utilisébuildx, vous pouvez l’installer en exécutant :docker buildx install
Envoyer l’image vers le registre partagé
Avertissement Le registre partagé d’AI Deploy ne doit être utilisé qu’à des fins de test. Nous vous recommandons d’attacher votre propre registre Docker. Plus d’informations à ce sujet sont disponibles ici. Les images envoyées sur ce registre sont destinées uniquement aux workloads AI Tools et ne seront pas accessibles pour des usages externes.
Trouvez l’adresse de votre registre partagé en lançant cette commande :
Connectez-vous au registre partagé avec vos identifiants habituels d’utilisateur AI Platform :
Envoyez l’image compilée vers le registre partagé :
Lancer l’app AI Deploy
La commande suivante démarre une nouvelle app exécutant votre application Streamlit :
Notes
-
--default-http-port 8501indique que le port à atteindre sur l’URL de l’app est8501. -
--cpu 1indique que nous ne demandons qu’un seul CPU pour cette app. -
Pensez à ajouter l’attribut
--unsecure-httpsi vous souhaitez que votre application soit accessible sans authentification.
Aller plus loin
Si vous avez besoin d'une formation ou d'une assistance technique pour la mise en oeuvre de nos solutions, contactez votre commercial ou cliquez sur ce lien pour obtenir un devis et demander une analyse personnalisée de votre projet à nos experts de l’équipe Professional Services.
Nous voulons vos retours !
N’hésitez pas à nous faire part de vos questions, retours et suggestions pour améliorer le service :
- Sur le serveur Discord OVHcloud