Apprentissage Automatique et Réseaux Neuronaux - page 40

 

Détection des feux de circulation et reconnaissance des couleurs avec YOLOv8 | Tutoriel de détection d'objets personnalisés



Détection des feux de circulation et reconnaissance des couleurs avec YOLOv8 | Tutoriel de détection d'objets personnalisés

Le didacticiel vidéo "Détection des feux de circulation et reconnaissance des couleurs à l'aide de YOLOv8" explique les étapes pour créer un modèle de détection des feux de signalisation et de reconnaissance des couleurs à l'aide du web pro Ultralytics YOLOv8. Il couvre l'ensemble de données sur les feux de circulation, l'augmentation des données, l'installation des bibliothèques nécessaires, l'ajustement du modèle YOLOv8 et le test du modèle sur plusieurs vidéos. Le présentateur souligne l'importance d'installer toutes les bibliothèques requises, et les résultats des tests du modèle sur des vidéos démontrent sa précision dans la détection et la reconnaissance des feux de circulation de différentes couleurs.

  • 00:00:00 , le didacticiel couvre l'ensemble de données de feux tricolores qu'ils utiliseront pour le projet, qui se compose d'environ 1000 images avec trois classes différentes de feux tricolores : vert, rouge et jaune. Ils montrent des exemples de chaque étiquette et expliquent comment ils ont appliqué l'augmentation des données pour augmenter la taille de leur ensemble de données, car ils n'avaient pas suffisamment d'images dans leur ensemble de données d'entraînement. La vidéo montre ensuite comment exporter l'ensemble de données de RoboFlow vers le bloc-notes Google Colab et présente également le produit récemment lancé, Expense, qui peut aider à former, déployer et surveiller des modèles, entre autres fonctionnalités.

  • 00: 05: 00 Dans cette section, le YouTuber explique les premières étapes du processus de mise en œuvre pour créer un modèle de détection des feux de circulation et de reconnaissance des couleurs à l'aide de l'ultralytics YOLOv8 web pro. La première étape consiste à importer toutes les bibliothèques nécessaires, telles que OS et glob, qui sont utilisées pour naviguer dans différents chemins de fichiers et tracer des images d'entrée et de sortie. Ensuite, ils vérifient la présence d'un GPU et installent toutes les bibliothèques requises à l'aide de pip. Enfin, ils clonent le référentiel GitHub ultralytics et le définissent comme répertoire actuel avant d'installer les bibliothèques nécessaires restantes. La vidéo souligne l'importance d'installer toutes les bibliothèques requises pour éviter les erreurs de script par la suite.

  • 00:10:00 Dans cette section de la vidéo, le présentateur montre les étapes pour former et affiner un modèle YOLO V8 sur un jeu de données de feux de signalisation à l'aide de Google Colab. Après avoir défini le dossier du jeu de données comme répertoire actuel, le modèle est formé sur la boîte Ade pour 80 boîtes, et les résultats montrent que la précision moyenne moyenne avec IOU50 pour toutes les classes est de 98,3 %. La matrice de confusion est ensuite présentée, montrant que le modèle a classé avec précision les lumières vertes, rouges et jaunes pendant 96,7 %, 97,4 % et 95,5 % du temps respectivement. Le présentateur note également que la perte diminue continuellement et que le modèle pourrait être encore amélioré en l'entraînant sur un plus grand nombre d'époques. Enfin, les meilleurs poids du modèle sont validés à l'aide des images de validation.

  • 00:15:00 Dans cette section, l'orateur discute des résultats des tests du modèle YOLOv8 sur plusieurs vidéos, dont une vidéo de démonstration de feux de circulation. Le modèle est capable de détecter avec précision les feux de circulation et d'attribuer des étiquettes en fonction de la couleur de la lumière, avec une couleur de boîte englobante qui correspond à la couleur de la lumière. L'orateur montre des exemples du modèle détectant les feux rouges, verts et jaunes, avec l'étiquette appropriée et la couleur de la boîte englobante pour chacun. Les résultats du modèle sur différentes vidéos démontrent sa précision dans la détection et la reconnaissance des feux de circulation de différentes couleurs.
 

Analyse et prédiction du taux de désabonnement des clients à l'aide d'ANN | Tutoriel d'apprentissage en profondeur (Tensorflow, Keras et Python)



Analyse et prédiction du taux de désabonnement des clients à l'aide d'ANN | Tutoriel d'apprentissage en profondeur (Tensorflow, Keras et Python)

La vidéo YouTube intitulée « Customer Churn Analysis and Prediction using ANN| Deep Learning Tutorial(Tensorflow, Keras & Python) » montre l'utilisation de réseaux de neurones artificiels pour prédire le taux de désabonnement des clients à l'aide d'un ensemble de données de Kaggle. La vidéo couvre différentes étapes impliquées dans la préparation des données, telles que le nettoyage des données, l'encodage des caractéristiques catégorielles et la mise à l'échelle des valeurs dans les colonnes. Le locuteur crée ensuite un réseau de neurones avec une seule couche cachée de 20 neurones et une fonction d'activation sigmoïde tout en définissant des couches d'entrée et de sortie et un optimiseur avec une fonction de perte d'entropie croisée binaire. La précision obtenue et le rapport de classification utilisant la bibliothèque Scikit-learn sont affichés, les valeurs prédites étant converties en forme 0 ou 1 pour afficher une précision de 0,78.

  • 00:00:00 Dans cette section, le YouTuber présente le sujet du taux de désabonnement des clients et explique comment les réseaux de neurones artificiels peuvent être utilisés pour le prédire. Ils utiliseront un ensemble de données de Kaggle et Jupyter Notebook pour effectuer une analyse exploratoire des données et un nettoyage des données, suivis d'un traitement des données, d'un test de train et d'une division, et éventuellement de la prévision du taux de désabonnement des clients à l'aide d'un réseau neuronal artificiel. Ils commencent par importer les bibliothèques nécessaires telles que Pandas et NumPy, puis procèdent au chargement et à l'analyse de l'ensemble de données, en supprimant la colonne d'ID client car elle n'est pas utile pour prédire l'attrition des clients.

  • 00:05:00 Dans cette section de la vidéo, l'orateur discute du processus de vérification des types de données et d'identification des caractéristiques catégorielles. L'orateur découvre que la colonne « charges totales » apparaît comme une variable catégorique, alors qu'il devrait s'agir d'une valeur flottante ou entière. Pour résoudre ce problème, l'orateur convertit la colonne en un nombre entier. Ils rencontrent également une erreur d'espace vide à la position 488 et la résolvent en utilisant errors = "coerce" pour ignorer l'erreur. Enfin, l'orateur vérifie qu'il n'y a aucune valeur dans les lignes et prévoit de les supprimer si nécessaire.

  • 00:10:00 Dans cette section, l'orateur discute du processus de suppression des lignes vides des colonnes de charges totales à l'aide de Python. Initialement, le locuteur identifie le nombre de lignes vides dans la colonne des frais totaux, puis applique pd.notnull() pour les supprimer. Après avoir supprimé les lignes, l'orateur vérifie le nombre de lignes restantes pour s'assurer qu'il correspond au nombre attendu. Plus tard, le locuteur convertit la colonne des frais totaux en un type de données numérique à l'aide de pd.to_numeric(). Le locuteur identifie l'erreur de ne pas enregistrer la conversion du type de données et l'ajuste.

  • 00:15:00 Dans cette section de la vidéo, le présentateur effectue une analyse exploratoire des données sur les données de désabonnement des clients. Ils convertissent la colonne "frais totaux" en type flottant et vérifient les valeurs à l'aide de visualisations. Ensuite, ils tracent un histogramme pour voir combien de clients fidèles restent (pas de barattage) sur une durée de 10 mois, et codent par couleur les points de données qui indiquent les clients quittant en vert et ceux qui restent en rouge.

  • 00:20:00 Dans cette section, l'orateur discute de la modification des déclarations pour trouver les valeurs uniques dans chaque colonne et de l'ajout de noms de colonne avant les valeurs uniques. L'orateur parle également de trouver toutes les colonnes avec des variables catégorielles et de les convertir en nombres entiers ou flottants. Ils définissent ensuite une fonction pour rassembler toutes ces étapes et pouvoir imprimer les valeurs catégorielles dans n'importe quelle trame de données.

  • 00:25:00 Dans cette section de la vidéo, l'orateur montre comment utiliser une fonction pour imprimer des valeurs catégorielles ou des valeurs de type de données d'objet pour toute trame de données qui y est insérée. Ils modifient ensuite leur bloc de données en convertissant une colonne en un type de données flottant et en le supprimant. L'orateur remplace "pas de service Internet" et "pas de service téléphonique" par "non" en utilisant la fonction de remplacement et définit une colonne oui-non où il remplace toutes les variables oui et non par 1 et 0, respectivement, pour convertir les valeurs catégorielles en valeurs numériques, qui sont plus faciles à comprendre pour les modèles d'apprentissage automatique.

  • 00:30:00 Dans cette section, l'orateur aborde les étapes de préparation des données pour l'apprentissage automatique. Ils montrent comment diviser l'ensemble de données en ensembles d'entraînement et de test, et comment encoder les caractéristiques catégorielles en remplaçant "femelle" par 1 et "mâle" par 0. L'orateur utilise ensuite TensorFlow et Keras pour créer un réseau de neurones avec une seule couche cachée. de 20 neurones et une fonction d'activation sigmoïde. La couche d'entrée comporte 27 entités et la couche de sortie est définie.

  • 00:35:00 Dans cette section de la vidéo, le présentateur explique comment convertir des données textuelles en valeurs entières à l'aide de get dummies afin de préparer les données pour les modèles d'apprentissage automatique. Le présentateur montre comment générer des valeurs factices pour des variables telles que le service Internet et le contrat, puis utilise le scalaire min max pour mettre à l'échelle les valeurs dans les colonnes entre 0 et 1. Le but de la mise à l'échelle est d'amener les valeurs dans les colonnes entre 0 et 1 afin que le modèle d'apprentissage automatique puisse comprendre et interpréter les données avec précision.

  • 00:40:00 Dans cette section, le conférencier explique comment définir la couche d'entrée, la couche de sortie et l'optimiseur pour l'analyse et la prédiction de l'attrition des clients à l'aide d'un réseau neuronal artificiel. Il supprime la couche d'entrée inutile et définit la couche de sortie composée de un ou de zéro avec une fonction d'activation sigmoïde. Il note que la fonction ReLU peut être utilisée dans la couche cachée pour les problèmes de classification, mais pas dans la couche de sortie. L'optimiseur est défini avec une fonction de perte d'entropie croisée binaire et la précision est vérifiée avec une compilation de modèle de 100 époques. Enfin, il affiche la précision atteinte et le rapport de classification à l'aide de la bibliothèque Scikit-learn.

  • 00:45:00 Dans cette section, l'orateur explique comment il a converti les valeurs prédites, qui se trouvaient dans un tableau à 2 dimensions et variaient de 0 à 1, en forme 0 ou 1. Ils l'ont fait en utilisant une boucle for, indiquant que si une valeur était supérieure à 0,5, elle serait considérée comme 1, et si elle était inférieure à 0,5, elle serait considérée comme 0. Après avoir converti les valeurs, l'orateur a imprimé la classification rapport, qui montre une précision de 0,78. Le didacticiel se termine par l'orateur remerciant les téléspectateurs d'avoir regardé et les invitant à s'abonner à la chaîne.
 

Suivi des véhicules / Surveillance du trafic yolov5+deepsort



Suivi des véhicules / Surveillance du trafic yolov5+deepsort

Pour tout le monde vient ici de youtube ou veut simplement utiliser mon repo pour l'inférence. C'est un très vieux projet juste pour apprendre le CV quand j'étais à l'école. Ça fait longtemps donc j'ai oublié tout ce que j'ai fait dans ce projet de jouet. J'ai édité à partir de ce dépôt et j'ai ajouté quelques lignes de code pour certaines contraintes. Vous pouvez utiliser ce référentiel pour les références. Merci.

Les détections générées par YOLOv5 sont transmises à l'algorithme Deep Sort qui suit les objets.

Code : https://github.com/duongcongnha/Vehicle-tracking

GitHub - mikel-brostrom/yolov8_tracking: Real-time multi-object tracking and segmentation using YOLOv8 with DeepOCSORT and OSNet
GitHub - mikel-brostrom/yolov8_tracking: Real-time multi-object tracking and segmentation using YOLOv8 with DeepOCSORT and OSNet
  • mikel-brostrom
  • github.com
This repository contains a highly configurable two-stage-tracker that adjusts to different deployment scenarios. It can jointly perform multiple object tracking and instance segmentation (MOTS). The detections generated by YOLOv8, a family of object detection architectures and models pretrained on the COCO dataset, are passed to the tracker of...
 

Démonstration de suivi de véhicules et d'estimation de vitesse lors du 2e atelier AI City Challenge au CVPR 2018



Démonstration de suivi de véhicules et d'estimation de vitesse lors du 2e atelier AI City Challenge au CVPR 2018

Notre équipe de l'Université de Washington est lauréate du Track 1 (Traffic Flow Analysis) lors du 2nd AI City Challenge Workshop au CVPR 2018.

Les jeux de données du 2e AI City Challenge (2018) ne sont plus accessibles au public. Cependant, vous pouvez toujours accéder aux ensembles de données du 3e AI City Challenge (2019) ou participer au dernier 4e AI City Challenge du CVPR 2020.

Ils ont fourni un nouvel ensemble de données à l'échelle de la ville pour le suivi de véhicules multi-caméras ainsi que la ré-identification basée sur l'image. Ils disposaient également d'un nouvel ensemble de données pour la détection des anomalies de trafic. L'échelle des ensembles de données et le nombre de véhicules utilisés pour l'évaluation sont tous deux sans précédent. Le site Web des AI City Challenges est à l'adresse https://www.aicitychallenge.org/.

Code : https://github.com/zhengthomastang/2018AICity_TeamUW

 

Suivi d'objets avec Opencv et Python

Code : https://pysource.com/2021/01/28/object-tracking-with-opencv-and-python/



Suivi d'objets avec Opencv et Python

Le didacticiel vidéo sur le suivi d'objets avec OpenCV et Python explique la différence entre la détection d'objets et le suivi d'objets et montre comment créer un fichier de suivi d'objets pour un suivi efficace. La vidéo décrit les fichiers nécessaires requis, tels qu'une vidéo et un fichier de suivi d'objet, et montre comment coder le fichier main.py pour l'affichage vidéo en temps réel. Le didacticiel explique également comment supprimer de petits éléments du masque et définir une région d'intérêt pour extraire une partie de l'image afin de se concentrer sur les véhicules. La vidéo se termine en expliquant le processus de suivi des objets et en ajoutant des identifiants uniques aux objets pour les compter correctement. Cependant, le tutoriel indique que la méthode n'est pas parfaite mais constitue une excellente introduction au suivi d'objets, et un cours plus approfondi sur OpenCV et l'apprentissage en profondeur est recommandé.

  • 00:00:00 Dans cette section, l'orateur présente la différence entre la détection d'objet et le suivi d'objet. Le premier détecte les objets image après image tandis que le second suit les objets tout au long des images pour retracer leur historique. Le suivi d'objets est crucial dans diverses applications telles que le comptage de personnes, le suivi de trajectoires d'objets et le comptage de voitures passant sur les autoroutes. L'orateur présente ensuite les fichiers nécessaires pour démarrer le projet, y compris une vidéo et un fichier de suivi d'objet. Ensuite, l'orateur commence à coder le fichier main.py, en commençant par importer la bibliothèque OpenCV et en créant un objet de capture pour lire les images de la vidéo. Enfin, l'orateur montre comment afficher la vidéo en temps réel et créer un événement clé pour clôturer la vidéo.

  • 00:05:00 Dans cette section, l'orateur discute du suivi d'objets à l'aide d'OpenCV et de Python. Ils expliquent que pour cette méthode spécifique, une caméra stable est nécessaire, ce qui signifie que l'arrière-plan ne change pas avec le temps alors que seuls les objets en mouvement changent. En utilisant un détecteur d'objets, les objets en mouvement peuvent être extraits de la caméra stable. Le détecteur crée un masque et le but du masque est de rendre tout ce qui n'est pas nécessaire noir, tandis que les véhicules qui doivent être détectés sont blancs. Les coordonnées des éléments blancs sont alors extraites et celles qui sont trop petites sont supprimées. Ensuite, en utilisant la fonction de recherche de contours d'OpenCV, les limites des objets blancs sont trouvées et dessinées sur le cadre en vert.

  • 00:10:00 Dans cette section, le didacticiel vidéo explique comment supprimer de petits éléments du masque en calculant la surface du contour et en supprimant tout contour d'une surface inférieure à 100 pixels. Ensuite, le didacticiel explique comment définir une région d'intérêt (ROI) pour extraire une partie de l'image afin de se concentrer uniquement sur les véhicules sur cette partie spécifique de la route, ce qui facilite grandement le processus de détection. Le didacticiel explique comment définir le retour sur investissement en spécifiant la position, la hauteur et la largeur de la section contenant les véhicules que nous souhaitons suivre. Le didacticiel se termine en expliquant comment appliquer le masque à la ROI pour effectuer un suivi d'objet uniquement sur cette zone spécifique.

  • 00:15:00 Dans cette section de la vidéo, l'orateur applique l'algorithme de détection d'objet au retour sur investissement au lieu de l'image entière et montre comment la détection s'est améliorée. Cependant, il y a encore des problèmes avec les faux positifs et l'algorithme de détection. Pour améliorer la détection d'objets, le locuteur ajuste la taille de l'historique et le seuil var, ce qui affecte la quantité de faux positifs. Le locuteur extrait alors le rectangle entourant chaque objet détecté et le dessine sur la ROI en vert. Enfin, le haut-parleur supprime les ombres de l'image en ne conservant que les éléments blancs de l'image à l'aide d'un opérateur de seuil, ce qui permet une détection d'objet plus précise.

  • 00:20:00 Dans cette section, la vidéo explique le processus de suivi d'objets à l'aide d'OpenCV et de Python. Il est nécessaire d'importer le fichier "tracker.py" et de créer un objet "tracker" pour un suivi efficace. Le "tracker" collecte les boîtes englobantes des objets et les enregistre dans un tableau nommé "détections". Chaque boîte englobante a son ensemble distinct de valeurs de position x, y, de largeur et de hauteur. Ces cases doivent avoir une valeur minimale de 100, de sorte que le tracker supprime les objets non pertinents. Une série d'objets détectés sont affichés image par image, et le tableau de détections est transmis à l'objet de suivi. Le tracker renvoie ensuite l'historique et les identifiants uniques de chaque objet suivi. L'étape initiale du suivi d'objet est la détection d'objet, et elle n'est possible que si un objet est détecté dans la première image.

  • 00:25:00 Dans cette section, la vidéo traite de l'ajout d'identifiants uniques à la fonction de suivi d'objet dans OpenCV et Python. Chaque objet a désormais un ID différent, évitant ainsi les erreurs lors du comptage des objets. En utilisant les identifiants, les objets peuvent être comptés correctement et une ligne peut être tracée pour détecter le moment où les objets la traversent. La vidéo se termine en expliquant que la méthode présentée est simple, pas parfaite, mais une bonne introduction au suivi d'objets. Pour des connaissances plus approfondies sur la détection et le suivi d'objets, le créateur recommande de visionner leur cours vidéo sur OpenCV et l'apprentissage en profondeur.
Object Tracking with Opencv and Python - Pysource
Object Tracking with Opencv and Python - Pysource
  • Sergio Canu Hi there, I’m the founder of Pysource. I’m a Computer Vision Consultant, developer and Course instructor. I help Companies and Freelancers to easily and efficiently build Computer Vision Software .
  • pysource.com
In this tutorial we will learn how to use Object Tracking with Opencv and Python. First of all it must be clear that what is the difference between object detection and object tracking: Object detection is the detection on every single frame and frame after frame. Object tracking does frame-by-frame tracking but keeps the history of where the...
 

Feuille de route de la vision par ordinateur | Comment devenir ingénieur en vision par ordinateur



Feuille de route de la vision par ordinateur | Comment devenir ingénieur en vision par ordinateur

Cette vidéo fournit une feuille de route pour devenir ingénieur en vision par ordinateur, divisant le processus d'apprentissage en quatre modules : Python et OpenCV, robotique et programmation de bas niveau, intelligence artificielle et sujets avancés. L'importance des projets pratiques impliquant des dispositifs physiques tels que la robotique et Arduinos est soulignée, ainsi que la nécessité d'avoir une compréhension de base des mathématiques. Le conférencier discute également des concours et des projets qui peuvent aider les aspirants ingénieurs en vision par ordinateur à perfectionner leurs compétences. En outre, l'importance des compétences non techniques telles que la documentation et la connaissance d'outils logiciels tels que Git et Docker est mise en évidence. Enfin, il est recommandé d'obtenir des diplômes en mathématiques, en science des données, en informatique ou en ingénierie, bien qu'un apprentissage autonome à travers des projets et des cours soit également possible.

  • 00:00:00 Dans cette section de la vidéo, l'orateur présente une feuille de route de vision par ordinateur qui couvre tout ce qu'une personne doit apprendre pour devenir développeur de vision par ordinateur. La feuille de route répond à trois questions principales : quelles compétences sont requises, sur quels projets pouvez-vous travailler pour acquérir ces compétences et quels diplômes universitaires sont disponibles pour acquérir ces compétences. La feuille de route est divisée en quatre modèles, le premier modèle couvrant Python et OpenCV, qui sont essentiels pour résoudre 70 % des problèmes de vision par ordinateur. Le deuxième modèle concerne la robotique et la programmation de bas niveau, ce qui inclut le travail avec C++ et l'électronique. Les troisième et quatrième modèles couvrent respectivement l'intelligence artificielle et les sujets avancés. Le conférencier propose des projets débutants pour chaque modèle, comme travailler sur un robot suiveur de ligne ou un lecteur de code QR pour acquérir des connaissances et des compétences.

  • 00:05:00 Dans cette section de la vidéo, le conférencier discute de l'importance de travailler sur des projets qui impliquent des dispositifs physiques tels que la robotique et Arduinos. L'orateur explique que la programmation de tels appareils nécessite une approche différente car le même code peut produire des résultats différents en raison de facteurs tels que le bruit du capteur et les changements d'éclairage. Le troisième module mentionné par le conférencier se concentre sur l'intelligence artificielle et l'apprentissage automatique à l'aide de la populaire bibliothèque Python Scikit-learn, qui peut être utilisée pour des tâches telles que la classification d'images et la détection d'objets. Enfin, le conférencier souligne également l'importance d'avoir une compréhension de base des mathématiques et de leur lien avec la vision par ordinateur.

  • 00:10:00 Dans cette section, l'orateur explique l'importance de diviser l'environnement en différentes régions et comment il peut être utilisé pour détecter des situations telles que les croisements de voies tout en démontrant une image simple avec différentes régions séparées par une géométrie de base. Il souligne la nécessité pour les ingénieurs en vision par ordinateur de maîtriser les mathématiques et recommande d'apprendre les bases de la classification d'images et de la détection d'objets, de l'apprentissage secret et de la géométrie, avant de passer à des compétences plus avancées en apprentissage automatique, en mathématiques et en électronique. Il suggère des projets tels que des réseaux antagonistes génératifs et la mise en œuvre d'articles de pointe en vision par ordinateur pour apprendre l'apprentissage automatique avancé, tout en prenant des projets Arduino avancés ou en participant à des compétitions de robotique pour améliorer les connaissances en électronique.

  • 00:15:00 Dans cette section, l'orateur discute de divers concours et projets qui peuvent aider les aspirants ingénieurs en vision par ordinateur à perfectionner leurs compétences. Ces compétitions impliquent la construction de robots et d'agents capables d'effectuer des tâches complexes et de rivaliser avec d'autres équipes. Le conférencier insiste sur l'importance d'apprendre les bases de la vision par ordinateur, notamment Python et OpenCV, qui peuvent aider à résoudre 70 % des problèmes disponibles. Les quatre modules mentionnés sont : fondamentaux, robotique, intentions artificielles et modules avancés. Bien que le module avancé soit important, l'orateur suggère de se concentrer d'abord sur les autres modules, car ils couvrent les compétences essentielles nécessaires pour devenir un ingénieur en vision par ordinateur performant.

  • 00:20:00 Dans cette section, l'orateur discute des diverses compétences liées aux logiciels qu'un développeur de vision par ordinateur devrait avoir, en plus d'avoir des connaissances en vision par ordinateur, en apprentissage automatique et en Python. Ces compétences incluent la connaissance des bases d'outils comme Git et Docker, ainsi que des fournisseurs de cloud comme AWS ou Google Cloud. Les compétences supplémentaires considérées comme précieuses incluent le développement Web ou mobile, la connaissance de JavaScript et la capacité de rédiger une documentation appropriée, telle qu'un fichier Lisez-moi pour un référentiel GitHub ou de documenter un processus complet. Bien que toutes ces compétences ne soient pas indispensables, elles peuvent être utiles pour montrer le travail d'un développeur et résoudre divers problèmes.

  • 00:25:00 Dans cette section, l'orateur souligne l'importance de la documentation pour les développeurs de vision par ordinateur car elle simplifie les choses pour tout le monde. Ils suggèrent également que chaque développeur, et pas seulement les développeurs de vision par ordinateur, devrait maîtriser la documentation car il s'agit d'une compétence cruciale. Le conférencier souligne ensuite l'importance de se familiariser avec divers outils logiciels et encourage les aspirants ingénieurs en vision par ordinateur à en apprendre le plus possible. Pour ceux qui souhaitent obtenir un diplôme universitaire, l'orateur recommande des diplômes en mathématiques, en science des données, en informatique, en génie électrique ou tout autre diplôme en génie, car ils fournissent la base pour aborder les problèmes et trouver des solutions. Cependant, le conférencier note qu'il est tout à fait possible de tout apprendre de manière autonome en prenant des projets et des cours.
 

CLASSIFICATION D'IMAGE avec le jeu de données personnalisé Yolov8 | Tutoriel de vision par ordinateur

Code : https://github.com/computervisioneng/image-classification-yolov8



CLASSIFICATION D'IMAGE avec le jeu de données personnalisé Yolov8 | Tutoriel de vision par ordinateur

Dans cette section, le présentateur explique comment choisir le meilleur modèle pour le projet et fait des suggestions entre le choix du dernier modèle produit à partir du processus de formation ou la sélection du modèle avec la plus grande précision. La décision dépend de divers facteurs, notamment les données, le problème, le cas d'utilisation et le processus de formation. L'orateur explique également comment faire toutes les inférences et prédire de nouveaux échantillons en important YOLO et en spécifiant le chemin absolu vers le modèle, en utilisant une image de l'ordinateur local et en affichant les résultats. Les résultats fournissent de nombreuses informations, notamment les probabilités et les noms des catégories sur lesquelles le classificateur d'images a été formé.

  • 00:00:00 Dans cette section, le YouTuber montre comment créer un classificateur d'images à l'aide de YOLOv8 sur un ensemble de données personnalisé. Il commence par montrer l'ensemble de données, qui comprend des images de nuages, de pluie, de brillance et de levers de soleil. Il explique également la structure de fichier que YOLOv8 attend pour l'entrée de données. Felipe explique ensuite trois manières différentes de former un classificateur d'images à l'aide de YOLOv8 : la première utilise un script Python, la seconde utilise un bloc-notes Google Colab et la troisième utilise darknet, qui est le cadre sous-jacent de YOLOv8.

  • 00:05:00 Dans cette section, le didacticiel passe en revue les dépendances nécessaires à la formation d'un modèle de classification d'images à l'aide de Yolov8 et explique comment les installer à l'aide de l'interpréteur Python dans PyCharm. Les deux principaux packages nécessaires sont Ultralytics et NumPy, Ultralytics étant crucial pour importer les données nécessaires à la formation du modèle. Le didacticiel passe ensuite en revue le code nécessaire pour former le modèle et nécessite de définir le chemin absolu vers les données dans le format correct. Un test est également effectué pour une seule époque afin de s'assurer que tout fonctionne correctement avant de poursuivre la formation.

  • 00:10:00 Dans cette section, l'orateur montre où se trouvent les résultats du processus de formation et explique la structure des dossiers dans le dossier runs. Il montre ensuite comment former un classificateur d'images à l'aide de Yolov8 via la ligne de commande à l'aide d'un utilitaire spécifique et des arguments nécessaires. Il continue à montrer la simplicité de cette approche en formant le modèle pour une seule époque, puis montre où les résultats sont enregistrés dans un nouveau répertoire intitulé "trained 13". Enfin, l'orateur discute d'une autre façon de former le modèle à l'aide de Google Collab et fournit une brève explication du processus de configuration.

  • 00:15:00 Dans cette section, le présentateur montre un cahier qui a déjà été créé pour la formation des modèles Yolov8 appelé "train.ipymb". Le téléchargement d'ensembles de données sur Google Drive est une étape essentielle pour que les utilisateurs accèdent à leurs données à partir de Google Collab, car le processus nécessite que les utilisateurs exécutent une cellule qui connecte Google Collab à Google Drive. Connaître le chemin d'accès à l'ensemble de données d'un utilisateur dans Google Drive est essentiel, car les utilisateurs doivent entrer ce chemin dans leurs blocs-notes pour utiliser correctement leurs ensembles de données. Enfin, le présentateur fournit des commandes simples que les utilisateurs peuvent exécuter pour installer les bibliothèques nécessaires pour former les modèles Yolov8.

  • 00:20:00 Dans cette section de la vidéo, l'instructeur montre comment former un classificateur d'images à l'aide de YOLOv8 et d'un ensemble de données personnalisé, et comment copier les résultats obtenus dans un environnement Google Colab vers Google Drive. Ils exécutent le processus de formation pendant une époque, copient les résultats sur Google Drive, puis exécutent le processus de formation pendant 20 époques. Enfin, ils montrent comment analyser si le processus de formation a abouti à un bon classificateur d'images. L'instructeur insiste sur l'importance de définir correctement la variable de répertoire de données et suggère de copier les résultats dans Google Drive pour simplifier leur téléchargement et leur analyse.

  • 00:25:00 Dans cette section, les résultats du processus de formation pour un ensemble de données personnalisé utilisant YOLOv8 sont analysés. Les fichiers enregistrés sur l'ordinateur local sont examinés, y compris un fichier de configuration répertoriant tous les paramètres EPA utilisés pendant le processus de formation et un fichier de résultats qui comprend la perte de formation et de validation, ainsi que la précision. Un fichier python qui trace la perte et la précision à différentes époques a été utilisé pour déterminer si la perte diminue et si la précision augmente tout au long du processus de formation. Il est conclu qu'une approche simple mais puissante consiste à vérifier si la perte d'entraînement et la perte de validation diminuent tandis que la précision augmente.

  • 00:30:00 Dans cette section, l'orateur explique à quoi ressemble la précision de l'évaluation lorsque nous augmentons le nombre d'époques, montrant que la précision augmente puis se stabilise. Différents paramètres et une formation plus personnalisée pourraient être utilisés pour améliorer le processus afin d'obtenir un meilleur modèle. Le répertoire "weights" est également expliqué, où deux fichiers différents sont enregistrés : "last.pt" et "best.pt". Le fichier "last.pt" est le modèle produit à la fin de la dernière époque d'apprentissage, tandis que le fichier "best.pt" est le modèle produit à la fin de la meilleure époque d'apprentissage. En pratique, le dernier modèle serait utilisé pour obtenir les résultats finaux.

  • 00: 35: 00 Dans cette section, l'orateur explique comment choisir le meilleur modèle pour le projet et fait des suggestions entre le choix du dernier modèle produit à partir du processus de formation ou la sélection du modèle avec la plus grande précision. La décision dépend de divers facteurs, notamment les données, le problème, le cas d'utilisation et le processus de formation. L'orateur explique également comment faire toutes les inférences et prédire de nouveaux échantillons en important YOLO et en spécifiant le chemin absolu vers le modèle, en utilisant une image de l'ordinateur local et en affichant les résultats. Les résultats fournissent de nombreuses informations, notamment les probabilités et les noms des catégories sur lesquelles le classificateur d'images a été formé.

  • 00:40:00 Dans cette section de la vidéo, le présentateur explique comment utiliser un dictionnaire pour identifier les classifications d'une image à l'aide de YOLOv8. Les résultats du classificateur d'image sont des nombres entiers correspondant à différentes catégories, et un dictionnaire est utilisé pour identifier quelle catégorie chaque nombre entier représente. De plus, le vecteur de probabilité de toutes les différentes classes pour une image donnée est obtenu, et le présentateur montre comment identifier la probabilité maximale et sa catégorie correspondante à l'aide de numpy. Le présentateur conclut en montrant comment classer une image à l'aide du modèle YOLOv8 et suggère de s'abonner à leur chaîne pour plus de projets d'ingénierie de vision par ordinateur.
GitHub - computervisioneng/image-classification-yolov8
GitHub - computervisioneng/image-classification-yolov8
  • computervisioneng
  • github.com
You can download the same dataset I use in the video here. Ajayi, Gbeminiyi (2018), “Multi-class Weather Dataset for Image Classification”, Mendeley Data, V1, doi: 10.17632/4drtyfjtfy.1
 

Former la détection d'objet Yolov8 sur un jeu de données personnalisé | Guide étape par étape | Tutoriel de vision par ordinateur

Code : https://github.com/computervisioneng/train-yolov8-custom-dataset-step-by-step-guide



Former la détection d'objet Yolov8 sur un jeu de données personnalisé | Guide étape par étape | Tutoriel de vision par ordinateur

Ce didacticiel vidéo fournit un guide étape par étape sur la façon de former un détecteur d'objets à l'aide de YOLOv8 sur un ensemble de données personnalisé pour les applications de vision par ordinateur. Le didacticiel couvre des aspects importants tels que la collecte de données, l'annotation, le formatage et la formation, ainsi que l'importance de l'analyse des tracés de la fonction de perte et des exemples concrets pour évaluer les performances du modèle. Le didacticiel met l'accent sur l'utilisation de l'outil CVAT pour l'annotation, le respect du format de données YOLOv8 requis et la création d'un fichier YAML de configuration. Le didacticiel montre également comment utiliser Google Colab et PyCharm pour former et tester le détecteur d'objets.

La vidéo montre les performances d'un modèle de détection d'objets YOLOv8 formé sur un ensemble de données alpaga. L'orateur utilise un script Python pour charger des vidéos et exécuter des prédictions, montrant une détection presque parfaite dans certains cas et une détection stable dans d'autres, avec quelques détections manquées dans une vidéo. Le conférencier recommande d'analyser les fonctions de perte d'entraînement et de validation et de décider s'il y a place à amélioration avant d'entraîner à nouveau le modèle pour obtenir un modèle plus puissant et plus performant.

  • 00:00:00 Dans cette section de la vidéo, le présentateur explique l'importance de la collecte de données lors de la formation d'un détecteur d'objets à l'aide de YOLOv8, ainsi que les différentes manières de collecter des données, telles que prendre ses propres photos ou utiliser un ensemble de données accessible au public comme l'ensemble d'images ouvertes. Le présentateur utilise un ensemble de données alpaga à des fins de démonstration, et les spectateurs voient des exemples d'images contenues dans l'ensemble de données. De plus, le présentateur mentionne qu'il peut fournir aux téléspectateurs des scripts pour télécharger et formater les données de l'ensemble d'images ouvertes de la manière exacte nécessaire pour le didacticiel.

  • 00:05:00 Dans cette section de la vidéo, le narrateur discute du processus d'annotation des données à l'aide de l'outil CVAT, qui est un outil d'étiquetage pouvant être utilisé pour la détection d'objets et les tâches d'annotation liées à la vision par ordinateur. Le narrateur montre comment utiliser l'outil CVAT pour annoter un ensemble d'images pour un ensemble de données personnalisé, expliquant comment créer un nouveau projet et une nouvelle tâche, télécharger des images et ajouter des étiquettes pour les objets à détecter. Bien que le narrateur ait déjà les annotations pour les images utilisées, elles fournissent un guide étape par étape pour ceux qui ont besoin d'annoter leurs données. La vidéo met également en évidence les avantages et les inconvénients des différents outils d'annotation tout en soulignant les avantages de l'utilisation de CVAT.

  • 00:10:00 Dans cette section, le créateur de la vidéo montre comment étiqueter des objets sur un ensemble de données d'image pour la détection d'objets à l'aide de l'algorithme YOLOv8. Le créateur utilise des images d'alpagas et montre comment enfermer l'objet dans une boîte de liaison, permettant à l'algorithme de détecter et d'identifier les objets. Ils expliquent également l'importance d'annoter vos propres données pour se familiariser avec les différentes situations qui peuvent survenir lors de l'annotation et apporter de la clarté sur les objets détectés. Le créateur note que si l'annotation des données peut être effectuée à l'aide de services externes, il est essentiel d'annoter certaines des images vous-même pour une meilleure compréhension des données.

  • 00:15:00 Dans cette section, l'importance des critères d'annotation des images est discutée, avec l'exemple d'un jeu de données alpaga. Les différentes manières de définir les boîtes englobantes pour les objets sont également présentées, notamment en ajustant étroitement la boîte à l'objet ou en ayant une boîte englobante plus détendue. L'outil d'annotation cb80 est présenté comme une application Web utile et facile à utiliser pour le formatage et l'annotation des données, soulignant l'importance de l'annotation des données dans la formation des algorithmes de détection d'objets.

  • 00:20:00 Dans cette section de la vidéo, le présentateur explique le format de données spécifique requis pour YOLOv8 afin de former un détecteur d'objet. Chaque algorithme d'apprentissage automatique a ses propres exigences d'entrée de données, et YOLO a besoin des données dans un format très spécifique. Le présentateur montre comment exporter des données annotées du CV80 et les convertir au format YOLO. Le format YOLO exige que les annotations et les images correspondantes aient le même nom et des extensions de fichier différentes, chaque annotation de boîte englobante contenant un numéro de classe et quatre nombres flottants qui définissent la position centrale, la largeur et la hauteur de la boîte englobante. Il est souligné que le fait d'avoir des données dans le bon format est crucial pour la formation d'un détecteur d'objets.

  • 00:25:00 Dans cette section, l'orateur explique comment structurer les données pour la détection d'objets d'entraînement à l'aide de YOLOv8 sur un ensemble de données personnalisé. La première étape consiste à créer deux répertoires : un pour les images et un pour les étiquettes, avec des noms de répertoires spécifiques qui ne peuvent pas être modifiés. Dans le répertoire d'images, toutes les images qui seront utilisées pour la formation doivent être localisées, et un répertoire de train peut être utilisé pour plus de commodité. Dans le répertoire labels, il devrait y avoir des fichiers d'annotation pour chaque image, suivant un format standard où chaque ligne spécifie l'ID de classe, la position X/Y du centre de la boîte englobante, ainsi que la largeur et la hauteur de la boîte englobante. Le conférencier explique également comment utiliser des répertoires supplémentaires pour les données de validation ou de test, ou pour différentes versions des données.

  • 00:30:00 Dans cette section, le didacticiel vidéo explique le processus de formation de votre détecteur d'objets avec YOLO V8 à l'aide de Python ou de l'utilitaire de ligne de commande. Le référentiel officiel YOLO V8 offre la possibilité de s'entraîner avec quelques instructions Python ou en exécutant une commande dans le terminal. Le didacticiel passe ensuite par un guide étape par étape sur la façon de former un détecteur d'objets à l'aide de YOLO V8 dans un projet PyCharm, y compris l'importation de la bibliothèque Ultralytics et la création d'un fichier YAML de configuration. Le didacticiel souligne également que les utilisateurs peuvent choisir entre travailler dans un environnement local ou Google Colab.

  • 00:35:00 Dans cette section de la vidéo, l'orateur discute du fichier de configuration pour entraîner un détecteur d'objets à l'aide de YOLO V8 sur un ensemble de données personnalisé. Ils expliquent comment définir les noms des différentes classes détectées, le chemin absolu vers le répertoire contenant les images et les annotations, et le chemin relatif vers l'emplacement des images. L'orateur mentionne également les deux mots-clés « train » et « val » qui renvoient respectivement aux données d'apprentissage et de validation. Ils soulignent l'importance d'utiliser un chemin absolu au lieu d'un chemin relatif pour éviter tout problème. L'orateur montre ensuite comment exécuter le fichier et commence le processus de formation pour une époque, en insistant sur la nécessité d'attendre que le processus soit terminé. Enfin, ils montrent les fichiers de sortie générés une fois le processus de formation terminé.

  • 00:40:00 Dans cette section du didacticiel vidéo, l'orateur montre les lots d'images utilisées pour former l'algorithme de détection d'objets YOLOv8, ainsi que des images similaires pour la validation. L'orateur explique qu'ils mènent une formation superficielle et factice, et ils montrent les fichiers utilisés à cette fin. L'orateur montre ensuite comment entraîner l'algorithme depuis la ligne de commande à l'aide du terminal, et également depuis un cahier de collaboration Google. Le bloc-notes ne se compose que de cinq cellules et l'orateur montre à quel point il est simple de télécharger des données, de monter Google Drive et de former l'algorithme en spécifiant simplement le chemin relatif vers l'emplacement des données.

  • 00:45:00 Dans cette section, le didacticiel vidéo montre comment utiliser Google Colab pour former un détecteur d'objets YOLOv8 sur un ensemble de données personnalisé. Le processus consiste à enregistrer une variable spécifique et à exécuter la commande "pip install ultralytics" dans l'environnement Google Colab via la commande point d'exclamation. Le didacticiel montre comment saisir les mêmes lignes de code utilisées dans l'environnement local et comment spécifier un chemin absolu vers le répertoire Google Drive. Une fois les fichiers téléchargés et les commandes exécutées, le processus de formation est similaire à celui de l'environnement local. Le didacticiel demande aux utilisateurs d'attendre la fin de l'exécution et de ne pas oublier d'exécuter la commande qui copie le répertoire des résultats dans le répertoire choisi dans Google Colab.

  • 00:50:00 Dans cette section, le didacticiel vidéo se concentre sur le test des performances du détecteur d'objets Yolov8 qui a été formé sur un jeu de données personnalisé. La première étape du test du modèle consiste à se rendre dans le répertoire où toutes les informations concernant le processus de formation ont été enregistrées. La vidéo présente ensuite différentes sorties et tracés qui peuvent être utilisés pour analyser les performances du modèle, y compris les matrices de confusion, les courbes de confiance F1 et les tracés de la fonction de perte. La vidéo recommande de se concentrer sur les diagrammes de perte, en s'assurant que toutes les pertes diminuent, car il s'agit d'un moyen simple mais puissant d'analyser les performances du modèle. Différentes situations dans les tracés de la fonction de perte sont également discutées, comme une fonction de perte plate, qui pourrait indiquer que le modèle a appris tout ce dont il avait besoin pour apprendre.

  • 00:55:00 Dans cette section de la vidéo, le présentateur discute de l'analyse de la fonction de perte pour mieux comprendre le processus de formation d'un modèle de détection d'objets. Si la fonction de perte diminue, tout va bien, mais si elle augmente, il y a un problème avec l'entraînement. L'examen des tracés et l'analyse de ces informations relèvent davantage de la recherche, mais le présentateur propose une manière plus visuelle d'évaluer les performances du modèle, qui consiste à examiner des exemples réels et à voir comment le modèle fonctionne sur des données réelles. Le présentateur montre des exemples du modèle détectant des alpagas réels dans des vidéos, qui sont des données totalement inédites pour tester les performances du modèle. Bien que les résultats ne soient pas parfaits, les performances sont bonnes, et le présentateur soutient que cette évaluation visuelle est plus pertinente pour un pigiste travaillant sur le projet d'un client puisque le client peut ne pas se soucier des tracés et des mesures, mais plutôt vouloir voir comment le modèle fonctionne sur des données réelles.
  • 01:00:00 Dans cette section, l'orateur démontre les performances du modèle de détection d'objets YOLOv8 formé sur un ensemble de données alpaca sur des données invisibles via un script Python qui charge des vidéos et exécute des prédictions. Les détections semblent bien fonctionner, avec une détection presque parfaite dans certains cas, et une détection stable dans d'autres, à l'exception de quelques détections manquées dans une vidéo. L'orateur conseille d'analyser les fonctions de perte d'entraînement et de validation, de vérifier leur tendance à la baisse et l'existence d'une marge d'amélioration pour décider de réentraîner le modèle, ce que l'orateur fait pour obtenir un modèle plus puissant et plus performant.
GitHub - computervisioneng/train-yolov8-custom-dataset-step-by-step-guide
GitHub - computervisioneng/train-yolov8-custom-dataset-step-by-step-guide
  • computervisioneng
  • github.com
In this video I show you a super comprehensive step by step tutorial on how to use yolov8 to train an object detector on your own custom dataset! dataset If you want to train yolov8 with the same dataset I use in the video, this is what you should do: Go to prepare_data directory. Execute...
 

Détection d'objet Yolov8 + suivi d'objet de tri en profondeur | Tutoriel de vision par ordinateur

Code : https://github.com/computervisioneng/object-tracking-yolov8-deep-sort



Détection d'objet Yolov8 + suivi d'objet de tri en profondeur | Tutoriel de vision par ordinateur

Ce didacticiel vidéo montre comment implémenter un système de détection et de suivi d'objets à l'aide de YOLOv8 et du tri approfondi. Le présentateur suit le processus étape par étape, depuis la configuration de l'environnement, le chargement et la détection d'objets dans une vidéo à l'aide de YOLOv8, jusqu'au suivi des objets détectés au fil du temps à l'aide du tri approfondi. Ils expliquent également l'importance de créer la structure de fichiers correcte et d'installer les dépendances nécessaires. Une fois les détections extraites de YOLOv8, le suivi des objets Deep Sort est appliqué pour suivre les objets détectés au fil du temps. Enfin, le présentateur explique comment enregistrer les images de sortie finales dans un fichier vidéo et encourage les téléspectateurs à modifier le seuil de détection pour une meilleure précision.

  • 00:00:00 Dans cette section de la vidéo, l'hôte présente le projet de travail avec la détection d'objets à l'aide de YOLOv8 et le suivi d'objets à l'aide du tri approfondi. L'objectif est de créer un algorithme de suivi capable de suivre les personnes se déplaçant dans une vidéo et d'utiliser des cadres de sélection de différentes couleurs pour indiquer les objets suivis. L'hôte affiche les référentiels YOLOv8 et de tri profond qui seront utilisés, ainsi que les données vidéo qui seront testées. Enfin, l'hôte introduit un fichier appelé "tracker.py", qui est un wrapper autour du tri approfondi qui simplifie le processus de suivi des objets en utilisant des fonctions de haut niveau.

  • 00:05:00 Dans cette section de la vidéo, le présentateur explique comment configurer l'environnement du didacticiel en clonant le référentiel nécessaire, en téléchargeant les fichiers requis et en important les bibliothèques nécessaires. Ils expliquent l'importance de créer la bonne structure de fichiers et d'installer les bonnes dépendances pour assurer la compatibilité avec le code. Le présentateur montre ensuite comment charger une vidéo et en lire les images à l'aide d'OpenCV, et comment afficher les images dans une fenêtre.

  • 00:10:00 Dans cette section, le présentateur montre comment utiliser le modèle pré-formé YOLOv8 pour produire des détections sur une vidéo. À l'aide d'Ultralytics, le modèle pré-formé est importé et la fonction est appelée sur une image de la vidéo. Les résultats de la détection de sortie sont imprimés, mais comme les résultats sont dans un type d'objet personnalisé, ils doivent être déroulés et transformés en une liste à l'aide d'une boucle for. Les détections de sortie finales sont enregistrées dans un nouvel objet. Une fois le code exécuté avec succès, les résultats peuvent être utilisés comme données d'entrée pour les algorithmes de suivi d'objets.

  • 00:15:00 Dans cette section du didacticiel vidéo, l'orateur montre comment déballer toutes les informations de détection importantes du détecteur d'objets YOLOv8 et suivre les objets détectés à l'aide du suivi d'objets Deep Sort. Ils montrent comment extraire des informations telles que l'ID de classe, la valeur de confiance et les coordonnées de chaque détection afin de les transmettre à l'algorithme de suivi. L'orateur montre également comment initialiser et appeler le tracker Deep Sort avec les détections et les trames afin de suivre les objets détectés au fil du temps.

  • 00:20:00 Dans cette section, le présentateur explique le processus de suivi d'objets de tri approfondi, qui implique le calcul de caractéristiques au-dessus du cadre et des objets détectés. L'algorithme recadre le cadre et extrait les fonctionnalités, et pour parcourir toutes les pistes, le présentateur utilise une boucle pour accéder à la boîte englobante et à l'ID de piste. Chaque personne ou objet détecté dans la vidéo se voit attribuer un identifiant qui reste stable sur toutes les images. Pour chaque nouvel ID détecté, le présentateur le trace avec une couleur différente en utilisant une liste de couleurs aléatoires dans la visualisation.

  • 00:25:00 Dans cette section de la vidéo, l'orateur résout le problème de l'enregistrement de la vidéo avec toutes les différentes images et détections sur l'ordinateur local. Un nouvel objet, CV2 video writer, est créé pour enregistrer la vidéo avec un nom et un emplacement spécifiés. La vidéo est enregistrée à l'aide d'un codec MP4 et de la même fréquence d'images que la vidéo d'origine. L'orateur souligne que tout fonctionne correctement, même si la détection en temps réel n'est pas obtenue en raison des nombreux objets téléchargés et de l'exécution exécutée sur un processeur. Dans l'ensemble, le problème de détection d'objets à l'aide de YOLOv8 et de suivi d'objets à l'aide de Deep SORT a été résolu avec succès.

  • 00:30:00 Dans cette section, l'orateur conclut le didacticiel en passant en revue les dernières étapes nécessaires à la mise en œuvre d'un système de détection et de suivi d'objets réussi à l'aide de YOLOv8 et du tri approfondi. Ils montrent comment enregistrer les images de sortie dans un fichier out.mp4 et montrent son achèvement réussi. Par ailleurs, l'orateur évoque les possibles erreurs de détection et incite les téléspectateurs à modifier le seuil de détection afin d'améliorer la précision du système de détection d'objets tels que les oiseaux. Dans l'ensemble, ce didacticiel sert de guide utile à quiconque cherche à mettre en œuvre un système de détection et de suivi d'objets à l'aide de techniques de vision par ordinateur.
GitHub - computervisioneng/object-tracking-yolov8-deep-sort
GitHub - computervisioneng/object-tracking-yolov8-deep-sort
  • computervisioneng
  • github.com
Yolov8 object detection + deep sort object tracking ! requirements Deep Sort We are working on this fork from deep sort official implementation. You can download deep sort feature extraction model here. data You can download the same data I use in the video here.
 

Segmentation d'images avec le jeu de données personnalisé Yolov8 | Tutoriel de vision par ordinateur

Code : https://github.com/computervisioneng/image-segmentation-yolov8

Données : https://drive.google.com/drive/folders/1JvA2IvHBy2QOnAtPtoy4JbEEmtbz5dnK



Segmentation d'images avec le jeu de données personnalisé Yolov8 | Tutoriel de vision par ordinateur

Ce didacticiel couvre le processus d'annotation d'images et de création d'un masque binaire pour la segmentation sémantique, le formatage et la structuration de l'ensemble de données pour la formation avec YoloV8, la formation du modèle dans Google Collab, l'analyse des résultats de la formation et la réalisation de prédictions à l'aide d'un script Python. Le présentateur souligne l'importance de structurer le système de fichiers et d'analyser la fonction de perte et les métriques de validation pour former un bon modèle pour l'ensemble de données personnalisé YoloV8. Ils discutent également de l'impact des données erronées sur la qualité des prédictions et recommandent d'utiliser les prédictions du modèle actuel pour en former un nouveau et amélioré. Dans l'ensemble, le didacticiel fournit un guide complet sur la segmentation d'images avec le jeu de données personnalisé YoloV8.

  • 00:00:00 Dans cette section de la vidéo, l'instructeur montre l'ensemble de données qui sera utilisé pour la segmentation sémantique : un ensemble d'images de canard avec les masques binaires correspondants. Le masque binaire a tous les pixels blancs pour un objet dans l'image et tous les pixels noirs pour tout le reste. L'instructeur télécharge cet ensemble de données à partir de la version 7 de l'actif d'images ouvertes et affiche le site Web cvat.ai au cas où l'on aurait besoin d'annoter ses propres données d'image. Ensuite, l'instructeur montre comment utiliser cet outil afin de créer un masque binaire pour une image en une seule annotation d'image.

  • 00:05:00 Dans cette section du didacticiel, le présentateur montre comment annoter une image et créer un masque binaire pour la segmentation sémantique. En utilisant une image de canard comme exemple, ils guident le spectateur à travers le processus de dessin d'un polygone pour créer le masque autour du corps du canard, y compris une discussion sur l'opportunité d'annoter certaines parties sous l'eau comme faisant partie du canard ou non. Le présentateur souligne que le masque n'a pas besoin d'être parfait au pixel près, mais qu'il doit être suffisamment précis pour créer un bon masque. Enfin, ils montrent comment enregistrer et télécharger les données annotées pour les utiliser dans la création d'un ensemble de données.

  • 00:10:00 Dans cette section, l'orateur explique comment formater et structurer l'ensemble de données afin de former un modèle de segmentation sémantique avec YoloV8. La première étape consiste à télécharger les données requises à l'aide de l'option Exporter l'ensemble de données de tâche et en sélectionnant le masque de segmentation. Une fois les données téléchargées, elles doivent être organisées dans une structure de répertoires contenant les images, les masques et les étiquettes. Les masques générés à partir des images doivent être convertis dans un format de fichier différent via un script Python fourni par l'orateur. Ce format de fichier est requis par YoloV8 et contient les mêmes informations que les masques binaires. Le conférencier souligne également l'importance de structurer le système de fichiers d'une manière particulière afin que YoloV8 puisse trouver et utiliser les données.

  • 00:15:00 Dans cette section, le présentateur explique la structure de répertoires nécessaire à la segmentation d'images avec le jeu de données personnalisé Yolov8. Les utilisateurs doivent disposer de deux répertoires : l'un appelé "train", qui contient toutes les données d'entraînement pour le modèle de segmentation sémantique, et l'autre appelé "ball", contenant les images qui vont être utilisées pour valider le modèle. Dans ces répertoires se trouvent deux autres répertoires - "images" et "étiquettes" - qui ont tous deux deux sous-répertoires appelés "train" et "ball". Le premier contient toutes les annotations générées à partir des masques d'apprentissage. Le présentateur configure la structure dans pycharm et explique comment former le modèle à l'aide d'un modèle Yolov8 pré-formé par Ultralytics, y compris l'implémentation du code et l'édition du fichier de configuration.

  • 00:20:00 Dans cette section, l'orateur explique que le modèle de segmentation sémantique est formé dans Google Collab en raison de l'accès à un GPU gratuit, ce qui rend le processus beaucoup plus rapide. L'orateur recommande de télécharger des données, y compris des répertoires et des images, ainsi que le fichier config.yaml avant de commencer le processus. De plus, l'orateur montre et explique comment exécuter chaque cellule sur le Jupiter Notebook et partage l'emplacement de leurs données sur Google Drive, encourageant l'utilisateur à faire de même lors du téléchargement de ses données. Enfin, l'orateur mentionne l'installation d'Ultralytics afin qu'il puisse utiliser YOLOv8 dans le Notebook et insiste sur l'utilisation de Google Collab avec GPU tout en vérifiant le type d'exécution.

  • 00:25:00 Dans cette section du didacticiel, l'orateur entraîne le modèle pour 10 époques et enregistre les résultats dans le dossier segment train 2. L'étape suivante consiste à analyser les résultats de la formation pour valider que tout fonctionne correctement. Pour ce faire, le moyen le plus simple consiste à copier tout le contenu du répertoire dans lequel les résultats sont enregistrés sur Google Drive. Une fois les résultats téléchargés sur un ordinateur local, l'orateur recommande de se concentrer sur l'analyse de la fonction de perte, de la perte de segmentation, de la perte d'entraînement et des graphiques de perte de validation pour s'assurer que la fonction de perte diminue. C'est un bon signe que les choses fonctionnent bien, tandis qu'une fonction de perte croissante indique un problème sérieux.

  • 00:30:00 Dans cette section, l'orateur parle de l'analyse de la fonction de perte et des métriques de validation pour former un bon modèle pour l'ensemble de données personnalisé Yolov8. C'est un bon signe si la perte de formation et de validation diminue, ce qui indique une tendance à l'amélioration de la qualité des prédictions. Cependant, l'orateur prévient que des annotations manquantes et d'autres défauts dans les données de formation peuvent affecter la qualité de la prédiction, entraînant des tendances inattendues dans le tracé de la fonction de perte. Par conséquent, l'orateur conseille de ne pas devenir fou en analysant ces parcelles et d'inclure une analyse des prédictions pour évaluer la performance globale du modèle.

  • 00:35:00 Dans cette section, l'orateur discute de l'importance d'analyser les résultats de validation et d'évaluation d'un modèle formé sur un ensemble de données, qui n'est pas parfait et comporte des erreurs. Ces erreurs peuvent être corrigées en utilisant les prédictions du modèle actuel pour en former un nouveau et amélioré. L'orateur montre le répertoire où les poids du modèle sont enregistrés, expliquant que last.pt et best.pt représentent respectivement les modèles les plus performants et les plus performants lors de la formation. Enfin, l'orateur recommande d'utiliser less.pt en raison de sa prise en compte de beaucoup plus d'informations que le modèle best.pt.

  • 00:40:00 Dans cette section du didacticiel vidéo sur la segmentation d'images avec le jeu de données personnalisé YOLOv8, le présentateur montre comment faire des prédictions à l'aide d'un script Python. Il commence par importer le package YOLO d'Ultralytics et définit le modèle en utilisant less.pt du répertoire des résultats. Il précise ensuite le chemin de l'image et importe CV2 pour ouvrir et lire cette image. Le présentateur obtient les résultats du modèle en appelant le modèle sur l'image et parcourt les résultats pour obtenir le masque prédit. Il redimensionne le masque à la taille de l'image d'origine et l'enregistre sous output.png. Le présentateur montre également comment superposer le masque sur l'image originale pour assurer une bonne prédiction.

  • 00:45:00 Dans cette section, le présentateur démontre le résultat du modèle de segmentation sémantique qu'il a formé avec YOLOv8. En utilisant une image superposée et une transparence, ils montrent que bien que le masque ne soit pas parfait à 100%, c'est un très bon résultat compte tenu des erreurs dans les données. Le présentateur résume ensuite l'ensemble du processus, depuis l'annotation des données, la formation du modèle, sa validation jusqu'à la réalisation de prédictions. Enfin, ils encouragent les téléspectateurs à s'abonner à leur chaîne et à consulter les autres vidéos qu'ils ont publiées.
GitHub - computervisioneng/image-segmentation-yolov8
GitHub - computervisioneng/image-segmentation-yolov8
  • computervisioneng
  • github.com
Contribute to computervisioneng/image-segmentation-yolov8 development by creating an account on GitHub.